ALGORITMA GENETIKA DENGAN METODE ROULLETE WHELL SELECTION DALAM OPTIMASI PENDISTRIBUSIAN BARANG DI PT FASTRA BUANA YOGYAKARTA SKRIPSI Diajukan kepada Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Negeri Yogyakarta untuk Memenuhi Sebagian Persyaratan guna Memperoleh Gelar Sarjana Sains Oleh Rudi Minaryo 09305141045 PROGRAM STUDI MATEMATIKA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS NEGERI YOGYAKARTA 2014 i SURAT PERNYATAAN Dengan ini saya menyatakan bahwa skripsi ini benar-benar karya saya sendiri. Sepanjang pengetahuan saya tidak terdapat karya atau pendapat yang ditulis atau diterbitkan orang lain kecuali sebagai acuan atau kutipan dengan mengikuti tata penulisan karya ilmiah yang telah lazim. Apabila terbukti pernyataan saya ini tidak benar, maka sepenuhnya menjadi tanggung jawab saya. Yogyakarta, 20 Februari 2014 Yang menyatakan, Rudi Minaryo NIM. 09305141045 iv MOTTO “Hidup ini adalah sebuah perjuangan yang harus dijalani” “Di dunia ini ini tidak ada yang namanya kegagalan, yang ada hanyalah kurang kerja keras” “Dimana ada usaha, disitu ada jalan, semua akan indah jika keberhasilan yang diraih diimbangi dengan sebuah proses kerja keras yang tak mengenal letih” “Kerja kerja tanpa doa adalah sesuatu yang sia-sia” “Bahagia itu sederhana, dimana kita bisa menikmati apa yang telah kita lakukan” “Lakukanlah, jika itu pilihan terbaik bagimu” v PERSEMBAHAN “Tuhan Yang Maha Esa” Terima kasih atas segala karunia, nur, karomah, barokah dan keberuntungan yang telah Engkau anugerahkan padaku “Ibu dan Bapak” Doamu yang tiada terputus, kerja keras tiada henti, pengorbanan yang tak terbatas dan kasih sayang yang tak terbatas pula. Semuanya membuatku bangga memiliki kalian. Tiada kasih sayang yang seindah dan seabadi kasih sayangmu. “Kakak dan adikku tercinta yang selalu mendukung dan memberi motivasi” “Ibu Fitriana Yuli S, M.Si” Terima kasih atas bimbingan dan masukan yang telah di berikan selama penulisan skripsi “Teman-teman seperjuangan, Yudha, Thoyib, Lulus, Chandra, Anton, Falah, Aldi, Aran, Wulan, yang telah memberikan bantuan dan dukungan” “Rekan-rekan Matematika Subsidi 2009” vi ALGORITMA GENETIKA DENGAN METODE ROULETTE WHEEL SELECTION DALAM OPTIMASI PENDISTRIBUSIAN BARANG DI P.T. FASTRA BUANA YOGYAKARTA Oleh Rudi Minaryo NIM 09305141045 ABSTRAK Algoritma genetika merupakan suatu metode pencarian berdasarkan pada mekanisme seleksi alam dan genetik alam. Algoritma ini digunakan untuk mendapatkan solusi dalam masalah optimasi. Masalah optimasi yang akan dibahas adalah penentuan rute terpendek dalam pendistribusian barang. Tujuan penulisan skripsi ini adalah menjelaskan aplikasi algortima genetika dengan metode roulette wheel selection untuk mencari rute terpendek pendistribusian barang di P.T. Fastra Buana Yogyakarta. Langkah-langkah menentukan rute terpendek menggunakan algoritma genetika dengan metode roulette wheel selection adalah mendefinisikan rute ke dalam individu dalam sebuah populasi, menghitung nilai fitness individu, menentukan induk dari individu dengan seleksi roulette wheel selection, melakukan order-crossover pada induk yang terpilih, menghasilkan individu baru dengan swapping mutation, menyusun populasi baru sampai memperoleh individu dengan nilai fitness optimum. Dalam penulisan skripsi ini dibahas mengenai optimisasi pendistribusian barang di P.T. Fastra Buana Yogyakarta untuk pendistribusian barang di Kota Bantul dan Kota Yogyakarta. Berdasarkan perhitungan diperoleh solusi rute terpendek pendistribusian barang. Hasil yang diperoleh dari perhitungan menggunakan Algortima Genetika dengan Roulette Wheel Selection adalah rute terpendek pendistribusian barang di Kota Bantul mencakup 9 tempat sejauh 49,7 Km dan rute terpendek pendistribusian barang di Kota Yogyakarta mencakup 12 tempat sejauh 52,1 Km. Kata kunci: Algoritma Genetika, fitness, Roulette Whell Selection, pendistribusian barang. vii KATA PENGANTAR Segala puji syukur penulis panjatkan kehadirat Allah SWT yang telah memberikan rahmat dan hidayah-Nya, sehingga penulis dapat menyelesaikan skripsi dengan judul “Algoritma Genetika dengan Metode Roulette Wheel Selection dalam Optimasi Pendistribusian Barang di P.T. Fastra Buana Yogyakarta”. Penulis menyadari bahwa penyusunan skripsi ini tidak terlepas dari bimbingan, arahan, bantuan serta motivasi dari berbagai pihak. Oleh karena itu, penulis mengucapkan terima kasih yang sebesar-besarnya kepada 1. Bapak Dr. Hartono, M.Si, selaku Dekan FMIPA UNY, 2. Bapak Dr. Sugiman, selaku Ketua Jurusan Pendidikan Matematika, 3. Bapak Dr. Agus Maman A, M.Si, selaku Koordinator Program Studi Matematika dan Dosen Pembimbing Akademik, 4. Ibu Fitriana Yuli S, M.Si, selaku Dosen Pembimbing Skripsi yang telah memberikan arahan, motivasi serta saran kepada penulis, 5. Bapak Sahid, M.Sc, selaku Dosen Penguji Utama yang telah memberikan berbagai masukan yang membangun, 6. Ibu Nur Insani, M.Sc, selaku Dosen Sekretaris Penguji yang telah memberikan berbagai masukan yang membangun, 7. Bapak Nur Hadi Waryanto, M.Eng, selaku Dosen Penguji Pendamping yang telah memberikan berbagai masukan yang membangun, viii 8. Seluruh Bapak/Ibu Dosen Jurusan Pendidikan Matematika yang telah memberikan banyak ilmu bermanfaat, 9. Teman-teman Matsub’09 yang telah memberikan bantuan dan semangat dalam menyelesaikan skripsi ini, 10. Seluruh pihak yang tidak dapat penulis sebutkan satu per satu. Penulis menyadari adanya keterbatasan kemampuan, pengetahuan dan pengalaman. Oleh karena itu, saran dan kritik yang membangun sangat penulis harapkan. Semoga skripsi ini dapat bermanfaat dan Allah SWT memberikan balasan kebaikan kepada semua pihak yang telah membantu dalam penyelesaian skripsi ini. ix DAFTAR ISI Halaman HALAMAN JUDUL .......................................................................................... i HALAMAN PERSETUJUAN ........................................................................... ii HALAMAN PENGESAHAN ............................................................................. iii HALAMAN PERNYATAAN ............................................................................ iv HALAMAN MOTTO ........................................................................................ v HALAMAN PERSEMBAHAN ........................................................................ vi ABSTRAK ......................................................................................................... vii KATA PENGANTAR ....................................................................................... viii DAFTAR ISI ...................................................................................................... x DAFTAR TABEL ............................................................................................... xii DAFTAR GAMBAR .......................................................................................... xiii DAFTAR LAMPIRAN ....................................................................................... xiv DAFTAR SIMBOL ............................................................................................ xv BAB I PENDAHULUAN A. Latar Belakang Masalah ........................................................................... 1 B. Batasan Masalah ....................................................................................... 5 C. Rumusan Masalah ..................................................................................... 5 D. Tujuan Penelitian ...................................................................................... 6 E. Manfaat Penelitian .................................................................................... 6 BAB II KAJIAN TEORI A. Graf ............................................................................................................ 7 1. Teori Dasar Graf .................................................................................... 8 B. Konektivitas Graf (Keterhubungan Graf) ..................................................13 C. Travelling Salesman Problem (TSP) .........................................................14 D. Algoritma ...................................................................................................17 E. Algoritma Genetika ...................................................................................18 1. Komponen-Komponen Utama Algoritma Genetika ..............................21 x a. Teknik Penyandian .............................................................................22 b. Membangkitkan Populasi Awal..........................................................22 c. Evaluasi Nilai Fitness .........................................................................23 d. Seleksi .................................................................................................24 1) Roulette Wheel Selection .................................................................24 e. Pindah Silang (Crossover) ..................................................................26 f. Mutasi .................................................................................................28 g. Elitism .................................................................................................29 BAB III HASIL DAN PEMBAHASAN A. Pendistribusian Barang di P.T. Fastra Buana Yogyakarta ...........................31 B. Aplikasi Algoritma Genetika dalam Pencarian Rute Terpendek ................32 1. Rute Pendistribusian Barang di Kota Bantul Menggunakan Algoritma Genetika dengan Roulette Wheel Selection ........................35 2. Rute Pendistribusian Barang di Kota Yogyakarta Menggunakan Algoritma Genetika dengan Roulette Wheel Selection ........................48 BAB IV PENUTUP A. KESIMPULAN ..........................................................................................59 B. SARAN ........................................................................................................60 DAFTAR PUSTAKA ........................................................................................61 LAMPIRAN .......................................................................................................64 xi DAFTAR TABEL Halaman Tabel 1 Jarak antar MM dan jarak gudang ke MM dalam satuan Km ............. 37 Tabel 2 Percobaan dengan Program menggunakan software Matlab ............... 47 Tabel 3 Jarak antar MM dan jarak gudang ke MM dalam satuan Km ............... 49 Tabel 4 Percobaan dengan Program menggunakan software Matlab ............... 58 Tabel 5 Alamat MM di Kota Bantul ................................................................. 64 Tabel 6 Alamat MM di Yogyakarta .................................................................. 65 Tabel 7 Nilai Fitness individu pada generasi ke-1 ............................................ 71 Tabel 8 Probabilitas Individu pada generasi ke-1 ............................................. 72 Tabel 9 Nilai Fitness individu pada generasi ke-1 ............................................ 74 Tabel 10 Probabilitas Individu pada generasi ke-1 ........................................... 75 xii DAFTAR GAMBAR Halaman Gambar 2.1 Graf A ............................................................................................ 7 Gambar 2.2 Graf B ............................................................................................ 9 Gambar 2.3 Graf N4 .......................................................................................... 9 Gambar 2.4 Graf C ............................................................................................ 10 Gambar 2.5 Graf D ............................................................................................ 11 Gambar 2.6 Graf E ............................................................................................ 12 Gambar 2.7 Graf F ............................................................................................ 13 Gambar 2.8 Graf H ............................................................................................ 14 Gambar 2.9 Graf K Berbobot ............................................................................ 16 Gambar 2.10 Flow Chart Algoritma Genetika ................................................. 21 Gambar 2.11 Sistematika proses Crossover....................................................... 26 Gambar 2.12 Sistematika proses Mutasi ........................................................... 28 Gambar 3.1 Grafik pergerakan nilai fitness ..................................................... 46 Gambar 3.2 Grafik pergerakan nilai fitness ..................................................... 57 xiii DAFTAR LAMPIRAN Halaman Lampiran 1 Lokasi dan Alamat MM di Kota Bantul ........................................ 64 Lampiran 2 Lokasi dan Alamat MM di Kota Yogyakarta ................................ 65 Lampiran 3 Prosedur Algoritma Genetika dalam Software Matlab penyelesaian masalah pendistribusian barang di P.T. Fastra Buana Gambar 2.2 ...... 66 Lampiran 4 Perhitungan nilai fitness dan seleksi Roulette Wheel Selection untuk pendistribusian di Kota Bantul ............................................................... 77 Lampiran 5 Perhitungan nilai fitness dan seleksi Roulette Wheel Selection untuk pendistribusian di Kota Bantul ............................................................... 81 Lampiran 6 Output Software Matlab proses pencarian rute terpendek pendistribusian barang di Kota Bantul ................................................... 84 Lampiran 7 Output Software Matlab proses pencarian rute terpendek pendistribusian barang di Kota Yogyakarta ........................................... 88 xiv DAFTAR SIMBOL V merupakan Simpul E merupakan rusuk n banyaknya simpul atau jumlah gen s banyaknya lintasan tertutup atau banyaknya semua rute x merepresentasikan jarak dari rute f nilai fitness P[i] Probabilitas inidividu ke-i C[i] Probabilitas kumulatif individu ke-i xv BAB I PENDAHULUAN A. Latar Belakang Masalah Travelling Salesman Problem (TSP) merupakan suatu permasalahan optimasi yang bertujuan untuk mendapatkan rute terpendek (minimum) dari beberapa tempat atau kota yang harus dilalui seorang salesman tepat satu kali hingga kembali ke tempat awal keberangkatannya (Vasudev, 2006: 88). Pada permasalahan TSP, diberikan himpunan kota dan biaya perjalanan atau jarak antara setiap kemungkinan pasangan kota. Permasalahan ini mencari sebuah perjalanan berawal dan berakhir di kota awal, kemudian perjalanan tidak boleh kembali ke kota awal sebelum semua kota tujuan dikunjungi. TSP tidak lepas dari permasalahan optimasi. Menurut Susanto (2007: 14), optimasi adalah suatu proses untuk mencapai hasil yang ideal atau optimal (nilai efektif yang dapat dicapai). Tujuan optimasi dalam TSP adalah meminimumkan total jarak perjalanan yang ditempuh salesman dengan mengatur urut-urutan kota yang harus dikunjungi sehingga didapatkan rute terpendek sebuah perjalanan. Masalah TSP berkaitan dengan pekerjan seorang salesman. Tugas seorang salesman adalah mendistribusikan suatu barang atau produk dari satu tempat ke tempat yang lain. Distribusi barang merupakan rangkaian kegiatan yang berhubungan dengan usaha penyampaian atau penyaluran barang dari produsen kepada konsumen (Philip Kotler, 1997:140). Perusahaan-perusahaan yang bergerak dalam bidang produksi suatu barang selalu menggunakan jasa salesman, karena dimana ada barang produksi selalu dilanjutkan dengan pendistribusian 1 hasil produksi. Salah satu perusahanan yang menggunakan jasa salesman untuk mendistribusikan suatu barang hasil produksi adalah P.T. Fastra Buana Yogyakarta. P.T. Fastra Buana terletak di jalan Imogiri Barat, Bantul, Yogyakarta, merupakan cabang dari perusahaan pusat yang berada di Jawa Timur. Perusahaan ini bergerak dalam bidang minuman, yaitu mengemas minuman kopi instan dalam bentuk sachet dengan bermacam-macam produk, diantaranya merek Kopi Kapal Api Fresco dan Kopi Kapal Api Grande. Sasaran pendistribusian barang produksi perusahaan ini pada Modern Market (MM) dan Tradisional Market (TM). Wilayah pendistribusian barang perusahaan ini meliputi kota Yogyakarta dan sebagian wilayah Jateng yaitu Magelang dan Klaten. Berdasarkan hasil wawancara dengan salah satu pegawai P.T. Fastra Buana, menjelaskan tentang mekanisme pendistribusian barang hasil produksi. Alat transportasi yang digunakan dalam pendistribusian yaitu mobil box untuk MM dan sepeda motor untuk TM. Keterbatasan alat transportasi untuk proses distribusi menjadi salah satu permasalahan PT karena PT ini sedang dalam proses berkembang, sehingga belum bisa untuk menambah armada alat transportasi. P.T. Fastra Buana telah mempunyai agen perantara distribusi yang tetap untuk wilayah Yogyakarta dan sekitarnya. Agar tidak kehilangan agen perantaranya, perusahaan berusaha untuk memberikan pelayanan yang baik kepada agen perantaranya. Pelayanan yang diberikan perusahaan adalah saat melakukan pendistribusian barang ke agen perantara, salesman perusahaan juga mengontrol kondisi barang distribusi atau barang produk yang ada di agen perantara tersebut. 2 Hal ini dilakukan untuk meminimalisir kurangnya kapasitas dan mengetahui kondisi barang jika ada yang rusak akan ditukar dengan yang baik di satu agen dan agen lainnya. Dalam melakukan pendistribusian, salesman berangkat dari gudang perusahaan menuju ke agen-agen perantara (MM atau TM) dan kembali lagi ke gudang perusahaan. Belum adanya rute agen yang harus mendapatkan pendistribusian barang, menyebabkan para salesman mendahulukan tempat pendistribusikan ke agen-agen sesuai dengan keinginan mereka. Tanpa mereka sadari, mungkin hal tersebut akan menambah panjang jarak rute tempuh dalam pendsitribusian barang yang nantinya berdampak pada keterlambatan pendistribusian ke agen. Untuk mengatasi hal tersebut, PT harus menentukan rute perjalanan distribusi ke MM maupun TM dengan baik. Pengaturan rute pendistribusian produk dapat ditentukan dengan mendahulukan agen-agen yang jaraknya berdekatan. Pemilihan rute terhadap agen-agen yang jaraknya lebih pendek dalam pendistribusian barang, akan menekan jarak total perjalan yang dilakukan salesman. Semakin pendek rute yang dilalui salesman dari setiap agen, maka rute perjalanan menjadi lebih efisien. Karena itu dibutuhkan metode optimasi yang dapat diterapkan untuk menentukan rute terpendek. Pembahasan dalam skripsi ini akan mencoba memakai algoritma genetika dalam menentukan rute terpendek dalam pendistribusian barang. Algoritma genetika merupakan suatu urutan langkah-langkah untuk memecahkan masalah optimasi berdasarkan pada mekanisme seleksi alam dan 3 genetik alam (Kusumadewi, 2003: 87). Metode ini dikembangkan lebih lanjut menjadi teknik penyelesaian permasalahan optimasi setelah dirumuskan ke dalam bentuk matematika. Algoritma genetika menggunakan analogi secara langsung dari kebiasaan yang alami yaitu seleksi alam. Algoritma ini bekerja dengan sebuah populasi yang terdiri dari individu–individu, yang masing–masing individu mempresentasikan sebuah solusi yang mungkin bagi persoalan yang ada. Individu dilambangkan dengan sebuah nilai fitness yang akan digunakan untuk mencari solusi terbaik dari persoalan tersebut. Untuk memeriksa hasil optimasi, dibutuhkan fungsi fitness, yang menandakan gambaran hasil atau solusi yang sudah dikodekan. Selama proses berjalan, individu harus melalui operator seleksi, pindah silang dan mutasi untuk menghasilkan keturunan sebagai solusi yang didapat. Jika Algoritma Genetika didesain dengan baik, populasi akan mengalami konvergensi dan akan didapatkan sebuah solusi yang optimum. Penelitian-penelitian yang telah dilakukan dalam TSP dengan Algoritma Genetika antara lain penerapan Algoritma Genetika untuk travelling salesmen problem dengan menggunakan order crossover dan insertion mutation oleh Anwar Toni dan Yuliani Willi (2005), travelling salesman problem menggunakan Algortima Genetika via GPS berbasis android oleh Asmi Baharudin (2012), penyelesaian travelling salesman problem dengan Algoritma Genetika oleh Kusrini (2008), penerapan Algoritma Genetika pada persoalan pedagang keliling oleh Aulia Fitrah dan Achmad Zaky (2006). 4 Berdasarkan latar belakang yang telah disebutkan di atas, maka dalam skripsi ini penulis tertarik menggunakan Algoritma Genetika untuk menyelesaikan masalah optimasi dalam pendistribusian barang di P.T. Fastra Buana. Metode seleksi yang digunakan adalah roulette wheel selection. Metode ini berfungsi untuk memilih atau menyeleksi individu secara acak untuk dijadikan sebagai induk yang akan digunakan untuk menghasilkan individu baru. Cara kerja metode yang sederhana sehingga penulis menggunakan metode seleksi ini. B. Batasan Masalah Penentuan rute terpendek P.T. Fastra Buana Yogyakarta dibagi dalam setiap kota. Kota yang akan dicari rute terpendek dalam pendistribusian barang P.T. Fastra Buana adalah MM di Kota Bantul dan MM Kota Yogyakarta. Penentuan rute terpendek menggunakan Algoritma Genetika. Metode seleksi yang digunakan dalam Algoritma Genetika ini adalah Roullete Wheel Selection. C. Rumusan Masalah Secara garis besar, permasalahan dalam skripsi ini dirumuskan sebagai berikut. 1. Bagaimana Aplikasi Algoritma Genetika dengan metode Roullete Wheel Selection untuk mencari rute terpendek pendistribusian barang di PT. Fastra Buana Yogyakarta? 2. Bagaimana rute terpendek pendistribusian barang di PT. Fastra Buana Yogyakarta.menggunakan Algoritma Genetika dengan seleksi Roullete Wheel Selection? 5 D. Tujuan Penelitian Penulisan skripsi ini bertujuan untuk: 1. Mengetahui Aplikasi Algoritma Genetika dengan metode Roullete Wheel Selection untuk mencari rute terpendek pendistribusian barang di PT. Fastra Buana Yogyakarta. 2. Mengetahui rute terpendek pendistribusian barang di PT. Fastra Buana Yogyakarta menggunakan Algoritma Genetika dengan seleksi Roullete Wheel Selection. E. Manfaat Penelitian Penulisan tugas akhir ini diharapkan dapat bermanfaat memberikan pengetahuan dan menambah wawasan mengenai penerapan Algoritma Genetika untuk menentukan rute terpendek dalam pendistribusian barang. Bagi perusahaan terkait dapat dijadikan pertimbangan sebagai dasar pengambilan keputusan dalam menentukan rute pendistribusian barang guna memperoleh rute yang optimal, sehingga dapat menghemat biaya perjalanan. 6 BAB II KAJIAN TEORI A. Graf 1. Toeri Dasar Graf Defnisi 2.1 Pengertian Graf (Chartrand dan Lesniak, 1986: 4) Graf G adalah pasangan himpunan (V, E) dengan V adalah himpunan tidak kosong dan berhingga dari obyek-obyek yang disebut sebagai simpul dan E adalah himpunan (mungkin kosong) pasangan tak berurutan dari simpul-simpul berbeda di G yang disebut sebagai rusuk. Himpunan simpul di G dinotasikan dengan V(G) dan himpunan rusuk dinotasikan dencgan E(G). Contoh 2.1 v2 e1 e2 v1 e5 e4 v3 e3 A v4 Gambar 2.1 Graf A Keterangan: Anggota-anggota V dikenal sebagai simpul dan anggota-anggota dari E dikenal sebagai rusuk. Dalam Graf A gambar 2.1, V = V (A) = (v1, v2, v3, v4) dan E = E (A) = (e1, e2, e3, e4). Sebagai contoh, graf A mempunyai simpul-simpul 7 v1, v2, v3, v4 sedangkan rusuk-rusuknya dinyatakan oleh e1 = (v1, v2), e2 = (v2, v3), e3 = (v3,v4), e4=(v1,v4). Definisi 2.2 Bertetangga (Munir, 2009: 365) Dua buah simpul pada graf G dikatakan bertetangga bila keduanya terhubung langsung dengan sebuah rusuk. Dengan kata lain, vi bertetangga dengan vj jika (vi,vj) adalah sebuah rusuk pada G. Contoh 2.2 Dari gambar 2.1 Graf A didapatkan simpul v1 bertetangga dengan simpul v4, simpul v1 tidak bertetangga dengan simpul v3. Definisi 2.3 Bersisian (Munir, 2009: 365) Untuk sembarang rusuk e = (vi,vj ) , rusuk e dikatakan bersisian dengan simpul vi dan simpul vj. Contoh 2.3 Dari gambar 2.1 Graf A didapatkan rusuk e1 bersisian dengan simpul v1 dan v2, rusuk e3 bersisian dengan simpul v3 dan v4. Definisi 2.4 Terpencil (Munir, 2009: 365) Simpul terpencil adalah simpul yang tidak mempunyai rusuk yang bersisian dengannya. Atau, dapat dinyatakan bahwa simpul yang tidak satupun bertetangga dengan simpul-simpul lainnya. 8 Contoh 2.4 v4 e3 v3 e4 B e2 v1 e1 v5 v2 Gambar 2.2 Graf B Dari gambar 2.2 Graf B di atas, simpul v5 adalah simpul terpencil. Definisi 2.5 Graf Nol (Munir, 2009: 366) Graf Nol adalah graf yang himpunan rusuknya merupakan himpunan kosong. Notasinya adalah Nn, yang dalam hal ini n adalah jumlah simpul. Contoh 2.5 v1 v2 v3 v4 N Gambar 2.3 Graf N4 Definisi 2.6 Derajat (Degree) (Munir, 2009: 366) Derajat suatu simpul pada graf G adalah jumlah rusuk yang bersesuaian dengan simpul tersebut. Notasi d(v) menyatakan derajat simpul. Contoh 2.6 Dari gambar 2.1 Graf A, banyaknya derajat tiap simpul sebagai berikut. d(v1) = 2 , d(v2) = 3, d(v3) = 2 , d(v4) = 3. 9 Definisi 2.7 (Rosen, 2003: 41) Sebuah rusuk dikatakan loop jika rusuk tersebut menguhubungkan simpul yang sama. Dengan kata lain e adalah loop, jika e = (v, v). Jika dua buah rusuk atau lebih menghubungkan dua simpul yang sama, maka rusuk-rusuk tersebut dikatakan rusuk ganda (multiple edges atau paralel edges). Contoh 2.7 v1 e1 v4 e4 e3 e2 C e5 v2 e6 e8 e7 v3 Gambar 2.4 Graf C Dari graf C pada gambar 2.4 di atas rusuk e5 adalah sebuah loop. Rusuk ganda yaitu e6 dan e7 karena menghubungkan simpul (v2,v3) dan e3,e4 yang menghubungkan simpul (v1,v2). Berdasarkan keberadaan loop dan sisi ganda, graf digolongkan menjadi dua jenis yaitu graf sederhana dan graf tak-sederhana. a. Graf Sederhana (simple graf) Definisi 2.8 (Rosen, 2003: 44) Graf yang tidak mengandung loop maupun rusuk ganda dinamakan graf sederhana. Contoh 2.8 Dari gambar 2.1 Graf A merupakan contoh graf sederhana. b. Graf Tak-Sederhana Definisi 2.9 (Rosen, 2003: 45) 10 Graf yang mengandung rusuk ganda atau loop dinamakan graf tak-sederhana (unsimple graf atau multigrapf). Contoh 2.9 Graf C pada gambar 2.4 merupakan graf tak-sederhana karena mempunyai rusuk ganda pada simpul (v2,v3), (v1,v2) dan mempunyai loop pada simpul v2 yaitu rusuk e8. Berdasarkan orientasi arah, graf dikelompokkan menjadi dua jenis yaitu graf berarah dan graf tak-berarah. a. Graf Berarah (Directed Graph) Definisi 2.10 (Rosen, 2003: 46) Graf berarah adalah graf yang rusuknya mempunyai orientasi arah. Contoh 2.10 Gambar 2.5 Graf D 11 Graf D pada gambar 2.5 memiliki V(D)=(v1,v2,v3,v4), E(D)=(e1,e2,e3,e4,e5), sedangkan e1=(v2,v1), e2=(v1,v2), e3=(v4,v2), e4=(v1,v4), e5=(v4,v3) Graf D pada gambar 2.6 menunjukkan rusuk e1 tidak sama dengan e2. b. Graf Tak-Berarah (Undirected Graph) Definisi 2.11(Rosen, 2003: 47) Graf tak berarah adalah graf yang rusuknya tidak mempunyai orientasi arah. Contoh 2.11 Graf A dari gambar 2.1 merupakan contoh graf tak-berarah. Berdasarkan ada tidaknya bobot, graf dikelompokkan menjadi dua jenis yaitu graf berbobot dan graf tak-berbobot. a. Graf Berbobot Defnisi 2.12 (Rosen, 2003: 48) Suatu graf dikatakan sebagai graf berbobot jika setiap rusuknya mempunyai nilai atau bobot tertentu. Bobot pada graf biasanya dinotasikan dengan wij dimana i dan j sebagai simpul yang bersisian dengan rusuk yang memiliki bobot w tersebut. Contoh 2.12 Diberikan graf E sebagai berikut. v1 1 3 E v3 v2 2 2 Gambar 2.6 Graf E 12 v4 Graf E pada gambar 2.6 merupakan graf berbobot, dimana E={(v1,v3), (v1,v4), (v2,v3), (v3,v4)} dan w(v1,v3) = 1, w(v1,v4) = 2, w(v2,v3 ) = 3 dan w(v3,v4) = 2. Graf E juga dapat dinyatakan dalam graf berikut. v1 F v2 v4 v3 Gambar 2.7 Graf F (representasi Graf E) b. Graf Tak-Berbobot Defnisi 2.13 (Rosen, 2003: 49) Suatu graf dikatakan sebagai graf tidak berbobot jika setiap rusuknya tidak mempunyai nilai atau bobot tertentu. Contoh 2.13 Graf A pada gambar 2.1 merupakan contoh dari graf tidak berbobot. B. Konektivitas Graf (Keterhubungan Graf) Definisi 2.14 Jalan (Walk) (Munir, 2009: 370) Jalan (Walk) pada suatu Graf G adalah sebagai suatu barisan yang tak kosong dan berhingga yang suku-sukunya bergantian antara simpul dan rusuk (v1,e2,v2,e2,...,ei,vi...en,vn). Jalan boleh saja memuat simpul dan rusuk yang sama. Jalan dapat ditulis barisan simpul saja atau barisan rusuk saja. 13 Contoh 2.14 v2 v6 v1 v5 v7 v3 v4 H Gambar 2.8 Graf H Salah satu contoh walk dari v1 ke v7 Graf H adalah (v1,v2,v6,v4,v3,v5,v4,v6,v7), dengan memuat simpul v4, v6 dan rusuk (v4, v6 ) dua kali. Definisi 2.15 Jejak (Trail) (Munir, 2009: 370) Jejak adalah walk dengan semua rusuk dalam barisan adalah berbeda. Contoh 2.15 Salah satu contoh lintasan pada graf H pada gambar 2.8 diatas adalah (v1,v2,v6,v4,v3,v5,v6,v7), dengan memuat simpul v6 sebanyak dua kali dengan rusuk yang berbeda. Jejak yang simpul awal dan simpul akhirnya berlainan disebut jejak tertutup. Definisi 2.16 Lintasan (Path) (Munir, 2009: 370) Lintasan adalah Walk yang semua simpul dalam barisan adalah berbeda. Contoh 2.16 Salah satu contoh lintasan pada graf H gambar 2.9 diatas adalah (v1,v2,v3,v4,v5,v6,v7). Selanjutnya jika pada suatu lintasan simpul awal dan simpul akhirnya sama maka lintasan tersebut disebut lintasan tertutup. 14 Definisi 2.17 Siklus (Munir, 2009: 371) Siklus adalah sebuah lintasan tertutup. Atau Jejak tertutup yang simpul awal dan simpul internalnya berlainan. Siklus dengan banyaknya simpul n, dinotasikan dengan Cn. Contoh 2.17 Contoh siklus pada graf H gambar 2.8 diatas adalah (v1,v2,v6,v7,v4,v5,v3,v1). C. Travelling Salessmen Problem (TSP) Definisi 2.18 Traveling Salesman Problem (Vasudev, 2006: 88) Suatu permasalahan optimasi yang bertujuan untuk mendapatkan rute terpendek (minimum) dari beberapa tempat atau kota yang harus dilalui seorang salesman tepat satu kali ia hingga kembali ke tempat awal keberangkatannya. Secara sederhana traveling salesman problem merupakan permasalahan seorang salesman yang harus melakukan kunjungan tepat satu kali pada semua kota dalam sebuah lintasan sebelum dia kembali ke titik awal keberangkatannya. Misalkan d(i,j) adalah jarak perjalanan dari kota i ke kota j dan salesman ingin melakukan perjalanan dengan biaya total yang minimum, yang mana biaya total adalah jumlah masing-masing biaya tiap rusuk atau lintasan perjalanannya (Vasudev, 2006: 88). Model dari permasalahan traveling salesman problem dapat digambarkan sebagai graf tak-berarah dan graf berbobot. Berikut representasi banyaknya lintasan tertutup TSP dalam graf. 15 K Gambar 2.9 Graf K Berbobot Dari Graf K berbobot dicari banyaknya lintasan tertutup dari simpul A kembali lagi ke simpul A. Terdapat 6 lintasan tertutup pada Graf K yaitu, A-B-CD-A, A-D-C-B-A, A-C-D-B-A, A-B-D-C-A, A-D-B-C-A, dan A-C-B-D-A, sehingga banyaknya lintasan tertutup (s) dapat dicari dengan s n 1!. 2.1 Dalam graf K, rusuk-rusuknya tidak berarah sehingga w A, B wB, A, sehingga banyaknya lintasan menjadi s n 1! , 2 2.2 karena lintasan A-B-C-D-A = A-D-C-B-A, A-C-D-B-A= A-C-D-B-A, dan A-CB-D-A = A-D-B-C-A. Jadi banyaknya semua kemungkinan lintasan tertutup ditentukan dengan rumus (2.2). Pada Skripsi ini, lintasan tertutup dalam permasalahan TSP disebut dengan rute perjalanan. 16 D. Algoritma Definisi 2.19 (Wahid, 2004: 2) Algortima adalah urutan langkah-langkah yang dinyatakan dengan jelas dan tidak rancu untuk memecahkan suatu masalah (jika ada pemecahannya) dalam rentang waktu tertentu. Pemecahan sebuah masalah pada hakekatnya adalah menemukan langkah– langkah tertentu yang jika dijalankan efeknya akan memecahkan masalah . Artinya, setiap langkah harus dapat dikerjakan dan mempunyai efek tertentu. Secara umum, menurut Wahid (2004: 4) karakteristik atau syarat algoritma memenuhi sebagai berikut. 1. Algoritma harus tidak ambigu (unambiguous). 2. Algoritma harus tepat (precise). 3. Algoritma harus pasti (definite). 4. Algortima harus berhingga (finite). Menurut Wahid (2004: 10-11), Algoritma sebagai langkah-langkah pemecahan masalah dapat dituliskan dalam beberapa cara sebagai berikut. 1. Uraian deskriptif. 2. Pseudocode. 3. Bagan alir (flow chart). Uraian deskriptif merupakan suatu algoritma yang menggunakan bahasa sehari-hari. Algoritma juga dapat dituliskan dalam kode-kode yang disepakati dan mempunyai arti sendiri. Kode-kode seperti ini disebut dengan pseudecode. Kodekode ini dapat dikembangkan sendiri, asalkan arti dari setiap kode disepakati 17 bersama. Algoritma tersebut juga dituliskan dalam notasi grafik yang setiapnya mempunyai arti tertentu. Notasi-notasi tersebut digunakan untuk menggambarkan bagan alir (flow chart). E. Algoritma Genetika Definisi 2.19 Algoritma Genetika (Kusumadewi , 2003: 87) Algoritma genetika merupakan suatu metode algoritma pencarian berdasarkan pada mekanisme seleksi alam dan genetik alam. Algoritma genetika pertama kali ditemukan oleh John Holland, dalam bukunya yang berjudul Adaption in Natural and Artificial Systems pada tahun 1960-an dan kemudian dikembangkan bersama murid dan rekan kerjanya di Universitas Michigan pada tahun 1960-an sampai 1970-an. Tujuan Holland mengembangkan algoritma genetika saat itu bukan untuk mendesain suatu algoritma yang dapat memecahkan suatu masalah, namun lebih mengarah ke studi mengenai fenomena adaptasi di alam dan mencoba menerapkan mekanisme adaptasi alam tersebut ke dalam sistem komputer (Fariza, dkk 2006). Berbeda dengan teknik pencarian konvensional, algoritma genetika dimulai dari himpunan solusi yang pada umumnya dihasilkan secara acak. Himpunan ini disebut populasi sedangkan setiap individu dalam populasi disebut kromosom (merupakan representasi dari solusi) dan yang menempati kromosom disebut gen. Gen biasanya merupakan suatu simbol string (Gen, 1997:1). Kromosomkromosom berevolusi dalam suatu proses iterasi yang berkelanjutan yang disebut generasi. Pada setiap generasi, kromosom dievaluasi dengan dengan fungsi 18 evaluasi. Setelah beberapa generasi maka algoritma genetika akan konvergen pada kromosom terbaik, yang diharapkan merupakan solusi optimal (Goldberg, 1989: 71). Hal-hal yang terdapat dalam algoritma genetika adalah sebagai berikut (Satriyanto, 2009). a. Gen (Genotype) adalah sebuah nilai yang menyatakan satuan dasar yang membentuk suatu arti tertentu dalam satu kesatuan gen yang dinamakan kromosom. b. Allele yaitu nilai dari sebuah gen, bisa berupa bilangan biner, float, integer, karakter dan kombinatorial. c. Kromosom adalah gabungan gen – gen yang membentuk nilai tertentu. d. Individu merupakan suatu nilai atau keadaan yang menyatakan salah satu solusi yang mungkin dari permasalahan yang diangkat. e. Populasi merupakan sekumpulan individu yang akan diproses bersama dalam satu siklus proses evolusi. Populasi terdiri dari sekumpulan kromosom. f. Induk, adalah kromosom yang akan dikenai operasi genetik (crossover) g. Crossover merupakan operasi genetik yang mewakili proses perkembangbiakan antar individu. h. Offspring adalah kromosom yang merupakan hasil dari operasi genetik (crossover) dikenal keturunan atau sebagai anak. i. Mutasi merupakan operasi genetik yang mewakili proses mutasi dalam perjalanan hidup individu. Mutasi berperan menghasilkan perubahan 19 acak dalam populasi, yang berguna untuk menambah variasi dari kromosom – kromosom dalam sebuah populasi. j. Proses Seleksi merupakan proses yang mewakili proses seleksi alam (natural selection) dari teori Darwin. Proses ini dilakukan untuk menentukan induk dari operasi genetik (crossover) yang akan dilakukan untuk menghasilkan keturunan (offspring). k. Nilai fitness merupakan penilaian yang menentukan bagus tidaknya sebuah kromosom. l. Fungsi Evaluasi adalah fungsi yang digunakan untuk menentukan nilai dari nilai fitness. Fungsi evaluasi ini merupakan sekumpulan kriteriakriteria tertentu dari permasalahan yang ingin diselesaikan. m. Generasi merupakan satuan dari populasi setelah mengalami operasioperasi genetika, berkembang biak, dan menghasilkan keturunan. Pada akhir dari setiap generasi, untuk menjaga agar jumlah kromosom dalam populasi tetap konstan, kromosom–kromosom yang mempunyai Nilai fitness yang rendah dan memiliki peringkat dibawah nilai minimal akan dihapus dari populasi. Secara umum, proses algoritma genetika adalah sebagai berikut (Kusumadewi, 2003: 92). 1. Membangkitkan populasi awal secara acak. 2. Membentuk generasi baru dengan menggunakan operasi seleksi, operasi crossover dan operasi mutasi secara berulang-ulang sehingga diperoleh 20 kromosom yang cukup untuk membentuk generasi baru sebagai representasi dari solusi baru. 3. Mengevaluasi setiap populasi dengan menghtung nilai fitness setiap kromosom hingga terpenuhi kriteria berhenti. Bila kriteria berhenti belum terpenuhi, maka akan dibentuk lagi generasi baru dengan mengulangi langkah 2. Kriteria berhenti yang digunakan adalah sebagai berikut. a. Berhenti pada generasi tertentu. b. Berhenti setelah dalam beberapa generasi berturut-berturut didapatkan nilai fitness tertinggi yang tidak berubah (konvergen). c. Berhenti bila dalam n generasi berikutnya tidak didapatkan nilai fitness yang lebih optimal. Proses algoritma genetika di atas diilustrasikan pada gambar 2.10 berikut. Gambar 2.10 1. Flow chart algoritma genetika Komponen-Komponen Utama dalam Algoritma Genetika Komponen-komponen utama dalam menggunakan algoritme genetika sebagai berikut. 21 a. Penyandian Pemasalahan (Pengkodean) Teknik penyandian adalah proses penyandian gen dari kromosom. Gen merupakan bagian dari kromosom, satu gen biasanya akan mewakili satu variabel. Gen dapat direpesentasikan dalam bentuk bit, bilangan real, daftar aturan, elemen permutasi, elemen program atau representasi lainnya yang dapat diimplementasikan dalam operator genetika (Satriyanto, 2009). Terdapat beberapa teknik pengkodean dalam algoritma genetika diantaranya pengkodean biner, pengkodean permutasi, pengkodean nilai dan pengkodean pohon (Anwar dan Yuliani, 2005). Pada skripsi ini, representasi gen menggunakan teknik pengkodean permutasi. Dalam pengkodean ini, tiap gen dalam kromosom merepresentasikan suatu urutan (Anwar dan Yuliani, 2005). Contoh 2.18 kromosom 1 = 2 3 4 5 1 6 7 Keterangan: kromosom 1 berisi urutan secara acak gen kesatu sampai ke tujuh. Gen direpresentasikan dengan sebuah bilangan dan bilangan-bilangan tersebut representasi dari masing-masing kota. b. Membangkitkan Populasi Awal Membangkitkan populasi awal adalah membangkitkan sejumlah individu secara acak atau melalui prosedur tertentu. Ukuran populasi tergantung pada masalah yang akan dipecahkan dan jenis operator genetika yang akan diimplementasikan. Setelah ukuran populasi ditentukan, kemudian harus dilakukan inisialisasi terhadap kromosom yang terdapat pada populasi tersebut. 22 Inisialisasi kromosom dilakukan secara acak, namun demikian harus tetap memperhatikan domain solusi dan kendala permasalahan yang ada (Kusumadewi, 2003: 102). Terdapat berbagai teknik dalam pembangkitan populasi awal ini yaitu random generator, pendekatan tertentu dan permutasi gen. Pada skripsi ini, pembangkitan populasi awal dengan menggunakan random generator. Random generator melibatkan pembangkitan bilangan random dalam interval [0,1) untuk nilai setiap gen sesuai dengan representasi kromosom yang digunakan. c. Evaluasi Nilai Fitness Evaluasi nilai fitness berfungsi untuk mengukur kualitas dari sebuah solusi dan memungkinkan tiap solusi untuk dibandingkan (Michalewicz, 1996: 72). Suatu individu dievaluasi berdasarkan suatu fungsi tertentu sebagai ukuran baik tidaknya individu tersebut. Di dalam evolusi alam, individu yang bernilai fitness tinggi yang akan bertahan hidup, sedangkan individu yang bernilai fitness rendah akan mati (D.E.Goldberg, 1989). Pada masalah optimasi, fungsi fitness yang yang digunakan adalah f 1 , x 2.3 dengan x merupakan nilai dari individu, yang artinya semakin kecil nilai x, maka semakin besar nilai fitnessnya. Tetapi hal ini akan menjadi masalah jika x bernilai 0, yang mengakibatkan f bisa bernilai tak hingga. Untuk mengatasinya, x perlu ditambah sebuah bilangan sangat kecil sehingga nilai fitnessnya menjadi f 1 , ( x a) 23 (2.4) dengan a adalah bilangan yang dianggap sangat kecil. d. Seleksi Seleksi merupakan pemilihan dua buah kromosom untuk dijadikan sebagai induk yang dilakukan secara proporsional sesuai dengan dengan nilai fitness-nya (Michalewicz, 1996: 75). Masing-masing individu yang diseleksi akan diberikan probabilitas reproduksi tergantung dari nilai objektif dirinya sendiri terhadap nilai objektif dari semua individu dalam seleksi tersebut. Nilai fitness inilah yang nantinya akan digunakan pada tahap seleksi berikutnya. Terdapat beberapa metode seleksi menurut Kusumadewi (2003:105), yaitu rank-based fitness assignment, roulette wheel selection, stochastic universal sampling, seleksi lokal (local selection), seleksi dengan pemotongan (truncation selection) dan seleksi dengan turnamen (tournament selection). Pada skripsi ini akan menggunakan metode roulette wheel selection. 1) Roulette Wheel Selection Metode seleksi ini merupakan metode yang sederhana, dan sering juga dikenal dengan nama stochastic sampling with replacement. Cara kerja metode ini adalah sebagai berikut (Kusumadewi, 2003: 105). a) Menghitung nilai fitness dari masing – masing individu (fi, dimana i adalah individu ke – 1 s/d ke – n). b) Menghitung total fitness semua individu dengan rumus (2.4). c) Menghitung probabilitas setiap individu tersebut. 24 Dari nilai fitness setiap individu dihitung nilai total fitness semua individu. Probabilitas individu dicari dengan membagi nilai fitness-nya dengan nilai total fitness semua individu. Dari rumus (2.4), didapatkan: f i Pi , f i 2.6 dengan P[i] = Probabilitas Individu ke-i dan f(i) = nilai fitness setiap individu ke-i, i=1,2,3,. . .,n. d) Membangkitkan bilangan random berdasarkan banyaknya populasi pada generasi. e) Menentukan individu yang terpilih sebagai induk berdasarkan letak bilangan random yang dihasilkan. Contoh 2.19 seleksi dengan metode roulette wheel selection Misalkan dalam satu populasi terdapat 5 individu dengan nilai fitness berturut-turut f(1) = 0.04, f(2) = 0.10, f(3) = 0.16, f(4) = 0.06, f(5) = 0.04, sehingga total semua nilai fitness adalah total = 0.207. Probabilitas individu dihitung dari rumus (2.6) sehingga didapatkan P[1]=0.10, P[2]=0.25, P[3]=0.40, P[4]=0.15, P[5]=0.10. Langkah selanjunya mencari probabilitas kumulatif C[i] dari P[i] didapatkan C[1]=0.10, C[2]=0.35, C[3]=0.75, C[4]=0.90, C[5]=1. Dibangkitkan bilangan acak [0,1) untuk mendapakan individu yang akan digunakan sebagai induk. Individu yang terpilih sebagai induk dapat diketahui sesuai letak bilangan acak yang dihasilkan dalam probabilitas kumulatif individu. 25 e. Crossover (Pindah Silang) Pindah Silang (crossover) adalah operator dari algoritma genetika yang melibatkan dua induk untuk membentuk kromosom baru. Pindah silang menghasilkan keturunan baru dalam ruang pencarian yang siap diuji. Operasi ini tidak selalu dilakukan pada setiap individu yang ada. Individu dipilih secara acak untuk dilakukan crossing dengan Pc (Probabilitas Crossover) antara 0,6 s/d 0,95. Jika pindah silang tidak diakukan, maka nilai dari induk akan diturunkan kepada keturunan (Michalewicz, 1996: 78). Prinsip dari pindah silang ini adalah melakukan operasi (pertukaran aritmatika) pada gen yang bersesuaian dari dua induk untuk mengasilkan individu baru. Proses crossover dilakukan pada setiap individu dengan probabilitas crossover yang ditentukan. Secara skematis proses cross-over dapat digambarkan sebagai berikut: Gambar 2.11 Sistematika proses cross-over 26 dari gambar 2.11 di atas, jika bilangan p yang dibangkitkan secara acak kurang dari probabilitas crossover (probCO), maka kedua induk dilakukan operasi pindah silang (crossover). tetapi jika bilangan p yang dibangkitkan lebih dari atau sama dengan probCO, maka tidak dilakukan operasi mutasi. Teknik crossover yang digunakan adalah teknik order crossover. Order crossover (OX) diperkenalkan oleh Davis (Tanjung, 2010). Teknik ini diawali dengan membangkitkan dua bilangan acak. Kemudian gen yang berada diantara kedua bilangan acak akan disalin ke keturunan (offspring) dengan posisi yang sama. Langkah berikutnya untuk mendapatkan keturunan pertama adalah mengurutkan gen yang berada pada induk kedua dengan urutan gen yang berada pada posisi setelah bilangan acak kedua diikuti dengan gen yang berada pada posisi sebelum bilangan acak pertama dan diakhiri dengan gen yang berada pada posisi diantara kedua bilangan acak. Gen yang telah diurutkan tersebut dibandingkan dengan keturunan pertama. Apabila gen tersebut ada pada keturunan kedua maka abaikan gen tersebut dari urutan itu. Kemudian masukkan urutan yang baru saja didapat pada keturunan dengan cara memasukkan urutan gen pada posisi setelah bilangan acak kedua terlebih dahulu dan sisanya dimasukkan pada posisi sebelum bilangan acak pertama. Begitu juga untuk menghasikan keturunan kedua. Contoh 2.20 Misalkan didapatkan 2 induk dari proses seleksi p1 = (1 2 3 | 4 5 6 7 |8 9), p2 = (4 5 2 | 1 8 7 6 |9 3). 27 Gen yang terpilih pada induk 1 ditukar dengan gen yang terpilih pada induk 2 dan sebaliknya, sehingga didapatkan keturunan (anak). o1 = (x x x | 1 8 7 6 |x x), o2 = (x x x | 4 5 6 7 |x x). Mengisi gen yang kosong pada anak 1 (o1) dengan gen dari induk 1 (p1) yang belum terdapat pada anak 1. o1 = (x x x | 1 8 7 6 |x x) = (3 4 5 | 1 8 7 6 |9 2). Dengan jalan yang sama pada o2 sehingga didapatkan anak ke-2 o2 = (x x x | 4 5 6 7 |x x) = (2 1 8 | 4 5 6 7| 9 3). f. Mutasi Mutasi merupakan proses untuk mengubah nilai dari satu atau beberapa gen dalam suatu kromosom. Operasi mutasi yang dilakukan pada kromosom dengan tujuan untuk memperoleh kromosom-kromosom baru sebagai kandidat solusi pada generasi mendatang dengan fitness yang lebih baik, dan lama-kelamaan menuju solusi optimum yang diinginkan. Akan tetapi, untuk mencapai hal ini, penekanan selektif juga memegang peranan yang penting. Jika dalam proses pemilihan kromosom-kromosom cenderung terus pada kromosom yang memiliki fitness yang tinggi saja, konvergensi prematur akan sangat mudah terjadi (Murniati, 2009: 24). Secara skematis proses mutasi dapat digambarkan sebagai berikut. 28 Gambar 2.12 Sistematika Proses Mutasi Dari gambar 2.12 di atas, jika p merupakan bilangan random yang dibangkitkan kurang dari probabilitas mutasi (probMut) maka individu hasil crossover dilakukan proses mutasi Sedangkan jika bilangan p yang dibangkitkan lebih dari atau sama dengan probMut, maka individu hasil crossover tidak dilakukan proses mutasi. Teknik mutasi yang digunakan adalah teknik swapping mutation. Teknik ini diawali dengan memilih dua bilangan acak kemudian gen yang berada pada posisi bilangan acak pertama ditukar dengan gen yang berada pada bilangan acak kedua dalam probabilitas tertentu (Suyanto, 2005: 24). Contoh 2.19 Individu hasil crossover = (1 2 3 4 5 6 8 9 7), kemudian menukar posisi gen 2 dan gen 8, menghasilkan individu baru hasil mutasi (1 8 3 29 4 5 6 2 9 7). Pada contoh 2.19 diatas, proses mutasi dilakukan dengan menukarkan posisi gen 2 dengan gen 8 dan sebaliknya. g. Elitism Elitism merupakan proses untuk menjaga agar individu bernilai fitness tertinggi tersebut tidak hilang selama evolusi (Kusumadewi, 2003: 112). Proses seleksi dilakukan secara random sehingga tidak ada jaminan bahwa suatu indvidu yang bernilai fitness tertinggi akan selalu terpilih. Walaupun individu bernilai fitness tertinggi terpilih, mungkin saja individu tersebut akan rusak (nilai fitnessnya menurun) karena proses pindah silang. Oleh karena itu, untuk menjaga agar individu bernilai fitness tertinggi tersebut tidak hilang selama evolusi, maka perlu dibuat satu atau lebih. h. Pembentukan Populasi Baru Proses membangkitkan populasi baru bertujuan untuk membentuk populasi baru yang berbeda dengan populasi awal. Pembentukan populasi baru ini didasarkan pada keturunan-keturunan baru hasil mutasi ditambah dengan individu terbaik setelah dipertahankan dengan proses elitism. Setelah populasi baru terbentuk, kemudian mengulangi langkah-langkah evaluasi nilai fitness, proses seleksi dengan roulette wheel selection, proses pindah silang, proses mutasi pada populasi baru untuk membentuk populasi baru selanjutnya. 30 BAB III PEMBAHASAN Sebagaimana yang telah diuraikan pada Bab I, yang menjadi fokus permasalahan penulisan ini adalah tentang pendistribusian barang di P.T. Fastra Buana Yogyakarta. A. Pendistribusian Barang di PT Fastra Buana Pendistribusian barang PT Fastra Buana mencakup Modern Market (MM) dan di Traditional Market (TM). Dalam mendistribusikan produk untuk Modern Market menggunakan mobil box. MM meliputi swalayan dan Mini Market. Untuk Traditional Market mengunanakan sepeda motor. Dalam pendistribusian ke MM, perusahaan hanya mempunyai 3 mobil box yang harus memenuhi permintaan dari setiap kota. Sehingga hal tersebut menjadi kendala tersendiri, karena sering kali salesman perusahaan harus rela bekerja dengan jam tambahan agar semua permintaan terpenuhi. Untuk pendistribusian barang ke tradisional market tidak mengalami kendala yang berarti, karena salesman perusahaan mencukupi permintaan-permintaan pendistribusian barang dari TM. Penggunaan mobil box untuk distribusi barang ke MM yaitu 1 mobil box untuk distribusi di wilayah Bantul, 1 mobil box untuk distribusi di wilayah Yogyakarta dan 1 mobil box untuk distribusi di wilayah Magelang dan Klaten. Kapasitas mobil untuk mendistribusikan hasil produk P.T. Fastra Buana mencukupi untuk proses pendistribusian barang ke MM disuatu wilayah, sehingga salesman melakukan satu kali perjalanan dalam pendistribusian. 31 Salesman berangkat dari perusahaan menuju ke agen-agen perantara (MM atau TM) dan kembali lagi ke perusahaan setelah menyelesaikan tugasnya. P.T. Fastra Buana sudah mempunyai agen perantara distribusi yang tetap untuk wilayah Yogyakarta dan Sekitarnya, dalam hal ini MM dan TM. Agar tidak kehilangan agen perantaranya, perusahaan ini berusaha untuk memberikan pelayanan yang baik. Salah satu pelayanan yang diberikan dalam pendistribusian barang ke MM maupun TM, juga mengontrol kondisi barang produksi yang ditugaskan kepada Salesman perusahaan. Hal ini dilakukan agar meminimalisir kurangnya kapasitas maupun kondisi barang di satu agen dan agen lainnya. Selain mendistribusikan ke agen-agen tetap, perusahaan ini juga terus memperluas wilayah pemasaran hasil produk. Dalam memperluas pemasaran produk, perusahaan menugaskan kepada salesman yang menggunakan alat kendaraan sepeda motor. Salesman mempromosikan hasil produk ke MM maupun TM yang belum menjadi agen tetap. Apabila sudah mendapatkan agen perantara yang baru dan permintaan barangnya relatif banyak, pendistrbusian akan dialihkan dengan menggunakan mobil box. B. Aplikasi Algoritma Genetika dalam Pencarian Rute Terpendek Fokus pembahasan ini adalah pendistribusian barang ke MM yang berada di Kota Bantul dan pendistribusian barang ke MM yang berada di Kota Yogyakarta dengan menggunakan 2 mobil box. 1 Mobil box akan mendistribusikan barang di wilayah Kota Bantul, dan 1 mobil box akan mendistribusikan barang di wilayah Kota 32 Yogyakarta. Banyaknya agen perantara tetap yang berada di Kota Bantul sebanyak delapan MM, sedangkan untuk di Kota Yogyakarta sebanyak sebelas MM. Untuk wilayah Kota Bantul, MM yang menjadi lokasi pendistribusian produk dari PT Fastra Buana sebagai berikut. 1. Purnama Swalayan, 2. Mulia Swalayan, 3. WS Toserba, 4. Agung Swalayan, 5. DM Swalayan, 6. Prima Swalayan, 7. Putri MS Swalayan, 8. MiniMarket Bunda. Alamat MM di atas terdapat dalam lampiran 1. Untuk wilayah Kota Yogyakarta, MM yang menjadi lokasi pendistribusian produk dari P.T. Fastra Buana sebagai berikut. 1. PT. Indomarco Prismatama, 2. MAGA Swalayan, 3. Risma Mini Market, 4. Beka Mini Market, 5. D.M. Swalayan, 6. AL-Fattah Mini Market, 7. Indo Giri Mini Market, 8. Al-Fath Mini Market, 33 9. Lativa Swalayan, 10. Mirota Kampus, 11. Pamella Swalayan. Alamat MM di atas dapat dilihat di lampiran 2. Sebelum ke pembahasan lebih lanjut, akan direpresentasikan permasalahan pendistribusian barang di P.T. Fastra Buana ke dalam algoritma genetika untuk pencarian solusi rute terpendek adalah sebagai berikut. a. Gen merupakan representasi dari MM dan gudang perusahaan. b. Kromosom merupakan kumpulan gen–gen yang membentuk suatu nilai tertentu yaitu kumpulan urutan pendistribusian dari gudang ke MM yang membentuk rute distribusi. c. Individu menyatakan suatu solusi yang mungkin, yaitu rute perjalanan dalam pendistribusian barang. d. Populasi merupakan sekumpulan individu yang akan diproses dalam satu siklus evolusi, dalam hal ini adalah sekumpulan rute distribusi yang mungkin. e. Generasi menyatakan satu siklus atau satu kali iterasi dalam algoritma genetika. 34 1. Rute Pendistribusian Barang di Kota Bantul Menggunakan Algoritma Genetika dengan Roullete Wheel Selection Pendistribusan barang di Kota Bantul mencakup 8 swalayan. Pencarian rute terpendek pendistribusian barang di Kota Bantul direpresentasikan ke dalam Algoritma Genetika. Gen merupakan representasi dari swalayan yang menjadi agen distribusi dan ditambah gudang perusahaan sebagai awal mula distribusi barang oleh salesman. Banyaknya gen dalam pendistribusian barang di Kota Bantul sebagai berikut. Gen 1 = Purnama Swalayan = Lokasi 1, Gen 2 = Mulia Swalayan = Lokasi 2, Gen 3 = WS Toserba = Lokasi 3, Gen 4 = Agung Swalayan = Lokasi 4, Gen 5 = DM Swalayan = Lokasi 5, Gen 6 = Prima Swalayan = Lokasi 6, Gen 7 = Putri MS Swalayan = Lokasi 7, Gen 8 = MiniMarket Bunda = Lokasi 8, Gen 9 = Gudang PT Fastra Buana = Lokasi 9. Terdapat 9 gen dalam kromosom, karena rute perjalanan awal dimulai dari gudang perusahaan. Individu merupakan satu kali rute perjalanan yang melewati semua MM dan Gudang. Representasi individu dalam algoritma genetika adalah sebuah kromosom yang berisi susunan gen-gen secara acak dari 1 sampai 9. Contohnya adalah sebagai berikut. Individu 1 = 9 4 5 6 2 3 7 1 8 35 Banyaknya individu atau rute yang mungkin diperoleh dengan menggunakan rumus permutasi pada persamaan (2.2) dibawah ini. s n 1! (3.1) 2 Dimana n adalah jumlah seluruh gen, dan s merupakan banyaknya rute yang mungkin. Pada pendistribusian di Kota Bantul, banyaknya pilihan semua rute yang mungkin dapat dilalui dari Gudang Perusahaan ke semua MM dan kembali ke Gudang Perusahaan sebanyak: s n 1! 2 (9 1)! s 20.160 2 3.2 Untuk mencari rute terpendek, sebelumnya harus diketahui jarak tempuh pendistribusian dari gudang menuju MM dan kembali ke gudang dalam satu kali perjalanan distribusi. Dalam hal ini adalah mengetahui nilai dari individu, sehingga harus dicari terlebih dahulu jarak dari gudang ke MM dan jarak antar MM. Dengan menggunakan bantuan Google Earth, jarak dari gudang ke MM dan jarak antar MM dapat diketahui dalam tabel dibawah ini. 36 Tabel 1. Jarak antar MM dan jarak gudang ke MM dalam satuan Kilo Meter Lokasi 1 2 3 4 5 6 7 8 9 1 0 2,3 0,6 6,8 10,4 11,7 3,1 1,7 6,6 2 2,3 0 2,9 5,6 11,9 10,8 5 3,5 8,4 3 0,6 2,9 0 7 10 12,7 3,3 1,3 6,3 4 6,8 5,6 7 0 18,2 8,6 9,4 8,3 13,2 5 10,4 11,9 10 18,2 0 19,6 9,1 8,7 5,3 6 11,7 10,8 12,7 8,6 19,6 0 20,3 18,9 18,2 7 3,1 5 3,3 9,4 9,1 20,3 0 3,3 3,1 8 1,7 3,5 1,3 8,3 8,7 18,9 3,3 0 4,5 9 6,6 8,4 6,3 13,2 5,3 18,2 3,1 4,5 0 Selanjutnya seperti yang telah diuraikan pada BAB II, dalam pencarian rute terpendek pendistribusian barang PT. Fastra Buana dengan langkah-langkah di bawah ini. a) Membangkitkan Populasi Awal Seluruh kemungkinan rute yang digunakan dalam proses distribusi di Kota Bantul sebanyak 20.160 rute. Dengan menggunakan Algoritma Genetika, representasi gen menggunakan teknik pengkodean permutasi yang selanjutnya diambil beberapa rute secara acak. Rute distribusi ini disebut dengan individu. Dengan bantuan software matlab, diambil beberapa rute secara acak. (Prosedunya dapat dilihat di lampiran 3) 37 Hasil pengambilan secara acak rute perjalanan yang membentuk populasi pertama pada generasi pertama adalah sebagai berikut: Individu 1 = 3 4 9 1 6 7 2 5 8 Individu 2 = 1 6 2 5 3 9 7 4 8 Individu 3 = 9 8 6 7 5 2 1 3 4 Individu 4 = 4 6 7 2 9 1 3 5 8 Individu 5 = 5 1 6 2 7 9 8 3 4 Individu 6 = 6 7 1 2 4 3 9 5 8 Individu 7 = 9 7 1 5 4 6 2 8 3 Individu 8 = 6 1 3 2 4 8 9 7 5 Individu 9 = 3 5 7 4 8 2 1 6 9 Individu 10 = 7 2 9 5 1 6 3 4 8 Individu 11 = 5 3 9 7 8 4 1 6 2 Individu 12 = 9 6 1 8 7 5 4 3 2 Individu 13 = 4 6 7 2 5 9 1 8 3 Individu 14 = 8 6 5 3 2 7 1 9 4 Individu 15 = 6 1 7 5 8 3 2 4 9. Pembangkitan populasi awal di atas menghasilkan ukuran populasi sebanyak 15 individu. Individu-individu tersebut selanjutnya akan dihitung nilai masingmasing fitnessnya. 38 b) Menentukan nilai fitness Setelah pembangkitan populasi awal dilakukan, langkah selanjutnya adalah menentukan nilai fitness dari masing-masing individu. Setiap individu dihitung jarak totalnya. Kemudian dihitung nilai fitnessnya dengan menentukan inversi total jarak dari rute yang didapatkan. Cara melakukan inversi ditentukan dengan rumus (2.3) berikut. fitness 1 , x 3.3 dengan x adalah total jarak dari satu individu. Dengan bantuan software matlab, ditentukan nilai fitness dari individu (prosedunya dapat dilihat di lampiran 3 dan perhitungannya terdapat di lampiran 4) . Nilai fitness yang didapatkan sebagai berikut. Individu 1 = 3 4 9 1 6 7 2 5 8 fitness = 0.0117 Individu 2 = 1 6 2 5 3 9 7 4 8 fitness = 0.0137 Individu 3 = 9 8 6 7 5 2 1 3 4 fitness = 0.0114 Individu 4 = 4 6 7 2 9 1 3 5 8 fitness = 0.0131 Individu 5 = 5 1 6 2 7 9 8 3 4 fitness = 0.0139 Individu 6 = 6 7 1 2 4 3 9 5 8 fitness = 0.0129 Individu 7 = 9 7 1 5 4 6 2 8 3 fitness = 0.0153 Individu 8 = 6 1 3 2 4 8 9 7 5 fitness = 0.0153 Individu 9 = 3 5 7 4 8 2 1 6 9 fitness = 0.0127 Individu 10 = 7 2 9 5 1 6 3 4 8 fitness = 0.0139 Individu 11 = 5 3 9 7 8 4 1 6 2 fitness = 0.0139 39 Individu 12 = 9 6 1 8 7 5 4 3 2 fitness = 0.0124 Individu 13 = 4 6 7 2 5 9 1 8 3 fitness = 0.0148 Individu 14 = 8 6 5 3 2 7 1 9 4 fitness = 0.0114 Individu 15 = 6 1 7 5 8 3 2 4 9 fitness = 0.0136 Setelah dihitung nilai fitness dari setiap individu, maka didapatkan nilai fitness terbaik dari Populasi diatas yaitu pada individu ke – 7 dengan nilai fitness sebesar 0,0153. Individu dengan nilai fitness terbaik dari populasi generasi pertama akan dipertahankan dan dibawa ke generasi selanjutnya. langkah selanjutnya adalah melakukan seleksi untuk menentukan individu sebagai induk. c) Seleksi Mesin Roulette (Roulette Wheel Selection) Fungsi seleksi mesin Roulette ini adalah memilih secara acak individu dari populasi untuk dijadikan sebagai induk. Induk tersebut akan di lakukan proses pindah silang dengan induvidu lain yang terpilih. Metode ini menirukan permainan roulette wheel dimana masing-masing kromosom menempati lingkaran pada roda roulette secara proporsional sesuai dengan nilai fitnessnya. Dengan bantuan software matlab didapatkan induk-induk yang terpilih secara acak (Prosedur seleksi mesin roulette terdapat di lampiran 3, dan proses perhitungannya terdapat dilampiran 4). Berikut hasil individu yang terpilih sebagai induk. 1) Induk 1 = Individu 10 = 7 2 9 5 1 6 3 4 8 Induk 2 = Individu 3 = 9 8 6 7 5 2 1 3 4 40 2) Induk 1 = Individu 12 = 9 6 1 8 7 5 4 3 2 Induk 2 = Individu 15 = 6 1 7 5 8 3 2 4 9 3) Induk 1 = Individu 10 = 7 2 9 5 1 6 3 4 8 Induk 2 = Individu 11 = 5 3 9 7 8 4 1 6 2 4) Induk 1 = Individu 15 = 6 1 7 5 8 3 2 4 9 Induk 2 = Individu 11 = 5 3 9 7 8 4 1 6 2 5) Induk 1 = Individu 13 = 4 6 7 2 5 9 1 8 3 Induk 2 = Individu 8 = 6 1 3 2 4 8 9 7 5 6) Induk 1 = Individu 6 = 6 7 1 2 4 3 9 5 8 Induk 2 = Individu 6 = 6 7 1 2 4 3 9 5 8 7) Induk 1 = Individu 8 = 6 1 3 2 4 8 9 7 5 Induk 2 = Individu 9 = 3 5 7 4 8 2 1 6 9 Individu-individu di atas terpilih sebagai induk dengan melakukan proses seleksi mesin roulette sebanyak 7 kali. Induk pertama dan induk kedua selanjutnya akan dilakukan pindah silang guna mendapatkan anak atau keturunan baru. d) Pindah Silang (Cross Over) Setelah terpilih induk-induk dari proses seleksi mesin roulette, selanjutnya induk-induk tersebut akan dilakukan proses pindah silang. Pindah silang menghasilkan individu baru hasil dari 2 induk yang disebut anak. Pindah silang ini diimplementasikan dengan skema order crossover. Dengan bantuan software matlab didapatkan keturunan (Prosedur pindah silang terdapat di lampiran 3). 41 Berikut hasil keturunan yang diperoleh. 1) Anak 1 = 4 8 6 7 5 2 1 9 3 Anak 2 = 4 2 9 5 1 6 3 8 7 2) Anak 1 = 3 2 7 5 8 9 6 1 4 Anak 2 = 4 9 1 8 7 6 5 3 2 3) Anak 1 = 6 3 4 7 8 2 9 5 1 Anak 2 = 4 6 2 5 1 3 9 7 8 4) Anak 1 = 3 2 9 7 8 4 1 6 5 Anak 2 = 1 6 7 5 8 3 2 9 4 5) Anak 1 = 1 8 3 2 4 6 7 5 9 Anak 2 = 9 7 5 2 6 1 3 4 8 6) Anak 1 = 1 2 5 8 4 3 9 6 7 Anak 2 = 1 2 5 8 4 3 9 6 7 7) Anak 1 = 6 1 3 2 4 8 9 7 5 Anak 2 = 3 5 7 4 8 2 1 6 9 Anak yang dihasilkan dari proses pindah silang di atas, selanjutanya akan dilakukan proses mutasi. Proses mutasi dilakukan pada anak hasil pindah silang dengan tujuan untuk memperoleh individu baru sebagai kandidat solusi pada generasi mendatang dengan fitness yang lebih baik, dan lama-kelamaan menuju solusi optimum yang diinginkan. 42 e) Mutasi Setelah dilakukan operator pindah silang didapatkan keturunan-keturunan yang selanjutkan akan di proses mutasi. Skema mutasi yang digunakan adalah swaping mutation. Untuk semua gen yang ada, jika bilangan random yang dibangkitkan [0,1) kurang dari probabilitas mutasi yang ditentukan, maka nilai gen tersebut akan ditukarkan dengan nilai gen yang lain yang dipilih secara acak. Dengan bantuan software matlab didapatkan individu hasil mutasi. Prosedur mutasi terdapat di lampiran 3. Berikut hasil mutasi yang diperoleh. 1) Individu baru anak 1 = 4 8 6 7 5 2 1 9 3 Individu baru anak 2 = 4 2 9 5 1 6 3 8 7 2) Individu baru anak 1 = 3 2 7 5 6 9 8 1 4 Individu baru anak 2 = 4 9 1 8 7 6 5 3 2 3) Individu baru anak 1 = 6 3 4 7 8 2 9 5 1 Individu baru anak 2 = 4 6 2 5 1 3 9 7 8 4) Individu baru anak 1 = 3 2 9 7 8 4 1 6 5 Individu baru anak 2 = 1 6 7 5 8 3 2 9 4 5) Individu baru anak 1 = 1 8 3 2 4 6 7 5 9 Individu baru anak 2 = 9 7 5 2 6 1 3 4 8 6) Individu baru anak 1 = 1 2 5 8 4 3 9 6 7 Individu baru anak 2 = 1 2 5 8 4 9 3 6 7 7) Individu baru anak 1 = 6 1 3 2 4 8 9 7 5 Individu baru anak 2 = 3 5 7 4 8 2 1 6 9 43 Individu baru yang dihasilkan, selanjutnya akan digunakan untuk membentuk populasi baru pada generasi ke dua. f) Pembentukan Populasi Baru Setelah langkah-langkah di atas dilakukan, maka dibentuk populasi selanjutnya di generasi ke dua. Individu terbaik dengan nilai fitness tertinggi pada populasi awal dibawa ke populasi kedua proses ini dinamakan sebagai Elitism. Prosedur pembentukan populasi selanjutnya terdapat dalam lampiran 3 dengan bantuan software matlab. Berikut merupakan hasil populasi baru di generasi ke dua. Individu 1 = 9 7 1 5 4 6 2 8 3 Individu 2 = 4 8 6 7 5 2 1 9 3 Individu 3 = 4 2 9 5 1 6 3 8 7 Individu 4 = 3 2 7 5 6 9 8 1 4 Individu 5 = 5 1 6 2 7 9 8 3 4 Individu 6 = 6 3 4 7 8 2 9 5 1 Individu 7 = 4 6 2 5 1 3 9 7 8 Individu 8 = 3 2 9 7 8 4 1 6 5 Individu 9 = 1 6 7 5 8 3 2 9 4 Individu 10 = 1 8 3 2 4 6 7 5 9 Individu 11 = 9 7 5 2 6 1 3 4 8 Individu 12 = 1 2 5 8 4 3 9 6 7 Individu 13 = 1 2 5 8 4 9 3 6 7 Individu 14 = 6 1 3 2 4 8 9 7 5 44 Individu 15 = 3 5 7 4 8 2 1 6 9 Prosedur-prosedur penentuan nilai fitness, seleksi, pindah silang dan mutasi dilakukan pada generasi kedua untuk menentukan populasi di generasi selanjutnya. Iterasi tersebut dilakukan sampai mendapatkan nilai fitness sudah konvergen pada suatu nilai di generasi tertentu, dimana tidak ada nilai fitness yang lebih tinggi lagi di generasi selanjutnya. Hasil fitness paling optimum terdapat dalam generasi ke-5. Populasi baru dari generasi ke- 5 sebagai berikut (generasi sebelumnya terdapat di lampiran 6). Individu 1 = 4 6 5 9 7 8 3 1 2 Individu 2 = 1 2 6 5 9 8 3 4 7 Individu 3 = 7 8 3 1 2 6 5 4 9 Individu 4 = 7 6 1 2 5 3 4 8 9 Individu 5 = 4 7 3 2 5 1 8 6 9 Individu 6 = 4 6 5 9 7 8 3 1 2 Individu 7 = 5 9 8 3 2 7 1 4 6 Individu 8 = 6 3 4 1 9 7 2 5 8 Individu 9 = 1 9 7 8 6 3 2 5 4 Individu10 = 1 6 7 3 4 8 9 2 5 Individu 11 = 4 7 5 8 6 3 9 2 1 Individu 12 = 6 4 9 7 5 8 3 2 1 Individu 13 = 5 7 3 1 2 8 9 4 6 Individu 14 = 1 3 4 9 7 8 2 6 5 Individu 15 = 8 3 2 9 7 1 4 6 5 45 Dengan nilai fitness tertinggi adalah 0,0201. Individu yang memiliki nilai fitness yang sudah optimum adalah individu 1. Berikut grafik pergerakan nilai fitness sampai kovergen ke nilai tertentu: 0.025 0.02 Fitness 0.015 0.01 Fitness terbaik : 0.020121 Fitness rata-rata : 0.015559 Panjang jalur terbaik : 49.700 Ukuran populasi : 15 Probabilitas mutasi : 0.005 0.005 0 1 2 3 4 5 6 Generasi 7 8 9 10 Gambar 3.1 Grafik pergerakan nilai fitness Jadi telah diketahui solusi dari permasalahan PT fastra Buana untuk pendistribusian barang di Kota Bantul. Rute terpendek yang dapat ditempuh dari gudang menuju semua swalayan yang ada dan kembali lagi ke gudang adalah dengan rute berawal dari Gudang PT. Fastra Buana – Putri MS Swalayan – MiniMarket Bunda – WS Toserba – Purnama Swaqlayan – Mulia Swalayan – Agung Swalayan – Prima Swalayan – DM Swalayan – Gudang PT Fastra Buana. Jarak rute tempuh nya adalah 49,7 KM. 46 Komponen-komponen dalam Algoritma Genetika menggunakan random generator, sehingga setiap kali melakukan proses akan menghasilkan solusi yang berbeda. Diperlukan beberapa kali percobaan dalam mengaplikasikan Algoritma Genetika dengan program menggunankan software matlab agar didapatkan solusi yang optimum. Hasil pencarian rute terpendek pendistribusian barang di Kota Bantul di atas diperkuat dengan melakukan beberapa kali percobaan. Berikut diberikan tabel hasil percobaan sehingga didapatkan solusi pendistribusian barang di kota Bantul dengan jarak tempuhnya 49,7 Km. Tabel 2. Hasil percobaan dengan Program menggunakan software MATLAB Percobaaan Ukuran ke1 2 3 4 5 6 7 8 9 10 Populasi 15 15 15 20 20 25 25 25 30 30 Konvergen pada Generasi ke- Nilai Fitness 5 10 16 26 36 27 36 29 9 14 0,02012 0,02004 0,01964 0,01988 0,01992 0,01995 0,01992 0,01992 0,19724 0,01992 Panjang Rute Rute (Km) 9-7-8-3-1-2-4-6-5-9 49,7 9-5-8-3-1-6-4-2-7-9 49,9 9-7-3-2-4-6-1-8-5-9 50,4 9-7-1-6-4-2-3-8-5-9 50,3 9-7-1-2-6-4-3-8-5-9 50,2 9-7-4-6-2-1-3-8-5-9 50,1 9-7-2-6-4-1-3-8-5-9 50,2 9-7-2-6-4-1-3-8-5-9 50,2 9-7-3-1-4-6-2-8-5-9 50,7 9-7-1-2-6-4-3-8-5-9 50,2 Tabel 2 di atas merupakan percobaan yang dilakukan dengan mengganti ukuran populasi. Hasil yang didapat pada setiap percobaan akan berbeda, dikarenakan aplikasi algoritma genetika menggunakan random generator pada setiap komponen-komponennya. Nilai fitness optimum yang diperoleh dari beberapa kali percobaan yaitu 0.02012. 47 2. Rute Pendistribusian Barang di Kota Yogyakarta Menggunakan Algoritma Genetika dengan Roullete Wheel Selection Pendistribusian barang PT Fastra Buana untuk wilayah Kota Yogyakarta yaitu di 11 swalayan(MM) dan rute berawal dari gudang perusahaan. Reperesentasi ke dalam Algoritma genetika untuk penenetuan rute terpendek di Kota Yogyakarta sebagai berikut. Gen 1 = PT. Indomarco Prismatama = Lokasi 1, Gen 2 = MAGA Swalayan = Lokasi 2, Gen 3 = Risma MiniMarket = Lokasi 3, Gen 4 = Beka MiniMarket = Lokasi 4, Gen 5 = D.M. Swalayan = Lokasi 5, Gen 6 = AL-Fattah MiniMarket = Lokasi 6, Gen 7 = Indo Giri MiniMarket = Lokasi 7, Gen 8 = Al-Fath MiniMarket = Lokasi 8, Gen 9 = Lativa Swalayan = Lokasi 9, Gen 10 = Mirota Kampus = Lokasi 10, Gen 11 = Pamella Swalayan = Lokasi 11, Gen 12 = Gudang PT Fastra Buana = Lokasi 12. Terdapat 12 gen dalam kromosom, karena rute perjalanan awal dimulai dari gudang perusahaan. Dari 12 gen yang ada, banyaknya rute yang mungkin untuk dapat dilewati adalah sebagai berikut. 48 (12 1)! 2 39.916.800 s 19.958.400 2 s 3.4 Untuk mencari rute terpendek, sebelumnya harus diketahui jarak tempuh pendistribusian dari gudang menuju MM dan kembali ke gudang dalam satu kali perjalanan distribusi. Dalam hal ini adalah mengetahui nilai dari individu, sehingga harus dicari terlebih dahulu jarak dari gudang ke MM dan jarak antar MM. Dengan menggunakan bantuan Google Earth, jarak dari gudang ke MM dan jarak antar MM dapat diketahui dalam tabel dibawah ini. Tabel 3. Jarak antar MM dan jarak gudang ke MM dalam satuan Km Lokasi 1 2 3 4 5 6 7 8 9 10 11 12 1 0 9,3 6,3 7,5 18,5 7,4 15,2 7,8 10,6 5,5 8,6 14,5 2 9,3 0 3 3,6 9,4 1,8 4,5 2,4 7,5 6,2 4,6 6,7 3 6,3 3 0 3,4 11,2 1,3 9,3 3,1 7,8 6,1 5,5 9,9 4 7,5 3,6 3,4 0 8,4 3,9 4,2 1,3 5,5 3,1 1,6 8,0 5 18,5 9,4 11,2 8,4 0 14,2 7,4 8,6 18,4 11,1 5,7 11,2 6 7,4 1,8 1,3 3,9 14,2 0 7,9 3,5 7,4 5,1 5,3 8,2 7 15,2 4,5 9,3 4,2 7,4 7,9 0 3,7 8,8 7,3 3,9 5,0 8 7,8 2,4 3,1 1,3 8,6 3,5 3,7 0 6,1 4,1 2,9 6,8 9 10,6 7,5 7,8 5,5 18,4 7,4 8,8 6,1 0 2,1 6,7 12,9 10 5,5 6,2 6,1 3,1 11,1 5,1 7,3 4,1 2,1 0 4,7 10,2 11 8,6 4,6 5,5 1,6 5,7 5,3 3,9 2,9 6,7 4,7 0 8,1 12 14,5 6,7 9,9 8,0 11,2 8,2 5,0 6,8 12,9 10,2 8,1 0 49 Selanjutnya dalam pencarian rute terpendek pendistribusian barang PT. Fastra Buana di Kota Yogyakarta dengan langkah-langkah yang sama dengan pendistribusian di Kota Bantul. Langkah-langkah pencarian rute terpendek sebagai berikut. a) Membangkitkan Populasi Awal Menurut persamaan 3.3 seluruh kemungkinan rute yang digunakan dalam proses distribusi di kota Bantul sebanyak 19.958.400 rute. dengan menggunakan Algoritma Genetika, akan diambil beberapa rute secara acak. Rute distribusi ini disebut dengan individu. Dengan bantuan software matlab, diambil beberapa rute secara acak. Prosedunya pengambilan secara acak dapat dilihat di lampiran 3. Hasil pengambilan secara acak rute perjalanan yang membentuk populasi pertama pada generasi pertama adalah sebagai berikut. Individu 1 = 6 3 7 5 9 10 2 1 8 Individu 2 = 5 6 1 12 Individu 3 = 6 11 2 Individu 4 = 9 4 Individu 5 = 11 Individu 6 = 7 Individu 7 = 12 10 8 2 4 4 8 1 3 11 10 1 12 5 9 1 8 2 7 6 8 3 9 10 11 Individu 8= 1 2 9 10 6 11 Individu 9= 2 7 3 5 6 9 4 Individu 10 = 8 5 6 10 2 1 3 4 10 3 50 11 12 4 11 11 3 7 9 12 9 7 5 10 8 2 5 3 6 7 12 6 2 1 9 3 4 4 10 2 3 12 5 5 7 1 6 8 12 5 4 7 8 12 10 8 11 1 7 9 4 11 12 Individu 11 = 8 10 6 11 5 9 7 Individu 12 = 12 Individu 13 = 9 2 11 6 7 10 5 12 8 1 6 2 7 4 10 Individu 14 = 2 8 7 9 3 4 5 1 11 Individu 15 = 11 12 9 4 3 5 1 3 1 8 6 12 4 2 4 3 1 9 11 3 6 12 10 5 8 10 7 2. Setelah mendapatkan populasi awal. Maka akan ditentukan nilai fitness masingmasing individu b) Menentukan Nilai Fitness Nilai fitness masing-masing individu ditentukan dengan rumus (2.4). didapatkan nilai fitness sebagai berikut (perhitungan nilai fitness terdapat di lampiran 5) : Individu 1 nilai fitness = 0.0120 Individu 2 nilsi fitness = 0.0100 Individu 3 nilai fitness = 0.0119 Individu 4 nilai Fitness = 0.0139 Individu 5 nilai Fitness = 0.0123 Individu 6 nilai Fitness = 0.0135 Individu 7 nilai Fitness = 0.0107 Individu 8 nilai Fitness = 0.0125 Individu 9 nilai Fitness = 0.0105 Individu 10 nilai Fitness = 0.0111 Individu 11 nilai Fitness = 0.0109 Individu 12 nilai Fitness = 0.0110 51 Individu 13 nilai Fitness = 0.0138 Individu 14 nilai Fitness = 0.0109 Individu 15 nilai Fitness = 0.0110. Setelah dihitung nilaii fitness, didapatkan individu dengan nilai fitness tertinggi pada Individu 4. Nilai fitnessnya adalah 0.0139. Individu 4 akan dipertahankan dan dibawa ke genarasi selanjutnya. c) Seleksi Mesin Roulette (Roulette Wheel Selection) Seperti langkah yang diterpakan pencarian rute terpendek sebelumnya, akan dipilih secara acak dari individu-individu diatas untuk mendapatkan induk yang selanjutnya akan di lakukan proses pindah silang. Individu-individu yang terpilih sebagai induk adalah sebagai berikut (Perhitungannya terdapat dilampiran 5). 1) Induk 1=Individu 12 = 12 Induk 2= Individu11= 8 9 10 2 6 11 6 7 10 11 5 9 7 8 3 5 1 4 3 1 12 4 2 2) Induk 1 = Individu 7 = 12 4 10 3 11 2 9 5 7 1 6 8 Induk 2 = Individu 12= 12 9 2 11 6 7 10 8 5 4 3 1 3) Induk 1 = Individu 13 =5 12 8 1 6 2 7 4 10 9 11 3 Induk 2 = Individu 5 = 4 11 5 9 1 8 2 7 12 6 10 3 4) Induk 1 = Individu 9 = 2 7 3 5 6 9 4 12 10 8 11 1 Induk 2 = Individu 13 =5 12 8 1 6 2 7 4 10 9 11 3 5) Induk 1 = Individu 8 = 1 2 9 10 6 11 3 12 5 4 7 8 Induk 2 = Individu 5= 4 11 5 9 1 8 2 7 12 6 10 3 6) Induk 1 = Individu 4= 9 4 11 10 1 12 2 5 3 6 52 7 8 Induk 2 = Individu 2= 5 6 1 7) Induk 1 = Individu 15 =11 12 Induk 2 = Individu 11 = 8 10 12 10 8 2 4 11 3 7 9 4 3 5 1 6 8 10 7 2 11 5 9 7 3 1 12 4 2. 9 6 Individu-individu di atas terpilih sebagai induk dengan melakukan proses seleksi mesin roulette sebanyak 7 kali. Induk pertama dan induk kedua selanjutnya akan dilakukan pindah silang guna mendapatkan anak atau keturunan baru. d) Pindah Silang (CrossOver) Dengan bantuan software matlab didapatkan keturunan (Prosedur pindah silang terdapat di lampiran 3). Berikut hasil keturunan yang diperoleh. 1) anak 1 = 2 11 6 7 10 8 5 3 1 12 4 9 anak 2 = 10 6 11 5 9 7 1 12 2 4 3 8 2) anak 1 = 2 9 5 1 6 7 10 8 12 4 3 11 anak 2 = 8 4 3 1 11 2 9 5 12 6 7 10 8 2 7 12 6 4 10 3) anak 1 = 11 3 anak 2 = 12 9 3 1 8 1 6 2 7 4 10 8 11 1 6 2 7 3 5 9 4 12 anak 2 = 7 10 11 3 6 9 4 5 12 8 1 2 5) anak 1 = 5 4 9 1 8 2 10 11 3 anak 2 = 7 4 9 10 6 11 3 12 5 1 8 2 6) anak 1 = 8 4 9 10 6 11 3 12 5 1 7 2 anak 2 = 9 4 11 10 8 2 5 3 6 7) anak 1 = 9 5 6 8 12 4 11 4) anak 1 = 10 1 10 12 2 53 7 12 7 7 6 3 1 9 5 11 5 anak 2 = 5 9 3 12 4 2 1 6 8 10 7 11 Anak yang dihasilkan dari proses pindah silang di atas, selanjutanya akan dilakukan proses mutasi. Proses mutasi dilakukan pada anak hasil pindah silang dengan tujuan untuk memperoleh individu baru sebagai kandidat solusi pada generasi mendatang dengan fitness yang lebih baik, dan lama-kelamaan menuju solusi optimum yang diinginkan. e) Mutasi Setelah dilakukan operator pindah silang didapatkan keturunan-keturunan yang selanjutkan akan di proses mutasi. Skema mutasi yang digunakan adalah swaping mutation. Dengan bantuan software matlab didapatkan individu hasil mutasi. Prosedur mutasi terdapat di lampiran 3. Berikut hasil mutasi yang diperoleh: 1) Individu baru anak 1 = 2 11 Individu baru anak 2 = 10 6 6 7 11 10 8 5 3 9 7 1 12 5 2) Individu baru anak 1 = 2 9 5 1 6 Individu baru anak 2 = 8 4 3 1 11 3) Individu baru anak 1 = 11 3 9 1 Individu baru anak 2 = 12 3 8 4) Individu baru anak 1 = 10 8 Individu baru anak 2 = 7 12 4 9 4 3 8 2 10 8 12 4 3 11 2 9 5 12 6 7 10 8 2 7 12 6 4 10 5 1 6 2 7 4 10 9 11 5 11 1 6 2 7 3 5 9 4 12 10 11 3 6 9 4 5 12 8 1 2 5) Individu baru anak 1 = 5 4 9 1 8 2 10 11 3 Individu baru anak 2 = 7 4 9 10 6 11 3 12 5 1 8 2 6) Individu baru anak 1 = 9 4 11 10 1 12 7 8 2 5 3 6 Individu baru anak 2 = 5 6 1 12 10 8 2 4 11 3 7 9 54 7 1 7 12 6 7) Individu baru anak 1 = 9 5 6 8 10 2 7 3 Individu baru anak 2 = 5 9 3 12 4 2 1 1 6 12 8 4 10 11 7 11 Individu baru yang dihasilkan, selanjutnya akan digunakan untuk membentuk populasi baru pada generasi ke dua. f) Pembentukan Populasi Baru Setelah langkah-langkah pembentukan populasi awal, penentuan nilai fitness, seleksi, pindah silang dan mutasi dilakukan, maka dibentuk populasi selanjutnya di generasi ke dua. Individu terbaik dengan nilai fitness tertinggi pada populasi awal dibawa ke populasi kedua. Proses mempertahankan individu dengan fitness terbaik dan dibawa ke generasi selanjutnya merupakan proses dari elitism. Prosedur pembentukan populasi baru selanjutnya terdapat dalam lampiran 3 dengan bantuan software matlab. Berikut merupakan hasil populasi baru di generasi ke dua. Individu 1 = 9 4 11 10 1 12 7 8 2 5 3 6 Individu 2 = 2 11 6 7 10 8 5 3 1 12 4 9 Individu 3 = 10 6 11 5 9 7 1 12 2 4 3 8 Individu 4 = 2 9 5 1 6 12 4 3 11 Individu 5 = 8 4 3 1 11 2 9 5 Individu 6 = 11 3 9 1 8 2 7 12 6 4 10 5 Individu 7 = 12 3 8 1 6 2 7 4 10 9 11 5 Individu 8 = 10 8 11 1 6 2 7 3 5 9 4 12 Individu 9 = 7 10 11 3 6 9 4 5 12 8 1 2 Individu 10 = 5 4 9 10 11 3 1 7 8 55 2 10 7 8 12 12 6 6 7 10 Individu 11 = 7 4 9 10 6 11 3 12 5 1 8 2 Individu 12 = 9 4 11 10 1 12 7 8 2 5 3 6 Individu 13 = 5 6 1 12 10 8 2 4 11 3 7 9 Individu 14 = 9 5 6 8 10 2 7 3 1 12 4 11 Individu 15= 5 9 3 12 4 2 1 6 8 10 7 11. Prosedur-prosedur penentuan nilai fitness, seleksi, pindah silang dan mutasi dilakukan pada generasi kedua untuk menentukan populasi di generasi selanjutnya. Iterasi tersebut dilakukan sampai mendapatkan nilai fitness sudah konvergen pada suatu nilai di generasi tertentu, dimana tidak ada nilai fitness yang lebih tinggi lagi di generasi selanjutnya. Hasil fitness paling optimum terdapat dalam generasi ke-14. Populasinya baru dari generasi ke- 14 sebagai berikut (generasi sebelumnya terdapat di lampiran 7 ). 3 6 2 8 7 12 5 11 4 9 10 1 9 11 1 3 6 2 8 7 12 5 4 10 11 4 9 3 8 7 1 5 12 2 10 6 10 1 5 11 8 9 3 6 2 4 7 12 9 2 10 1 7 4 3 12 6 8 5 11 3 6 2 8 7 9 12 10 1 5 11 4 1 6 2 8 7 3 12 5 11 4 9 10 1 6 2 7 12 5 11 4 3 9 10 8 1 6 2 7 10 8 11 4 9 10 3 11 2 4 8 3 7 9 12 12 5 5 1 6 56 1 6 4 9 10 2 8 7 12 5 11 3 10 1 8 6 2 7 11 4 3 9 12 5 10 1 11 6 2 7 8 4 3 9 12 5 1 8 11 4 3 9 5 6 2 7 12 10 11 8 1 6 2 7 5 4 3 9 12 10. Populasi baru di generasi ke 14 memiliki nilai fitnees yang sudah optimum, dimana nilai fitnessnya adalah 0,0192. Berikut grafik pergerakan nilai fitness dari populasi diatas. 0.02 0.018 0.016 0.014 Fitness 0.012 0.01 0.008 0.006 Fitness terbaik : 0.019194 Fitness rata-rata : 0.014354 Panjang jalur terbaik : 52.100 Ukuran populasi : 15 Probabilitas mutasi : 0.005 0.004 0.002 0 5 10 15 Gambar 3.2 20 25 30 Generasi 35 40 45 50 Grafik pergerakan nilai fitnesss Jadi telah didapatkan solusi dari permasalahan PT fastra Buana untuk pendistribusian barang di Kota Yogyakarta. Rute terpendek yang dapat ditempuh dari gudang menuju semua swalayan dan kembali lagi ke gudang adalah dengan rute berawal dari Gudang PT. Fastra Buana – D.M. Swalayan – Pamella Swalayan 57 – Beka MiniMarket – Lativa Swalayan – Mirota Kampus – PT. Indomarco Prismatama – Risma Mini Market – AL Fattah MiniMarket – MAGA Swalayan – Al Fatt Swalayan – Indo Giri MiniMarket - Gudang PT Fastra Buana. Jarak rute tempuh nya adalah 52,1 Km. Seperti pada pencarian rute terpendek di Kota Bantul, hasil pencarian rute terpendek pendistribusian barang di Kota Yogyakarta di atas diperkuat dengan melakukan beberapa kali percobaan. Berikut diberikan tabel hasil percobaan sehingga didapatkan solusi pendistribusian barang di Kota Yogyakarta dengan jarak tempuh nya 52,1 Km. Tabel 4. Hasil percobaan dengan program menggunakan software MATLAB ke- Populasi 1 15 Konvergen pada Generasi ke36 2 15 32 0.01795 12-2-3-6-8-4-1-10-9-11-5-7-12 55.7 3 15 14 0.01919 12-5-11-4-9-10-1-3-6-2-8-7-12 52.1 4 20 18 0.01695 12-7-8-3-4-9-10-1-6-2-11-5-12 59.0 5 20 41 0.01802 12-7-9-10-1-3-6-2-4-8-11-5-12 55.5 6 20 28 0.01798 12-8-4-11-5-2-6-3-1-10-9-7-12 55.5 7 25 22 0.01709 12-7-5-11-1-3-2-6-9-10-4-8-12 58.5 8 25 9 0.01577 12-7-2-6-8-4-11-5-10-9-1-3-12 63.4 9 30 26 0.01769 12-7-5-11-8-4-10-9-1-6-3-2-12 56.5 10 30 27 0.01730 12-7-5-11-10-9-1-8-4-3-6-2-12 57.8 Percobaaan Ukuran Nilai 0.01712 12-6-3-4-8-2-9-10-1-11-5-7-12 Panjang Rute (Km) 58.4 Fitness Rute Tabel 4 di atas merupakan percobaan yang dilakukan dengan mengganti ukuran populasi. Nilai fitness optimum yang diperoleh dari beberapa kali percobaan yaitu 0.01919, sehingga rute terpendek pendistribusian barang di Kota Yogyakarta telah didapatkan. 58 BAB IV PENUTUP A. Kesimpulan Berdasarkan hasil penelitian diatas mengenai penentuan rute terpendek pendistribusian barang di PT Fastra Buana dengan menggunakan Algoritma Genetika, dapat disimpulkan sebagai berikut. 1. Aplikasi Algoritma Genetika dengan metode Roulette Wheel Selection dalam menentukan rute terpendek pada pendistribusian barang di Kota Bantul dan Yogyakarta diperoleh dengan langkah-langkah berikut. a. Mendefinisikan individu dengan permutation encoding b. Membentuk populasi awal c. Menghitung nilai fitness dari masing-masing individu sehingga mendapatkan individu terbaik dari populasi awal yaitu inversi dari jarak total dari satu individu d. Melakukan proses seleksi dengan Roulette Wheel Selection, e. Menghasilkan keturunan baru dengan operator pindah silang order crossover, f. Melakukan operator mutasi dengan swapping mutation, g. Membentuk populasi baru di generasi ke dua dengan membawa individu terbaik yang telah dipertahankan dari populasi awal (elitism), h. Mengulang langkah-langkah c, d, e, f, g, h sampai mendapatkan individu dengan nilai fitness yang sudah konvergen, sehingga didapatkan rute distribusi dengan rute terpendek. 59 2. Rute terpendek pendistribusian barang P.T. Fastra Buana telah didapatkan dengan mengikuti langkah-langkah di atas. Rute terpendek pendistribusian barang di Kota Bantul yaitu dari Gudang P.T. Fastra Buana – Putri MS Swalayan – MiniMarket Bunda – WS Toserba – Purnama Swalayan – Mulia Swalayan – Agung Swalayan – Prima Swalayan – DM Swalayan – Gudang P.T. Fastra Buana. Jarak rute tempuh nya adalah 49,7 Km. Rute terpendek untuk pendistribusian barang di Kota Yogyakarta yaitu dari Gudang P.T. Fastra Buana – D.M. Swalayan – Pamella Swalayan – Beka MiniMarket – Lativa Swalayan – Mirota Kampus – P.T. Indomarco Prismatama – Risma Mini Market – AL Fattah MiniMarket – MAGA Swalayan – Al Fatt Swalayan – Indo Giri MiniMarket - Gudang P.T. Fastra Buana. Jarak rute tempuh nya adalah 52,1 KM B. Saran Dalam penelitian skripsi ini, penulis baru membahas mengenai algoritma genetika menggunakan seleksi mesin roulette untuk optimalisasi jarak atau rute pendistribusian barang, penulis menyarankan agar membahas dengan metode seleksi lain yaitu rank-based fitness assignment, seleksi lokal (local selection), seleksi dengan pemotongan (truncation selection) dan seleksi dengan turnamen (tournament selection) untuk menyelesaikan masalah optimasi pendistribusian barang dalam kasus TSP. 60 DAFTAR PUSTAKA Anwar Toni & Yuliani Willi. (2005). Penerapan Algoritma Genetika untuk Travelling Salesmen Problem dengan Menggunakan Order Crossover dan Insertion Mutation. Jurnal. UII. Asmi Baharudin. (2012). Travelling Salesman Problem menggunakan Algoritma Genetika Berbasis Android. Jurnal. ITS. Aulia F, & Achmad Z. (2006). Penerapan Algoritma Genetika pada Pedagang Keliling. Diakses dari http://www. Eprint.upnjatim.ac.id./4361/1/file/pdf pada tanggal 13 September 2013. Budi Sukmawan. (2003). Sekilas Tentang Algoritma Genetika dan Aplikasinya pada Optimasi Jaringan Pipa Air Bersih. Diakses dari http://www. Bdg.centrin.net.id/~budskman/ga pada 13 September 2013. Chartrand, Gary & Lesniak. (1986). Graphs and Digraphs. California: Greg Hubit Bookwords. E., Satriyanto. (2009). Algoritma Genetika. Diakses dari http.//lectures.eepisits.ed u/~kangedi/materi%20kuliah/kecerdasan%20Buatan/bab%207%Algoritma %20Genetika.pdf pada 14 September 2013. Fariza A., Martiana E., & Sucipto H. (2006). Aplikasi Algoritma Genetika Multi Objektif pada TSP. Politeknik Elektronika ITS. Fathul Wahid. (2004). Dasar-Dasar Algoritma dan Pemrograman. Yogyakarta: Andi Offset. Gen, Mitsuo. (1997). Genetic Algorithms and Engineering Design. Newyork: John Wiley 7 Sons Inc. 61 Goldberg, D. E. (1989). Genetik Algorithms In Search, Optimization and Machine Learning. New York: Addison-Wesley Publishing. Kotler, Philip. (1997). Marketing Management Analysis Planning Implementation and Control. New Jersey: Prentice Hall. Kusrini K. (2008). Penyelesaian Travelling Salesman Problem dengan Algoritma Genetika. Diakses dari http://www.puslit.petra.ac.id/journals/request.php. pada tanggal 13 September 2013. Michalewicz, Z. (1996). Genetic Algorithm and Data Structures. Evolution Programs. 3rd: Springer-Verlag. N, Murniati. (2009). Penerapan Algoritma Genetika pada DNA Sequencing By Hibbridization. Skripsi. Depok: Departemen Matematika UI. Rinaldi Munir. (1999). Algoritma dan Pemrograman Bahasa Pascal dan C. Bandung: Informatika. Rinaldi Munir. (2009). Matematika Diskrit. Edisi 3. Jakarta: Gramedia. Rosen, Kenneth H. (2003). Discrete Mathematics and Its Application. New York: The McGraw-Hill Companies. Sri Kusumadewi. (2003). Artificial Intelligence (Teknik dan Aplikasinya). Yogyakarta: Graha Ilmu. Susanto. (2007). Operation Research. Jakarta : Erlangga. Suyanto. (2005). Algoritma Genetika dalam Matlab. Yogyakarta: Andi Offset. Vasudev, C. (2006). Graph Teory with Aplications. New Delhi: New Age International Publisher. 62 W. S. E. Tanjung. (2010). Kajian Algoritma Genetika. Skripsi. Universitas Sumatera Utara. 63 Lampiran 1 Lokasi dan alamat MM di Kota Bantul. Tabel 5. Alamat MM di Kota Bantul No. Lokasi Alamat 1. Purnama Swalayan Jln. Pramuka 3 Melikan Bantul 2. Mulia Swalayan Jln. Urip Sumoharjo(Gose) Bantul 3. WS Toserba Jln. Bantul Km. 8 Yogyakarta 4. Agung Swalayan Jln.Ganjuran Sumbermulyo Bambanglipuro 5. DM Swalayan Jln. Pleret Bantul Yogyakarta 6. Prima Swalayan Jln. Srandakan Km 7,5 Bantul 7. Putri MS Swalayan Jln. Parangtritis Km 7 Yogyakarta 8. MiniMarket Bunda Jln. Cepit Raya, Bantul Yogyakarta 64 Lampiran 2 Lokasi dan Alamat MM di Kota Yogyakarta. Tabel 6. Alamat MM di Kota Yogyakarta No. Lokasi Alamat 1. PT. Indomarco Prismatama Jln. RingRoad Barat no. 99 2. MAGA Swalayan Jln. D.I. Panjaitan Yogyakarta 3. Risma MiniMarket Jln. R.E. Martadinata Yogyakarta 4. Beka MiniMarket Jln. Suryo Pranoto no. 58 Yogyakarta 5. D.M. Swalayan Jln. Jogja-Wonosari Km. 10 Yk 6. AL-Fattah MiniMarket Jln. LetJend S. Parman no. 56 Yk 7. Indo Giri MiniMarket Jln. Imogiri Km. 7 Yogyakarta 8. Al-Fath MiniMarket Jln. Taman Siswa 148 Yogyakarta 9. Lativa Swalayan Jln. Kali Urang Km 7/20 Yogyakarta 10. Mirota Kampus Jln. C. Simanjuntak no. 70 Yogyakarta 11. Pamella Swalayan Jln. Kusumanegara 141 Yogyakarta 65 Lampiran 3 Prosedur Algoritma Genetika menggunakan Software Matlab dalam penyelesaian masalah pendistribusian barang di P.T. Fastra Buana. Prosedur Algoritma Genetika ini dimodifikasi dari Suyanto (2005: 86). 1. Membangkitkan Populasi Awal Membangkitkan populasi awal diimplementasikan menggunakan baris-baris perintah pada fungsi A.m berikut ini. function P =A (N,n) for B= 1:N, [X,Y]= sort(rand(1,n)); P (B,:)=Y; end Perintah rand (1,n) menyatakan pembangkitan matriks berukuran 1 x n (jumlah gen) yang berisi bilangan random dalam interval [0,1). Pada perintah [X,Y]=sort(rand(1,n)), X menyatakan bilangan-bilangan random dalam interval [0,1) hasil pengurutan secara ascending. Y merupakan indeks dari bilanganbilangan yang dibangkitkan random. Indeks Y merupakan nomor urut MM yang dibangkitkan. Iterasi di atas dilakukan sebanyak N (banyaknya individu dalam populasi), sehingga didapatkan populasi awal. 2. Menghitung nilai Fitness Perhitungan nilai fitness dari populasi awal yang sudah terbentuk diimplementasikan dalam perintah pada fungsi C.m berikut ini. function F = C(K,n,J) 66 TB = 0; for B=1:n-1, TB= TB + J(K(B+1),K(B)); end TB=TB + J(K(n), K(1)); F = 1/TB; Variabel pada fungsi C.m adalah K (individu dari populasi), n (jumlah gen) dan J (jarak lokasi MM dan gudang). TB merupakan total jarak dari individu (nilai dari individu) sedangkan nilai fitness suatu individu dinyatakan dalam F=1/TB. function Lfr=D(N,F,M,m) [s,g] = sort(Fitness); for B=1:N, Lfr(s(N-B+1))= M-(M-m)*((B-1)/(N-1)); end 3. Seleksi Mesin Roulette (Roulette Wheel Selection) Operator seleksi dari populasi awal yang sudah terbentuk diimplementasikan dalam perintah pada fungsi RW.m berikut ini. function p=RW(N,LF) JF= sum(LF); KF = 0; RN = rand; B = 1; while B<=N, KF = KF + LF(B); if (KF/JF)>RN, 67 p =B; break; end B=B+1; end Variabel pada fungsi RW.m adalah N (banyaknya individu dalam populasi) dan LF nilai fitness). JF=sum(LF) merupakan jumlah keseluruhan nilai fitness dalam populasi. KF merupakan nilai fitness kumulatif dari individu. Jika kumulatif fitness dibagi Jumlah fitness lebih dari bilangan random yang dibangkitkan maka iterasi berhenti, sehingga didapatkan p (indeks) dari individu yang terpilih.sebagai induk. 4. Operator Pindah Silang (Order Crossover) Operator pindah silang dari populasi awal yang diimplementasikan dalam perintah pada fungsi T.m berikut ini. function An= T(Bp,Ib,n) cp1=1 + fix(rand*(n-1)); cp2=1 + fix(rand*(n-1)); while cp2==cp1, cp2 = 1+fix(rand*(n-1)); end if cp1 < cp2, cps=cp1; cpd=cp2; else cps = cp2; 68 sudah terbentuk cpd = cp1; end An(1,cps+1:cpd) = Ib(cps+1:cpd); An(2,cps+1:cpd) = Bp(cps+1:cpd); SBp = []; SIb = []; for B=1:n, if ~ismember(Bp(B),An (1,:)), SBp = [SBp Bp(B)]; end if ~ismember(Ib(B),An (2,:)), SIb = [SIb Ib (B)]; end end An(1,cpd+1:n)=SBp(1:n-cpd); An(1,1:cps)= SBp(1+n-cpd:length(SBp)); An(2,cpd+1:n)=SIb(1:n-cpd); An(2,1:cps)=SIb(1+n-cpd:length(SIb)); Variabel pada fungsi T.m adalah Bp (induk ke-1 yang terpilih), Ib (induk ke-2 yang terpilih) dan n (jumlah gen). Mula-mula 2 buah bilangan dibangkitkan secara acak untuk menentukan titik potong kedua induk. Kemudian dua kromosom anak (An) mendapatkan gen-gen dari kromosom Bp dan Ib. Posisi-posisi gen yang masih kosong pada An pertama diisi dengan gen dari Bp yang belum ada pada An pertama, dan An kedua diisi dengan gen dari Ib yang belum ada pada An kedua. Hasil dari fungsi ini berupa kromosom baru yang membawa sifat dari induknya. 69 5. Mutasi dengan Swapping Mutation Operator pindah silang dari populasi awal yang sudah terbentuk diimplementasikan dalam perintah pada fungsi TM.m berikut ini. function MK = TM(K,n,Pm) MK = K; for B=1:n, if rand < Pm, TM2=1+fix(rand*n); while TM2==B, TM2 = 1 + fix(rand*n); end tP = MK(B); MK(B)=MK(TM2); MK(TM2)=tP; end end Variabel pada fungsi TM.m di atas adalah K (anak hasil pindah silang), n (jumlah gen) dan Pm (probabilitas mutasi). Mula-mula membangkitkan bilangan random dalam interval [0,1). Jika bilangan random yang dibangkitkan kurang dari Pm maka ditentukan posisi gen dalam kromosom yang akan ditukar. Kemudian menukar nilai gen yang terpilih dalam kromosom sehingga didapatkan kromosom baru hasil mutasi (MK). 70 6. Program Utama Sebagai program utama, fungsi ini memanggil semua fungsi-fungsi di atas. Pada program utama berikut, memasukkan variabel-variabel J (jarak antar lokasi), n (jumlah gen), N (banyaknya individu dalam populasi), Ps (probabilitas pindah silang), Pm (probabilitas mutasi). Program di bawah ini juga ditambahkan perintah untuk menampilak grafik. Pada akhir program variabel JT menyatakan rute terpendek yang didapatkan. clc clear all % untuk pendistribusian di Kota Bantul J = [0 2.3 0.6 6.8 10.4 11.7 3.1 1.7 ; 2.3 0 2.9 5.6 11.9 10.8 5 3.5; 0.6 2.9 0 7 10 12.7 3.3 1.3 ; 6.8 5.6 7 0 18.2 8.6 9.4 8.3; 10.4 11.9 10 18.2 0 19.6 9.1 8.7 ; 11.7 10.8 12.7 8.6 19.6 0 20.3 18.9; 3.1 5 3.3 9.4 9.1 20.3 0 3.3 ; 1.7 3.5 1.3 8.3 8.7 18.9 3.3 0] n = length(J(:,1)) N = 10 Ps = 0.8 Pm = 0.005 MaxG = 50 PJH = 40 Fth = 1/PJH Bg = Fth % Untuk pendistribusian di Kota Yogyakarta 71 J = [0 9.3 6.3 7.5 18.5 7.4 15.2 7.8 10.6 5.5 8.6 14.5 ; 9.3 0 3 3.6 9.4 1.8 4.5 2.4 7.5 6.2 4.6 6.7; 6.3 3 0 3.4 11.2 1.3 9.3 3.1 7.8 6.1 5.5 9.9 ; 7.5 3.6 3.4 0 8.4 3.9 4.2 1.3 5.5 3.1 1.6 8.0; 18.5 9.4 11.2 8.4 0 14.2 7.4 8.6 18.4 11.1 5.7 11.2 ; 7.4 1.8 1.3 3.9 14.2 0 7.9 3.5 7.4 5.1 5.3 8.2; 15.2 4.5 9.3 4.2 7.4 7.9 0 3.7 8.8 7.3 3.9 5.0 ; 7.8 2.4 3.1 1.3 8.6 3.5 3.7 0 6.1 4.1 2.9 6.8; 10.6 7.5 7.8 5.5 18.4 7.4 8.8 6.1 0 2.1 6.7 12.9 ; 5.5 6.2 6.1 3.1 11.1 5.1 7.3 4.1 2.1 0 4.7 10.2; 8.6 4.6 5.5 1.6 5.7 5.3 3.9 2.9 6.7 4.7 0 8.1 ; 14.5 6.7 9.9 8.0 11.2 8.2 5.0 6.8 12.9 10.2 8.1 0] n = length(J(:,1)) N = 15 Ps = 0.8 Pm = 0.005 MaxG = 50 PJH = 50 Fth = 1/PJH Bg = Fth %Inisialisasi grafis hfig =figure; hold on set(hfig, 'position', [50,50,600,400]); set(hfig, 'DoubleBuffer', 'on'); axis([1 MaxG 0 Bg]); hbestplot1 = plot(1:MaxG,zeros(1,MaxG)); hbestplot2 = plot(1:MaxG,zeros(1,MaxG)); 72 htext1 = text(0.6*MaxG, 0.25*Bg, sprintf('Fitness terbaik: %7.6f', 0.0)); htext2 = text(0.6*MaxG, 0.20*Bg, sprintf('Fitness rata-rata: %7.6f', 0.0)); htext3 = text(0.6*MaxG, 0.15*Bg, sprintf('Panjang Jalur Terbaik: %7.3f', 0.0)); htext4 = text(0.6*MaxG, 0.10*Bg, sprintf('Ukuran Populasi: %3.0f', 0.0)); htext5 = text(0.6*MaxG, 0.05*Bg, sprintf('Probabilitas: %4.3f', 0.0)); xlabel('Generasi'); ylabel('Fitness'); hold off drawnow; %Inisialisasi Populasi P = A(N,n) for generasi = 1:MaxG, M = C(P(1,:),n,J); m=M; IIT = 1; for B=1:N, F(B)= C(P (B,:), n,J); if (F(B)> M), M=F(B) IIT = B; JT = P (B,:); end if (F(B)<=m), m = F(B) 73 end end FR = mean(F); plotvektor1=get(hbestplot1, 'YData'); plotvektor1(generasi)= M; set(hbestplot1,'YData',plotvektor1); plotvektor2=get(hbestplot2, 'YData'); plotvektor2(generasi)= FR; set(hbestplot2,'YData',plotvektor2); set(htext1,'String',sprintf('Fitness terbaik : %7.6f', M)); set(htext2,'String',sprintf('Fitness rata-rata : %7.6f',FR)); set(htext3,'String',sprintf('Panjang jalur terbaik : %7.3f', 1/M)); set(htext4,'String',sprintf('Ukuran populasi : %3.0f', N)); set(htext5,'String',sprintf('Probabilitas mutasi : %4.3f', Pm)); drawnow if M > Fth, break; end TP = P; %Elitism if mod(UkPop,2)==0; %Ukuran Populasi Genap IterasiMulai = 3; TP(1,:)= P(IIT,:); TP(2,:)= P(IIT,:); else %Ukiuran Populasi Ganjil IterasiMulai = 2; TP(1,:)=P(IIT,:); 74 end LF = D(N,F,M,m) % Roulette-wheel selection dan Pindah silang for O=IterasiMulai:2:N, IP1=RW(N,LF) IP2=RW(N,LF) if (rand < Ps), An = T(P(IP1,:),P (IP2,:),n) TP(O,:)= An(1,:); TP(O+1,:)=An(2,:); else TP(O,:) = P(IP1,:); TP(O+1,:)= P(IP2,:); end end %Mutasi diakukan pada semua kromosom for Q=IterasiMulai:N, TP(Q,:)=TM(TP(Q,:),n,Pm); end P = TP end JT save JT.mat JT 75 Lampiran 4. Perhitungan nilai fitness dan seleksi Roulette Wheel Selection pendistribusian di Kota Bantul. Dari pembentukan populasi awal : Individu 1 = 3 4 9 1 6 7 2 5 8 Individu 2 = 1 6 2 5 3 9 7 4 8 Individu 3 = 9 8 6 7 5 2 1 3 4 Individu 4 = 4 6 7 2 9 1 3 5 8 Individu 5 = 5 1 6 2 7 9 8 3 4 Individu 6 = 6 7 1 2 4 3 9 5 8 Individu 7 = 9 7 1 5 4 6 2 8 3 Individu 8 = 6 1 3 2 4 8 9 7 5 Individu 9 = 3 5 7 4 8 2 1 6 9 Individu 10 = 7 2 9 5 1 6 3 4 8 Individu 11 = 5 3 9 7 8 4 1 6 2 Individu 12 = 9 6 1 8 7 5 4 3 2 Individu 13 = 4 6 7 2 5 9 1 8 3 Individu 14 = 8 6 5 3 2 7 1 9 4 Individu 15 = 6 1 7 5 8 3 2 4 9 Didapatkan nilai fitness dalam tabel 7 berikut. 76 untuk Tabel 7. Nilai Fitness individu pada generasi ke-1 Individu ke-i x = Jarak (Km) f(i)=Fitness ke-i (1/x) (Km) f(i)=Fitness ke-i (1/x) 1 85.7 0.0117 9 78.8 0.0127 2 73.2 0.0137 10 72.1 0.0139 3 87.8 0.0114 11 72.2 0.0139 4 76.5 0.0131 12 80.5 0.0124 5 72 0.0139 13 67.7 0.0148 6 77.5 0.0129 14 87.6 0.0114 7 65.3 0.0153 15 73.8 0.0136 8 65.4 0.0153 Individu ke-i x = Jarak Kemudian memilih individu yang akan diseleksi dengan Roulette Wheel Selection dengan langkah-langkah sebagai berikut. Menghitung nilai total fitness. Total fitness = ∑f(i) = 0.0117 + 0.0117 + 0.0114 + … + 0.0136 = 0.2000 77 Menghitung probabilitas individu dan probablitas kumulatif individu diebrikan dalam tabel 8 berikut. Tabel 8. Probabilitas Individu pada generasi ke-1 Individu ke-i Probabilitas Individu P[i] = f(i)/∑f(i) Probabilitas Individu ke-i Kumulatif Probabilitas Individu Probabilitas P[i] =f(i)/∑f(i) Kumulatif 1 0.0585 0.0585 9 0.0635 0.6000 2 0.0685 0.1270 10 0.0695 0.6695 3 0.0570 0.1840 11 0.0695 0.7390 4 0.0655 0.2495 12 0.0620 0.8010 5 0.0695 0.3190 13 0.0740 0.8750 6 0.0645 0.3835 14 0.0570 0.9320 7 0.0765 0.4600 15 0.0680 1.0000 8 0.0765 0.5365 Membangkitkan 2 bilangan acak (dengan software matlab) antara [0,1] untuk menentukan individu yang terpilih sebagai induk. r1 = 0.6432 r5 = 0.1123, r2 = 0.7864 0.5012, r6 = 0.9456, r3 = 0.6132 0.3766 0.3289, r7 = 0.6832, r4 = 0.8132 0.5276 0.5912, 0.9653 0.0785, 78 Berdasarkan bilangan acak yang dibangkitkan terhadap probabilitas kumulatif individunya, maka individu yang terpilih sebagai induk adalah sebagai berikut. seleksi ke-1= individu 10 seleksi ke-5= individu 3, seleksi ke-2= individu 8, individu 12 seleksi ke-6= individu 15, seleksi ke-3= individu 6 individu 6, individu 10 seleksi ke-7= individu 11, seleksi ke-4= individu 13 individu 8 individu 9, individu 15 individu 11, 79 Lampiran 5. Perhitungan nilai fitness dan seleksi Roulette Wheel Selection untuk pendistribusian di kota Yogyakarta. Individu 1 = 6 3 7 5 9 10 2 1 8 Individu 2 = 5 6 1 12 10 8 2 4 Individu 3 = 6 11 2 4 8 1 3 Individu 4 = 9 4 11 10 1 12 Individu 5 = 11 9 1 8 Individu 6 = 7 Individu 7 = 12 Individu 8= 1 2 9 10 6 11 Individu 9= 2 7 3 5 6 9 4 Individu 10 = 8 5 6 10 2 1 Individu 11 = 8 10 6 11 5 Individu 12 = 12 9 2 11 6 Individu 13 = 5 12 8 1 6 2 7 4 10 Individu 14 = 2 8 7 9 3 4 5 1 11 Individu 15 = 11 12 5 6 8 4 3 10 9 9 3 4 12 4 11 11 3 7 9 12 9 7 5 10 7 8 2 5 3 6 2 7 12 6 4 10 3 10 11 1 4 2 12 5 11 3 2 5 7 1 6 8 12 5 4 7 8 12 10 8 11 1 3 7 9 4 11 12 9 7 3 1 12 4 2 7 10 4 3 1 9 11 3 6 12 10 5 9 3 1 8 6 5 8 10 7 2 Dari populasi awal yang dibangkitkan, kemudian dihitung nilai fitness yang terdapat pada tabel 9 berikut. 80 Tabel 9. Nilai Fitness individu pada generasi ke-1 Individu ke-i x = Jarak (Km) f(i)=Fitness ke-i (1/x) (Km) f(i)=Fitness ke-i (1/x) 1 83.5 0.0120 9 95.2 0.0105 2 100 0.0100 10 89.8 0.0111 3 84.1 0.0119 11 91.5 0.0109 4 72.2 0.0139 12 90.8 0.0110 5 81.2 0.0123 13 72.3 0.0138 6 74.1 0.0135 14 91.5 0.0109 7 93.5 0.0107 15 91 0.0110 8 80 0.0125 Individu ke-i x = Jarak Kemudian memilih individu yang akan diseleksi dengan Roulette Wheel Selection dengan langkah-langkah berikut. Menghitung nilai total fitnes. Total fitness = ∑f(i) = 0.0120 + 0.0100 + 0.0119 + … + 0.0110 = 0.1760 Menghitung probabilitas individu dan probablitas kumulatif individu yang terdapat pada tabel 10 berikut. 81 Tabel 10. Probabilitas Individu pada generasi ke-1 Individu ke-i Probabilitas Probabilitas Probabilitas Individu Individu Individu ke-i P[i]=f(i)/∑f(i) Kumulatif P[i]=f(i)/∑f(i) Probabilitas Kumulatif 1 0.0682 0.0682 9 0.0597 0.6097 2 0.0568 0.1250 10 0.0631 0.6727 3 0.0676 0.1926 11 0.0619 0.7347 4 0.0790 0.2716 12 0.0625 0.7972 5 0.0699 0.3415 13 0.0784 0.8756 6 0.0767 0.4182 14 0.0619 0.9375 7 0.0608 0.4790 15 0.0625 1.0000 8 0.0710 0.5500 Membangkitkan 2 bilangan acak (dengan software matlab) antara [0,1] untuk menentukan individu yang terpilih sebagai induk. r1 = 0.771 0.6981 r5 = 0.5321 0.3314 r2 = 0.4523 0.7619 r6 = 0.2143 0.0954 r3 = 0.8471 0.2901 r7 = 0.9465 0.7011 r4 = 0.5876 0.8145 Berdasarkan bilangan acak yang dibangkitkan terhadap probabilitas kumulatif individunya, maka individu yang terpilih sebagai induk adalah sebagai berikut. 82 seleksi ke-1= individu 12 seleksi ke-5= individu 11, seleksi ke-2= individu 7 individu 5, seleksi ke-6= individu 12, seleksi ke-3= individu 13 individu 4 individu 2, seleksi ke-7= individu 5, seleksi ke-4= individu 8 individu 15 individu 11, individu 9 individu 13, 83 Lampiran 6. Output Software Matlab proses pencarian rute Anak = terpendek pendistribusian barang di Kota Bantul IP1 = 15 IP2 = 11 Anak = dengan aplikasi Algoritma Genetika. Generasi ke-1 IP1 = 13 IP2 = 8 Anak = Populasi = 3 1 9 4 5 6 9 6 3 7 5 9 4 8 6 4 6 8 6 1 7 7 1 5 2 3 6 6 6 1 9 2 6 7 6 1 1 3 7 9 9 1 7 5 7 1 5 7 2 2 2 5 2 4 5 7 8 2 3 5 6 3 5 9 7 4 4 4 8 1 8 7 5 2 8 7 9 2 1 9 3 6 8 2 6 4 5 9 7 3 2 7 1 3 8 9 2 9 1 3 1 4 1 1 2 5 4 3 5 3 5 8 7 6 4 6 3 8 9 4 8 8 4 8 4 8 3 5 9 8 2 2 3 4 9 IP1 = 6 IP1 = 6 Anak = IP1 = IP2 = 7 1 5 4 6 2 8 9 4 4 3 4 6 4 3 1 1 9 1 1 6 3 3 Operator seleksi (Roulette Wheel Selection, CrossOver, mutasi) IP1 = 10 IP2 = 3 Anak = IP1 = 12 IP2 = 15 Anak = IP1 = IP2 = 4 4 8 2 6 9 7 5 5 1 2 6 2 9 7 1 5 8 8 7 9 6 4 2 7 5 8 1 2 3 9 9 5 7 1 8 3 1 2 6 9 7 7 5 8 8 4 3 1 2 6 9 5 4 1 9 8 7 3 5 2 2 4 6 6 1 7 3 5 4 9 8 1 1 2 2 5 5 8 8 4 4 3 3 9 9 6 6 7 7 5 7 5 5 8 7 5 7 5 2 2 8 8 2 4 4 5 1 6 7 8 1 8 8 4 6 4 4 4 8 6 2 6 9 6 2 3 4 3 6 1 3 9 8 2 2 1 3 8 5 9 9 1 2 7 3 9 3 9 1 8 9 8 1 3 5 7 6 9 5 4 6 6 7 6 3 3 7 4 2 1 8 5 4 9 8 7 7 5 9 8 9 1 3 9 8 3 7 7 8 2 2 9 3 6 2 6 8 7 2 2 1 5 1 6 9 7 1 4 2 9 7 3 5 5 5 3 7 Fitness maksimum = 0.0163 1 3 4 3 6 Generasi ke-2 Populasi = Fitness maksimum = 0.0153 9 6 4 6 5 1 3 4 2 8 3 2 4 6 7 5 9 Operator seleksi (Roulette Wheel Selection, CrossOver, mutasi) 10 11 IP1 = 84 13 IP2 = 6 Anak = Fitness maksimum = 0.0171 IP1 = 8 IP2 = 7 Anak = 8 7 4 8 9 2 3 9 6 5 7 1 5 6 1 3 5 8 6 2 2 9 3 4 9 6 7 5 8 1 4 3 1 7 7 9 7 6 5 7 9 2 8 1 1 5 3 8 2 4 4 4 9 7 1 8 8 2 7 9 6 5 3 1 2 3 5 3 6 6 4 IP1 = 15 IP2 = 12 Anak = IP1 = 7 IP2 = 6 Anak = 1 8 3 2 9 9 7 5 8 1 2 3 4 6 6 4 5 7 IP1 = 9 IP2 = 8 Anak = IP1 = 2 IP2 = 14 Anak = 1 9 9 5 3 6 2 7 4 1 8 3 6 2 7 4 5 8 IP1 = 1 IP2 = 7 Anak = 12 5 Generasi ke-3 Populasi = 8 8 7 6 2 6 5 7 1 3 2 9 5 2 9 3 4 8 2 9 7 9 8 8 9 9 3 6 5 1 2 9 2 3 4 2 8 2 7 7 5 2 7 8 8 4 3 9 9 6 1 1 3 6 8 1 4 1 4 7 6 6 5 7 5 5 3 5 3 2 3 8 3 3 6 7 7 1 8 1 8 2 1 2 4 6 6 2 9 5 5 5 6 4 3 4 4 9 5 6 4 7 4 6 3 9 8 1 3 2 4 6 Operator seleksi (Roulette Wheel Selection, CrossOver, mutasi) IP1 = 7 IP2 = 5 Anak = IP1 = 6 IP2 = 5 Anak = 1 2 4 5 8 9 7 4 9 1 8 1 9 1 4 5 IP1 = 1 IP2 = 4 Anak = IP1 = 12 IP2 = 10 Anak = IP1 = IP2 = 2 4 IP1 = 3 IP2 = 11 Anak = 9 1 3 1 7 3 6 6 4 5 7 5 8 7 2 IP1 = 10 IP2 = 12 Anak = 2 9 4 7 6 8 5 4 9 1 7 6 1 5 8 2 3 3 3 3 2 7 9 9 4 8 6 1 7 2 5 4 8 6 1 5 9 9 1 2 8 4 5 8 3 6 2 7 6 5 7 3 4 1 7 2 6 5 3 1 2 9 4 6 5 3 9 4 1 7 8 8 6 1 7 3 5 2 9 6 1 4 8 7 3 5 2 9 4 8 6 4 2 7 9 8 5 2 1 9 3 5 4 1 7 3 8 6 9 3 7 8 2 6 4 7 5 5 8 2 6 4 1 1 3 9 8 5 4 4 8 1 9 1 6 1 3 7 6 7 2 2 1 5 5 4 4 8 2 8 6 6 3 3 1 5 Generasi ke-4 Populasi = 7 2 9 3 3 85 5 4 7 2 7 9 6 8 9 9 9 9 7 2 6 1 6 4 9 3 1 2 6 5 7 3 2 7 7 8 8 4 3 1 5 2 9 8 2 6 5 8 2 9 9 6 5 2 5 7 3 6 4 6 1 4 1 9 4 5 2 7 5 3 8 7 3 5 8 2 6 5 9 4 3 5 4 1 6 4 7 3 1 7 2 9 7 3 1 1 4 1 8 8 4 8 8 6 3 9 4 6 5 9 7 1 2 6 6 3 1 9 3 7 3 2 6 6 3 6 4 8 3 Operator seleksi (Roulette Wheel Selection, CrossOver, mutasi) IP1 = 15 IP2 = 11 Anak = 6 6 2 7 4 5 1 9 9 8 6 5 9 7 8 5 1 9 9 4 5 5 9 4 5 9 9 4 2 9 9 9 8 1 7 1 9 1 7 9 1 1 6 4 7 7 7 2 8 8 3 7 5 2 7 8 8 7 1 8 1 5 4 4 9 4 1 3 9 1 3 3 5 9 3 8 3 1 7 2 2 6 2 5 8 2 2 8 8 1 3 8 3 6 5 6 2 6 1 3 4 4 1 3 2 3 1 2 Generasi ke-5 Populasi = Fitness maksimum = 0.0195 2 4 7 2 5 4 3 1 4 2 7 2 6 7 4 4 6 4 7 7 2 7 6 6 4 5 5 3 8 8 8 8 6 5 5 9 5 5 8 3 Fitness maksimum = 0.0201 IP1 = 8 IP2 = 9 Anak = IP1 = 2 IP2 = 12 Anak = IP1 = 6 IP2 = 13 Anak = IP1 = 10 IP2 = 2 Anak = IP1 = IP2 = 4 3 1 2 6 5 3 9 4 1 7 8 8 4 9 7 2 6 5 9 3 7 4 8 8 5 5 1 9 3 7 4 1 2 6 6 2 IP1 = 6 IP2 = 10 Anak = 7 3 4 6 8 8 9 4 1 7 5 2 3 9 2 5 6 1 IP1 = 1 IP2 = 5 Anak = 2 6 4 7 6 5 5 9 9 1 7 8 1 3 8 2 3 4 IP1 = 7 IP2 = 1 Anak = IP1 = 15 IP2 = 10 Anak = 6 7 5 2 4 1 9 8 5 9 7 8 3 1 2 Operator seleksi (Roulette Wheel Selection, CrossOver, mutasi) 10 4 IP1 = 15 IP2 = 2 Anak = 6 3 86 7 5 5 9 3 7 4 1 2 8 6 3 1 4 8 2 9 6 1 7 8 8 3 2 4 5 7 9 2 1 6 6 5 3 9 4 1 1 6 8 2 3 5 5 9 9 7 7 3 2 4 4 8 6 6 4 5 6 9 5 3 9 2 7 7 8 1 3 8 1 4 2 IP1 = IP2 = 14 7 IP1 = IP2 = 1 11 3 4 7 1 8 6 2 5 9 1 2 2 2 8 9 3 3 4 2 2 2 2 1 8 2 4 5 6 3 8 4 1 2 5 5 6 6 2 1 Fitness maksimum = 0.0201 Generasi ke-8 Populasi = IP1 = 2 IP2 = 11 Anak = 4 7 8 2 5 4 9 1 1 9 8 7 3 5 2 3 9 4 1 4 5 5 5 3 9 2 5 5 9 9 1 7 2 8 7 9 9 9 2 7 4 9 9 1 1 9 8 6 3 2 1 7 7 7 8 1 7 7 8 8 7 3 1 4 6 6 3 2 1 3 9 1 1 3 3 5 1 8 2 5 3 4 4 8 1 8 6 8 2 2 3 2 9 6 9 4 8 6 4 2 3 2 3 4 6 6 4 8 9 5 2 3 2 4 8 9 9 5 3 4 2 6 6 Generasi ke-6 Populasi = 4 7 5 1 7 1 1 6 4 6 3 2 6 4 8 6 5 9 8 8 6 8 5 6 7 4 4 7 7 2 5 3 7 3 2 2 3 9 5 5 8 6 5 5 4 6 3 1 9 4 2 6 6 3 7 7 9 4 6 3 5 6 6 7 6 7 5 2 6 1 1 1 8 5 6 9 5 3 1 5 1 9 5 5 8 8 3 5 9 5 7 9 4 8 9 4 7 9 9 6 6 4 9 7 9 8 7 8 3 7 6 1 7 7 3 3 8 7 8 4 3 1 7 4 1 5 8 8 1 4 4 7 1 3 7 Fitness maksimum = 0.0201 Untuk generasi selanjutnya tetap didapatkan nilai fitness maksimum adalah 0,0201. Dapat diartikan bahwa nilai fitness telah konstan, sehingga didapakan Fitness maksimum = 0.0201 solusi optimum rute terpendek dengan rute Generasi ke-7 Populasi = 4 6 5 9 7 8 3 1 2 Untuk rute diawali dari gudang perusahaan dan 4 5 2 8 8 4 4 9 9 8 5 8 2 4 6 9 4 3 3 8 6 1 7 6 9 3 4 6 5 7 6 6 6 2 2 6 8 2 7 5 5 2 9 1 5 5 5 5 5 3 3 5 1 6 6 5 7 8 9 9 9 9 9 4 2 9 8 7 7 9 8 3 7 7 7 3 7 8 1 7 3 2 9 7 3 4 1 1 1 6 8 7 4 3 4 4 1 1 1 2 8 2 2 7 1 2 6 4 2 1 8 8 2 6 3 4 4 1 3 5 5 1 6 9 3 3 kembali ke gudang perusahaan maka rute distribusi menjadi 9 7 8 3 1 2 4 6 5 9 Atau 9 87 5 6 4 2 1 3 8 7 9 Lampiran 7. Output Software Matlab proses pencarian rute terpendek pendistribusian barang di Anak = 11 3 12 3 Kota Yogyakarta dengan aplikasi Algoritma Genetika. Generasi ke-1 6 3 7 5 5 6 1 12 6 11 2 4 9 4 11 10 4 11 5 9 7 6 8 3 12 4 10 3 1 2 9 10 2 7 3 5 8 5 6 10 8 10 6 11 12 9 2 11 5 12 8 1 2 8 7 9 11 12 9 4 9 10 8 1 1 9 11 6 6 2 5 6 6 3 3 10 8 1 12 8 10 2 11 9 1 9 7 2 4 5 2 2 3 7 2 11 9 3 4 3 7 10 7 5 1 1 4 12 8 7 1 5 12 12 7 3 8 4 1 6 8 11 9 2 12 4 7 5 10 9 1 5 10 11 8 12 3 7 5 6 2 1 4 8 4 12 4 9 6 10 4 7 5 3 10 12 6 7 11 11 4 3 11 12 7 11 9 10 6 3 5 8 8 1 12 2 1 3 10 2 Fitness maksimum = 0.0139 9 4 11 10 Operator 1 12 seleksi 7 8 (Roulette 2 5 Wheel 3 7 10 5 9 IP1 = 7 IP2 = 12 Anak = 2 9 5 1 8 4 3 1 IP1 = IP2 = 6 11 8 7 5 3 1 12 1 12 2 4 7 10 2 9 8 12 5 12 4 6 8 6 2 2 7 12 6 7 4 10 4 9 10 11 5 5 IP1 = 9 IP2 = 13 Anak = 10 8 11 1 6 2 7 3 5 12 3 8 1 6 2 7 4 10 9 9 4 12 11 5 IP1 = 8 IP2 = 5 Anak = 5 4 9 1 8 2 7 12 6 10 11 7 4 9 10 6 11 3 12 5 1 8 3 2 IP1 = 4 IP2 = 2 Anak = 8 4 9 10 6 11 3 12 5 1 7 9 4 11 10 1 12 7 8 2 5 3 2 6 IP1 = 15 IP2 = 11 Anak = 9 5 6 8 10 5 9 3 12 4 11 11 2 2 7 1 3 6 12 8 7 7 2 2 2 2 9 2 11 12 8 2 2 7 5 1 10 9 7 7 7 4 7 3 7 1 7 1 8 3 12 8 5 12 4 3 5 12 12 8 3 3 6 1 12 8 10 4 7 Generasi ke-2 Populasi = Selection, 4 3 1 1 6 CrossOver, mutasi) IP1 = 12 IP2 = 11 Anak = 2 11 6 10 6 11 9 8 9 2 10 2 8 11 12 10 7 5 7 9 5 9 5 9 8 3 11 7 10 13 5 88 4 11 6 9 4 3 3 8 10 4 4 4 4 5 9 11 6 11 5 3 9 8 11 11 9 9 11 7 6 3 10 7 5 1 1 1 1 1 3 1 10 10 11 8 12 1 10 9 6 11 8 6 6 6 8 6 1 2 10 4 2 1 2 12 12 6 10 5 12 6 5 2 6 1 8 5 12 4 4 6 4 9 9 8 10 1 5 10 12 10 3 4 3 3 7 10 11 4 1 11 8 3 9 4 7 6 9 8 11 10 5 5 12 2 3 2 6 12 11 11 Fitness maksimum = 0.0142 5 4 7 11 2 8 Generasi ke-3 Populasi = 5 4 7 11 2 8 6 5 4 2 3 10 7 5 2 4 12 6 8 12 7 11 5 2 8 12 7 11 5 2 9 5 4 1 12 11 9 6 1 10 3 7 8 1 3 10 9 12 8 7 2 5 4 10 6 2 5 4 10 9 12 6 2 8 3 1 5 12 3 1 6 9 4 11 1 5 8 2 10 1 3 11 5 2 9 3 12 11 8 1 1 Fitness maksimum = 0.0149 3 6 10 9 12 4 7 9 11 5 12 6 2 8 3 1 10 Generasi ke-5 Populasi = 1 7 1 4 4 6 8 7 1 3 10 2 9 4 7 3 1 8 6 6 8 2 6 3 12 4 7 7 6 6 6 11 3 10 10 10 4 2 6 11 7 8 3 9 2 10 12 11 1 1 3 12 5 9 8 5 4 10 8 5 9 9 9 3 3 7 11 4 12 1 9 10 6 12 4 12 8 10 9 9 2 5 11 11 7 11 11 12 7 10 6 10 1 3 9 4 3 11 2 6 7 1 1 3 7 7 1 4 3 6 7 10 5 5 9 6 8 6 10 9 9 9 9 6 5 9 7 6 11 2 2 3 9 7 10 10 2 7 9 4 11 1 2 6 5 5 11 8 11 11 11 8 11 12 2 5 12 8 8 4 4 9 2 1 5 5 3 5 1 8 12 6 2 5 6 9 3 1 10 1 3 10 3 10 7 10 1 8 10 7 6 4 11 3 12 8 6 12 6 2 12 6 2 12 7 11 12 6 2 7 4 11 3 9 12 8 3 1 8 2 4 12 4 7 4 9 12 8 1 11 3 11 9 2 5 4 10 7 5 9 2 5 8 3 1 8 3 1 5 4 6 8 3 1 2 8 5 11 1 10 10 11 9 7 12 12 12 12 4 4 4 10 10 10 7 Fitness maksimum = 0.0145 8 12 7 11 5 2 4 Fitness maksimum = 0.0153 4 Generasi ke-4 Populasi = 8 9 9 10 10 12 7 2 1 4 9 2 9 2 7 12 3 5 9 9 6 5 8 11 7 8 4 12 5 11 7 11 5 12 11 8 4 1 12 12 7 6 12 7 6 2 8 3 2 4 12 4 11 3 12 8 6 9 11 5 12 7 3 10 1 3 7 2 5 4 10 3 5 2 4 2 1 11 5 5 1 6 10 9 12 10 9 11 6 6 4 7 6 4 4 10 1 7 2 6 1 7 4 9 10 6 6 8 11 11 4 8 5 5 2 11 6 6 12 1 10 1 2 5 10 3 2 8 2 8 7 5 3 11 12 1 4 3 8 3 5 2 8 12 8 1 11 1 3 9 3 4 7 1 1 9 9 6 10 1 4 11 3 8 8 9 7 11 5 12 Generasi ke-6 Populasi = 4 9 7 11 5 12 2 8 3 7 11 5 8 1 3 10 9 12 5 2 4 11 1 12 11 1 2 4 12 5 7 6 2 5 4 10 11 5 6 2 8 3 1 4 2 8 10 12 3 12 5 6 10 7 12 7 9 2 5 11 10 5 11 4 7 9 11 5 12 6 2 3 11 5 12 6 2 3 2 8 3 12 11 5 9 8 2 11 3 10 9 10 2 3 3 11 10 9 7 10 6 5 10 7 12 89 6 2 6 2 6 10 7 11 8 6 6 9 1 8 1 10 7 11 4 11 6 8 12 6 1 10 1 10 4 6 7 12 8 3 8 3 4 9 5 4 9 3 8 3 3 11 12 4 5 3 2 1 1 3 2 8 8 4 8 4 10 7 5 4 1 10 1 12 6 10 10 9 7 6 9 10 3 7 9 1 1 10 1 2 7 7 12 9 9 8 4 1 9 7 9 6 Fitness maksimum = 0.0153 11 5 12 6 2 3 1 10 Generasi ke-7 Populasi = 11 5 12 6 12 11 5 3 10 12 5 4 9 1 7 11 1 10 3 7 11 5 12 6 4 9 7 11 1 10 4 9 8 6 9 10 2 8 3 12 8 1 3 10 9 7 2 5 11 9 12 6 6 9 2 5 11 9 2 8 2 6 1 3 1 9 7 6 7 5 12 6 11 5 6 2 3 1 5 12 6 7 12 8 7 3 1 11 5 4 9 12 7 4 10 1 2 3 1 4 10 12 10 12 7 10 1 9 2 4 10 2 11 5 6 11 8 10 8 6 Fitness maksimum = 0.0153 11 5 12 6 2 3 1 10 Generasi ke-8 Populasi = 11 5 12 6 9 10 7 3 9 10 7 3 1 10 3 7 2 8 7 11 12 11 5 4 5 4 12 8 9 1 7 11 6 9 2 5 5 4 6 2 5 4 6 2 12 11 5 4 9 8 2 11 11 2 3 8 4 1 3 9 2 8 4 8 4 9 4 2 8 8 2 11 8 3 10 9 12 2 8 4 9 8 3 1 5 6 2 2 4 11 10 7 1 5 4 6 3 11 12 8 4 7 1 7 11 5 4 1 8 4 3 1 10 8 4 1 5 11 12 2 4 1 5 11 12 2 4 4 9 11 5 12 6 1 10 3 5 6 4 6 10 7 9 1 2 1 7 11 3 10 6 5 12 6 2 8 3 4 10 12 8 1 7 9 8 1 3 10 12 9 8 1 3 10 12 2 6 7 8 1 3 3 12 7 10 5 4 10 12 7 6 5 4 7 12 8 11 5 6 Fitness maksimum = 0.0153 11 5 12 6 2 3 1 10 9 8 4 9 9 8 8 2 9 8 9 10 11 7 7 10 1 1 2 9 Generasi ke-9 Populasi = 7 11 6 7 11 9 7 8 1 2 9 5 10 7 11 11 7 10 3 4 8 7 10 3 12 9 2 6 5 3 3 7 7 6 6 8 12 3 2 4 3 11 11 9 6 9 10 5 12 6 2 8 3 10 9 11 5 4 6 2 9 10 7 3 1 6 5 4 9 1 3 11 6 10 3 7 4 8 7 11 1 1 7 11 5 4 6 2 9 3 7 4 11 11 1 10 3 5 12 6 2 5 12 6 2 1 10 8 4 9 11 5 12 9 1 6 2 8 1 10 1 3 10 12 7 11 12 2 4 8 1 3 11 2 10 7 10 5 4 2 11 5 12 6 2 3 5 6 4 9 6 2 8 3 10 1 3 10 12 7 12 6 2 8 9 6 4 9 12 2 1 10 8 4 9 1 10 8 4 9 7 7 3 5 6 12 9 8 12 4 11 1 8 7 7 Fitness maksimum = 0.0153 Generasi ke-10 Populasi = 11 5 12 6 2 3 1 10 8 4 9 10 3 7 4 11 5 12 6 2 8 9 11 4 6 2 9 8 1 3 10 12 7 7 3 1 5 11 12 2 6 8 4 9 5 12 6 3 1 10 9 7 2 4 8 8 1 3 11 2 10 12 4 7 6 5 5 6 4 9 12 2 8 3 7 11 1 7 2 8 3 10 4 11 5 12 6 1 7 5 12 6 2 3 1 10 8 4 11 12 7 11 10 3 5 6 4 2 9 8 6 4 12 2 9 8 1 3 7 11 10 11 5 12 6 2 3 1 10 8 4 9 7 6 5 4 9 8 1 3 11 2 10 1 5 12 6 2 3 10 7 4 11 8 9 3 7 4 11 5 12 6 2 1 10 7 1 5 10 11 9 10 9 9 1 5 7 12 9 8 2 4 3 4 12 8 5 8 12 9 10 12 8 5 5 3 3 Fitness maksimum = 0.0163 5 12 6 3 1 10 9 Generasi ke-11 Populasi = 5 12 6 3 1 10 9 9 3 7 4 11 5 12 7 90 7 7 8 2 2 1 4 8 11 4 8 11 2 10 6 8 1 11 10 11 7 5 11 2 4 8 11 11 1 5 3 11 2 10 12 12 6 2 3 10 4 6 2 9 8 1 4 7 2 9 8 11 10 5 6 2 3 4 11 1 3 10 4 5 6 1 9 12 2 7 5 6 1 9 10 12 10 7 6 9 4 11 8 11 10 5 12 6 1 6 3 12 7 11 10 12 4 7 5 9 5 12 2 8 9 1 9 7 3 5 12 6 8 4 5 3 10 6 4 Fitness maksimum = 0.0163 5 12 6 3 1 10 9 7 Generasi ke-12 Populasi = 5 12 6 3 1 10 9 4 5 6 8 1 3 11 2 9 3 8 1 6 12 8 2 6 3 1 10 9 7 2 8 4 11 5 12 11 10 5 4 2 12 6 12 6 3 1 9 7 11 8 2 6 1 9 10 12 7 2 3 4 11 5 12 8 1 7 3 10 4 5 5 6 12 2 8 9 1 5 4 6 8 1 3 11 11 1 3 5 12 6 10 5 12 3 2 8 9 1 2 8 4 10 5 12 6 7 4 4 11 10 12 12 6 9 8 9 12 3 10 7 2 12 8 1 9 5 4 2 8 7 6 2 4 5 8 7 3 1 2 4 8 1 7 2 1 10 6 9 5 1 7 8 11 3 3 2 9 3 3 2 10 7 6 6 2 3 7 12 9 11 4 10 5 12 6 3 1 7 5 12 6 4 8 1 2 4 8 1 3 11 5 12 3 1 7 4 8 11 2 10 1 3 11 10 12 9 7 2 8 4 10 5 12 6 3 1 6 2 8 7 12 5 11 4 2 8 4 11 5 12 6 3 6 3 1 9 7 11 10 5 10 12 7 2 3 4 11 5 10 3 5 9 12 2 8 6 9 3 6 12 4 9 9 1 4 8 1 7 11 10 9 8 7 10 10 2 1 4 11 2 9 5 5 11 1 9 8 6 7 4 9 10 1 11 7 5 6 12 10 5 4 6 11 7 4 4 6 4 4 12 12 2 6 1 11 3 2 4 12 3 3 2 3 9 5 2 4 8 5 4 9 7 9 5 9 9 7 9 10 4 10 7 5 11 9 10 10 10 11 12 12 12 12 1 10 6 12 11 4 10 8 8 3 3 5 5 10 10 Fitness maksimum = 0.0192 3 6 2 8 7 12 5 11 4 9 10 1 9 Fitness maksimum = 0.0192 3 6 2 8 7 12 5 11 Generasi ke-14 Populasi = 3 6 2 8 9 11 1 3 11 4 9 3 10 1 5 11 9 2 10 1 3 6 2 8 1 6 2 8 1 6 2 7 11 4 3 9 2 8 7 12 1 6 4 9 10 1 8 6 10 1 11 6 1 8 11 4 11 8 1 6 8 11 7 2 4 8 2 10 12 9 7 11 10 5 7 4 11 5 6 3 1 10 3 1 9 7 10 5 4 2 4 7 3 11 8 1 6 9 6 9 11 12 4 7 11 3 2 10 9 7 9 7 2 4 4 7 6 10 3 1 9 7 8 11 7 4 12 9 8 8 5 10 2 10 12 8 11 11 7 12 6 2 8 7 8 9 7 4 7 9 7 3 12 5 12 5 5 1 10 2 2 7 2 7 3 9 2 7 5 8 1 3 3 12 12 11 1 6 8 11 8 5 5 Untuk generasi selanjutnya tetap didapatkan nilai Fitness maksimum = 0.0173 8 2 6 3 1 10 9 Generasi ke-13 Populasi = 8 2 6 3 5 12 6 3 11 1 3 5 5 12 6 3 7 4 11 5 12 fitness maksimum adalah 0,0192. Dapat diartikan bahwa nilai fitness telah konstan, sehingga didapakan 1 10 1 10 12 6 1 10 solusi optimum rute terpendek dengan rute 9 7 4 11 5 12 9 7 2 4 8 11 10 9 7 2 4 8 9 7 2 4 8 11 3 91 6 2 8 7 12 5 11 4 9 10 1 Untuk rute pendistribusian diawali dari gudang perusahaan, maka rute distribusi menjadi 12 5 11 4 9 10 1 3 6 2 8 7 12 Atau 12 7 8 2 6 3 1 10 9 4 11 5 12 92