algoritma genetika dengan metode roullete whell selection dalam

advertisement
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   wB, 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 
Pi  
,
 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
Download