Hubungan antara Algoritma Genetika dengan

Kromosom[2] = [D B E C] Kromosom[3] = [C B D E] Kromosom[4] = [E B C D] Kromosom[5] = [E C B D] Kromosom[6] = [C D E B] Evaluasi kromosom Kita akan menghitung nilai fitness dari tiap kromosom yang telah dibangkitkan: Fitness[1] = AB + BD + DE + EC + CA = 7 + 2 + 6 + 3 + 5 = 23 Fitness[2] = AD + DB + BE + EC + CA = 9 + 2 + 8 + 3 + 5 = 27 Fitness[3] = AC + CB + BD + DE + EA = 5 + 7 + 2 + 6 + 9 = 29 Fitness[4] = AE + EB + BC + CD + DA = 9 + 8 + 7 + 4 + 9 = 37 Fitness[5] = AE + EC + CB + BD + DA = 9 + 3 + 7 + 2 + 9 = 30 Fitness[6] = AC + CD + DE + EB + BA = 5 + 4 + 6 + 8 + 7 = 30 Seleksi Kromosom Oleh karena pada persoalan TSP yang diinginkan yaitu kromosom dengan fitness yang lebih kecil akan mempunyai probabilitas untuk terpilih kembali lebih besar maka digunakan inverse. Q[i] = 1Fitness[i] Q[1] = 123 = 0,043 Q[2] = 127 = 0,037 Q[3] = 129 = 0,034 Q[4] = 137 = 0,027 Q[5] = 130 = 0,033 Q[6] = 130 = 0,033 Total = 0,043 + 0,037 + 0,034 + 0,027 + 0,033 + 0,033 = 0,207 Probabilitas Untuk mencari probabilitas kita menggunakan rumus berikut: P[i] = Q[i] Total P[1] = 0,043 0,207 = 0,208 P[2] = 0,037 0,207 = 0,179 P[3] = 0,034 0,207 = 0,164 P[4] = 0,027 0,207 = 0,130 P[5] = 0,033 0,207 = 0,159 P[6] = 0,033 0,207 = 0,159 Dari probabilitas di atas dapat terlihat bahwa kromosom ke-1 mempunyai fitness paling kecil sehingga mempunyai probabilitas untuk terpilih pada generasi selanjutnya lebih besar dari kromosom lainnya. Untuk proses seleksi kita menggunakan roulette wheel, untuk itu kita terlebih dahulu menghitung probabilitas dari masing-masing kromosom. Probabilitas Kumulatif C[1] = 0,208 C[2] = 0,208 + 0,179 = 0,387 C[3] = 0,387 + 0,164 = 0,551 C[4] = 0,551 + 0,130 = 0,681 C[5] = 0,681 + 0,159 = 0,840 C[6] = 0,840 + 0,159 = 1 Metode Roulette Wheel Gambar 2.23 Gambar Roulette Wheel Metode roulette-wheel adalah membangkitkan nilai acak R antara 0-1. Jika R[k]Qk[k] maka kromosom ke-k sebagai induk, selain itu pilih kromosom ke-k sebagai induk dengan syarat Qk[k-1] R[k] Qk[k]. Kita putar roulette-wheel sebanyak jumlah kromosom yaitu 6 kali membangkitkan bilangan acak R. Bila bilangan random R i] yang dihasilkan sbb : R[1] = 0,314 R[2] = 0,111, R[3] = 0,392, R[4] = 0,743 R[5] = 0,521, R[6] = 0,561 Induk yang dipilih dengan Q[k-1] R[k] Q[k] menghasilkan : C[2], C[1], C[3], C[5], C[3], C[4]. Setelah itu populasi baru akan terbentuk, yaitu: Kromosom[1] = [2] = [ D B E C ] Kromosom[2] = [1] = [ B D E C ] Kromosom[3] = [3] = [ C B D E ] Kromosom[4] = [5] = [ E C B D ] Kromosom[5] = [3] = [ C B D E ] Kromosom[6] = [4] = [ E B C D ] Selanjutnya akan dihitung nilai parameter crossover probability yang diperoleh dari perhitungan kendali logika fuzzy dengan menginputkan populasi = 6 dan generasi = 100. 1 Pada semesta pembicaraan dan domain untuk populasi, aturan yang digunakan adalah sebagai berikut: • Semesta pembicaraan: [0 1000] • Domain SMALL: [50 250] • Domain MEDIUM: [80 275] • Domain LARGE: [350 500] Gambar 2.24 Semesta pembicaraan dan domain untuk variabel populasi . 2 Sedangkan pada semesta pembicaraan dan domain untuk variabel generasi, aturan nilai yang digunakan adalah sebagai berikut: • Semesta pembicaraan: [0 1000] • Domain SHORT: [50 200] • Domain MEDIUM: [80 275] • Domain LONG: [350 500] Gambar 2.25 Semesta pembicaraan dan domain untuk variabel generasi. 3 Pada semesta pembicaraan dan domain untuk hasil output yaitu nilai probabilitas rekombinasi crossover, aturan nilai yang adalah sebagai berikut: • Semesta pembicaraan: [0.6 0.9] • Domain SMALL: [0.625 0.7] • Domain MEDIUM: [0.63 0.7 0.72 0.78] • Domain LARGE: [0.72 0.78 0.8 0.87] • Domain VERY LARGE: [0.8 0.875] Gambar 2.26 Semesta pembicaraan dan domain untuk variabel probabilitas crosover Muzid, 2008. 4 Pada semesta pembicaraan dan domain untuk nilai probabilitas mutasi, aturan nilai yang digunakan oleh peneliti adalah sebagai berikut: • Semesta pembicaraan: [0 0.25] • Domain VERY SMALL: [0.025 0.1] • Domain SMALL: [0.47 0.83 0.1 0.14] • Domain MEDIUM: [0.1 0.14 0.167 0.2] • Domain LARGE: [0.15 0.225] Gambar 2.27 Semesta pembicaraan dan domain untuk variabel probabilitas mutasi Muzid, 2008. Aturan Fuzzy: Muzid, 2008  IF Populasi is SMALL AND Generasi is SHORT THEN ProbCrossover is MEDIUM AND ProbMutasi is LARGE.  IF Populasi is MEDIUM AND Generasi is SHORT THEN ProbCrossover is SMALL AND ProbMutasi is MEDIUM.  IF Populasi is LARGE AND Generasi is SHORT THEN ProbCrossover is SMALL AND ProbMutasi is SMALL.  IF Populasi is SMALL AND Generasi is MEDIUM THEN ProbCrossover is LARGE AND ProbMutasi is MEDIUM.  IF Populasi is MEDIUM AND Generasi is MEDIUM THEN ProbCrossover is LARGE AND ProbMutasi is SMALL.  IF Populasi is LARGE AND Generasi is MEDIUM THEN ProbCrossover is MEDIUM AND ProbMutasi is VERYSMALL.  IF Populasi is SMALL AND Generasi is LONG THEN ProbCrossover is VERYLARGE AND ProbMutasi is SMALL.  IF Populasi is MEDIUM AND Generasi is LONG THEN ProbCrossover is VERYLARGE AND ProbMutasi is VERYSMALL.  IF Populasi is LARGE AND Generasi is LONG THEN ProbCrossover is LARGE AND ProbMutasi is VERYSMALL. Penyelesaian: Ada 4 variabel fuzzy yang akan dimodelkan, yaitu: 1 Populasi dengan nilai keanggotaan sebagai berikut: [6] = 1 [6] = 0 [6] = 0 2 Generasi dengan nilai keanggotaan sebagai berikut: 3 Probabilitas Crossover dengan nilai keanggotaan sebagai berikut: 4 Probabilitas Mutasi dengan nilai keanggotaan sebagai berikut: Sekarang kita cari nilai z untuk setiap aturan dengan menggunakan fungsi MIN pada aplikasi fungsi implikasinya: [R1] IF Populasi is SMALL AND Generasi is SHORT THEN ProbCrossover is MEDIUM AND ProbMutasi is LARGE; Lihat himpunan ProbCrossover MEDIUM, Lihat himpunan ProbMutasi LARGE, [R2] IF Populasi is MEDIUM AND Generasi is SHORT THEN ProbCrossover is SMALL AND ProbMutasi is MEDIUM. [R3] IF Populasi is LARGE AND Generasi is SHORT THEN ProbCrossover is SMALL AND ProbMutasi is SMALL. [R4] IF Populasi is SMALL AND Generasi is MEDIUM THEN ProbCrossover is LARGE AND ProbMutasi is MEDIUM. Lihat himpunan ProbCrossover LARGE, Lihat himpunan ProbMutasi MEDIUM, [R5] IF Populasi is MEDIUM AND Generasi is MEDIUM THEN ProbCrossover is LARGE AND ProbMutasi is SMALL. [R6] IF Populasi is LARGE AND Generasi is MEDIUM THEN ProbCrossover is MEDIUM AND ProbMutasi is VERYSMALL. [R7] IF Populasi is SMALL AND Generasi is LONG THEN ProbCrossover is VERYLARGE AND ProbMutasi is SMALL. [R8] IF Populasi is MEDIUM AND Generasi is LONG THEN ProbCrossover is VERYLARGE AND ProbMutasi is VERYSMALL. [R9] IF Populasi is LARGE AND Generasi is LONG THEN ProbCrossover is LARGE AND ProbMutasi is VERYSMALL. Dari sini kita dapat mencari berapakah nilai x probabilitas crossover dan y probabilitas mutasi, yaitu: Sedangkan, Jadi nilai probabilitas crossover = 0,69 dan nilai probabilitas mutasi 0,19. PINDAH SILANG CROSSOVER Nilai ρc = 0,69 berarti jika bilangan random dihasilkan 0.69 maka akan dipilih menjadi induk baru. Hasil 6 bilangan random yang dihasilkan adalah : R[1] = 0,851 , R[2] = 0,211 , R[3] = 0,202 , R[4] = 0,877 , R[5] = 0,771 ,R[6] = 0,131. Kromosom ke- k yang dipilih sebagai induk jika R[k] ρc. Maka yang akan dijadikan induk adalah kromosom[2], kromosom[3], dan kromosom[6]. Proses Crossover : Kromosom[2] = Kromosom[2] Kromosom[3] = [B D E C] [C B D E] = [B D C E] Kromosom[3] = Kromosom[3] Kromosom[6] = [C B D E] [E B C D] = [C B E D] Kromosom[6] = Kromosom[6] Kromosom[2] = [E B C D] [B D E C] = [E D B C] Hasil Crossover: Kromosom [1] = [D B E C] Kromosom [2] = [B D C E] Kromosom [3] = [C B E D] Kromosom [4] = [E C B D] Kromosom [5] = [C B D E] Kromosom [6] = [E D B C] MUTASI Panjang total gen = jumlah gen dalam 1 kromosom jumlah Kromosom 3 = 4 6 = 24 P robabilitas mutasi ρm = 0,19 maka jumlah gen yang akan dimutasi adalah = 0,1924 = 4,56 = 5. Posisi tersebut didapat dari pembangkitan 5 bilangan acak. Misakan 5 buah posisi gen yang akan dimutasi adalah 3, 7, 10, 20, 24. Kromosom [1] = [D B E C] = [D B C E] Kromosom [2] = [B D C E] = [B D E C] Kromosom [3] = [C B E D] = [C E B D] Kromosom [4] = [E C B D] = [E C B D] Kromosom [5] = [C B D E] = [E B D C] Kromosom [6] = [E D B C] = [C D B E] Proses algoritma genetika dengan teknik kendali logika fuzzy untuk 1 generasi telah selesai. Maka nilai fitness setelah 1 generasi adalah: Fitness [1] = AD + DB + BC + CE + EA = 9 + 2 + 7 + 3 + 9 = 30 Fitness [2] = AB + BD + DE + EC + CA = 7 + 2 + 6 + 3 + 5 = 23 Fitness [3] = AC + CE + EB + BD + DA = 5 + 3 + 8 + 2 + 9 = 27 Fitness [4] = AE + EC + CB + BD + DA = 9 + 3 + 7 + 2 + 9 = 30 Fitness [5] = AE + EB + BD + DC + CA = 9 + 8 + 2 + 4 + 5 = 28 Fitness [6] = AC + CB + BD + DE + EA = 5 + 7 + 2 + 6 + 9 = 29 Sebelumnya telah ditentukan kriteria berhenti yaitu bila setelah dalam beberapa generasi berturut-turut diperoleh nilai fitness yang terendah tidak berubah. Pada 1 generasi telah terlihat bahwa terdapat nilai fitness terkecil yang tidak berubah. Apabila perhitungan dilanjutkan hingga ke generasi ke-N maka diyakinkan bahwa nilai fitness yang terendah tetap tidak akan berubah. Walaupun perhitungan cukup dijabarkan hingga generasi ke-1 saja namun solusi yang mendekati optimal telah didapatkan. Oleh karena itu, terbukti bahwa algoritma genetika dapat menyelesaikan persoalan.

