Implementasi Implementasi Algoritma Genetik untuk Menyelesaikan Masalah Traveling Salesmen Problem (Studi Kasus: Satuan Kerja Perangkat Daerah Kota Medan)

BAB 4 IMPLEMENTASI DAN PENGUJIAN Pada bab ini akan dijelaskan implementasi dan pengujian sistem sesuai dengan analisis dan perancangan yang telah dibahas pada bab sebelumnya. Penjelasan tentang implementasi sistem dilakukan untuk mengetahui hasil dari aplikasi yang dirancang, dan pengujian sistem dilakukan untuk membuktikan nilai probabilitas crossover dan probabilitas mutasi terbaik sehingga program dapat mencari solusi mendekati solusi yang diharapkan.

6.4 Implementasi

Implementasi perancangan aplikasi Traveling Salesman Problem dengan Algoritma Genetik dibuat dengan menggunakan bahasa pemrograman C dengan menggunakan editor Microsoft Visual Studio 2012. Aplikasi ini berjalan di komputer dengan sistem operasi Windows 7. Implementasi yang dilakukan yaitu melakukan pengujian sistem algoritma genetik dengan mengubah-ubah probabilitas crossover Pc dan probabilitas mutasi Pm untuk mendapatkan jalur terbaik.

9.1.1 Implementasi Algoritma Genetik Pada Sistem

