BAB IV PERANCANGAN DAN IMPLEMENTASI PERANGKAT LUNAK Bab ini menjelaskan perancangan dan implementasi yang dilakukan. Tahap pertama dimulai dengan merancang beberapa classifier yaitu jaringan saraf tiruan feedforward, jaringan saraf tiruan probabilistic, dan parzen classifier. Kemudian dilanjutkan dengan melakukan perancangan binary particle swarm optimization untuk mengoptimalkan hasil keluaran binary dari masing-masing individual classifier.
4.1
Perancangan perangkat lunak
Perancangan perangkat lunak dibagi menjadi tiga bagian utama yaitu perancangan perangkat lunak classifier, perancangan perangkat lunak binary particle swarm optimization, dan perancangan data masukan.
4.1.1
Perancangan perangkat lunak classifier
Rancangan ini meliputi rancangan jaringan saraf tiruan feedforward, jaringan saraf tiruan probabilistic, dan parzen classifier pada permasalahan klasifikasi dengan menggunakan data iris dan wine. Dimana semua rancangan dilakukan dengan menggunkan perangkat lunak MATLAB.
4.1.1.1 Rancangan JST Feedforward Perancangan program jaringan saraf tiruan feeedforward digunakan untuk mendapatkan hasil klasifikasi dari data masukan dengan menggunakan metode pembelajaran terawasi (supervised learning). Untuk mendapatkan hasil tersebut, dilakukan langkahlangkah seperti yang digambarkan pada diagram alir berikut ini :
27
28
Mulai
Mengubah data yang digunakan (iris dan wine) dalam bentuk pasangan input dan target
Membangkitkan jaringan saraf tiruan feedforward
Melakukan testing klasifikasi dari inputan yang diberikan
Mengubah hasil klasifikasi kedalam bentuk keputusan binary
Selesai
Gambar 4.1 Flowchart rancangan JST feedforward
Langkah-langkah yang dilakukan adalah sebagai berikut : 1. Data masukan dibentuk dalam susunan pasangan input dan target. 2. Membuat jaringan saraf tiruan feedforward untuk melakukan training terhadap pasangan input dan target, sehingga nantinya akan didapatkan nilai bobot dan bias yang optimal. 3. Pencarian nilai bobot dan bias yang optimal akan berhenti pada epoch training yang telah ditentukan. 4. Melakukan simulasi klasifikasi dari input yang diberikan dengan menggunakan bobot dan bias yang optimal dari hasil training. 5. Mengubah hasil keluaran klasifikasi pada jaringan saraf tiruan feedforward ke dalam bentuk binary.
4.1.1.2 Rancangan JST probabilistic Program Matlab yang akan mengimplementasikan jaringan saraf tiruan probabilistic memiliki karakteristik sebagai berikut :
29
Mulai
Mengubah data yang digunakan (iris dan wine) dalam bentuk pasangan input dan target
Membangkitkan jaringan saraf tiruan probabilistic
Melakukan testing klasifikasi dari inputan yang diberikan
Mengubah hasil klasifikasi kedalam bentuk keputusan binary
Selesai
Gambar 4.2 Flowchart rancangan JST probabilistic
Langkah-langkah yang dilakukan adalah sebagai berikut : 1. Data masukan dibentuk dalam susunan pasangan input dan target. 2. Membuat jaringan saraf tiruan probabilistic dengan parameter input dan target. 3. Melakukan simulasi terhadap input yang diberikan 4. Mengubah hasil keluaran klasifikasi pada jaringan saraf tiruan feedforward ke dalam bentuk binary.
4.1.1.3 Rancangan parzen classifier Perancangan program matlab yang akan mengimplementasikan parzen classifier memiliki karakteristik sebagai berikut :
30
Mulai
Mengubah data yang digunakan (iris dan wine) dalam bentuk pasangan input dan target
Melakukan training dengan menggunkan toolbox parzen classifier
Melakukan testing klasifikasi dari inputan yang diberikan
Mengubah hasil klasifikasi kedalam bentuk keputusan binary
Selesai
Gambar 4.3 Flowchart rancangan parzen classifier
Langkah-langkah yang dilakukan adalah sebagai berikut : 1. Data masukan dibentuk dalam susunan pasangan input dan target. 2. Melakukan training dengan menggunakan parameter data input, target, dan input simulasi dengan menggunkan parzen classifier toolbox. 3. Mengubah hasil keluaran klasifikasi pada jaringan saraf tiruan feedforward ke dalam bentuk binary.
4.1.2
Perancangan perangkat lunak binary PSO
Rancangan ini digunakan untuk mendapatkan nilai optimal dari output binary masing-masing classifier. Keoptimalan ini dihitung berdasarkan nilai error yang dihasilkan selama proses iterasi dengan menggunkan pembandingan terhadap fungsi aktivasi sigmoid. Berikut adalah diagram alir perancangan program binary PSO yang akan dibuat dengan menggunakan matlab :
31
Gambar 4.4 Flowchart rancangan algoritma binary PSO
Langkah-langkah yang dilakukan adalah sebagai berikut : 1. Populasi dibangkitkan dari output binary masing-masing classifier. 2. Pembaharuan posisi merupakan nilai binary yang di dapatkan dengan cara membandingkan nilai setiap partikel dengan fugsi sigmoid. 3. Pembaharuan velocity dipengaruhi oleh nilai pbest dan gbest 4. Parameter berikut merupakan nilai statis :
32
5.
a. Ukuran dari populasi b. Nilai inertia c. Correction factor d. Bilangan natural Digunakan 2 kriteria untuk berhenti : yang pertama menggunakan ukuran dari populasi , yang kedua adalah batas iterasi.
4.1.3
Perancangan data
Data yang akan digunakan dalam tugas akhir ini didapatkan dari UCI Repository machine learning database, yaitu data iris dan wine. Data iris dan wine tersebut ditunjukkan pada halaman lampiran Dari tabel data iris 8.1 diketahui bahwa data set iris terdiri dari 150 instance dimana terbagi masing-masing menjadi 50 instance pada 3 buah class. Masing-masing class menunjuk jenis bunga iris. Data iris memiliki 5 buah atribut yang terdiri dari 4 atribut numerik dan 1 atribut prediktif (Class). Perhitungan statistik data iris dapat dilihat pada tabel 4.5 berikut : Tabel 4.1 Perhitungan statistic data iris
Sepal length Sepal width Petal length Petal width
Min 4.3 2.0 1.0 0.1
Max 7.9 4.4 6.9 2.5
Mean 5.84 3.05 3.76 1.20
SD 0.83 0.43 1.76 0.76
Selanjutnya data kedua yang digunakan pada tugas akhir ini adalah data wine. Data wine merupakan data hasil analisis kimia pertumbuhan anggur disuatu tempat di Italia yang dibudidayakan oleh 3 petani yang berbeda.Analisis kimia ini ditentukan dari 13 konstituen yang ada pada 3 buah jenis anggur. Data wine dapat dilihat pada halaman lampiran. Dari tabel data wine dapat diketahui bahwa data wine memiliki 13 atribut dengan jumlah instance sebanyak 178 dimana terbagi sebanyak 59 instance pada class 1, 71 instance pada class
33 2, dan 48 instance pada class 3. Data-data seperti yang ditunjukkan diatas dituliskan dalam ms excel, untuk selanjutnya data akan diubah kedalam bentuk matrik didalam matlab dalam bentuk mat file.
4.2
Implementasi perangkat lunak
Implementasi perangkat lunak pada tugas akhir ini terbagi kedalam 2 bagian utama yaitu implementasi perangkat lunak classifier dan implementasi perangkat lunak binary particle swarm optimization. Dimana semuanya akan diimplementasikan menggunakan MATLAB.
4.2.1
Implementasi perangkat lunak classifier
Diimplementasikan 3 buah classifier yaitu jaringan saraf tiruan feedforward, jaringan saraf tiruan probabilistic dan parzen classifier.Implementasi meliputi data masukan dan implementasi perangkat lunak
4.2.1.1 Data masukan JST Feedforward Data masukan yang digunakan pada jaringan saraf tiruan feedforward ini adalah data iris dan data wine yang telah diubah kedalam bentuk matrik didalam matlab dalam bentuk mat file.. Gambar 4.5 menunjukkan implementasi kode MATLAB untuk membaca data masukan iris
34
Gambar 4.5 Kode matlab iris-JST Feedforward
Skenario yang digunakan adalah dengan menggunakan setengah data input awal untuk training dan setengah berikutnya digunakan untuk testing dan simulasi nantinya juga akan diujicobakan dengan menggunakan 25 % data dan 75% data. Gambar 4.6 adalah kode program untuk membaca masukan data wine
Gambar 4.6 Kode matlab wine-JST Feedforward
Input dan target yang digunakan sama-sama menggunakan scenario seperti yang diujicobakan pada data iris, dimana digunakan 25%, 50% dan 75% data.
35 4.2.1.2 Perangkat lunak JST Feedforward Perangkat lunak memiliki 3 alur utama, yaitu: 1. Membentuk jaringan saraf tiruan feedforward 2. Melakukan training dan simulasi dengan beberapa parameter yang telah ditentukan
3. Mengubah hasil simulasi kedalam bentuk binary. Untuk membentuk jaringan saraf tiruan feedforward digunakan kode program seperti yang ditunjukkan pada gambar 4.7 berikut
Gambar 4.7 KOde matlab JST Feedforward
Gambar 4.7 diatas membentuk sebuah jaringan saraf tiruan feedforward dengan 2 buah layer dimana terdapat 3 buah neuron pada layer pertama dan 1 neuron pada layer ke dua (output). Fungsi aktivasi yang digunakan pada layer pertama adalah fungsi aktivasi tansig dan pada layer ke dua digunakan fungsi aktivasi purelin yang telah dijelaskan pada bab sebelumnya. Untuk melakukan training dan simulasi, kode MATLAB selengkapnya dapat dilihat pada gambar berikut :
Gambar 4.8 Training dan simulasi dengan JST Feedforward
36 Iterasi pembelajaran akan berhenti pada saat nilai epoch mencapai nilai 3000 dengan nilai parameter laju pembelajaran yang ditetapkan adalah 0.1 (baris 22-23). Simulasi dilakukan dengan testing terhadap setegah data input terakhir (baris 29).Untuk mengubah hasil simulasi kedalam bentuk binary ,kode MATLAB selengkapnya dapat dilihat pada gambar 4.9
Gambar 4.9 Kode untuk mengubah hasil klasifikasi menjadi biner
Nilai keluaran yang dihasilkan berupa matrik sejumlah N baris 3 kolom, yang semua elemennya adalah binary, dimana nilai 1 0 0 menunjukkan klasifikasi terhadap jenis iris setosa (pada data iris) dan wine tipe 1 (pada data wine).Nilai 0 1 0 menunjukkan klasifikasi terhadap jenis iris versicolor (pada data iris) dan wine tipe 2 (pada data wine). Nilia 0 0 1 menunjukkan klasifikasi terhadap jenis iris virginica (pada data iris) dan wine tipe 3 (pada data wine).
37 4.2.1.3 Data masukan JST probabilistic Data masukan yang digunakan pada jaringan saraf tiruan probablistic ini adalah data iris dan data wine yang telah diubah kedalam bentuk matrik didalam matlab dalam bentuk mat file.. Gambar 4.10 menunjukkan implementasi kode MATLAB untuk membaca data masukan iris
Gambar 4.10 Kode matlab iris-JST probabilistic
Skenario yang digunakan adalah sama dengan skenario pada jaringan saraf tiruan feedforward yaitu dengan menggunakan setengah data input awal untuk training dan setengah berikutnya digunakan untuk testing dan simulasi. Gambar 4.11 adalah kode program untuk membaca masukan data wine
38
Gambar 4.11 Kode matlab wine- JST probabilistic
Input dan target yang digunakan seperti sebelumnya yaitu sama-sama menggunakan setengah data input awal untuk training dan setengah berikutnya digunakan untuk simulasi. Selain itu juga dilakukan training ujicoba terhadap 25% dan 72% data iris dan wine.
4.2.1.4 Perangkat lunak JST probabilistic Perangkat lunak memiliki 6 tahapan utama, yaitu: 1. Mengubah matrik target kedalam bentuk vektor 2. Membentuk jaringan saraf tiruan probabilistic. 3. Melakukan simulasi 4. Melakukan simulasi setengah data akhir dari input 5. Mengubah matrik hasil simulasi kedalam bentuk indek 6. Mengubah kedalam bentuk binary
39 Untuk mengubah matrik target kedalam bentuk vektor digunakan kode program seperti pada gambar 4.12 berikut ini :
Gambar 4.12 Kode matlab mengubah matrik target ke vektor
Selanjutnya dibentuk jaringan saraf tiruan probabilistic. Gambar 4.13 menunjukkan implementasi kode MATLAB yang diperlukan
Gambar 4.13 Membentuk JST probabilistic
Simulasi awal dilakukan dengan menggunaan setengah data awal input yang diberikan seperti pada gambar 4.13 (baris 20). Simulasi kedua dilakukan dengan menggunkan setegah data terakhir dari input , seperti yang ditunjukkan pada gambar 4.14 berikut :
Gambar 4.14 Simulasi dengan JST probabilistic
Matrik output hasil simulasi selanjutnya diubah dalam bentuk indek dengan menggunakan fungsi vec2ind seperti yang
40 ada pada gambar 4.14 (baris 26). Gambar 4.15 merupakan tahapan selanjutnya yaitu mengubah output hasil simulasi kedalam bentuk binary
Gambar 4.15 Mengubah output simulasi dalam bentuk biner
Nilai keluaran yang dihasilkan berupa matrik sejumlah N baris 3 kolom, yang semua elemennya adalah binary, dimana nilai 1 0 0 menunjukkan klasifikasi terhadap jenis iris setosa (pada data iris) dan wine tipe 1 (pada data wine).Nilai 0 1 0 menunjukkan klasifikasi terhadap jenis iris versicolor (pada data iris) dan wine tipe 2 (pada data wine). Nilia 0 0 1 menunjukkan klasifikasi terhadap jenis iris virginica (pada data iris) dan wine tipe 3 (pada data wine).
41 4.2.1.5 Data masukan parzen classifier Sama seperti pada sub bab sebelumnya, data masukan yang digunakan pada jaringan saraf tiruan probablistic ini adalah data iris dan data wine yang telah diubah kedalam bentuk matrik didalam matlab dalam bentuk mat file.. Gambar 4.16 menunjukkan implementasi kode MATLAB untuk membaca data masukan iris.
Gambar 4.16 Kode matlab iris-parzen
Skenario yang digunakan adalah sama dengan skenario pada jaringan saraf tiruan feedforward dan probabilistic yaitu dengan mengujicoba training menggunakan 25%, 50%, dan 75% data dan sisa masing-masing berikutnya digunakan untuk testing dan simulasi. Gambar 4.17 adalah kode program untuk membaca masukan data wine.
Gambar 4.17 Kode matlab wine-parzen
42 Input dan target yang digunakan seperti sebelumnya yaitu sama-sama menggunakan setengah data input awal untuk training dan setengah berikutnya digunakan untuk testing
4.2.1.6 Perangkat lunak classifier Perangkat lunak memiliki 4 tahapan utama, yaitu : 1. Menggunakan setengah data input dan target awal untuk melakukan training. 2. Menggunakan setengah data input akhir untuk melakukan testing. 3. Menggunakan parzen classifier toolbox dengan parameter input-target training dan input testing dan berhenti pada iterasi tertentu yang telah ditentukan. 4. Mengubah hasil keluaran simulasi dalam bentuk binary. Untuk membentuk setengah input dan target awal digunakam kode program seperti pada gambar 4.18 berikut ini :
Gambar 4.18 fIlustrasi menggunakan setengah data untuk training
Setelah input dan target didapat, selanjutnya adalah melakukan training dan testing dengan menggunkan parzen classifier toolbox. Implementasi kode programnya seperti terdapat pada gambar 4.19 berikut ini :
43
Gambar 4.19 Training dan testing dengan toolbox parzen classifier
Setelah dilakukan testing, tahap selanjutnya adalah mengubah output yang dihasilkan dalam bentuk binary. Gambar 4.20 berikut merupakan tahapan untuk mengubah output yang dihasilkan dalam bentuk binary
Gambar 4.20 kode matlab mengubah output dalam bentuk binary
Sama halnya seperti yang ada pada jaringan saraf tiruan feedforward dan probabilistic, nilai keluaran yang dihasilkan
44 berupa matrik sejumlah N baris 3 kolom, yang semua elemennya adalah binary, dimana nilai 1 0 0 menunjukkan klasifikasi terhadap jenis iris setosa (pada data iris) dan wine tipe 1 (pada data wine).Nilai 0 1 0 menunjukkan klasifikasi terhadap jenis iris versicolor (pada data iris) dan wine tipe 2 (pada data wine). Nilia 0 0 1 menunjukkan klasifikasi terhadap jenis iris virginica (pada data iris) dan wine tipe 3 (pada data wine)
4.2.2
Implementasi perangkat lunak binary PSO
Implementasi dilakukan dengan menggunakan bahasa pemrograman MATLAB. Perangkat lunak memiliki 3 tahapan utama, yaitu : 1. Membangkitkan populasi yang diambil dari output masingmasing keputusan, dimana nilai keputusan adalah binary (0 jika classifier dapat mengklasifikasikan dengan benar dan 1 jika classifier salah dalam mengklasifikasikan). 2. Melakukan pembaharuan posisi partikel dengan melakukan pembandingan keputusan masing-masing classifier terhadap fungsi sigmoid sehingga dihasilkan keputusan binary, dimana fungsi sigmoid ini dipengaruhi oleh nilai velocity masingmasing partikel (dalam hal ini direpresentasikan oleh keputusan binary masing-masing classifier )seperti yang telah dijelaskan pada bab sebelumnya. 3. Melakukan pembaharuan nilai pbest dan gbest. 4. Melakukan pembaharuan velocity, dimana nilainya bergantung pada nilai pbest dan gbest. Untuk membangkitkan populasi yang diambil dari output masing-masing keputusan classifier, digunakan kode program seperti yang terdapat pada gambar 4.21 berikut :
45
Gambar 4.21 Kode membangkitkan populasi dari output classifier
Pada gambar 4.21 diatas diilustrasikan bahwa output classifier yang digunakan adalah keputusan classifier, bukan class dari classifier. Keputusan masing-masing classifier dibentuk dalam suatu matrik, dimana terdapat 3 buah matrik yaitu matrik Decisionffiris yang merepresentasikan keputusan jaringan saraf tiruan feedforward , matrik DecisionPNNiris merepresentasikan keputusan jaringan saraf tiruan probabilistic, dan matrik DecisionParzen yang merepresentasikan keputusan dari Parzen Classifier . Tahapan selanjutnya adalah melakukan pembaharuan posisi partikel yaitu keputusan masing-masing classifier yang diakukan dengan menggunakan kode program seperti pada gambar 4.22 berikut :
46
Gambar 4.22 Pembaharuan posisi partikel
Dari gambar 4.22 diatas dapat diketahui bahwa posisi partikel adalah binary. Pembaharuan posisi partikel dilakukan dengan cara melakukan pembandingan keputusan masing-masing classifier terhadap fungsi sigmoid yang nilainya dipengaruhi oleh velocity dari partkel dalam hal ini adalah keputusan dari masingmasing classifier itu sendiri. Tahapan selanjutnya adalah melakukan pembaharuan terhadap nilai pbest dan gbest, yang direpresentasikan dalam kode program seperti pada gambar 4.23 dan 4.24 berikut :
47
Gambar 4.23 Kode pembaharuan nilai pbest
Gambar 4.23 diatas menunjukkan bahwa tahap pembaharuan keputusan pada masing-masing classifier nilainya dievaluasi berdasarkan fungsi kecocokan val.
Gambar 4.24 Kode pembaharuan nilai gbest
Pada gambar 4.24 diatas menunjukkan tahapan dalam mencari nilai gbest. Nilai gbest ini nantinya akan digunakan untuk memperbaharui nilai velocity seperti yang ada pada gambar 4.25 berikut :
48
Gambar 4.25 Kode Pembaharuan nilai velocity
Seperti yang terlihat pada gambar 4.25 dapat diketahui bahwa pembaharuan nilai velocity dipengaruhi oleh nilai pbest dan gbest.
Halaman ini sengaja dikosongkan