2.6 Sekilas tentang MATLAB

MATLAB merupakan bahasa pemrogaman yang hadir dengan fungsi dan karakteristik yag berbeda dengan bahasa pemrograman lain yang sudah ada lebih dahulu seperti Delphi, Basic, maupun C++. MATLAB merupakan bahasa pemrograman level tinggi yang dikhususkan untuk kebutuhan komputasi matematik, analisis data, pengembangan algoritma, simulasi dan pemodelan, serta grafik-grafik perhitungan. MATLAB hadir dengan membawa warna yang berbeda. Hal ini karena MATLAB membawa keistimewaan dalam fungsi-fungsi matematika, fisika, statistik, dan visualisasi. MATLAB dikembangkan oleh MathWorks, yang pada awalnya dibuat untuk memberikan kemudahan mengakses data matrik pada proyek LINPACK dan EISPACK. Saat ini MATLAB memiliki ratusan fungsi yang dapat digunakan sebagai program solver mulai dari masalah yang simple sampai masalah-masalah yang kompleks dari berbagai disiplin ilmu Firmansyah, 2007.

2.6.1 Beberapa Bagian dari Window MATLAB

Adapun beberapa bagian dari window yang terdapat dalam program MATLAB meliputi: 1. Current Directory Bagian dari window ini menampilkan isi dari direktori kerja saat menggunakan MATLAB 2. Command History Bagian ini berfungsi untuk menyimpan perintah-perintah apa saja yang sebelumnya dilakukan oleh pengguna terhadap MATLAB. 3. Command Window Bagian ini merupakan tempat untuk menjalankan fungsi, variabel, mendeklerasikan variabel, menjalankan proses-proses, serta melihat isi variabel. 4. Workspace Bagian ini berfungsi untuk menampilkan seluruh variabel-variabel yang sedang aktif pada saat pemakaian MATLAB Firmansyah, 2007.

