17 Menurut Takes 2010:14, terdapat dua jenis CVRP. Jenis CVRP yang pertama
adalah Homogeneous CVRP. Homogeneous CVRP adalah masalah CVRP dengan kapasitas tiap kendaraan sama. Jenis CVRP yang kedua adalah Heterogeneous CVRP.
Heterogeneous CVRP adalah masalah CVRP yang kapasitas kendaraannya berbeda satu sama lain.
2.5. Algoritma Genetika
Berikut akan diberikan pengertian, istilah-istilah, komponen, dan parameter dari Algoritma Genetika.
2.5.1 Pengertian Algoritma Genetika Algoritma Genetika merupakan suatu metode heuristic yang dikembangkan
berdasarkan prinsip genetika dan proses seleksi alamiah Teori Evolusi Darwin. Metode optimasi dikembangkan oleh John Holland sekitar tahun 1960-an dan dipopulerkan
oleh salah seorang mahasiswanya, David Goldberg, pada tahun 1980-an Haupt dan Haupt, 2004:22.
Proses Algoritma Genetika secara umum untuk semua kasus adalah mendefinisikan individu, mendefinisikan nilai fitness, menentukan proses
pembangkitan populasi awal, menentukan proses seleksi, menentukan proses perkawinan silang dan mutasi gen yang akan digunakan Ahmad Basuki, 2003: 4.
18 2.5.2 Istilah
– istilah dalam Algoritma Genetika Berikut diberikan beberapa definisi dari istilah penting yang perlu diperhatikan
dalam menyelesaikan masalah menggunakan Algoritma Genetika Satriyanto, 2009:70:
1. Gen Genotype merupakan sebuah nilai yang menyatakan satuan dasar yang membentuk arti tertentu dalam satu kromosom. Gen dapat direpresentasikan dengan
bilangan biner, float, integer, karakter, dan kombinatorial. 2. Kromosom merupakan gabungan gen-gen yang membentuk nilai tertentu.
3. Individu merupakan suatu nilai atau keadaan yang menyatakan salah satu solusi yang mungkin dari permasalahan yang diangkat.
4. Populasi merupakan sekumpulan individu yang akan diproses bersama dalam satu siklus proses evolusi. Populasi terdiri dari sekumpulan kromosom.
5. Induk adalah kromosom yang akan dikenai operasi genetika crossover. 6. Crossover atau pindah silang adalah operasi genetika yang mewakili proses
perkembangbiakan antar individu. 7. Offspring yang juga dikenal sebagai keturunan atau anak adalah kromosom yang
merupakan hasil dari pindah silang. 8. Mutasi merupakan operasi genetika yang mewakili proses mutasi dalam perjalanan
hidup individu. Mutasi berperan menghasilkan perubahan acak dalam populasi, yang berguna untuk menambah variasi dari kromosom-kromosom dalam sebuah populasi.
19 9. Proses seleksi merupakan proses yang mewakili proses seleksi alam natural
selection dari teori Darwin. Proses ini dilakukan untuk menentukan induk dari operasi pindah silang yang akan dilakukan untuk menghasilkan anak.
10. Nilai fitness merupakan penilaian yang menentukan bagus tidaknya sebuah kromosom.
11. 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. 12. Generasi merupakan satuan dari populasi setelah mengalami operasi-operasi
genetika, berkembang biak, dan menghasilkan keturunan. Kromosom-kromosom yang mempunyai nilai fitness yang rendah dan memiliki peringkat dibawah nilai minimal
akan dihapus dari populasi pada akhir dari setiap generasi, untuk menjaga agar jumlah kromosom dalam populasi tetap konstan.
2.5.3 Komponen Algoritma Genetika Algoritma Genetika memiliki beberapa komponen, diantaranya yaitu:
1. Penyandian Gen Pengkodean
Komponen ini merupakan proses penyandian gen dari kromosom. Gen merupakan bagian dari kromosom, satu gen 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:74.
20 Penelitian ini menggunakan teknik pengkodean permutasi pada representasi
gen, yaitu tiap gen dalam kromosom merepresentasikan suatu urutan Samuel, dkk, 2005.
Contoh 2.3: 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.
2. Membangkitkan Populasi Awal
Membangkitkan populasi awal dilakukan dengan membangkitkan sejumlah individu secara acak atau melalui prosedur tertentu. Ukuran populasi tergantung pada
masalah yang akan diselesaikan dan jenis operator genetika yang akan diterapkan.
Setelah ukuran populasi ditentukan, kemudian dilakukan pembangkitan populasi awal
menggunakan teknik tertentu Sri Kusumadewi, 2003: 281. Teknik dalam pembangkitan populasi awal ini ada beberapa cara, diantaranya
adalah random generator, pendekatan tertentu, dan permutasi gen. Skripsi ini menggunakan teknik pembangkitan populasi berupa random generator, yaitu dengan
melibatkan pembangkitan bilangan random untuk nilai setiap gen sesuai dengan representasi kromosom yang digunakan.
3. Menentukan Nilai Fitness
Fungsi yang digunakan untuk mengukur baik-tidaknya suatu individu sebagai solusi disebut dengan fungsi fitness fitness function. Nilai yang dihasilkan dari fungsi
21 tersebut menandakan seberapa optimal solusi yang diperoleh. Algoritma Genetika
bertujuan mencari individu dengan nilai fitness tertinggi Ahmad Basuki, 2003: 6. Permasalahan CVRP bertujuan meminimalkan jarak, sehingga nilai fitness
adalah inversi dari total jarak dari jalur yang didapatkan atau menggunakan rumus: Nilai fitness =
�
2.8 atau
Nilai fitness =
. − �
2.9 dimana x adalah total jarak dari jalur yang didapatkan.
4. Seleksi
Seleksi bertujuan untuk memilih dua buah kromosom secara proporsional sesuai dengan nilai fitness-nya untuk dijadikan sebagai induk Michalewicz, 1996:75.
Proses pemilihan tersebut dapat dipilih berdasarkan probabilitas dari masing – masing
individu. Probabilitas dari setiap individu tersebut ditentukan oleh nilai fitnessnya masing
– masing. Menurut Kusumadewi 2003:105, terdapat beberapa metode yang dapat
digunakan dalam melakukan seleksi, yaitu rank-based fitness assignment, roulette wheel selection, stochastic universal sampling, local selection, truncation selection,
dan tournament selection. Skripsi ini menggunakan metode seleksi Roulette Wheel. Metode seleksi Roulette Wheel merupakan metode yang sangat akurat dalam
memilih kromosom untuk dijadikan sebagai induk. Metode ini seleksi yang menirukan permainan Roulette Wheel di mana masing-masing kromosom menempati potongan
22 lingkaran pada roda roulette secara proporsional sesuai dengan nilai fitnessnya.
Kromosom yang memiliki nilai fitness lebih besar menempati potongan lingkaran yang lebih besar dibandingkan kromosom bernilai fitness rendah. Sehingga semakin besar
nilai fitness suatu kromosom maka semakin besar juga kesempatan kromosom tersebut untuk terpilih. Cara kerja metode seleksi ini yaitu dengan membuat interval nilai
kumulatif dari nilai fitness masing masing kromosom dibagi total nilai fitness dari semua kromosom. Sebuah kromosom akan terpilih jika bilangan random yang
dibangkitkan berada dalam interval kumulatifnya Zainudin, 2014. Selain itu, metode seleksi Roulette Wheel ini juga mudah diimplementasikan dalam pemrograman.
5. Crossover Pindah Silang
Crossover atau pindah silang merupakan operator Algoritma Genetika yang
bertujuan untuk membentuk kromosom baru dengan melibatkan dua induk yang telah terseleksi sebelumnya. Pindah silang akan menghasilkan sepasang anak baru dari dua
induk. Setiap pasang induk akan dibangkitkan sebuah bilangan acak. Jika bilangan acak tersebut bernilai kurang dari Probabilitas crossover
� antara 0,6 sd 0,95 maka induk tersebut akan dikenai pindah silang. Jika pindah silang tidak dilakukan, maka
nilai dari induk akan diturunkan sepenuhnya kepada anak Michalewicz, 1996: 35. Secara singkat, pindah silang adalah proses pertukaran gen yang bersesuaian
dari dua induk untuk menghasilkan individu baru yang akan membawa sifatgen induknya. Secara skematis, proses crossover dapat dilihat pada gambar 2.4.
23 Gambar 2.4 Skema alur proses crossover
Teknik crossover yang digunakan dalam skripsi ini adalah teknik order crossover. Order crossover OX diperkenalkan oleh Davis Wira, 2010: 47. Teknik
ini dijelaskan dalam contoh sebagai berikut: Contoh 2.4:
Dari 2 induk diketahui:
Induk 1 = 1 2 3 | 4 5 6 7 |8 9 Induk 2 = 4 5 2 | 1 8 7 6 |9 3
Dibangkitkan 2 bilangan acak sebelum gen Induk 1 dan setelah gen Induk 1. Hal yang sama juga dilakukan untuk Induk 2. Didapatkan anak dengan gen yang sama:
Anak 1 = x x x | 4 5 6 7 |x x Anak 2 = x x x | 1 8 7 6 |x x
ya Induk 1
Induk 2
p = random[0,1]
p Pc
Crossover tidak
24 Langkah berikutnya untuk mendapatkan Anak 1 adalah mengurutkan gen yang
berada pada Induk 2 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. 9-3-4-5-2-1-8-7-6
Kemudian gen yang telah diurutkan tersebut dibandingkan dengan Anak 1. Apabila gen tersebut ada pada Anak 2 maka abaikan gen tersebut dari urutan itu.
Kemudian urutan yang baru saja didapat dimasukkan pada anak 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 Anak 2. Anak 1 diperoleh:
Anak 1 = x x x | 4 5 6 7 |x x Anak 1 = 2 1 8 | 4 5 6 7| 9 3
dengan jalan yang sama dibuat Anak 2 sehingga: Anak 2 = x x x | 1 8 7 6 |x x
Anak 2 = 3 4 5 | 1 8 7 6 |9 2 6.
Mutasi Anak hasil proses pindah silang selanjutnya dilakukan proses mutasi. Variabel
anak dimutasi dengan menambahkan nilai random yang sangat kecil, dengan probabilitas yang rendah. Probabilitas mutasi
� didefinisikan sebagai persentasi dari jumlah total gen pada populasi yang mengalami mutasi.
� mengendalikan
25 banyaknya gen baru yang akan dimunculkan untuk dievaluasi. Jika
� terlalu kecil, banyak gen yang mungkin berguna tidak pernah dievaluasi. Tetapi jika
� terlalu besar, maka akan terlalu banyak gangguan acak, sehingga anak akan kehilangan
kemiripan dari induknya, dan juga algoritma akan kehilangan kemampuan untuk belajar dari pencarian sebelumnya Sri Kusumadewi, 2003:296.
Ada beberapa teknik dalam melakukan mutasi. Teknik mutasi yang digunakan dalam skripsi ini 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: 65. Secara skematis, proses mutasi dapat dilihat pada gambar 2.5.
Gambar 2.5 Skema alur proses mutasi tidak
Individu p = random[0,1]
p Pm
Genr dimutasi ya
r = random
26 7.
Elitism Elitism merupakan proses untuk menjaga agar individu bernilai fitness tertinggi
tidak hilang selama evolusi. Proses evolusi merupakan proses Algoritma Genetika mulai dari pembentukan populasi awal hingga evaluasi nilai fitness dari populasi baru
yang terbentuk. Elitism dilakukan karena proses seleksi dilakukan secara random sehingga tidak ada jaminan bahwa individu dengan nilai fitness tertinggi akan selalu
dipilih. Walaupun individu bernilai fitness tertinggi terpilih, mungkin saja individu tersebut akan menurun nilai fitnessnya karena proses pindah silang atau mutasi. Oleh
sebab itu perlu dibuat satu atau beberapa copynya untuk menjaga agar individu bernilai fitness tertinggi tersebut tidak hilang selama evolusi Suyanto, 2005: 14.
Berikut diberikan skema alur Algoritma Genetika pada Gambar 2.6.
Gambar 2.6 Skema alur Algoritma Genetika Membangkitkan Populasi Awal
Evaluasi Fungsi Tujuan
Individu Terbaik Seleksi
Perkawinan Silang Mutasi
Optimal Ya
Tidak Mulai
Selesai Populasi Baru
27 2.5.4 Parameter Algoritma Genetika
Proses Algoritma Genetika membutuhkan parameter – parameter yang ideal
untuk digunakan selama pemrosesan Algoritma Genetika. Pemilihan parameter tersebut akan menentukan kinerja Algoritma Genetika dalam memecahkan masalah.
Ada empat parameter dasar dari algoritma genetika, yaitu ukuran populasi, jumlah generasi, probabilitas crossover Pc, dan probabilitas mutasi Pm.
1. Ukuran populasi
Ukuran populasi menyatakan jumlah kromosom yang ada pada populasi. Ukuran populasi yang ideal berbeda-beda untuk setiap permasalahan. Menurut Obitko
1998, ukuran populasi yang ideal yaitu berkisar antara 20 sampai 30 kromosom. 2.
Jumlah Generasi Jumlah generasi menyatakan jumlah proses yang dijalani untuk suatu rangkaian
proses Algoritma Genetika mulai dari proses seleksi, crossover, mutasi hingga pembentukan populasi baru. Jadi proses Algoritma Genetika akan berhenti jika jumlah
generasi terpenuhi. terdapat solusi yang dicari yaitu individu dengan nilai fitness terbaik pada generasi terakhir.
3. Probabilitas Crossover Pc
Probabilitas crossover menyatakan seberapa sering proses crossover akan terjadi antara dua kromosom induk. Setiap individu dibangkitkan sebuah bilangan acak
p, jika p Pc maka individu tersebut akan dilakukan crossover dan sebaliknya. Pemilihan nilai Pc yang ideal akan sangat mempengaruhi hasil dari proses crossover
tersebut. Menurut Obitko 1998, probabilitas crossover yang ideal yaitu berkisar
28 antara 80 sampai 95. Sedangkan menurut Michalewicz 1996:35, probabilitas
crossover yang ideal yaitu berkisar antara 60 sampai 95. 4.
Probablitas Mutasi Pm Probabliltas mutasi menyatakan seberapa sering bagian-bagian kromosom akan
dimutasikan. Sama halnya seperti proses crossover, proses mutasi juga membangkitkan sebuah bilangan acak p, jika p Pm maka sebuah gen acak r dimutasi dan sebaliknya.
Menurut Obitko 1998, probabilitas mutasi yang ideal yaitu berkisar antara 0,5 sampai 1. Sedangkan menurut Suyanto 2009:14, probabilitas mutasi yang ideal
adalah 1jumlah gen.
Sri Kusumadewi 2003:283 mengemukakan ada beberapa rekomendasi nilai parameter yang bisa digunakan dalam proses Algoritma Genetika, yaitu sebagai
berikut: a.
Untuk permasalahan yang memiliki kawasan solusi cukup besar, De Jong dalam
Sri Kusumadewi 2003:283 merekomendasikan untuk nilai parameter kontrol: ukupop; Pc; Pm = 50;0.6;0.001
b. Bila rata-rata fitness setiap generasi digunakan sebagai indikator, maka
Grefenstette dalam Sri Kusumadewi 2003:283 merekomendasikan: ukupop; Pc; Pm = 30;0.95;0.01
c. Bila fitness dari individu terbaik dipantau pada setiap generasi, maka usulannya
adalah: ukupop; Pc; Pm = 80;0.45;0.01
d. Ukuran populasi sebaiknya tidak lebih kecil dari 30, untuk sembarang jenis
permasalahan.
29
2.6. Metode Nearest Neighbour