BAB 3 PERANCANGAN PERANGKAT LUNAK Pada bab ini diuraikan mengenai perancangan perangkat lunak untuk implementasi aplikasi pengenalan obyek tiga dimensi dengan metode Subclass Discriminant Analysis (SDA). Perancangan perangkat lunak ini terdiri dari perancangan data, yang menunjukkan data-data yang yang digunakan dalam perangkat lunak, perancangan proses, yang menunjukkan alur proses perangkat lunak secara keseluruhan, serta perancangan antarmuka. 3.1
Perancangan Data
Tujuan utama perancangan data adalah untuk menentukan format data yang tepat untuk perangkat lunak, sehingga dapat dioperasikan dengan benar dan menberi hasil yang optimal. Terdapat 3 (tiga) macam data yang diperlukan ketika mengoperasikan perangkat lunak, yaitu: data masukan yang merupakan kumpulan citra obyek, yang disimpan pada media penyimpanan, data proses yang merupakan data yang diperlukan dan dihasilkan selama proses eksekusi perangkat lunak, dan data keluaran yang merupakan hasil proses eksekusi perangkat lunak untuk pengguna yang menjalankannya. 3.1.1
Data Masukan
Data masukan yang digunakan oleh sistem adalah berupa kumpulan citra obyek. Basis data citra obyek yang digunakan adalah basis data ETH-80. Pada basis data ETH-80, terdapat 8 kategori, yaitu: buah apel, buah pir, buah tomat, mobil, sapi, anjing, kuda dan cangkir. Citra yang digunakan berformat png. Tipe citra obyek yang digunakan adalah RGB. Ukuran citra yang digunakan adalah 40 x 40 piksel.
31
32 Menggunakan 24 citra untuk setiap kategori sebagai data pelatihan dan data uji coba. Setiap kategori memiliki 10 jenis yang berbeda. Maka, jumlah citra yang digunakan sebagai data pelatihan dan data uji coba adalah 1920 citra obyek. 3.1.2
Data Proses
Data proses yang digunakan oleh sistem adalah basis data ETH-80, dengan 8 kategori, yaitu: buah apel, buah pir, buah tomat, mobil, sapi, anjing, kuda dan cangkir. Pada proses pelatihan dan proses uji coba, setiap citra obyek ditentukan fitur ekstraksinya. Hasil kedua fitur ekstraksi tersebut akan digunakan untuk perhitungan jarak terdekat sebagai proses klasifikasi citra. 3.1.3
Data Keluaran
Data keluaran yang dihasilkan oleh perangkat lunak ini adalah citra obyek yang merupakan hasil pencocokan yang dilakukan oleh perangkat lunak. Hal tersebut berdasarkan atas perhitungan jarak terdekat antara fitur ekstraksi dari data pelatihan dan fitur ekstraksi dari data uji coba. 3.2
Perancangan Proses Perangkat Lunak
Secara garis besar, proses pada sistem perangkat lunak ini adalah: proses pelatihan data dan proses pengenalan. 3.2.1
Proses Pelatihan Data
Pada proses pelatihan data, langkah-langkah yang dilakukan adalah sebagai berikut: 1. 2. 3.
Mengubah citra obyek menjadi vektor kolom. Membentuk matriks data pelatihan, baris x kolom, dimana kolom menggambarkan satu citra obyek. Mengurutkan sampel-sampel pada matriks data pelatihan dengan berdasarkan algoritma NN class clustering.
33 4. 5. 6. 7. 8.
9. 10. 11. 12.
13. 14.
3.2.2
Membagi data di tiap kelas menjadi beberapa subkelas, dengan jumlah sampel yang diusahakan sama. Menghitung rata-rata (mean) tiap kolom dari matriks data pelatihan yang telah diurutkan sebelumnya. Mengurangi matriks data pelatihan dengan matriks ratarata tiap kolom yang telah dihitung pada langkah 5. Membentuk matriks scatter-within subclasses, ∑ X . Menghitung rata-rata (mean) tiap subkelas dari matriks data pelatihan yang data di tiap kelasnya telah dibagi menjadi beberapa subkelas. Menghitung matriks scatter-between subclasses ∑ B . Menggunakan persamaan (2.14). Mendapatkan vektor eigen dan nilai eigen dari ∑ X dan
∑B . Menghitung nilai KH untuk setiap nilai H yang mungkin. Menggunakan persamaan (2.16). Menentukan nilai H yang optimal, H0. Dengan melihat nilai KH yang paling kecil. Menggunakan persamaan (2.17). Menghitung ∑ B dengan nilai H = H0. Membentuk matriks fitur ekstraksi (matriks proyeksi), yaitu q kolom pertama dari vektor eigen, V. Dimana, ∑ −X1 ∑ B V = VΛ X . Proses Pengenalan
Berikut ini merupakan langkah-langkah dari proses pengenalan: 1.
2.
Mendapatkan data citra input yang akan dikenali, kemudian mengubahnya menjadi vektor berorientasi kolom. Membentuk matriks fitur ekstraksi dari citra input, yaitu dengan mengalikan matriks fitur ekstraksi (yang
34
3.
4.
3.3
diperoleh pada proses pelatihan data) dengan matriks citra input. Menghitung jarak antara matriks fitur ekstraksi dari data pelatihan dengan matriks fitur ekstraksi dari data citra input. Setiap citra input yang memiliki jarak terdekat dengan citra data pelatihan, maka akan dikenali sebagai citra tersebut. Algoritma dan Diagram Alir
Pada subbab ini, dijelaskan mengenai proses pelatihan data dan pengenalan dengan menggunakan metode yang telah dijelaskan sebelumnya. Proses-proses tersebut dijelaskan dengan menggunakan diagram alir, dengan tujuan agar aliran data yang terjadi dapat lebih jelas. Data yang akan diolah dan data yang dihasilkan untuk tiap proses juga dapat diketahui. Sehingga data awal sebelum proses dan data hasil setelah proses dapat diketahui dengan jelas. 3.3.1
Proses Pelatihan Data
Pada proses pelatihan data terdapat langkah-langkah utama, yaitu: mengurutkan matriks data pelatihan, membagi matriks data pelatihan menjadi beberapa subkelas, menghitung matriks scatter-within subclass ( ∑ X ), menghitung matriks scatter-between subclass ( ∑ B ), menentukan nilai H yang optimal, membentuk matriks fitur ekstraksi.
35 3.3.1.1
Mengurutkan Matriks Data Pelatihan
Diasumsikan di tiap kelas terdapat 5 citra pelatihan. Hasil dari langkah ini adalah matriks data pelatihan yang terurut. Diagram alir proses mengurutkan matriks data pelatihan ditunjukkan pada Gambar 3.1. Mulai
Input: Data Pelatihan
Mencari 2 ObjVector yg memiliki jarak paling jauh
Meletakkan kedua ObjVector pada elemen pertama dan elemen paling akhir
ObjVector1
ObjVector5
Mencari ObjVector yg memiliki jarak terdekat dg ObjVector1 dan ObjVector5
ObjVector1
ObjVector2
ObjVector3
ObjVector4
ObjVector5
Output: Data Pelatihan Terurut
Selesai
Gambar 3.1 Diagram Alir Proses Mengurutkan Data Pelatihan dengan NN Class Clustering
36 3.3.1.2
Membagi Matriks Data Pelatihan pada Tiap Kelas Menjadi Beberapa Subkelas
Hasil dari langkah ini adalah data di tiap kelas telah dibagi menjadi beberapa subkelas, dengan jumlah sampel yang sama rata. Misalnya, jumlah data di tiap kelas adalah 6 (enam). Maka, jumlah data untuk subkelas ke-1 dan subkelas ke-2 adalah sama, yaitu masing-masing 3 (tiga). Diagram alir proses pembagian jumlah data untuk tiap subkelas ditunjukkan pada Gambar 3.2.
Gambar 3.2 Diagram Alir Proses Pembagian Jumlah Data untuk Tiap Subkelas
37 3.3.1.3
Menghitung Matriks Scatter-Between Subclass (ΣB)
Input dari langkah ini adalah matriks data pelatihan yang telah terurut (Y). Pertama, menghitung rata-rata (mean) tiap subkelas dari matriks data pelatihan yang telah terurut (µsub). Kemudian menghitung matriks ∑ B berdasarkan persamaan (2.14). Hasil dari langkah ini adalah matriks ∑ B . Diagram alir proses menghitung matriks scatter-between subclass (ΣB) ditunjukkan pada Gambar 3.3.
Gambar 3.3 Diagram Alir Proses Perhitungan Matriks Matriks Scatter-Between Subclass (ΣB)
38 3.3.1.4
Menghitung Matriks Scatter-Within Subclass (ΣX)
Input dari langkah ini adalah matriks data pelatihan yang telah terurut (Y). Langkah pertama yang dilakukan adalah menghitung rata-rata (mean) dari matriks data pelatihan yang telah terurut (µ). Kemudian mengurangi matriks Y dengan matriks µ. Menghitung matriks Σx = (Y - µ)T * (Y - µ). Hasil dari langkah ini adalah matriks ∑ X . Diagram alir proses menghitung matriks scatter-within subclass (ΣX) ditunjukkan pada Gambar 3.4.
Gambar 3.4 Diagram Alir Proses Perhitungan Matriks Scatter-Within Subclass (ΣX)
39 3.3.1.5
Menentukan Jumlah Subkelas yang Optimal (H0)
Pada tahap ini, langkah pertama yang dilakukan adalah mencari vektor eigen dan nilai eigen dari matriks ∑ X dan ∑ B . Kemudian menghitung nilai KH untuk setiap nilai H yang mungkin, dengan menggunakan persamaan (2.16). Langkah selanjutnya adalah menentukan jumlah subkelas yang optimal dengan mencari nilai KH yang paling kecil, yaitu dengan menggunakan persamaan (2.17). Diagram alir proses penentuan jumlah subkelas yang optimal ditunjukkan pada Gambar 3.5.
Gambar 3.5 Diagram Alir Proses Penentuan Jumlah Subkelas yang Optimal (H0)
40 3.3.1.6
Membentuk Matriks Fitur Ekstraksi
Langkah terakhir pada proses pelatihan data adalah membentuk matriks fitur ekstraksi. Setelah nilai H0 diperoleh, langkah selanjutnya adalah menghitung ∑ B dengan nilai H0 yang telah ditentukan. Kemudian, membentuk matriks proyeksi dengan menghitung persamaan ∑ −X1 ∑ B V = VΛ X . Maka matriks fitur ekstraksinya adalah perkalian antara matriks proyeksi dengan matriks data pelatihan. Diagram alir proses membentuk matriks fitur ekstraksi ditunjukkan pada Gambar 3.6.
Gambar 3.6 Diagram Alir Pembentukan Matriks Fitur Ekstraksi
41 3.3.2
Proses Pengenalan
Tahap ini menggambarkan proses pengenalan. Input dari proses pengenalan adalah citra input yang akan dikenali dan matriks fitur ekstraksi data pelatihan. Sedangkan output dari proses pengenalan adalah citra obyek yang fitur ekstraksinya memiliki jarak terdekat. Diagram alir proses pengenalan ditunjukkan pada Gambar 3.7. Mulai
Input: Matriks Fitur Ekstraksi
Input: Citra yg akan dikenali
Menghitung matriks fitur ekstraksi citra input Fitur_inp = VT * ObjVector
Menghitung Jarak terdekat antara matriks fitur ekstraksi data pelatihan dg fitur ektraksi citra input dist = √(Fitur_mtx2 – Fitur_inp2)
Output: Citra Obyek yg memiliki jarak terdekat
Selesai
Gambar 3.7 Diagram Alir Proses Pengenalan
42 3.4
Perancangan Antar Muka
Perancangan antar muka bertujuan untuk memudahkan pengguna dalam menjalankan aplikasi. Perancangan antar muka terdiri atas form utama, yang ditunjukkan pada Gambar 3.8.
Gambar 3.8 Antar Muka Sebelum Pengenalan
Pada form utama terdapat beberapa fungsi, yaitu:
Untuk melakukan proses pelatihan data. Pada proses pelatihan data, terdapat pilihan data uji coba yang akan digunakan untuk proses pelatihan data, jumlah citra pada data pelatihan, input jumlah subkelas (per kelas) dan pilihan nilai pembatas (threshold). Hasil proses pelatihan data adalah jumlah subkelas yang optimal, berdasarkan input jumlah subkelas (per kelas). Untuk melakukan proses pengenalan. Tombol “Input” digunakan sebagai input citra baru yang ingin dikenali.
43
Hasil proses pengenalan, terdapat pada panel detail yang menampilkan nama file citra input dan nama file citra output yang dikenali. Terdapat juga fungsi untuk menampilkan grafik perbandingan hasil uji coba dengan jumlah data pelatihan dan nilai threshold yang berbeda.
Gambar 3.9 merupakan antar muka ketika telah melakukan proses pelatihan data. Sedangkan Gambar 3.10 merupakan antar muka ketika melakukan proses pengenalan.
Gambar 3.9 Antar Muka Hasil Proses Pelatihan Data
44
Gambar 3.10 Antar Muka Hasil Proses Pengenalan Citra