2.6.2 Meminta Bantuan

MATLAB menyediakan fungsi help yang berisikan tutorial lengkap mengenai MATLAB dan segala keunggulannya. User dapat menjalankan fungsi ini dengan menekan tombol pada toolbar atau menulis perintah ‘helpwin’ pada command window. MATLAB juga menyediakan fungsi demos yang berisikan video tutorial MATLAB serta contoh-contoh program yang bisa dibuat dengan MATLAB Firmansyah, 2007.

2.6.3 Interupting dan Terminating dalam MATLAB

Untuk meghentikan proses yang sedang berjalan pada MATLAB dapat dilakukan dengan menekan tombol Ctrl+C. Sedangkan untuk keluar dari MATLAB dapat dilakukan dengan menuliskan perintah exit atau quit pada command window atau dengan menekan menu exit pada bagian menu file dari menu bar Firmansyah, 2007.

2.6.4 Variabel pada MATLAB

MATLAB hanya memiliki dua jenis tipe data yaitu numeric dan string. Dalam MATLAB setiap variabel akan disimpan dalam bentuk matrik. User dapat langsung menuliskan variabel baru tanpa harus mendeklarasikannya terlebih dahulu pada command window Firmansyah, 2007

2.7 Pembuatan Aplikasi Berbasis

