BAB 3 ANALISIS DAN PERANCANGAN PROGRAM

advertisement
BAB 3
ANALISIS DAN PERANCANGAN PROGRAM
Program aplikasi ini dirancang dengan menggunakan perangkat lunak Microsoft
Visual C# 2008 Express Edition. Proses perancangan menggunakan pendekatan Object
Oriented Analysis and Design (OOAD) dengan menggunakan notasi Unified Modeling
Language (UML) yang mencakup flowchart, use case diagram dan rancangan layar.
Proses identifikasi abjad Arab ini menggunakan Transformasi Wavelet untuk melakukan
ekstraksi ciri dari citra suatu abjad Arab dan jaringan saraf tiruan jenis Back
Propagation untuk melakukan pengenalan pola sampai dengan dikenalinya citra
dimaksud.
3.1.
Microsoft Visual C# 2008 Express Edition
Perancangan program aplikasi ini, menggunakan Microsoft Visual C# 2008
Express Edition. Bahasa pemrograman C# dikembangkan sebagai penerus dari bahasa
pemrograman C++, memiliki tingkat penggunaan yang lebih user friendly, lingkungan
yang lebih baik, serta pengoperasian yang lebih mudah sehingga membuat bahasa
pemrograman C# memiliki berbagai kelebihan bahasa C++, dan dianggap cukup
sanggup mengurangi berbagai kelemahan yang dimiliki oleh bahasa C++ tersebut.
Sesuai dengan konsep perancangan yang menggunakan pendekatan Object Oriented
Analysis and Design (OOAD), maka bahasa pemrograman C# merupakan pilihan yang
tepat. Microsoft Visual C# 2008 Express Edition merupakan perangkat lunak yang
berorientasi obyek. Selain itu, bahasa pemrograman ini juga merupakan bahasa
48 pemrograman yang cukup sederhana, yang sering digunakan untuk mengembangkan
program aplikasi oleh para pembuat program, khususnya para pengembang aplikasi yang
berbasiskan pada sistem operasi windows.
3.2.
Class Diagram
Gambar 3.1 Class Diagram
Class diagram di atas, digunakan untuk menggambarkan interaksi yang terjadi
antar class. Melalui class diagram di atas, dapat dilihat class yang terdapat pada
program aplikasi ini.
49 3.3.
Use Case Diagram
Gambar 3.2 Use Case Diagram
Use case diagram di atas, digunakan untuk menggambarkan interaksi yang
terjadi antara pengguna dan program aplikasi. Berdasarkan use case diagram di atas,
para pengguna program ini dapat dengan jelas melihat hal-hal yang dapat mereka
lakukan terhadap program aplikasi ini.
50 3.4.
Sequence Diagram
Gambar 3.3 Sequence Diagram
Sequence diagram, seperti yang ditunjukkan dalam gambar di atas, digunakan
untuk menggambarkan urutan proses dan penukaran pesan yang terjadi oleh sejumlah
obyek dalam program aplikasi ini.
51 3.5.
State Transition Diagram
Gambar 3.4 State Transition Diagram
State transition diagram di atas, digunakan untuk menggambarkan sifat
ketergantungan sistem dalam program aplikasi ini.
3.6.
Flowchart
Dalam perancangan program aplikasi ini, penulis menggunakan flowchart
(diagram alur) untuk menggambarkan proses yang terjadi pada aplikasi secara
keseluruhan. Proses ini digambarkan secara runtun, dari awal proses perancangan, yaitu
pengumpulan data, hingga terbentuk jaringan saraf tiruan dari hasil pelatihan data.
Adapun simbol-simbol yang sering digunakan pada diagram alur / flowchart
adalah sebagai berikut:
Proses
Berupa pengolahan proses, misal: perhitungan
Untuk predefined process
52 Operasi Input / Output
Operasi Manual Input
Panah, menghubungkan antar komponen dan menunjukkan arah
Decision, berupa pertanyaan atau penentuan suatu keputusan
Terminal, untuk menandai awal atau akhir program
Preparation, untuk inisialisasi suatu nilai
Connector, sebagai penghubung dalam satu halaman.
Off Page Connector, sebagai penghubung antar halaman.
53 Gambar 3.5 Flowchart Proses Pelatihan
Gambar 3.5 di atas menggambarkan diagram alur (flowchart) proses pelatihan
yang dimiliki oleh perancangan program aplikasi Arabiabjad.
54 Gambar 3.6 Flowchart Proses Pengenalan
Gambar 3.6 menggambarkan diagram alur (flowchart) proses pengenalan yang
dimiliki oleh perancangan program aplikasi pengenalan pola abjad Arab ini.
55 3.7.
Tampilan Layar Utama
Penulis merancang program aplikasi ini menjadi satu layar utama, yang terbagi
menjadi beberapa menu, sesuai dengan fungsi-fungsi yang telah diuraikan pada bagian
sebelumnya.
Gambar 3.7 Tampilan Layar Utama
56 Tampilan layar utama di atas, terbagi menjadi beberapa bagian. Pertama adalah
bagian menu, yang terdiri dari menu file dan menu help. Bagian kedua adalah bagian
image, ketiga adalah bagian output, keempat adalah bagian button fitur, dan kelima
adalah bagian list bar. Adapun rincian fungsi dari masing-masing bagian adalah:
Menu. Pada bagian ini terdapat dua menu, yaitu menu file dan menu help. Menu
file akan berisi segala sesuatu yang berkaitan dengan file (berkas), yang mana
terdiri dari beberapa sub menu, antara lain: load image, difungsikan untuk
melakukan load image (memasukkan gambar/citra dari luar program, terutama
untuk kepentingan uji); save network, berfungsi untuk menyimpan network yang
telah dilatihkan (train); load network, yang fungsinya adalah untuk melakukan
load file network (memasukkan berkas jaringan saraf tiruan yang sebelumnya
pernah dilatihkan ke dalam program aplikasi ini), dan exit yang berfungsi
bilamana pengguna hendak keluar dari program aplikasi. Menu help, akan
berisikan dua macam bantuan, yaitu user manual, yang berisikan tata cara
pemakaian program aplikasi (petunjuk/pedoman), dan about me yang berisikan
keterangan mengenai penulis beserta e-mail miliknya.
Image adalah bagian di mana semua citra yang di-load dan diproses akan
ditampilkan. Image source akan berisikan citra asli yang di-load pertama kali.
Image destination akan berisikan citra yang telah diproses, baik melalui proses
pengolahan citra (preprocessing) maupun proses ekstraksi fitur (extraction).
Output, akan berisikan semua laporan dari proses yang terjadi pada program
aplikasi.
57 Program ini memiliki delapan tombol fitur, yaitu preprocessing, extract,
recognize, clear output, add folder, preprocessing folder, training folder, dan
reset. Preprocessing berfungsi untuk melakukan pengolahan citra. Jika tombol
ini ditekan, akan menampilkan menu threshold option. Extract berfungsi untuk
melakukan ekstraksi ciri. Recognize merupakan tombol untuk proses pengujian
dari jaringan saraf tiruan. Clear output adalah tombol untuk menghapus laporan
yang ditampilkan pada bagian output. Add folder berfungsi untuk melakukan
load folder yang berisi image. Preprocessing Folder berfungsi untuk melakukan
proses pengolahan citra pada folder yang diperlakukan. Training folder berfungsi
untuk melakukan proses pelatihan jaringan saraf tiruan. Reset berfungsi untuk
melakukan random network.
Gambar 3.8 Menu File
Gambar 3.9 Menu Help
58 Gambar 3.10 adalah tampilan dari menu threshold. Pada bagian ini akan berisi
dua buah radiobutton, di mana pengguna harus memilih apakah ia ingin menggunakan
fasilitas adaptive threshold, ataukah menentukan nilai threshold secara manual. Selain
itu, pengguna juga bisa menentukan apakah ia ingin menggunakan filter yang tersedia
atau tidak. Tombol proses berfungsi untuk memroses nilai threshold yang telah
ditentukan oleh pengguna.
Gambar 3.10 Menu Threshold
3.8.
Pengumpulan Data
Tahap ini merupakan tahap untuk mengumpulkan citra digital abjad Arab yang
ditulis tangan secara langsung, baik yang ditulis pada kertas lalu kemudian dimasukkan
ke dalam komputer menggunakan perangkat scanner, maupun yang mencoba langsung
mencoret beragam abjad Arab di komputer (menggunakan berbagai piranti lunak yang
tersedia untuk hal itu, beberapa di antaranya adalah Microsoft Paint, Adobe Photoshop,
Corel Draw, dll). Setelah citra suatu abjad Arab diperoleh, berikutnya adalah tahap
untuk mengubah citra analognya menjadi citra digital (apabila menggunakan kertas dan
scanner).
59 Pada penelitian ini, citra abjad Arab diambil dari 5 orang. Setiap orang diambil
citra abjad Arab sebanyak 3 set (5 x 29 abjad Arab, total didapat sekurangnya 435 citra
abjad Arab). Dari lima belas set abjad Arab yang diambil, dipilih tiga set citra abjad
Arab yang baik. Jadi, total data yang diperoleh adalah 87 citra abjad Arab, dengan
rincian 58 citra digunakan dalam proses pelatihan, serta 29 citra digunakan pada proses
pengujian.
3.9.
Pemrosesan Citra
Setelah sebuah citra digital abjad Arab diperoleh, maka citra tersebut siap untuk
digunakan pada tahap selanjutnya, yaitu pemrosesan citra. Tahap ini adalah tahap untuk
memperbaiki kualitas mutu suatu citra digital. Untuk memperbaikinya, kita harus
menghilangkan noise yang terdapat pada citra digital sang abjad Arab yang diproseskan.
Proses perbaikan kualitas citra yang dilakukan pada penelitian ini terbagi menjadi dua
tahap yaitu:
Thresholding
Proses thresholding adalah proses untuk mengubah citra grayscale/keabuan
menjadi citra dengan dua warna yaitu hitam dan putih (biner). Setiap pixel pada
citra akan diambil derajat keabuannya. Derajat keabuan dari sebuah citra dapat
diperoleh dengan persamaan berikut:
S adalah nilai dari derajat keabuan sebuah pixel, sementara R, G, dan B secara
berurutan adalah nilai dari warna merah, hijau dan biru. Pada citra keabuan, nilai
60 dari layer R, G, dan B haruslah sama. Jika semuanya bernilai 0, maka warna
yang dihasilkan adalah warna hitam, sementara jika semuanya bernilai 255, maka
warna yang dihasilkan adalah warna putih, selain itu jika nilainya berada di
antara 0 hingga 255 maka akan menghasilkan warna abu-abu sesuai dengan
tingkat gradasinya.
Setelah kita memperoleh nilai dari suatu pixel, tahapan dari proses thresholding
berikutnya adalah memutuskan apakah pixel tersebut akan dihitamkan atau
diputihkan. Untuk menentukan hal ini, kita akan dibantu dengan sebuah nilai,
yaitu threshold value. Threshold value adalah sebuah nilai batas pada proses
thresholding. Jika nilai derajat keabuan dari suatu pixel lebih rendah daripada
threshold value, maka pixel tersebut akan dihitamkan. Akan tetapi, sebaliknya
jika nilai dari pixel tersebut lebih tinggi dari nilai threshold value, maka pixel
tersebut akan diputihkan.
Pada penelitian ini, threshold value dapat ditentukan dengan menggunakan dua
cara, yaitu secara manual dan dengan menggunakan metode mean value
threshold. Jika user memilih untuk menentukan nilai threshold secara manual,
maka ia bisa memasukkan nilai threshold dari 0 sampai 255.
Proses penentuan nilai threshold dengan menggunakan metode mean threshold
value, bertujuan untuk menentukan nilai ambang berdasarkan rata-rata nilai pixel
dari suatu citra. Adapun pseudocode dari proses penentuan nilai ambang dengan
metode mean value threshold adalah sebagai berikut:
61 Awal modul
luas = panjang_gambar * lebar_gambar;
dari nilai y yang ke-0 hingga (lebar_gambar)-1
mulai
dari nilai x yang ke-0 hingga (panjang_gambar)-1
mulai
salin nilai pixel gambar ke dalam array_penampung
selesai
selesai
dari i yang ke-0 hingga luas-1
mulai
nilai=nilai+array_penampung(i)
selesai
nilai_ambang=nilai/luas
Akhir modul
Selain itu, pseudocode untuk proses thresholding secara keseluruhan adalah
sebagai berikut:
Awal modul
dari nilai y yang ke-0 hingga (lebar_gambar)-1
mulai
dari nilai x yang ke-0 hingga (panjang_gambar)-1
mulai
jika nilai pixel citra(x,y) lebih kecil dari nilai_ambang
maka
ubah nilai pixel citra(x,y) menjadi 0
selain itu
ubah nilai pixel citra(x,y) menjadi 255
selesai
selesai
Akhir modul
62 Proses thresholding ini akan membantu untuk mengurangi noise yang dimiliki
oleh suatu citra (yang terkadang dapat mempengaruhi hasil akhirnya secara
cukup signifikan). Nilai pixel yang lebih tinggi dari nilai ambang, akan secara
otomatis diputihkan, sehingga sebagian noise akan terhapus.
Penapisan / Filtering
Penapisan atau filtering adalah sebuah proses untuk menentukan nilai dari suatu
pixel dengan cara melakukan perhitungan dari nilai intensitas para pixel
disekeliling pixel tersebut. Pada penelitian ini, digunakan dua jenis penapisan
yaitu:
Tapis lolos rendah (Low pass Filter).
Filter ini mempunyai tujuan untuk mempertegas bagian dengan frekuensi
rendah pada suatu citra. Ia akan melakukan pemerataan tingkat keabuan,
sehingga membuat citra terlihat agar kabur kontrasnya. Namun demikian
tapis lolos rendah dapat mengurangi sebagian efek noise yang ada pada
sebuah citra. Ia akan mengurangi berbagai gangguan yang berbentuk garis
tajam. Filter ini umumnya berbentuk matriks mask n x n, di mana n
umumnya bernilai tiga atau lima.
Tabel 3.1 Mask Low pass Filter 3 x 3
P1 * K
P2 * K
P3 * K
P4 * K
P5 * K = C * K
P6 * K
P7 * K
P8 * K
P9 * K
63 Tabel 3.2 Mask Low pass Filter 5 x 5
P1 * K
P2 * K
P3 * K
P4 * K
P5 * K
P6 * K
P7 * K
P8 * K
P9 * K
P10 * K
P11 * K
P12 * K
P13 * K = C * K
P14 * K
P15 * K
P16 * K
P17 * K
P18 * K
P19 * K
P20 * K
P21 * K
P22 * K
P23 * K
P24 * K
P25 * K
P adalah pixel pada citra yang akan di-filter, sementara C adalah titik
tengah dari mask, yang akan diganti nilainya dan K adalah konstanta. Nilai
dari konstanta adalah
, jadi untuk mask ukuran 3 x 3, nilai konstantanya
adalah . Adapun pseudocode dari mask 3 x 3 adalah:
Awal modul
luas = panjang_gambar * lebar_gambar;
dari nilai y yang ke-0 hingga (lebar_gambar)-1
mulai
dari nilai x yang ke-0 hingga (panjang_gambar)-1
mulai
nilai_pixel(x,y)=nilai_pixel(x-1,y-1) * 1/9 +
nilai_pixel(x,y-1) * 1/9 + nilai_pixel(x+1,y-1) * 1/9 + nilai_pixel(x1,y) * 1/9 + nilai_pixel(x,y) * 1/9 + nilai_pixel(x+1,y) * 1/9 +
nilai_pixel(x-1,y+1) * 1/9 + nilai_pixel(x,y+1) * 1/9 +
nilai_pixel(x+1,y+1) * 1/9
selesai
selesai
Akhir modul
64 Tapis lolos tinggi (High pass Filter).
Filter ini mempunyai karakter yang berlawanan dengan Low pass Filter. Ia
bersifat memperkuat pixel-pixel dengan frekuensi yang tinggi. Penggunaan
filter ini akan membuat garis batas antar obyek menjadi lebih tajam. Untuk
menerapkan filter ini pada suatu citra, kita membutuhkan sebuah mask
yang sama seperti pada bagian tapis lolos rendah, yaitu matriks mask 3x3.
Perbedaannya hanya terletak pada nilai koefisiennya, yaitu
.
Pseudocode dari high pass filter adalah sebagai berikut:
Awal modul
luas = panjang_gambar * lebar_gambar;
dari nilai y yang ke-0 hingga (lebar_gambar)-1
mulai
dari nilai x yang ke-0 hingga (panjang_gambar)-1
mulai
nilai_pixel(x,y) = nilai_pixel(x-1,y-1) * (-1/4)
nilai_pixel(x,y-1) * (-1/4) + nilai_pixel(x+1,y-1) * (-1/4)
nilai_pixel(x-1,y) * (-1/4) + nilai_pixel(x,y) * (-1/4)
nilai_pixel(x+1,y) * (-1/4) + nilai_pixel(x-1,y+1) * (-1/4)
nilai_pixel(x,y+1) * (-1/4) + nilai_pixel(x+1,y+1) * (-1/4)
+
+
+
+
selesai
selesai
Akhir modul
3.10. Ekstraksi Ciri
Tahap ini bertujuan untuk melakukan ekstraksi ciri dengan metode dekomposisi
Wavelet Haar. Setelah suatu citra melewati tahap pengolahan citra, maka citra tersebut
siap untuk diekstrak cirinya. Pada penelitian ini, input pertama pada tahap ekstraksi ciri
65 berukuran 128 x 128 pixel. Kita perlu menghitung level maksimum dari dekomposisi
Wavelet yang mungkin dilakukan, dengan menggunakan rumusan yang telah diuraikan
pada bagian sebelumnya. Pada penelitian ini, panjang datanya adalah 128, panjang
filternya adalah dua, sehingga level maksimum dari dekomposisi Wavelet setelah
dihitung dengan menggunakan rumusan adalah tujuh.
Penelitian ini menggunakan level dekomposisi lima. Pada dekomposisi level
pertama, citra dengan ukuran 128 x 128 pixel menjadi citra dengan empat sub bidang
pada ukuran yang lebih rendah yaitu 64 x 64 pixel. Keempat sub bidang ini akan
membawa informasi yang berbeda, yaitu informasi aproksimasi, vertikal, horizontal, dan
diagonal. Dekomposisi level kedua menghasilkan citra dengan ukuran 32 x 32 pixel,
dekomposisi level ketiga menghasilkan citra dengan ukuran 16 x 16 pixel, dekomposisi
level keempat menghasilkan citra dengan ukuran 8 x 8 pixel, dan dekomposisi level
kelima menghasilkan citra dengan ukuran 4 x 4 pixel. Hasil dari dekomposisi level
kelima, yang berupa citra aproksimasi inilah yang akan digunakan sebagai citra masukan
(input) pada jaringan saraf tiruan, pada tahap selanjutnya. Adapun algoritma dari
dekomposisi Wavelet ini adalah sebagai berikut:
Tahap 1 : Input citra diubah menjadi empat bagian citra baru dengan ukuran
.
Tahap 2 : Tes kondisi berhenti, jika ukuran dari citra aproksimasi adalah 1 x 1
pixel atau telah mencapai level dekomposisi yang diinginkan, maka proses
berhenti, jika tidak, ulangi tahap pertama dengan menggunakan citra aproksimasi
sebagai input citra.
66 Cara kerja dari Wavelet Haar adalah dengan melakukan perhitungan rata-rata
dari input sinyal yang diperolehnya. Misalkan terdapat suatu citra berukuran 1 x 4 pixel,
dengan nilai pixel [3 5 4 8], maka hasil dari proses perhitungan nilai rata-rata, diperoleh
nilai [4 6]. Hasil tersebut kembali dihitung nilai rata-ratanya sehingga diperoleh nilai [5].
Setelah proses perhitungan nilai rata-rata selesai, kita juga harus mencatat koefisien
detail dari setiap langkah. Koefisien detail adalah perbedaan antara hasil rata-rata
dengan nilai masukannya. Misal pada tahap pertama, yaitu perhitungan rata-rata nilai 3
dan 5 sehingga diperoleh nilai 4, maka koefisien detil dari tahap itu adalah [1]. Dari
contoh ini, citra digital dengan nilai pixel [3 5 4 8], akan diTransformasikan menjadi
deret [5 -1 -1 -2].
Nilai asli citra digital bisa diperoleh dengan mengalikan, koefisien Haar yang
diperoleh dengan empat basis Haar. Pada contoh di atas:
[3 5 4 8] = 5[1 1 1 1] + -1[1 1 -1 -1] + -1[1 -1 0 0] + -2[0 0 1 -1]
Perhitungan Transformasi Wavelet pada citra dua dimensi, memiliki prinsip yang
sama dengan perhitungan pada citra satu dimensi. Proses perhitungan dilakukan secara
horizontal terlebih dahulu, kemudian dilakukan secara vertikal.
Pada penelitian ini, hasil dari proses ekstraksi ciri pada citra berukuran 128 x 128
pixel ini adalah citra aproksimasi dengan ukuran 4 x 4 pixel. Kemudian setiap pixel ini
akan diambil nilainya, dan dijadikan input layer dari jaringan saraf tiruan. Total input
yang dihasilkan adalah 16 sel.
67 3.11. Proses Pelatihan
Pada tahap pelatihan, semua matriks input yang diperoleh pada tahap ekstraksi
ciri, akan dilatihkan pada jaringan saraf tiruan jenis Back Propagation yang telah
dibangun. Jaringan saraf tiruan ini dibangun dengan input layer sebanyak 16 buah, dan
output sebanyak 6 buah. Selain itu, jaringan saraf tiruan ini juga menggunakan satu
lapisan tersembunyi. Umumnya jumlah sel pada lapisan tersembunyi ini dihitung dengan
rumusan:
Sehingga jumlah sel dari lapisan tersembunyi pada jaringan saraf tiruan ini
adalah sebanyak 17 buah. Pada penelitian ini, jumlah sel pada lapisan input sesuai
dengan hasil ekstraksi ciri yang diperoleh, jumlah sel pada lapisan output, juga sesuai
dengan jumlah data yang akan dilatihkan pada jaringan saraf tiruan tersebut. Namun,
jumlah sel pada lapisan hidden tidak berdasarkan teori pada umumnya, tetapi
berdasarkan percobaan yang dilakukan. Fungsi aktivasi yang digunakan pada penelitian
ini adalah fungsi sigmoid.
Pada tahap pelatihan, berlangsung dua langkah yaitu langkah maju (feedforward)
dan langkah mundur (backward). Langkah feedforward, bertujuan untuk melakukan
kalkulasi perhitungan dari matriks input dan matriks bobot, sementara backward
bertujuan untuk melakukan koreksi matriks bobot. Pada proses pelatihan ini, jumlah
epoch atau perulangan maksimum diperoleh dari masukan yang diberikan oleh user
(pengguna umum program ini).
68 3.12. Proses Pengujian
Modul pengujian, hanya akan menjalankan langkah feedforward dari algoritma
Back Propagation. Dari input yang dimasukkan, akan diperoleh nilai output yang akan
dicocokkan dengan basis data abjad Arab. Citra yang akan diuji, akan melewati tahap
ekstraksi ciri, sehingga diperoleh input dengan jumlah 16 sel.
Setelah itu, input tersebut akan dikalikan dengan matriks bobot yang telah
ditentukan pada tahap pelatihan. Perkalian antara matriks input dan matriks bobot, akan
menghasilkan nilai output yang telah ditentukan pada tahap pelatihan. Output yang
diperoleh ini menunjuk satu pola abjad Arab yang telah dilatihkan sebelumnya.
Jadi, pada analisis dan perancangan program aplikasi ini, telah dibahas mengenai
langkah-langkah proses pengenalan yang dilakukan oleh sistem. Sehingga pada tahap
ini, program aplikasi telah siap untuk diuji. Untuk implementasi dan evaluasi dari hasil
program aplikasi ini, dapat dilihat pada bab selanjutnya.
Download