Implementasi penerapan algoritma Genetik dalam sistem yang dibuat, terletak pada proses representasi class pada kromosom, nilai fitness dan proses lain seperti seleksi yang di implementasikan dalam bentuk simulasi. Satuan Kerja Perangkat Daerah SKPD Kota Medan akan dijadikan edges yang akan membentuk sebuah tour dan kromosom akan dijadikan verteks. Pada representasi kromosom sebuah tour, verteks Universitas Sumatera Utara 63 yang terakhir pada tour tidak dituliskan kembali, sebab tour pada TSP selalu berawal dan berakhir pada verteks yang sama. Berikut ini akan diberikan contoh hasil perhitungan manual pencarian rute terpendek dengan menggunakan algoritma Genetik. Dalam implementasi pencarian rute ini akan dicari rute terpendek antar SKPD Kota Medan. Sistem memerlukan data SKPD berupa titik X, Y yang dimuat daalam format file .csv. Sebagaimana terlihat pada Tabel 4.1. Misalkan titik pertama mempunyai kordinat 1,2. Titik kedua ada di kordinat 5,5. Caranya adalah kurangkan setiap kordinat titik kedua dengan titik yang pertama. yaitu, 5-1,5-2 sehingga menjadi 4,3. Kemudian pangkatkan masing-masing sehingga memperoleh 16,9. Kemudian tambahkan semuanya sehingga memperoleh nilai 16+9 = 25. Hasil ini kemudian diakarkan menjadi 5. Sehingga jarak euclideannya adalah 5. Tabel 4.1 Koordinat SKPD No X Y SKPD ALAMAT KET 1 13 DINAS PENDIDIKAN Jl. Pelita IV No. 77 Tim 1 2 26 DINAS PERHUBUNGAN Jl.Pinang Baris No.114 A 3 27 DINAS INFOKOM PDE Jl. Sidorukun No. 35 Medan 4 39 BADAN KESBANG LINMAS Jl.Balai Kota No.10 Medan 5 2 BADAN KETAHANAN PANGAN Jln. Budi Pembangunan No. 3 6 5 13 BADAN PENANGGULANGAN BENCANA DAERAH Jl. Rahmad No. 1 Kompleks PIK 7 5 19 KECAMATAN MEDAN Jl. HM. Said No.1 Universitas Sumatera Utara 64 TIMUR Medan 8 5 25 KECAMATAN MEDAN BELAWAN Jl. Cimanuk No. 3 Belawan 9 5 31 KECAMATAN MEDAN MARELAN Jl.Kapt.Rahmad Budin No.190 Medan 10 5 37 KECAMATAN MEDAN DELI Jl. Rumah Potong Hewan No. 24 Medan 11 5 43 KECAMATAN MEDAN LABUHAN Jl. Medan Belawan Km. 16 Medan 12 5 8 DINAS KESEHATAN Jl. Rotan Tim 2 13 8 DINAS SOSIAL DAN TENAGA KERJA Jl. K.H. Wahid Hasyim No. 14 Medan 14 9 10 DINAS KEPENDUDUKAN DAN CAPIL Jl. Iskandar Muda No.270 Medan 15 10 10 DINAS PENCEGAH PEMADAM KEBAKARAN Jl. Candi Borobudur No. 2 Medan 16 11 10 DINAS PEMUDA DAN OLAH RAGA Jl. Ibis Raya No 129-B Medan 17 12 10 BADAN PEMBERDAYAAN PEREMPUAN DAN KB JL. Ibus Raya no. 131 18 12 5 KANTOR PERPUSTAKAAN Jl. Iskandar Muda No.270 Medan 19 15 13 KECAMATAN MEDAN PETISAH Jl. Iskandar Muda No. 270 A Medan 20 15 19 KECAMATAN MEDAN POLONIA Jl.DC.Barito No.3 Medan 21 15 25 KECAMATAN MEDAN BARU Jl. Rebab No. 34 Medan 22 15 31 KECAMATAN MEDAN MAIMUN Jl. Melati No. 1 Medan 23 13 DINAS KEBERSIHAN Jl. Pinang Baris No. 114 Medan Tim 3 24 26 DINAS BINA MARGA Jalan Pinang Baris No. 114 25 27 DINAS PERTAMANAN Jl.Pinang Baris No.114 B 26 39 KANTOR ARSIP Jl. Pinang Baris No. 114-E Medan 27 2 SEKRETARIAT DPRD Jl. Kapten Maulana Lubis No. 1 Medan 28 5 13 INSPEKTORAT Jl.Kapt.Maulana Lubis No. 2 Medan 29 5 19 BADAN LINGKUNGAN HIDUP Jl.Kapt.Maulana Lubis No. 2 Medan Universitas Sumatera Utara 65 30 5 25 BADAN KEPEGAWAIAN DAERAH Jl. Kapt.Maulana Lubis No.2 Medan 31 5 31 KANTOR SANDI Jl. Kapt.Maulana Lubis No.2 Medan 32 5 37 SEKRETARIAT PEMKO MEDAN Jl.Kapt.Maulana Lubis No.2 Medan 33 5 43 KECAMATAN MEDAN JOHOR Jl. Karya Cipta No. 16 Medan 34 5 8 KECAMATAN MEDAN BARAT Jl.Budi Pembangunan No.1 Medan 35 8 KECAMATAN MEDAN HELVETIA Jl. Beringin X No. 2 Medan 36 9 10 DINAS PERUMAHAN DAN PEMUKIMAN Jl. A.H Nasution No.17 Medan Tim 4 37 10 10 DINAS TATA RUANG DAN TATA BANGUNAN Jl. Jend. Besar Dr.Abd.Haris Nasution No. 17 Medan 38 11 10 DINAS PENDAPATAN Jalan Jenderal Abdul Haris Nasution No. 32 Medan 39 12 10 DINAS PERINDUSTRIAN DAN PERDAGANGAN Jl. A.H Nasution No.17 Medan 40 12 5 DINAS PERTANIAN DAN KELAUTAN Jl. Kramat Indah No.4 Selambo 41 15 13 BPPT Jl. Jon.Abdul Haris Nasution No.32 Medan 42 15 19 BADAN PENANAMAN MODAL Jl. A. H. Nasution No. 112 Medan 43 15 25 KECAMATAN MEDAN KOTA Jl. Stadion No. 3 Medan 44 15 31 KECAMATAN MEDAN AREA Jl. Rahmadsyah No. 2 Medan 45 13 KECAMATAN MEDAN AMPLAS Jl. Garu III No. 3 Medan 46 26 KECAMATAN MEDAN DENAI Jl. Pancasila No. 96 Medan 47 27 KECAMATAN MEDAN PERJUANGAN Jl. Pendidikan No.89 Medan 48 39 SATPOL PP Jl. Adinegoro 49 2 RSU.Dr. PRINGADI Jl. Prof. H. M. Yamin SH No. 47, Medan 50 5 13 DINAS KEBUDAYAAN DAN PARIWISATA Jl. Prof.H.M.Yamin, SH No. 40 Medan 51 5 19 BADAN PEMBERDAYAAN MASYARAKAT Jl. Kapt.Maulana Lubis No.2 Medan 52 5 25 BAPPEDA Jl. Kapt.Maulana Lubis No.2 Medan Universitas Sumatera Utara 66 53 5 31 KANTOR PENDIDIKAN DAN PELATIHAN Jl. Kapt.Maulana Lubis No.2 Medan Tim 5 54 5 37 DINAS KOPERASI UKM Jl. Jend. Gatot Subroto Km 7,7 Medan 55 5 43 BALITBANG Jl. Kapt.Maulana Lubis No. 2 Medan 56 5 8 KECAMATAN MEDAN SUNGGAL Jl. TB Simatupang No.193 Medan 57 8 KECAMATAN MEDAN SELAYANG Jl. Bunga Cempaka No. 54 A Medan 58 9 10 KECAMATAN MEDAN TUNTUNGAN Jl. Bunga Melati No.1 Medan 59 10 10 KECAMATAN MEDAN TEMBUNG Jl. Kapt. M. jamil Lubis No. 107 Medan . 9.1.1.1 Proses Pencarian Rute Terpendek Gambar 4.1 Graf SKPD Langkah 1: Inisialisasi Misalkan menggunakan 6 buah populasi dalam satu generasi, yaitu: Kromosom[1] = [B C D E F G H I J K L ] Kromosom[2] = [C D E F G H I J K L B ] Kromosom[3] = [D E F G H I J K L B C ] Kromosom[4] = [E F G H I J K L B C D ] Kromosom[5] = [F G H I J K L B C D E ] Kromosom[6] = [G H I J K L B C D E F ] Langkah 2: Evaluasi Kromosom a Pilih titik-titik acak yang berbeda untuk Parent 1 dan 2 Parent 7 5 2 3 9 A B C D E 2 3 2 3 F G H I J K L 2 2 2 2 6 3 2 2 4 2 3 6 1 3 8 2 Universitas Sumatera Utara 67 b Offspring 1 dibuat berdasarkan pada bagian kiri Induk 1 , dan sub permutasi dari sisa SKPD c Offspring 2 dibuat berdasarkan bagian kanan Induk 2 dan sub permutasi dari sisa SKPD. Menghitung nilai fitness tiap kromosom Fitness[1] = AB + BC + CD + DE + EF + FG + GH + HI + IJ + JK + KL + LA = 2 + 1 + 2 + 2 + 2 + 2 + 3 + 2 + 2 + 3 + 1 + 1 = 23 Fitness[2] = AC + CD + DE + EF + FG + GH + HI + IJ + JK + KL + LB + BA = 3 + 2 + 2 + 2 + 2 + 3 + 2 + 2 + 3 + 1 + 3 + 2 = 27 Fitness[3] = AD + DE + EF + FG + GH + HI + IJ + JK + KL + LB + BC + CA = 5 + 2 + 2 + 2 + 3 + 2 + 2 + 3 + 1 + 3 + 1 + 3 = 29 Fitness[4] = AE + EF + FG + GH + HI + IJ + JK + KL + LB + BC + CD + DA = 11 + 2 + 2 + 3 + 2 + 2 + 3 + 1 + 3 + 1+ 2 + 5 = 37 Fitness[5] = AF + FG + GH + HI + IJ + JK + KL + LB + BC + CD + DE + EA = 1 + 2 + 3 + 2 + 2 + 3 + 1 + 3 + 1 + 2 + 2 + 11 = 30 Fitness[6] = AG + GH + HI + IJ + JK + KL + LB + BC + CD + DE + EF + FA = 8 + 3 + 2 + 2 + 3 + 1 + 3 + 1 + 2 + 2 + 2 + 1 = 30 Langkah 3: Seleksi Kromosom Persoalan TSP diinginkan kromosom dengan fitness paling kecil, maka digunakan invers. 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 P[i] = Q[i]Total P[i] = 0,0430,207= 0,208 P[i] = 0,0370,207= 0,179 Universitas Sumatera Utara 68 P[i] = 0,0340,207= 0,164 P[i] = 0,0270,207= 0,130 P[i] = 0,0330,207= 0,159 P[i] = 0,0330,207= 0,159 Proses Seleksi dengan roulette-wheel Nilai kumulatif dari probabilitas C[1] = 0,028 C[1] = 0,028+0,179=0,387 C[1] = 0,387+0,164=0,551 C[1] = 0,551+0,130=0,681 C[1] = 0,681+0,159=0,840 C[1] = 0,840+0,159=1 Sehingga populasi baru akan terbentuk 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]=[4]=[E B C D] Kromosom[6]=[6]=[C D E B] Langkah 4: Crossover Pindah Silang a Misal dengan order crossover yaitu satu bagian kromosom dipertukarkan dengan tetap menjaga urutan kota yang bukan bagian dari kromosom tersebut. b Kromosom yang dijadikan induk di pilih secara acak dan jumlah kromosom di pengaruhi oleh Crossover Probability pc. c Misal pc=25 dBangkitkan bilangan acak sebanyak jumlah populasi yaitu 6 kali. R[1] = 0,451 R[1] = 0,211 R[1] = 0,302 R[1] = 0,877 Universitas Sumatera Utara 69 R[1] = 0,771 R[1] = 0,131 Kromosom yang dipilih jika 50 yang mempunyai R[k] terendah, sehingga yang akan dijadikan induk adalah kromosom 2, 3 dan 6 Proses selanjutnya menentukan 2 posisi crossover, dengan membangkitkan bilangan acak 1 sampai dengan panjang kromosom-1, yaitu 1 sampai dengan 3. Misal Bilangan acak untuk 3 kromosom induk yang akan di crossover di tentukan pada posisi 1 dan 3. Kromosom[2] Kromosom[3] [BDEC][CBDE] O1:[XDEX], O2:[XBDX] seqP2:ECBD , seqP1:CBDE K[1]=O1=[BDEC], K[2]=O1:[EBDC] [BDEC][CDEB] O1:[ XDEX],O2: [XDEX] seqP2 :[BCDE], seqP1:[CBDE] O1:[ CDEB],O2: [BDEC] [CDEB][CBDE] O1:[ XDEX],O2:[XBDX] seqP2 :[ECBD], seqP1:[BCDE] O1:[ BDEC],O2:[EBDC] Langkah 5: Mutasi a Misal mutasi yang digunakan yaitu swapping mutation yaitu dengan menukar gen yang dipilih secara acak dengan gen sesudahnya. b Hitung total gen pada satu populasi Panjang total gen = jumlah gen dalam 1 kromosom Jumlah kromosom = 4 6 = 24 c Memilih posisi gen yang mengalami mutasi dengan membangkitkan bilangan acak antara 1 sampai panjang total gen yaitu 1-24. Universitas Sumatera Utara 70 d Misal ditentukan pm=20, maka jumlah gen yang akan dimutasi adalah = 0,2 x 24=4,8=5 e Setelah diacak misal pada posisi 3,7,10,20,24

9.2 Tampilan Antarmuka