Graphic User Interface GUI

2.7.1 Pendahuluan

Hampir sebagian besar aplikasi yang beredar di pasaran saat ini berbasis Graphic User Interface GUI karena lebih diterima oleh user dibanding program yang berbasis console. Istilah populer dari GUI adalah pemrograman visual dengan bentuk form atau frame. Kebanyakan bahasa pemrograman yang digunakan oleh developer dalam membuat aplikasi sudah mendukung GUI. Tetapi kebanyakan kurang mendukung sistem yang menerapkan Soft Computing. Matlab sebagai bahasa pemrograman yang mendukung Soft Computing, kini sudah dilengkapi dengan GUI untuk pembuatan aplikasinya. Bahkan sudah dilengkapi dengan Deployment Project agar dihasilkan executable program yang dapat berjalan di sembarang komputer tanpa MATLAB. GUI pada MATLAB berfungsi sebagai penghubung antara script Matlab yang tersimpan berupa M-File dan toolbox-toolbox MATLAB seperti FIS, ANFIS, JST, Algoritma Genetika dan lain-lain. Setelah kita mempelajari toolbox- toolbox MATLAB pada bab-bab terdahulu, kita mulai masuk ke pengintegrasiannya ke dalam aplikasi sesungguhnya dengan bantuan GUI. Widodo, 2012:159

2.7.2 GUI

GUI pada MATLAB dapat kita buka dengan menge klik “File-New-Gui”. Atau dengan mengetik “guide” pada Command Window. Pilih “Blank GUI” pada jendela GUIDE Quick Start. Cara menggunakannya adalah dengan menge-drag icon pada komponen ke tengah kemudian dobel klik untuk mengeset parameternya. Parameter yang diseting berupa nama variabel tag dan nama String. Widodo, 2012:160

2.7.3 M-File Editor

Visualisasi pada MATLAB yang berupa GUI tidak akan dapat berjalan sebagaimana mestinya tanpa adanya bantuan M-File. GUI hanyalah alat bantu dalam pembuatan desain interaksi antara pengguna dengan aplikasi. Sesungguhnya yang berperan dalam komputasi tetap saja script M-File. M- File secara otomatis terbentuk saat kita mengklik icon “Run” pada jendela GUI. Sesaat setelah kita mengklik tombol “Run” kita diminta untuk menyimpan dan memberi nama project yang baru saja kita buat GUI-nya. Pada M-File editor tampak script yang dibuatkan oleh Matlab secara otomatis. Berikutnya kita tinggal menyisipkan script-script yang dibutuhkan pada M-File tersebut. Saat kita menyisipkan suatu komponen pada GUI, secara otomatis pada M-File disipkan pula function yang berupa Callback. Widodo, 2012:162.