27
solusi awal. Solusi awal ini bisa dihasilkan melalui dua cara, yaitu diperbolehkan melalui pendekatan heuristik ataupun diperoleh secara acak. Kualitas solusi yang
dihasilkan dari metode ini jauh lebih baik daripada heuristik klasik. Beberapa contoh metaheuristik adalah Genetic Algorithm, Simulated Annealing, Tabu
Search, Ant Colony System, Differential Evolution, dan lain-lain. Metaheuristik secara konsisten mampu menghasilkan solusi yang berkualitas tinggi jika
dibandingkan dengan heuristik klasik, meskipun lebih memakan waktu yang lebih lama.
Prinsip dasar algoritma metaheuristik adalah pencarian lokal dan pencarian populasi. Dalam metode pencarian lokal, eksplorasi yang intensif
dilakukan terhadap ruang solusi dengan berpindah dari satu solusi ke solusi tetangga lainnya yang potensial dalam satu lingkungan neighbourhood.
Algoritmanya biasa dimulai dengan solusi awal x
1
dan berpindah pada tiap iterasi t dari solusi x
1
ke solusi x
t+1
dalam satu lingkungan Nx
t
dari x
t
, hingga persyaratan tertentu dicapai. Jika fungsi tujuan fx menandakan biaya dari x,
maka fx
t+1
tidak selalu lebih kecil dari fx
t
. Oleh karenanya, dibutuhkan kehati- hatian untuk menghindari perputaran cycling pada iterasi.
E. Algoritma Sweep
Algoritma sweep
merupakan metode
yang sederhana
dalam perhitungannya, bahkan untuk memecahkan masalah yang cukup besar.
Keakuratan metode ini rata-rata kesalahan perhitungannya adalah sekitar 10 . Keakuratan metode ini adalah pada cara pembuatan jalur rutenya. Algoritma
sweep terdiri dari dua tahap, pertama yaitu tahap pengelompokkan clustering
28
yang mana pengelompokkan awal dilakukan dengan menggabungkan titik-titik dalam satu cluster berdasarkan kapasitas maksimal kendaraan. Permintaan total
dalam satu cluster mungkin akan melebihi kapasitas kendaraan, karenanya beberapa titik dimasukkan ke cluster berikutnya. Tahap kedua yaitu dengan
menentukan urutan rute dari setiap cluster menggunakan metode Nearest Neighbour Gunadi, 2002. Diagram alir algoritma sweep ditunjukkan pada
gambar berikut :
Gambar 2.13 Diagram alir algoritma sweep Mulai
Menggambar titik-titik dalam bidang koordinat kartesius
Mengubah koordinat kartesius menjadi koordinat polar
Jumlah permintaan Kapasitas kendaraan
Menentukan rute distribusi menggunakan metode Nearest Neighbour
Selesai Ya
Tidak
29
F. Algoritma Genetika
1. Pengertian Algoritma Genetika
Algoritma genetika pertama kali diperkenalkan oleh John Holland dalam bukunya yang berjudul “Adaption in natural and artificial systems”, dan oleh De
Jong dalam bukunya “Adaption of the behavior of a class of genetic adaptive systems
”, yang keduanya diterbitkan pada tahun 1975. Yang merupakan dasar dari
algoritma genetika Davis, 1991.
Kemunculan Algoritma Genetika diinspirasikan dari teori-teori dalam ilmu biologi, sehingga banyak istilah dan konsep biologi yang digunakan dalam
Algoritma Genetika. Sesuai dengan namanya, proses-proses yang terjadi dalam Algoritma Genetika sama dengan apa yang terjadi pada evolusi biologi yaitu
seleksi, crossover, dan mutasi.
Algoritma Genetika merupakan teknik pencarian yang didasarkan atas mekanisme seleksi dan genetik natural. Algoritma genetika berbeda dengan teknik
pencarian konvensional, dimana pada algoritma genetika inisialisasi populasi awal dilakukan secara acak. Tiap individu dalam populasi yang merepresentasikan
suatu solusi permasalahan disebut kromosom. Kromosom ini akan berevolusi melalui iterasi berkelanjutan yang disebut generasi. Pada setiap generasi,
kromosom dievaluasi berdasarkan nilai fungsi fitness Gen dan Cheng, 2000. Nilai fitness adalah nilai yang menunjukkan nilai ketangguhan kromosom dalam
beradaptasi terhadap masalah. Untuk menghasilkan generasi berikutnya offspring didapatkan dari perkawinan silang crossover atau memodifikasi
kromosom menggunakan operator mutasi mutation dengan harapan akan
30
menghasilkan kromosom baru dengan tingkat fitness yang lebih tinggi sebagai
generasi baru atau keturunan offspring berikutnya.
Suatu generasi baru dibentuk melalui proses seleksi beberapa induk parents dan anak offspring, sesuai dengan nilai fitness, dan melalui eliminasi
kromosom lainnya agar ukuran populasi tetap konstan. Kromosom yang sesuai memiliki kemungkinan tertinggi untuk dipilih. Setelah beberapa generasi maka
algoritma genetika akan konvergen dengan kromosom terbaik, yang merupakan
solusi optimal Goldberg, 1989. 2.
Aplikasi Algoritma Genetika
Algoritma genetika sudah banyak digunakan pada masalah praktis yang berfokus pada pencarian parameter-parameter atau solusi yang optimal. Hal ini
membuat banyak orang mengira bahwa algoritma genetika hanya dapat digunakan untuk menyelesaikan masalah optimasi saja. Namun, pada kenyataanya algoritma
genetika juga memiliki kemampuan untuk menyelesaikan masalah-masalah selain optimasi. Algoritma genetika banyak diaplikasikan untuk berbagai macam
permasalahan, yaitu Suyanto, 2005: 3-4 : a.
Optimasi Beberapa penggunaan algoritma genetika untuk optimasi antara lain untuk
optimasi numerik dan optimasi kombinatorial seperti Traveling Salesman Problem TSP, Perancangan Integrated Circuit atau IC, Job Scheduling, dan
optimasi video dan suara. b.
Pemrograman Otomatis
31
Algoritma genetika untuk pemrograman otomatis antara lain untuk melakukan proses evolusi terhadap program komputer dalam merancang
struktur komputasional, seperti cellular automata dan sorting networks c.
Machine Learning Algoritma genetika juga telah berhasil diaplikasikan untuk memprediksi
struktur protein. Algoritma genetika juga berhasil diaplikasikan dalam perancangan neural networks jaringan syaraf tiruan untuk melakukan proses
evolusi terhadap aturan-aturan pada learning classifier system atau symbolic production system dan dapat digunakan untuk mengontrol robot.
d. Model Ekonomi
Dalam bidang ekonomi, algoritma genetika digunakan untuk memodelkan proses-proses inovasi dan pembangunan bidding strategies.
e. Model Sistem Imunisasi
Penggunaan algoritma genetika dalam bidang ini untuk memodelkan berbagai aspek pada sistem imunisasi alamiah, termasuk somatic mutation selama
kehidupan individu dan menemukan keluarga dengan gen ganda multi gen families sepanjang waktu evolusi.
f. Model ekologis
Algoritma genetika juga dapat digunakan untuk memodelkan fenomena ekologis seperti host-parasite co-evolution, simbiosis dan aliran sumber di
dalam ekologi.
32
3. Keuntungan Menggunakan Algoritma Genetika
Keuntungan penggunaan algoritma genetika terlihat dari kemudahan implementasi dan kemampuannya untuk menemukan solusi yang optimal dan bisa
diterima secara cepat untuk masalah-masalah berdimensi tinggi. Algoritma genetika sangat berguna dan efisien untuk masalah dengan karakteristik sebagai
berikut : a.
Ruang masalah sangat besar, kompleks, dan sulit dipahami, b.
Kurang atau bahkan tidak ada pengetahuan yang memadai untuk merepresentasikan masalah ke dalam ruang pencarian yang lebih sempit,
c. Tidak tersedianya analisis matematika yang memadai,
d. Ketika metode-metode konvensional sudah tidak mampu menyelesaikan
masalah yang dihadapi, e.
Solusi yang diharapkan tidak harus paling optimal, tetapi cukup “bagus” atau bisa diterima,
f. Terdapat batasan waktu, misalnya dalam real time system atau sistem waktu
nyata.
4. Karakteristik Algoritma Genetika
a. Istilah dalam algoritma genetika
Beberapa definisi penting yang perlu diperhatikan dalam membangun penyelesaian masalah menggunakan algoritma genetika adalah sebagai berikut
Satriyanto, 2009 :
1. Gen Genotype merupakan sebuah nilai yang menyatakan satuan dasar yang
membentuk arti tertentu dalam satu kesatuan gen yang dinamakan kromosom.
33
Dalam algoritma genetika, gen ini dapat berupa bilangan biner, float, integer, karakter, dan kombinatorial.
2. Allele merupakan nilai dari sebuah gen.
3. Kromosom merupakan gabungan gen-gen yang membentuk nilai tertentu.
4. Individu merupakan suatu nilai atau keadaan yang menyatakan salah satu
solusi yang mungkin dari permasalahan yang diangkat. 5.
Populasi merupakan sekumpulan individu yang akan diproses bersama dalam satu siklus proses evolusi. Populasi terdiri dari sekumpulan kromosom.
6. Induk adalah kromosom yang akan dikenai operasi genetika crossover.
7. Crossover adalah operasi genetika yang mewakili proses perkembangbiakan
antar individu. 8.
Offspring adalah kromosom yang merupakan hasil dari operasi genetika crossover dikenal keturunan atau sebagai anak.
9. 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. 10.
Proses seleksi merupakan proses yang mewakili proses seleksi alam natural selection dari teori Darwin. Proses ini dilakukan untuk menentukan induk
dari operasi genetika crossover yang akan dilakukan untuk menghasilkan keturunan offspring.
11. Nilai fitness merupakan penilaian yang menentukan bagus tidaknya sebuah
kromosom.
34
12. 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.
13. 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.
b. Skema alur algoritma genetika
Skema algoritma genetika pertama kali dikemukakan oleh David Goldberg 1989, dengan skema tersebut dapat dilihat pada gambar berikut :
Gambar 2.14 Skema algoritma genetika oleh David Goldberg 1989 Siklus ini kemudian diperbaiki oleh beberapa ilmuwan yang
mengembangkan algoritma genetika, yaitu Zbignew Michalewichz dengan menambahkan operator elitism dan membalik proses seleksi setelah proses
reproduksi.
35
Gambar 2.15 Skema Algoritma Genetika oleh Michalewichz 1996
5. Komponen Algoritma Genetika
Ada 6 komponen utama dalam algoritma genetika, yaitu : teknik penyandian pengkodean, membangkitkan populasi awal, fungsi fitness, seleksi,
crossover pindah silang, mutasi, dan elitism. Masing-masing komponen akan dibahas sebagai berikut :
a. Teknik Pengkodean
Teknik pengkodean adalah bagaimana mengkodekan gen dari kromosom, dimana gen merupakan bagian dari kromosom. Satu gen biasanya akan mewakili
satu variabel. Agar dapat diproses melalui algoritma genetika, maka alternatif solusi tersebut harus dikodekan terlebih dahulu ke dalam bentuk kromosom.
Masing-masing kromosom berisi sejumlah gen yang mengkodekan informasi yang disimpan didalam kromosom Kusumadewi, 2003: 280.
Gen dapat direpresentasikan dalam bentuk: string bit, pohon, array bilangan real, daftar aturan, elemen permutasi, elemen program, atau representasi
36
lainnya yang dapat diimplementasikan untuk operator genetika. Dengan demikian kromosom dapat direpresentasikan dengan menggunakan:
1 String bit
: 10011, 01101, 11101, dst. 2
Bilangan real : 65.65, -67.98, 562.88, dst.
3 Elemen permutasi
: E2, E10, E5, dst. 4
Daftar aturan : R1, R2, R3, dst.
5 Elemen program
: pemrograman genetika 6
Struktur lainnya.
b. Membangkitkan Populasi Awal Spanning
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 dilakukan
inisialisasi terhadap kromosom yang terdapat pada populasi tersebut. Inisialisasi kromosom dilakukan secara acak, namun demikian harus tetap memperhatikan
domain solusi dan kendala permasalahan yang ada Kusumadewi, 2003: 282. Terdapat berbagai teknik dalam pembangkitan populasi awal diantaranya
adalah random generator, pendekatan tertentu, dan permutasi gen. Pada penelitian ini pembangkitan populasi awal dilakukan dengan menggunakan random
generator. Inti dari cara ini adalah melibatkan pembangkitan bilangan random dalam interval 0,1 untuk setiap nilai gen sesuai dengan representasi kromosom
yang digunakan.
37
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 performansinya. Di dalam evolusi alam, individu yang bernilai fitness tinggi yang
akan bertahan hidup. Sedangkan individu yang bernilai fitness rendah akan mati. Pada masalah optimasi jika solusi yang dicari adalah memaksimalkan sebuah
fungsi dikenal sebagai masalah maksimasi, maka nilai fitness yang digunakan
adalah nilai dari fungsi tersebut, yakni dimana adalah nilai fitness.
Tetapi jika masalahnya adalah meminimalkan fungsi masalah minimasi, maka
fungsi tidak bisa digunakan secara langsung. Hal ini disebabkan adanya aturan
bahwa individu yang memiliki nilai fitness tinggi lebih mampu bertahan hidup pada generasi berikutnya. Oleh karena itu nilai fitness yang bisa digunakan adalah
2.8
Dengan nilai h merupakan nilai dari individu, yang artinya semakin kecil nilai h, maka semakin besar nilai fitnessnya. Tetapi hal ini akan menjadi masalah
jika h bernilai 0, yang mengakibatkan bisa bernilai tak hingga jika . Untuk
mengatasinya, h perlu ditambah sebuah bilangan sangat kecil sehingga nilai fitnessnya menjadi
2.9
38
dengan a adalah bilangan yang dianggap sangat kecil konstanta dan bervariasi sesuai dengan masalah yang akan diselesaikan Suyanto, 2005:10.
d. Seleksi Selection
Seleksi merupakan pemilihan dua buah kromosom untuk dijadikan sebagai induk yang dilakukan secara proposional sesuai dengan nilai fitnessnya
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: 282, yaitu seleksi ranking rank-based fitness assignment, seleksi roulette wheel
roulette wheel selection, stochastic universal sampling, seleksi lokal local selection, seleksi dengan pemotongan truncation selection, dan seleksi dengan
turnamen tournament selection. Dalam penelitian ini menggunakan metode seleksi roulette wheel roulette wheel selection.
Pada roulette wheel selection, setiap kromosom dalam suatu populasi memiliki tempat yang sesuai dengan proporsinya terhadap total nilai fitness.
Kromosom-kromosom dipetakan kedalam suatu segmen secara berurutan, hingga tiap-tiap segmen kromosom memiliki ukuran yang sesuai dengan nilai fitnessnya.
Langkah pertama dari seleksi adalah menghitung nilai fitness masing-masing kromosom. Setelah itu dihitung proporsi masing-masing kromosom berdasarkan
perbandingan probabilitas antara nilai fitness setiap kromosom dengan total nilai fitness. Langkah selanjutnya adalah membangkitkan bilangan real random antara
39
0 dan 1 untuk menentukan kromosom yang bertahan hidup dan menjadi induk Nugroho, 2010:25. Ilustrasi roulette wheel selection dapat dilihat pada gambar
2.15.
Gambar 2.16 Roulette wheel selection Obitko, 1998 Cara kerja roulette wheel selection adalah sebagai berikut :
1. Dihitung nilai fitness dari masing-masing individu
dimana i adalah individu ke-1 sd ke-n.
2. Dihitung total fitness semua individu.
3. Dihitung probabilitas masing-masing individu.
4. Dari probabilitas tersebut, dihitung jatah masing-masing individu pada angka
1 sampai 100 5.
Dibangkitkan bilangan random antara 1 sampai 100. 6.
Dari bilangan random yang dihasilkan, ditentukan individu mana yang terpilih dalam proses seleksi.
Urutan langkah proses seleksi menggunakan metode roda roulette, dapat digambarkan sebagai berikut :
Misalkan diberikan sebuah contoh populasi beserta nilai fitnessnya yang ditunjukkan pada tabel 2.1.
40
Tabel 2.1. Contoh Populasi Beserta Fitnessnya
Kromosom Fitness
Kromosom 1 0,1111
Kromosom 2 0,2000
Kromosom 3 0,0588
Kromosom 4 0,2000
Kromosom 5 0,0400
Total Fitness 0,6099
Langkah selanjutnya adalah menentukan nilai segmen untuk masing-masing kromosom yang ditunjukkan pada tabel 2.2.
Tabel 2.2 Nilai Probabilitas dan Segmen untuk masing-masing Kromosom
Kromosom Nilai Fitness
Probabilitas Segmen
Kromosom 1 0,1111
18 1-17
Kromosom 2 0,2000
33 18-50
Kromosom 3 0,0588
10 51-60
Kromosom 4 0,2000
33 61-93
Kromosom 5 0,0400
6 94-100
Berikut ditunjukkan hasil segmen dalam sebuah roda roulette yang ditunjukkan pada gambar 2.17.
41
Gambar 2.17 Segmen untuk masing-masing Kromosom Langkah selanjutnya adalah memutar roda roulette sebanyak kromosom
dalam populasi tersebut sebanyak 5 kali, setiap kali putaran akan menghasilkan suatu bilangan random dengan rentang antara 1-100 yang menunjukkan daerah
atau segmen dari kromosom. Berikut ini adalah hasil kromosom yang terpilih setelah 5 kali putaran yang ditunjukkan pada tabel 2.4.
Tabel 2.3. Hasil kromosom yang terpilih setelah 5 kali putaran
Putaran ke - Daerah Terpilih
Kromosom terpilih
1 40
Kromosom 2 2
76 Kromosom 4
3 84
Kromosom 4 4
15 Kromosom 1
5 35
Kromosom 2
Kromosom 2 33
Kromosom 3 10
Kromosom 4 33
Kromosom 5 6
Kromosom 1 18
42
e. Pindah Silang crossover
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 crossover dengan Pc Probabilitas Crossover antara 0,6 sampai dengan 0,95. Jika pindah silang tidak dilakukan, maka nilai dari induk akan
diturunkan kepada keturunan. Prinsip dari pindah silang ini adalah melakukan operasi pertukaran pada
gen yang bersesuaian dari induk untuk menghasilkan individu baru. Proses crossover dilakukan pada setiap individu dengan probabilitas crossover yang
ditentukan. Secara skematis proses crossover seperti pada gambar 2.18.
Gambar 2.18 Sistematika proses crossover
43
Dari gambar 2.18, 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 pindah silang.
Salah satu teknik crossover yang dapat digunakan adalah order crossover OX yang diperkenalkan oleh Davis W.S.E. Tanjung, 2010. Teknik ini diawali
dengan membangkitkan dua bilangan acak. Kemudian gen yang berada diantara kedua bilangan acak tersebut substring disalin ke ke keturunan offspring
dengan posisi yang sama pada masing-masing kromosom orang tua. Langkah berikutnya untuk mendapatkan offspring pertama adalah adalah dengan
mengurutkan gen yang berada dalam kromosom orang tua kedua dengan urutan gen yang pertama adalah dari gen yang berada pada posisi setelah bilangan acak
kedua yang telah dibangkitkan sebelumnya lalu diikuti oleh gen-gen yang berada pada posisi sebelum bilangan acak pertama dan diakhiri dengan gen-gen yang
berada pada posisi diantara kedua bilangan acak. Kemudian gen yang telah diurutkan tadi dibandingkan dengan offspring pertama. Apabila gen yang terurut
tersebut mengandung gen yang berada pada offspring pertama, maka abaikan gen tersebut dari urutan. Kemudian masukkan urutan yang baru saja didapat ke
offspring pertama dengan cara memasukkan urutan gen pada posisi setelah bilangan acak kedua terlebih dahulu pada offspring pertama dan sisanya
dimasukkan pada posisi sebelum bilangan acak pertama. Untuk menghasilkan offspring kedua dilakukan cara yang sama untuk kromosom orang tua pertama.
Contoh 2.4 order crossover
44
Dari 2 induk diketahui : P
1
= 1 2 3 | 4 5 6 7 | 8 9 P
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 keturunan dengan gen yang
sama: O
1
= x x x | 4 5 6 7 | x x
O
2
= x x x | 1 8 7 6 | x x
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. 9-3-4-5-2-1-8-7-6
Kemudian 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 menghasilkan keturunan kedua. Keturunan 1 diperoleh :
45
O
1
= x x x | 4 5 6 7 | x x O
1
= 2 1 8 | 4 5 6 7 | 9 3 Dengan jalan yang sama buat O
2
sehingga : O
2
= x x x | 1 8 7 6 | x x O
2
= 3 4 5 | 1 8 7 6 | 9 2 Keterangan :
P
1
= Induk 1 P
2
= Induk 2 O
1
= Keturunan 1 anak ke-1 O
2
= Keturunan 2 anak ke-2
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. Penekanan selektif 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 Murniarti, 2009. Secara
skematis proses mutasi dapat digambarkan sebagai berikut:
46
Gambar 2.19 Sistematika Proses Mutasi Dari gambar 2.19, 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 dalam penelitian 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:
67. Contoh 2.5 swapping mutation
Individu = 1 2 3 4 5 6 8 9 7
Memindahkan 8 ke 2, sehingga didapatkan individu baru:
Individu = 1 8 3 4 5 6 2 9 7
47
g. Elitism
Elitism merupakan proses untuk menjaga agar individu bernilai fitness tertinggi tersebut tidak hilang selama evolusi. Proses seleksi dilakukan secara
random sehingga tidak ada jaminan bahwa suatu individu yang bernilai fitness tertinggi akan selalu dipilih. Walaupun individu bernilai fitness tertinggi terpilih,
mungkin saja individu tersebut akan rusak nilai fitness 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
beberapa copynya Suyanto, 2005: 14. h.
Pembentukkan Populasi Baru
Proses membangkitkan populasi baru bertujuan untuk membentuk populasi baru yang berbeda dengan populasi awal. Pembentukkan 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, proses pindah silang, proses mutasi pada
populasi baru untuk membentuk populasi baru selanjutnya.
6. Parameter Algoritma Genetika
Dalam proses algoritma genetika terdapat parameter-parameter yang akan dibutuhkan dalam pemrosesan algoritma genetika. Pemilihan parameter
genetika menentukan kinerja algoritma genetika dalam memecahkan masalah. Ada tiga parameter dasar dari algoritma genetika, yaitu ukuran populasi, jumlah
generasi, probabilitas crossover Pc, dan probabilitas mutasi Pm.
48
1 Ukuran populasi
Ukuran populasi adalah jumlah kromosom yang ada pada populasi. Semakin besar jumlah populasi yang diinputkan dalam parameter jumlah
populasi, semakin besar variasi kromosom yang dihasilkan. Hal tersebut berpengaruh pada besarnya kesempatan untuk mendapatkan solusi terbaik.
Memilih jumlah populasi yang tepat akan meningkatkan kinerja dari algoritma genetika. Apabila jumlah populasi terlalu kecil, maka algoritma genetika hanya
akan mempunyai alternatif solusi yang sedikit. Namun, jika jumlah populasi terlalu besar proses algoritma genetika cenderung menjadi lambat dalam
menemukan solusi. Ukuran populasi yang sering digunakan oleh peneliti yang sudah ada adalah 20 sampai 30, tetapi terkadang ukuran 50 sampai 100 juga
dilaporkan baik. Beberapa penelitian juga menunjukan bahwa ukuran populasi yang baik tergantung dari pengkodean, yaitu ukuran dari barisan yang dikodekan.
2 Jumlah Generasi
Jumlah generasi adalah jumlah proses yang dijalani untuk suatu rangkaian proses algoritma genetika. Suatu proses rangkaian algoritma genetika
dimulai dari proses seleksi, crossover, mutasi sampai pembentukan populasi baru. Proses algoritma genetika akan dihentikan apabila jumlah generasi sudah
terpenuhi. Solusi yang diambil adalah kromosom dengan nilai fitness terbaik dari generasi terakhir.
3 Probabilitas Crossover Pc
Probabilitas crossover menyatakan seberapa sering proses crossover akan terjadi antara dua kromosom orang tua. Jika tidak terjadi crossover, satu orang tua
49
dipilih secara random dengan probabilitas yang sama dan diduplikasi menjadi anak. Jika terjadi crossover, keturunan dibuat dari bagian-bagian kromosom orang
tua. Jika probabilitas crossover 100 maka keseluruhan keturunan baru dibuat dengan crossover. Namun sebaliknya jika probabilitas crossover 0 maka seluruh
generasi baru dibuat dari salinan kromosom-kromosom populasi lama yang belum tentu menghasilkan populasi yang sama dengan populasi sebelumnya, karena
adanya penekanan selektif. Hasil penelitian yang sudah ada dan pernah dilakukan oleh praktisi algoritma genetika menunjukan bahwa sebaiknya angka probabilitas
crossover cukup tinggi yaitu sekitar 80 sampai dengan 95 untuk memberikan hasil yang baik. Untuk beberapa permasalahan juga sebaiknya probabilitas
crossover sekitar 60 bisa memberikan hasil yang baik.
4 Probablitas Mutasi Pm
Probabliltas mutasi menyatakan seberapa sering bagian-bagian kromosom akan dimutasikan. Jika tidak ada mutasi, keturunan diambil atau
disalin langsung setelah crossover tanpa perubahan. Jika mutasi dilakukan, maka bagian-bagian tertentu kromosom diubah. Jika probabilitas mutasinya 100,
keseluruhan kromosom diubah. Jika probabilitas mutasinya 0, maka tidak ada yang diubah. Probablitas mutasi dalam ruang algoritma genetika seharusnya diberi
nilai yang kecil. Umumnya, probabilitas mutasi diset untuk mendapatkan rata-rata satu mutasi per kromosom, yaitu angkaallele = 1panjang kromosom. Dari hasil
penelitian yang sudah pernah dilakukan, menunjukkan bahwa angka probabilitas terbaik adalah 0,5 sampai 1. Hal ini karena tujuan mutasi ini sendiri adalah
50
menjaga perbedaan kromosom dalam populasi, untuk menghindari terjadinya konvergen prematur.
Rekomendasi parameter algoritma genetika menurut Obitko, 1998 adalah sebagai berikut:
Ukuran Populasi : 20-30
Probabilitas Crossover : 80-95
Probabilitas Mutasi : 0,5-1
Ada beberapa rekomendasi lain yang bisa digunakan, antara lain : Kusumadewi, 2003.
a. Untuk permasalahan yang memiliki kawasan solusi cukup besar, De Jong
merekomendasikan untuk nilai parameter kontrol: popsize;Pc;Pm = 50;0.6;0.001
b. Bila rata-rata fitness setiap generasi digunakan sebagai indikator, maka
Grefenstette merekomendasikan: popsize;Pc;Pm = 30;0.95;0.01
c. Bila fitness dari individu terbaik dipantau pada setiap generasi, maka
usulannya adalah: popsize;Pc;Pm = 80;0.45;0.01
d. Ukuran populasi sebaiknya tidak lebih kecil dari 30, untuk sembarang jenis
permasalahan.
G. Penelitian yang Relevan
Beberapa penelitian tentang CVRP dan algoritma genetika telah banyak dilakukan antara lain “Algoritma Genetika pada Penyelesaian Capacitated Vehicle
51
Routing Problem Optimasi Rute Pendistribusian Aqua Galon PT. Tirta Investama” oleh Adam Arif Dirgantara, penelitian ini menggunakan algoritma
genetika dalam menyelesaikan CVRP dengan menggunakan data dari peneliti sebelumnya yang menggunakan algoritma branch bound serta clarke wright
savings. Algoritma genetika menghasilkan solusi yang lebih baik daripada metode clarke wright savings tetapi solusi algoritma genetika tidak sebaik metode
branch bound. Selanjutnya penelitian oleh Kustanto yang berjudul “Optimasi Rute
Distribusi Tabung Gas Elpiji menggunankan Algoritma Genetika Studi Kasus PT. Restu Ajima
nunggal Surakarta” penelitian ini membandingkan solusi yang dihasilkan dari algoritma Djikstra, Algoritma Greedy, serta Algoritma Genetika
dengan bantuan program Arc View GIS dengan memperhatikan hambatan jalan yang dilewati. Hasil yang diperoleh bahwa rute optimal dari algoritma Djikstra
dan Greedy akan lebih jauh optimal jika dibandingkan dengan rute optimal yang dihasilkan algoritma genetika.
Selain penelitian yang menggunakan algoritma genetika sebagai metode penyelesaiannya terdapat juga penelitian tentang CVRP dengan metode heuristik
yaitu Algoritma Sweep sebagai metode penyelesaiannya oleh Wahyu Kartika Cahyaningsih yang berjudul “Penyelesaian Capacitated Vehicle Routing Problem
CVRP menggunakan algoritma sweep untuk optimasi rute distribusi surat kabar Kedaulatan Rakyat”. Hasil dari penelitian ini adalah bahwa algoritma sweep
menghasilkan total jarak tempuh kendaraan dan waktu tempuh yang lebih baik daripada total jarak tempuh kendaraan dan waktu tempuh perusahaan saat ini yaitu
52
dengan jarak 142,9 km dan waktu tempuh 210 menit sedangkan milik perusahaan yaitu dengan jarak 174,9 km dan waktu tempuh 233 menit. Menghasilkan
penghematan jarak tempuh sebesar 18,29 . Terdapat persamaan dan perbedaan penelitian ini dengan penelitian
sebelumnya. Persamaannya yaitu dalam penelitian ini menggunakan algoritma genetika sebagai metode penyelesaiannya seperti penelitian Adam Arif Dirgantara
dan Kustanto. Perbedaannya yaitu dalam metode seleksi yang digunakan, dalam penelitian Adam Arif Dirgantara menggunakan metode seleksi ranking sedangkan
pada penelitian ini menggunakan Roulette Wheel Selection dan perbedaan dalam menentukan nilai paramater yang digunakan dalam algoritma genetika seperti
Ukuran Populasi, Jumlah Generasi, Probabilitas Mutasi dan Probabilitas Crossover. Data yang digunakan adalah data sekunder dari skripsi Wahyu Kartika
Cahyaningsih yang berjudul “Penyelesaian Capacitated Vehicle Routing Problem CVRP Menggunakan Algoritma Sweep untuk Optimasi Rute Distribusi Surat
Kabar Kedaulatan Rakyat” tahun 2015. Karena data yang digunakan sama, maka hasil dari penelitian ini dapat dibandingkan dengan hasil penelitian dari Wahyu
Kartika Cahyaningsih.
53
BAB III PEMBAHASAN
A. Model Matematika Capacitated Vehicle Routing Problem CVRP
Pendistribusian Surat Kabar Kedaulatan Rakyat di Kabupaten Sleman.
Surat Kabar Harian Kedaulatan Rakyat merupakan merupakan surat kabar lokal tertua di Indonesia. Kedaulatan Rakyat resmi berdiri dan terbit pada
tanggal 27 September 1945 di bawah naungan PT Badan Penerbit Kedaulatan Rakyat. PT Badan Penerbit Kedaulatan Rakyat KR memproduksi sejumlah surat
kabar setiap harinya yang akan didistribusikan ke wilayah Daerah Istimewa Yogyakarta DIY dan Jawa Tengah. Kegiatan distribusi surat kabar Kedaulatan
Rakyat dimulai dari depot yang berlokasi di Jalan Solo km 11, Kalitirto, Sleman, Yogyakarta dan berakhir kembali di depot. Pendistribusian dilakukan setiap hari
pada pukul 02.30-05.00 WIB dengan menggunakan kendaraan jenis Mobil Box Isuzu Panther sebanyak 2 kendaraan yang mempunyai kapasitas masing-masing
yaitu 350 kg dimana 1 kg terdiri dari 9 eksemplar. Terdapat 20 agen surat kabar di wilayah Kabupaten Sleman yang harus dipenuhi jumlah permintaannya. Masalah
yang dihadapi perusahaan adalah dalam menentukan rute distribusi yang paling optimal, karena selama ini dalam pendistribusian pihak perusahaan hanya
berdasarkan perkiraan saja tanpa mengetahui apakah jarak tempuh yang dipilih sudah minimal atau belum, sehingga mengakibatkan biaya bahan bakar yang
dikeluarkan belum tentu minimal. Oleh karena itu penulisan skripsi ini bertujuan