i
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
iv
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,
v 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”
vi
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”
vii
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.
viii
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
ix
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
x 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
xi
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
xii
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
xiii
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
xiv
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
xv
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
1 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,
2
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
3
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
4
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
5
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
6 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,
7 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
Keterangan: Anggota-anggota V dikenal sebagai simpul dan anggota-anggota dari
8
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
9 Contoh 2.4
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
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.
B
N
v5
v4 v
3
v2
v1 e1
e2
e3
e4
v5
v1
v3
v2
10 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
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.
Dari gambar 2.1 Graf A merupakan contoh graf sederhana.
11
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
12
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.
Gambar 2.6 Graf E
E
v1v3
v2
v4
2 1
13
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.
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. v1
v3
v2
v4
14 Contoh 2.14
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 rusukdalam 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. v1
v2
v3 v
4
v5
v6
v7
15 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
16
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-C-D-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-A-B-C-D-A,
sehingga banyaknya lintasan tertutup (s) dapat dicari dengan
1!. n
s
Dalam graf K, rusuk-rusuknya tidak berarah sehingga w
A,B wB,A,sehingga banyaknya lintasan menjadi
,2 ! 1
n
s
karena lintasan A-B-C-D-A = A-D-C-B-A, D-B-A= D-B-A, dan
A-C-B-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.
2.117 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.
18
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).
Kromosom-kromosom berevolusi dalam suatu proses iterasi yang berkelanjutan yang disebut
19
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
20
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
kriteria-kriteria tertentu dari permasalahan yang ingin diselesaikan.
m. Generasi merupakan satuan dari populasi setelah mengalami
operasi-operasi 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
21
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 Flow chart algoritma genetika
1. Komponen-Komponen Utama dalam Algoritma Genetika
Komponen-komponen utama dalam menggunakan algoritme genetika sebagai
22 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
23
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
, 1 x f
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
24
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).
25
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:
,
i f
i f i P
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.
26 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:
27
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 keturunankedua.
Contoh 2.20
Misalkan didapatkan 2 induk dari proses seleksi
p1 = (1 2 3 | 4 5 6 7 |8 9),
28
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).
29
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 yangberada 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
30
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 fi
tness-nya 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
31 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,
32
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
33
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,
34 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
35
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.
36
Banyaknya individu atau rute yang mungkin diperoleh dengan menggunakan
rumus permutasi pada persamaan (2.2) dibawah ini.
Pada pendistribusian di Kota Bantul, banyaknya pilihan semua rute yang mungkin
dapat dilalui dari Gudang Perusahaan ke semua MM dan kembali ke Gudang
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.
37
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 2
3 4
5 6
7
8 9
0 2,3 0,6 6,8 10,4 11,7 3,1 1,7 6,6
2,3 0 2,9 5,6 11,9 10,8 5 3,5 8,4
0,6 2,9 0 7 10 12,7 3,3 1,3 6,3
6,8 5,6 7 0 18,2 8,6 9,4 8,3 13,2
10,4 11,9 10 18,2 0 19,6 9,1 8,7 5,3
11,7 10,8 12,7 8,6 19,6 0 20,3 18,9 18,2
3,1 5 3,3 9,4 9,1 20,3 0 3,3 3,1
1,7 3,5 1,3 8,3 8,7 18,9 3,3 0 4,5
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
38
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
39 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.
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
3.3 ,40
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
41
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
42 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
43 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
44
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
45
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