Penyelesaian Vehicle Routing Problem Menggunakan Algoritme Genetika

PENYELESAIAN VEHICLE ROUTING PROBLEM
MENGGUNAKAN ALGORITME GENETIKA

DEDI HARIYANTO

DEPARTEMEN MATEMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
BOGOR
2016

PERNYATAAN MENGENAI SKRIPSI DAN
SUMBER INFORMASI SERTA PELIMPAHAN HAK CIPTA
Dengan ini saya menyatakan bahwa skripsi berjudul Penyelesaian Vehicle
Routing Problem Menggunakan Algoritme Genetika adalah benar karya saya
dengan arahan dari komisi pembimbing dan belum diajukan dalam bentuk apa pun
kepada perguruan tinggi mana pun. Sumber informasi yang berasal atau dikutip
dari karya yang diterbitkan maupun tidak diterbitkan dari penulis lain telah
disebutkan dalam teks dan dicantumkan dalam Daftar Pustaka di bagian akhir
skripsi ini.
Dengan ini saya melimpahkan hak cipta dari karya tulis saya kepada Institut

Pertanian Bogor.
Bogor, April 2016
Dedi Hariyanto
NIM G54110045

ABSTRAK
DEDI HARIYANTO. Penyelesaian Vehicle Routing Problem Menggunakan
Algoritme Genetika. Dibimbing oleh PRAPTO TRI SUPRIYO dan
MUHAMMAD ASYHAR AGMALARO.
Vehicle routing problem (VRP) adalah masalah penentuan rute terpendek
sekelompok kendaraan yang harus mengunjungi beberapa kota. Penyelesaian VRP
berukuran besar dengan metode eksak akan memerlukan waktu komputasi yang
lama, sehingga pada umumnya VRP berukuran besar diselesaikan dengan metode
pendekatan (heuristik). Algoritme genetika adalah salah satu metode pendekatan
untuk masalah optimasi seperti VRP. Secara umum, tahapan algoritme genetika
adalah pengodean, pembangkitan populasi awal, seleksi induk, kawin silang,
mutasi, dan penggantian generasi. Banyak pilihan metode yang dapat digunakan
dalam tahapan-tahapan algoritme genetika tersebut. Tujuan penelitian ini adalah
mendeskripsikan cara kerja algoritme genetika untuk menyelesaikan VRP. Dalam
penelitian ini, VRP dengan 9 kota diselesaikan dengan algoritme genetika

menggunakan metode stochastic universal sampling untuk seleksi induk, order
crossover untuk kawin silang, dan insertion untuk mutasi dengan bantuan
software MATLAB R2008b. Algoritme genetika menghasilkan rute terpendek 29
km, sedangkan hasil dengan metode eksak diperoleh rute terpendek 27 km.
Kata kunci: algoritme genetika, kawin silang, mutasi, seleksi, VRP

ABSTRACT
DEDI HARIYANTO. The Solution of Vehicle Routing Problem Using Genetic
Algorithms. Supervised by PRAPTO TRI SUPRIYO and MUHAMMAD
ASYHAR AGMALARO
Vehicle routing problem (VRP) is the problem of determining the shortest
route for a fleet of vehicles that have to visit several cities. The big VRP solution
using the exact method will require a long computing time, so, generally, these
big VRP are solved by the approach method (heuristics). One such approach
method for an optimization problem, such as VRP, is to use a genetic algorithm.
In general, the genetic algorithms stages are encoding, initial population
generation, parents selection, crossovers, mutations, and the generation
replacement. Each of these genetic algorithm stages can be performed using one
of many available methods. The purpose of this study is to describe how the
genetic algorithms work to solve VRP. In this study, VRP with 9 cities were

solved by genetic algorithms using stochastic universal sampling method for
parents selection, order crossover for recombination, and the insertion for
mutations by MATLAB R2008b software. Genetic algorithms find the shortest
route, 29 kilometers, while the exact method finds the shortest route, 27
kilometers.
Keywords: genetic algorithms, mutations, recombinations, selections, VRP

PENYELESAIAN VEHICLE ROUTING PROBLEM
MENGGUNAKAN ALGORITME GENETIKA

DEDI HARIYANTO

Skripsi
sebagai salah satu syarat untuk memperoleh gelar
Sarjana Sains
pada
Departemen Matematika

DEPARTEMEN MATEMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

INSTITUT PERTANIAN BOGOR
BOGOR
2016

PRAKATA
Segala puji bagi Allah subhanahu wa ta’ala atas segala rahmat dan karuniaNya sehingga penulis dapat menyelesaikan karya ilmiah ini. Topik yang dipilih
dalam penelitian ini ialah vehicle routing problem, dengan judul Penyelesaian
Vehicle Routing Problem Menggunakan Algoritme Genetika.
Penulis mengucapkan terima kasih kepada Bapak Drs Prapto Tri Supriyo,
MKom dan Bapak Muhammad Asyhar Agmalaro, SSi, MKom selaku
pembimbing, serta Ibu Dra Farida Hanum, MSi yang telah banyak memberikan
saran. Terima kasih juga penulis ucapkan kepada segenap dosen Departemen
Matematika IPB atas ilmu dan pelajaran yang telah diberikan, serta staf
Departemen Matematika IPB yang telah banyak membantu penulis. Selain itu,
terima kasih juga penulis sampaikan kepada teman-teman Matematika angkatan
48 yang selalu saling memberi dukungan dan semangat, serta Ilham yang selalu
bersedia membantu. Ungkapan terima kasih juga penulis sampaikan kepada ibu,
kakak, dan keluarga tercinta yang selalu memberikan dukungan, motivasi, dan
doa-doanya, serta semua pihak yang sudah membantu penulis dan tidak dapat
disebutkan satu per satu.

Penulis menyadari karya ilmiah ini memiliki kekurangan. Oleh karena itu,
penulis sangat menghargai kritik dan saran dari pembaca. Semoga karya ilmiah ini
bermanfaat.

Bogor, April 2016
Dedi Hariyanto

DAFTAR ISI
DAFTAR TABEL

vi

DAFTAR GAMBAR

vi

DAFTAR LAMPIRAN

vii


PENDAHULUAN

1

Latar Belakang

1

Tujuan Penelitian

1

Ruang Lingkup Penelitian

1

TINJAUAN PUSTAKA

2


Formulasi VRP Menggunakan Interger Linear Programming

2

Algoritme Genetika

3

IMPLEMENTASI ALGORITME GENETIKA PADA VRP
Solusi Manual

9
9

Solusi VRP dengan Bantuan Software

28

Perbandingan Solusi Eksak dengan Solusi Algoritme Genetika


29

SIMPULAN DAN SARAN

29

Simpulan

29

Saran

29

DAFTAR PUSTAKA

30

LAMPIRAN


31

DAFTAR TABEL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

18
19
20
21
22
23
24
25
26
27
28
29
30
31
32

Jarak antarpelanggan dan permintaan
Individu hasil pembangkitan populasi awal
Nilai fitness dan peluang kumulatif individu pada populasi awal
Anak hasil kawin silang pada Iterasi 1

Nilai fitness anak pada Iterasi 1
Individu pada generasi ke-2
Nilai fitness dan peluang kumulatif individu pada Iterasi 2
Pemilihan induk pada Iterasi 2
Anak hasil kawin silang pada Iterasi 2
Nilai fitness anak pada Iterasi 2
Individu pada generasi ke-3
Nilai fitness dan peluang kumulatif individu pada Iterasi 3
Pemilihan induk pada Iterasi 3
Pemilihan induk pada Iterasi 4
Anak hasil kawin silang pada Iterasi 4
Nilai fitness anak pada Iterasi 4
Individu baru pada generasi ke-5
Nilai fitness dan peluang kumulatif individu pada Iterasi 5
Pemilihan induk pada Iterasi 5
Anak hasil kawin silang pada Iterasi 5
Nilai fitness anak pada Iterasi 5
Individu pada generasi ke-6
Nilai fitness dan peluang kumulatif individu pada Iterasi 6
Pemilihan induk pada Iterasi 6
Pemilihan induk pada Iterasi 7
Pemilihan induk pada Iterasi 8
Pemilihan induk pada Iterasi 9
Anak hasil kawin silang pada Iterasi 9
Nilai fitness anak pada Iterasi 9
Individu pada generasi ke-10
Nilai fitness dan peluang kumulatif individu pada Iterasi 10
Pemilihan induk pada Iterasi 10

9
11
12
14
15
16
16
16
17
17
18
18
19
19
20
20
20
21
21
21
22
22
23
23
24
24
24
25
25
26
26
26

DAFTAR GAMBAR
1
2
3
4
5
6
7
8

Diagram alir algoritme genetika
Ilustrasi kromosom bilangan bulat
Ilustrasi satu individu atau kromosom dengan 3 blok
Letak pointer untuk populasi awal
Hasil mutasi Anak 1 dengan motede insertion
Rute optimal pada akhir Iterasi 10
Grafik nilai fitness terbaik setiap iterasi
Rute optimal yang didapat pada akhir Iterasi 50

5
6
10
13
14
27
28
28

DAFTAR LAMPIRAN
1 Pembangkitan bilangan acak untuk setiap kromosom
2 Perhitungan jarak setiap rute/kromosom
3 Sintaks dan hasil software Matlab R2008b untuk implementasi
VRP
4 Sintaks dan hasil software LINGO 11.0

31
31
33
39

PENDAHULUAN
Latar Belakang
Transportasi merupakan bidang penting dalam industri logistik atau
pengiriman barang. Ada beberapa masalah yang harus diperhatikan dalam
transportasi barang, misalkan waktu pengiriman, keselamatan, keamanan, dan
biaya pengiriman barang. Transportasi yang diharapkan adalah transportasi
dengan waktu pengiriman seminimal mungkin, barang aman dan selamat sampai
tujuan, dan biaya pengiriman minimum. Pemilihan kendaraan dan jalur
transportasi yang tepat dapat menekan biaya transportasi.
Salah satu masalah transportasi adalah traveling salesman problem (TSP).
TSP adalah masalah penentuan rute terpendek seorang salesman
untuk
mengunjungi beberapa kota dengan ketentuan setiap kota hanya dapat dikunjungi
tepat satu kali. TSP tidak mempertimbangkan kapasitas pengangkutan atau
permintaan dari kota yang dikunjungi. Namun dalam beberapa kasus transportasi,
terdapat kendala-kendala yang lebih kompleks, sehingga TSP dikembangkan
menjadi vehicle routing problem (VRP). VRP adalah masalah penentuan rute
terpendek sekelompok kendaraan atau salesman yang harus mengunjungi
beberapa kota dengan mempertimbangkan kapasitas kendaraan dan permintaan di
tiap kota.
VRP termasuk dalam masalah optimasi kombinatorial dan masuk ke dalam
kelas NP hard problem (Sarwadi dan Anjar 2004). Karenanya, penyelesaian VRP
berukuran besar dengan metode eksak akan memerlukan waktu komputasi yang
lama, sehingga pada umumnya VRP berukuran besar diselesaikan dengan metode
pendekatan atau heuristik. Beberapa metode heuristik antara lain metode saving,
algoritme sweep, algoritme tabu search, dan algoritme genetika. Algoritme
genetika dikembangkan berdasarkan konsep evolusi pada makhluk hidup. Proses
evolusi pada makhluk hidup diharapkan akan menghasilkan individu baru atau
keturunan dengan sifat-sifat unggul dan mampu bertahan terhadap tantangan
lingkungan.
Tujuan Penelitian
Tujuan dari karya ilmiah ini ialah mendeskripsikan dan menyelesaikan
vehicle routing problem dengan menggunakan algoritme genetika.
Ruang Lingkup Penelitian
Penelitian ini menguraikan algoritme genetika menggunakan metode
stochastic universal sampling untuk seleksi induk, order crossover untuk kawin
silang, dan insertion untuk mutasi. Implementasi algoritme genetika untuk
menyelesaikan VRP menggunakan beberapa asumsi dan data hipotetik yang
umum digunakan dalam VRP.

2

TINJAUAN PUSTAKA
Formulasi VRP Menggunakan Interger Linear Programming
Vehicle routing problem (VRP) diakui merupakan salah satu pengalaman
tersukses dalam riset operasi. VRP dipublikasikan oleh Dantzig dan Ramser pada
tahun 1959. VRP adalah masalah penentuan rute bagi sekelompok kendaraan
sehingga total jarak yang ditempuh oleh semua kendaraan adalah minimum.
Kendaraan-kendaraan tersebut memiliki kapasitas tertentu dan berangkat dari satu
depot untuk melayani atau mengunjungi beberapa konsumen atau pelanggan.
Setelah selesai melayani semua konsumen atau pelanggan, setiap kendaraan harus
kembali ke depot. Agar mudah dipahami VRP ini diformulasikan dalam bentuk
Integer Linear Programming (ILP) sebagai berikut (Wilck 2009).
Himpunan
= Himpunan semua pelanggan
= Himpunan semua kendaraan
Indeks
= Indeks yang menyatakan pelanggan, indeks i,j = 0 menunjukkan depot
= Indeks yang menyatakan kendaraan
Parameter
= Banyaknya kendaraan
= Banyaknya pelanggan
= Kapasitas kendaraan
= Jarak dari pelanggan i ke j
= Banyaknya permintaan pelanggan i
Variabel Keputusan
= Variabel bantuan untuk mengatasi terjadinya subrute pada pelanggan i
oleh kendaraan k.
1, jika kendaraan k mengunjungi pelanggan j setelah pelanggan i
= 0, lainnya

{

Fungsi Tujuan
Fungsi tujuan atau fungsi objektif dari VRP adalah menentukan rute yang
meminimumkan total jarak tempuh kendaraan dengan memenuhi semua
kendalanya, yaitu
∑∑∑

3
Kendala
1. Setiap pelanggan hanya dilayani sekali oleh satu kendaraan
∑∑
2.

Semua kendaraan harus berangkat dari depot, yaitu

3.



Semua kendaraan harus kembali ke depot


4.

Rute harus kontinu, artinya setiap kendaraan yang mengunjungi suatu
pelanggan pasti akan meninggalkan pelanggan tersebut


5.



Semua kendaraan tidak boleh melayani melebihi kapasitasnya
∑∑

6.

Eliminasi subrute pada pelanggan i

7.

Setiap kendaraan tidak boleh mengunjungi kembali pelanggan yang sama

8.

Kendala biner

{

}

Algoritme Genetika
Algoritme genetika (AG) pertama kali dikemukakan oleh John Holland pada
tahun 1975. Algoritme genetika adalah algoritme optimasi yang dikonstruksi
mengikuti
proses evolusi dalam bidang biologi. Evolusi mengakibatkan
perubahan materi genetik pada sebuah individu. Evolusi terjadi karena adanya
seleksi alam, kawin silang antarindividu, atau mutasi materi genetika pada sebuah
individu. Algoritme genetika bekerja menggunakan operator seperti dalam evolusi
yaitu seleksi (selection), kawin silang (crossover), dan mutasi (mutation). Banyak
dilakukan pengembangan-pengembangan dalam algoritme genetika. Algoritme

4
genetika dapat digunakan untuk menyelesaikan masalah optimasi seperti
penjadwalan, penentuan rute, dan permainan (Sivanandam dan Deepa 2008).
Beberapa istilah dalam algoritme genetika adalah gen, alel, kromosom,
individu, populasi dan generasi. Gen adalah sebuah nilai yang menyatakan satuan
dasar dalam proses genetika. Alel adalah nilai-nilai yang terdapat dalam gen.
Kromosom adalah kumpulan dari gen-gen yang membentuk satu individu.
Individu menyatakan suatu nilai atau keadaan yang merepresentasikan satu solusi
yang mungkin dari permasalahan yang dibahas. Populasi adalah kumpulan dari
individu-individu, sehingga populasi merupakan himpunan dari beberapa solusi
yang mungkin. Generasi menyatakan satu siklus proses evolusi atau satu iterasi
dalam algoritme genetika.
Algoritme genetika memiliki beberapa sifat yang menjadi ciri-cirinya.
Algoritme genetika bekerja secara paralel pada sekumpulan solusi awal sehingga
dapat mempercepat penemuan solusi terbaik. Semakin besar ukuran solusi atau
populasi awal akan memperluas daerah pencarian solusi oleh algoritme genetika.
Penggunaan fungsi fitness untuk mengevaluasi sebuah solusi membuat algoritme
genetika dapat diterapkan pada masalah pengoptimuman diskret maupun kontinu.
Algoritme genetika bersifat probabilistik karena menggunakan peluang sebagai
parameter dalam operasi evolusi. Algoritme genetika tidak bekerja secara
langsung pada parameter-parameter permasalahan, namun bekerja pada tahap gen.
Agar sebuah permasalahan dapat diselesaikan dengan algoritme genetika, perlu
dilakukan pengodean (encoding) dari permasalahan nyata ke dalam bentuk yang
dapat diproses dengan algoritme genetika (Sivanandam dan Deepa 2008).
Algoritme genetika bekerja secara iteratif. Pada setiap ulangan, proses
seleksi, kawin silang, dan mutasi dilakukan dengan peluang tertentu. Seleksi
dilakukan untuk memilih individu-individu terbaik pada suatu generasi. Kawin
silang adalah upaya merekombinasi generasi selanjutnya yang melibatkan dua
individu. Mutasi bertujuan memperbaiki variasi gen pada sebuah individu.
Proses ini berlanjut hingga didapat individu terbaik atau kriteria penghentian telah
tercapai. Secara umum langkah dasar algoritme genetika adalah sebagai berikut
(Wilck 2009):
1. mengodekan permasalahan ke dalam bentuk yang dapat diproses dengan
algoritme genetika dan penentuan parameter-parameter,
2. membangkitkan populasi awal sebagai solusi awal permasalahan,
3. menyeleksi individu terbaik dengan menggunakan fungsi fitness untuk
proses kawin silang dan mutasi,
4. memproduksi individu-individu baru atau anak (offspring) dengan proses
kawin silang,
5. merekombinasi gen-gen anak hasil kawin silang secara acak dengan proses
mutasi,
6. melakukan perbaikan dan penggantian generasi lama dengan generasi
baru,
7. mengulangi langkah 3 sampai 6 hingga kriteria penghentian tercapai.
Gambar 1 menunjukkan cara kerja algoritme genetika secara umum. Selanjutnya
akan dijelaskan langkah-langkah algoritme genetika secara lebih rinci.

5
mulai

encoding

Solusi awal

Hitung fitness

Ya
Output
final

Kriteria penghentian tercapai?

Tidak
Seleksi parents
selesai
Tidak
r < Pc ?

Ya
Crossover

Tidak
r < Pm ?

Ya
Mutasi

Hitung fitness
offspring

Penggantian
dan Perbaikan

Gambar 1 Diagram alir algoritme genetika

1.

Pengodean dan Penentuan Parameter
Pengodean adalah metode bagaimana merepresentasikan masalah yang akan
diselesaikan ke dalam bentuk gen-gen dan kromosom. Nilai sebuah gen (alel)
dapat berupa biner, bilangan real, bilangan bulat, atau daftar aturan yang dapat
diproses algoritme genetika. Metode pengodean tersebut berbeda-beda sesuai

6
dengan masalah yang akan diselesaikan. Sebuah metode pengodean yang cocok
untuk suatu masalah tidak dijamin cocok untuk masalah yang lain.
Metode pengodean biner adalah metode yang umum digunakan. Pada
metode ini hanya tersedia dua kemungkinan nilai gen yaitu 0 atau 1. Individu atau
kromosom dinyatakan sebagai sederet gen-gen yang merepresentasikan sebuah
solusi. Panjang kromosom ditentukan berdasarkan batasan masalah yang akan
diselesaikan. Misalkan untuk mencari nilai maksimum sebuah fungsi
dalam dua dimensi. Solusi dinyatakan sebagai titik koordinat
. Masalah ini
dapat direpresentasikan dengan metode pengodean biner. Misalkan
= (2,5),
sehingga dengan notasi biner = 0010 dan = 0101. Dalam contoh ini nilai-nilai
dan
dibatasi hanya sampai empat bit saja, sehingga (2,5) sebagai sebuah
kromosom atau individu dinotasikan dalam biner menjadi 00100101 (Hopgood
2001).
Metode pengodean yang lain yaitu dengan bilangan bulat. TSP dapat
dikodekan ke dalam algoritme genetika dalam bentuk bilangan bulat. Misalkan
kita akan mengodekan TSP dengan 7 pelanggan. Pelanggan yang akan dikunjungi
diberi indeks bilangan bulat 1 sampai 7. Solusi yang diharapkan berupa permutasi
bilangan 1 sampai 7 yang merepresentasikan urutan kunjungan ke pelangganpelanggan tersebut, sehingga solusi 2-4-1-3-5-6-7 berarti salesman berkunjung
dari depot ke pelanggan 2, kemudian ke pelanggan 4, dan seterusnya hingga
kembali ke depot lagi.

2

4

1

3

5

6

7

Satu kromosom/individu

populasi
Alel

5

7

Gen

1

2

3

6

4

Satu kromosom/individu

Gambar 2 Ilustrasi kromosom bilangan bulat

Parameter-parameter yang harus ditentukan adalah ukuran populasi
(pop_size), peluang kawin silang (
), peluang mutasi (
) dan kriteria
penghentian ( ). Ukuran populasi menunjukkan banyaknya individu awal yang
akan dibangkitkan dan diproses dengan algoritme genetika. Peluang kawin silang
dan mutasi menunjukkan peluang sebuah individu terpilih untuk mengalami
kawin silang dan mutasi. Beberapa kriteria penghentian yang dapat digunakan
adalah generasi maksimum, waktu maksimum, dan nilai fitness yang tidak
berubah. Terkait penentuan parameter, Hopgood (2001:200) menyatakan
“Pedoman De Jong masih umum digunakan, yaitu peluang kawin silang yang
relatif tinggi (0.6 – 0.7), peluang mutasi yang relatif rendah (sebesar 1/ untuk
kromosom dengan panjang , dan ukuran populasi yang sedang (50 – 500)”.
Ukuran populasi awal yang dibangkitkan bergantung pada kompleksitas
permasalahan. Semakin besar ukuran populasi yang dibangkitkan semakin baik

7
karena akan memperluas daerah pencarian, sehingga solusi yang diharapkan dapat
bersifat optimum global. Selama proses pencarian solusi, parameter-parameter
tersebut dapat saja berubah.
2.

Pembangkitan Populasi Awal
Pembangkitan populasi awal adalah proses membangkitkan individuindividu awal yang selanjutnya akan diproses dengan algoritme genetika. Populasi
awal biasanya dibangkitkan secara acak. Hal ini untuk menjamin bahwa semua
alel memiliki peluang yang sama untuk muncul. Kromosom yang acak akan
memperluas daerah pencarian solusi. Semakin luas daerah pencarian solusi,
diharapkan solusi yang didapatkan bersifat optimum global.
Metode pembangkitan populasi awal yang umum digunakan adalah random
generator. Metode ini melibatkan bilangan acak untuk mengurutkan gen-gen
pada kromosom. Bilangan acak dibangkitkan sebanyak jumlah gen dalam
kromosom. Satu gen memiliki satu nilai bilangan acak. Kemudian gen-gen
diurutkan berdasarkan nilai bilangan acaknya yang terkecil hingga yang terbesar.
Misalkan sebuah kromosom dengan 7 gen sebagai berikut :
gen
1
2
3
4
5
6
7
random (0,1)
0.23 0.82 0.45 0.74 0.67 0.11 0.56.
Setelah bilangan acak tersebut diurutkan dari yang terkecil hingga terbesar
didapatkan kromosom dengan urutan gen menjadi
6
3.

1

3

7

5

4

2.

Seleksi
Seleksi dilakukan untuk memilih individu-individu terbaik yang akan
dijadikan induk (parent) untuk proses kawin silang dan mutasi. Pada proses ini
diharapkan induk yang baik akan menghasilkan anak yang baik. Beberapa metode
seleksi antara lain random selection, Roulette wheel, rank selection, tournament
selection, Boltzmann selection, stochastic universal sampling, dan elitism.
Sebelum menyeleksi, terlebih dahulu ditentukan kriteria atau ukuran yang
menyatakan suatu individu baik atau buruk. Tingkat kebaikan dari individuindividu tersebut diukur dengan fungsi fitness. Semakin tinggi nilai fitness suatu
individu, semakin baik individu tersebut sehingga memiliki peluang lebih besar
untuk terpilih sebagai induk (Sivanandam dan Deepa 2008).
Bentuk fungsi fitness bisa bermacam-macam, bergantung pada parameter
apa saja yang menjadi pertimbangan menilai sebuah individu baik atau buruk.
Tujuan dan kendala-kendala yang tidak boleh dilanggar adalah contoh parameter
dalam menentukan fungsi fitness. Misalkan dalam TSP atau VRP hal yang
menjadi pertimbangan adalah jarak atau biaya perjalanan, kapasitas kendaraan,
dan besarnya permintaan pelanggan.
Penalti juga dapat menjadi pertimbangan membentuk fungsi fitness. Penalti
diberikan sebagai hukuman jika ada kendala yang dilanggar. Karenanya, dengan
mempertimbangkan penalti akan mempengaruhi bentuk fungsi fitness. Tentu saja
dengan adanya penalti akan membuat nilai fitness semakin kecil. Misalkan dalam
TSP atau VRP, setiap kendaraan memiliki kendala kapasitas maksimal. Jika
kendaraan tersebut memilih rute yang melebihi kapasitasnya maka akan diberikan
penalti pada rute tersebut.

8
4.

Kawin Silang
Kawin silang bertujuan memproduksi individu-individu baru dari indukinduk terbaik yang dipilih sebelumnya. Kawin silang akan mengeksploitasi solusi
yang didapat sebelumnya. Kawin silang antara dua induk akan menghasilkan dua
anak (offspring). Sebelum dilakukan kawin silang, sudah ditentukan parameter
peluang kawin silang yaitu peluang dilakukannya kawin silang pada individu
yang terpilih pada proses sebelumnya. Dilakukan atau tidaknya kawin silang,
ditentukan menggunakan bilangan acak ( ) antara 0 sampai 1. Jika <
maka
kawin silang dilakukan pada induk terpilih. Jika
maka kawin silang tidak
dilakukan, sehingga semua gen induk akan diturunkan kepada generasi
selanjutnya. Beberapa metode kawin silang antara lain kawin silang satu titik,
kawin silang dua titik, kawin silang banyak titik, kawin silang aritmatika, partial
matched crossover (PMX), order crossover (OX), dan cycle crossover (CX)
(Sivanandam dan Deepa 2008).
5.

Mutasi
Mutasi bertujuan mempertahankan keragaman gen pada populasi dengan
cara mengembalikan gen yang hilang atau memunculkan gen yang belum pernah
muncul pada generasi sebelumnya. Mutasi akan menjelajahi lebih dalam solusi
sebelumnya sehingga diharapkan solusi yang didapat tidak berkisar pada optimum
lokal saja (Sivanandam dan Deepa 2008). Sebelum dilakukan mutasi, sudah
ditentukan parameter peluang mutasi. Peluang mutasi dipandang sebagai
persentase gen yang diharapkan mengalami mutasi dari jumlah total gen pada
populasi.
Dilakukan atau tidaknya mutasi, ditentukan menggunakan bilangan acak ( )
antara 0 sampai 1. Jika <
, maka mutasi dilakukan dan sebaliknya, jika
maka mutasi tidak dilakukan. Beberapa metode mutasi antara lain
dengan penyisipan, flipping, interchanging, dan reversing (Sivanandam dan
Deepa 2008). Metode mutasi flipping digunakan pada kromosom biner yaitu
mengganti gen 0 dengan 1 dan gen 1 dengan 0 berdasarkan sembarang kromosom
yang dibangkitkan acak. Metode mutasi interchanging dilakukan dengan cara
saling menukarkan dua posisi gen secara acak. Metode mutasi reversing dilakukan
dengan cara membalik urutan gen-gen terpilih.
6.

Perbaikan dan Penggantian
Pada tahap perbaikan, dilakukan pemeriksaan pada kromosom anak.
Kromosom yang kelebihan gen akan dikurangi pada gen yang kelebihan.
Kromosom yang kekurangan gen akan disisipkan gen yang hilang. Posisi tempat
penyisipan gen dapat dipilih secara acak. Perbaikan kromosom ini dilakukan
hanya untuk kromosom yang mengalami perubahan jumlah atau jenis gen karena
proses kawin silang atau mutasi. Hal ini bisa terjadi pada kromosom dengan
repesentasi bilangan biner.
Pada tahap penggantian, ukuran populasi dipertahankan tetap. Secara umum
terdapat dua tipe penggantian generasi. Tipe pertama, generasi berikutnya adalah
semua individu baru atau anak semua. Tipe kedua, generasi berikutnya adalah
individu baru ditambah individu sebelumnya dengan nilai fitness yang terbesar.
Individu lama akan digantikan oleh individu baru yang memiliki nilai fitness lebih
baik. Individu baru adalah anak hasil kawin silang atau mutasi.

9
Pada tahun 2004, Sarwadi dan Anjar telah menyelesaikan VRP dengan
menggunakan algoritme genetika dengan mempertimbangkan jarak pada
penentuan fungsi fitness-nya. Mereka juga membandingkan solusi yang didapat
antara algoritme genetika dan metode saving. Pada penelitian yang dilakukan
oleh Kusuma dan Aji (2013) tentang studi kasus VRP dengan algoritme genetika,
kromosom dibagi menjadi beberapa blok yang merepresentasikan kendaraankendaraan. Pada penelitian ini, fungsi fitness yang digunakan mempertimbangkan
jarak dan penalti yang diterima setiap individu.

IMPLEMENTASI ALGORITME GENETIKA PADA VRP
Penelitian ini menggunakan data hipotetik. Hal ini bertujuan untuk
mempermudah implementasi dan memahami bagaimana algoritme genetika
bekerja. Penelitian ini mengasumsikan jarak antarpelanggan ( ) simetrik. Jarak
pelanggan A ke pelanggan B sama dengan jarak pelanggan B ke pelanggan A.
Permintaan setiap pelanggan ( ) telah diketahui dan kapasitas setiap kendaraan
sama. Pandang sebuah VRP dengan jumlah pelanggan ( ) = 9 dan jumlah
kendaraan ( ) = 3. Setiap kendaraan memiliki kapasitas maksimum ( ) = 10.
Setiap kendaraan harus berangkat dari depot dan kembali ke depot lagi. Data
dan diberikan pada Tabel 1.

Tabel 1 Jarak antarpelanggan dan permintaan
Jarak antarpelanggan (km)
Pelanggan
ke-i
0
1
2
3
4
5
6
a
0
0
2
5
1
5
4
3
1
2
0
5
3
3
4
4
2
5
5
0
2
3
2
3
3
1
3
2
0
5
5
3
4
5
3
3
5
0
4
2
5
4
4
2
5
4
0
1
6
3
4
3
3
2
1
0
7
5
2
5
2
2
2
4
8
5
1
3
2
4
1
3
9
2
2
5
2
2
3
4
a

b

7
5
2
5
2
2
2
4
0
5
4

8
5
1
3
2
4
1
3
5
0
1

9
2
2
5
2
2
3
4
4
1
0

0
3
3
2
5
2
2
5
2
2

Pelanggan 0 dianggap sebagai depot; bPermintaan pelanggan (tanpa satuan)

Solusi Manual
Subbab ini mendeskripsikan penerapan algoritme genetika secara manual
untuk VRP di atas. Sesuai diagram alir algoritme genetika, proses kawin silang
dan mutasi akan dilakukan berulang-ulang. Satu iterasi atau perulangan dapat
dipandang sebagai siklus satu generasi. Pada akhir iterasi didapat generasi baru

10
yang akan menggantikan generasi sebelumnya. Generasi ke-1 adalah individuindividu pada populasi awal yang dibangkitkan secara acak pertama kali.
Pendeskripsian algoritme genetika secara manual ini akan dilakukan sampai
Iterasi 10.
Iterasi 1
I

Pengodean dan Penentuan Parameter
VRP di atas akan dikodekan dalam bentuk bilangan bulat antara 1 sampai 9
yang merupakan indeks pelanggan. Solusi yang diharapkan berupa urutan
kunjungan ke pelanggan untuk semua kendaraan. Nilai-nilai gen
merepresentasikan indeks pelanggan dan satu kromosom dengan panjang 9 gen
merepresentasikan satu solusi VRP. Sebuah kromosom atau individu memiliki
blok-blok yang merepresentasikan rute masing-masing kendaraan. Setiap
kromosom akan memiliki 3 blok karena dalam permasalahan ini menggunakan 3
kendaraan. Blok 1 merepresentasikan rute kendaraan ke-1, Blok 2
merepresentasikan rute kendaraan ke-2, dan Blok 3 merepresentasikan rute
kendaraan ke-3 (Kusuma dan Aji 2013).
Sebelum dibangkitkan populasi awal, terlebih dahulu ditentukan parameterparameter yang akan digunakan. Ukuran populasi diambil 10 individu untuk
mempermudah dalam mendeskripsikan algoritme genetika secara manual,
=
0.6, dan
= 0.1 sebagai pembulatan dari 1/panjang kromosom. Kriteria
penghentian yang digunakan adalah iterasi maksimum. Algoritme genetika
dihentikan setelah iterasi ke-10.

Blok 1

Blok 2

Blok 3
satu individu

9

7

1

2

3

6

4

8

5

Gambar 3 Ilustrasi satu individu atau kromosom dengan 3 blok

II

Pembangkitan Populasi Awal
Pembangkitan populasi awal menggunakan metode random generator.
Kemudian setiap individu dalam populasi awal tersebut dibagi ke dalam tiga blok.
Setiap blok merepresentasikan kendaraan dan setiap kendaraan memilki kapasitas
maksimum sebesar 10. Hasil pembangkitan 10 bilangan acak antara 0 dan 1 dapat
dilihat di Lampiran 1. Selanjutnya dari bilangan acak yang dibangkitkan didapat
representasi 10 individu atau kromosom pada populasi awal seperti pada Tabel 2.
Sebagai ilustrasi, Kromosom 1 adalah (4 6 5 9 1 3 8 2 7). Hal ini
berarti kendaraan ke-1 akan berjalan dari depot mengunjungi Pelanggan 4, 6, dan
5 secara berurutan kemudian kembali ke depot. Kendaraan ke-2 akan berjalan dari
depot mengunjungi Pelanggan 9, 1, dan 3 secara berurutan kemudian kembali ke
depot. Kendaraan ke-3 akan berjalan dari depot mengunjungi Pelanggan 8, 2, dan
7 secara berurutan kemudian kembali ke depot.

11
Tabel 2 Individu hasil pembangkitan populasi awal
Kromosom i
Blok 1
Blok 2
1
4
6
5
9
1
2
2
4
5
1
7
3
3
7
9
1
5
4
7
5
8
6
4
5
8
6
4
9
2
6
7
6
8
3
2
7
6
9
2
5
7
8
2
9
6
3
7
9
9
2
6
1
5
10
6
5
7
1
2

3
9
2
3
1
5
3
4
7
8

8
3
6
9
5
1
8
1
3
4

Blok 3
2
8
4
2
7
9
1
5
4
9

7
6
8
1
3
4
4
8
8
3

Menghitung Penalti dan Fitness
Penghitungan penalti memerlukan penghitungan total permintaan yang
harus dilayani. Jika suatu kendaraan harus melayani melebihi kapasitasnya maka
dikenakan penalti. Total penalti pada sebuah kromosom adalah penjumlahan
penalti dari setiap blok. Sebagai contoh, Kromosom 1 (4 6 5 9 1 3 8 2 7)
dibagi menjadi Blok 1 (4 6 5), Blok 2 (9 1 3) dan Blok 3 (8 2 7). Kendaraan 1
melayani Pelanggan 4, 6, dan 5 dengan besar permintaan masing-masing berturutturut adalah 5, 2, dan 2. Total permintaan yang harus dipenuhi kendaraan ke-1
adalah 5 + 2 + 2 = 9, sehingga kendaraan ke-1 tidak mendapatkan penalti karena
total permintaan yang harus dilayani kurang dari kapasitas kendaraan. Total
permintaan yang harus dipenuhi kendaraan ke-2 adalah 7 dan total permintaan
yang harus dipenuhi kendaraan 3 adalah 10. Kromosom 1 tidak mendapatkan
penalti karena semua semua pelanggan dapat terlayani oleh kendaraan.
Penghitungan nilai fitness dalam VRP ini mempertimbangkan total jarak
yang ditempuh dan penalti. Bentuk fungsi fitness yang digunakan menunjukkan
semakin besar jarak dan penalti, maka nilai fitness-nya semakin kecil. Mengacu
pada Sarwadi dan Anjar (2014), langkah-langkah mencari nilai fitness dan
peluang kumulatif tiap individu untuk terpilih dalam proses seleksi adalah sebagai
berikut:
1. mencari jarak tempuh ( ) dan penalti ( ) masing-masing individu,
2. nilai fitness tiap individu ( ) dirumuskan

III

3. mencari total fitness dari seluruh individu ∑
4. mencari peluang fitness tiap individu ( )


12
5. mencari peluang kumulatif tiap individu


Setiap blok dihitung jaraknya. Jarak kromosom adalah penjumlahan jarak
dari ketiga blok tersebut. Sebagai contoh untuk Kromosom 1, pada Blok 1, jarak
dari depot ke pelanggan 4 adalah 5 km, jarak dari pelanggan 4 ke pelanggan 6
adalah 2 km, jarak dari pelanggan 6 ke pelanggan 5 adalah 1 km, dan jarak dari
pelanggan 5 ke depot adalah 4 km, sehingga total jarak Blok 1 adalah 5 + 2 + 1 +
4 = 12 km. Total jarak Blok 2 adalah 2 + 2 + 3 + 1 = 8 km dan total jarak Blok 3
adalah 5 + 3 + 5 + 5 = 18 km. Total jarak untuk Kromosom 1 ( ) adalah 12 + 8 +
18 = 38 km.
Tabel 3 menunjukkan total jarak, permintaan tiap blok, penalti, nilai fitness,
dan peluang kumulatif tiap kromosom pada populasi awal. Penghitungan nilai
fitness dan peluang kumulatif menggunakan bantuan program MS. Excel.
Perincian perhitungan total jarak, permintaan, dan penalti tiap kromosom
disediakan dalam Lampiran 2.

Tabel 3 Nilai fitness dan peluang kumulatif individu pada populasi awal
Kromosom
Permintaan blok
i
1
2
3
1
38
9
7
10
0
0.026316 0.09973
2
35
10
10
6
0
0.028571 0.10827
3
36
9
8
9
0
0.027778 0.10527
4
38
9
9
8
0
0.026316 0.09973
5
38
9
8
9
0
0.026316 0.09973
6
37
9
7
10
0
0.027027 0.10242
7
40
7
9
10
0
0.025000 0.09474
8
39
7
12
7
2
0.024390 0.09243
9
41
7
10
9
0
0.024390 0.09243
10
36
9
8
9
0
0.027778 0.10527
Total fitness
0.263882

0.10
0.21
0.31
0.41
0.51
0.62
0.71
0.80
0.89
1.00

Pemilihan Parent dengan Pengambilan Contoh Universal Stokastik
Penelitian ini menggunakan metode stochastic universal sampling dalam
proses seleksinya agar setiap individu memiliki peluang terpilih yang hampir
sama. Setiap individu diurutkan dalam sebuah garis linear sepanjang 1 satuan.
Besarnya bagian setiap individu dalam garis sama dengan besarnya peluang
akumulatif fitness. Kemudian ditentukan banyaknya induk yang akan dipilih,
dapat digunakan rumus Pc × pop_size, sehingga dalam penelitian ini akan dipilih
0.6 × 10 = 6 individu untuk menjadi induk. Pemilihan enam individu tersebut
menggunakan penunjuk (pointer). Jarak antarenam pointer tersebut ditentukan
dengan rumus 1/ , dengan adalah banyaknya individu yang akan dipilih. Jarak
antar-pointer dalam penelitian ini adalah 1/6 = 0.167. Kemudian letak pointer
IV

13
pertama ditentukan dengan membangkitkan bilangan acak antara 0 dan 0.167
(Sivanandam dan Deepa 2008).
Pembangkitan bilangan acak antara 0 dan 0.167 diperoleh bilangan 0.07,
sehingga pointer ke-1 berada di titik 0.07, pointer ke-2 di titik 0.07 + 0.167 =
0.237, dan seterusnya. Titik 0.07 berada pada daerah peluang kumulatif
Kromosom 1, sehingga Kromosom 1 terpilih sebagai induk dan seterusnya. Pada
populasi awal ini yang terpilih sebagai induk adalah Kromosom 1, 3, 4, 6, 8, dan
10. Untuk lebih jelasnya, dapat dilihat pada Gambar 4 berikut.

pointer 1
(0.07)

0.0

1

0.1

pointer 2
(0.237)

2

0.21

3

pointer 3
(0.404)

0.31

4

0.41

pointer 4
(0.571)

5

0.51

6

0.62

pointer 5
(0.738)

7

0.71

8

pointer 6
(0.905)

0.81

9

0.89

10

1.0

Gambar 4 Letak pointer untuk populasi awal

V

Kawin Silang
Penentuan dilakukan kawin silang atau tidak dari individu terpilih
melibatkan pembangkitan bilangan acak r antara 0 dan 1. Jika <
maka kawin
silang dilakukan. Parameter
sudah ditentukan nilainya pada tahap sebelumnya,
yaitu sebesar 0.6. Pembangkitan bilangan acak diperoleh = 0.4, sehingga
kawin silang dilakukan. Penelitian ini menggunakan metode order crossover
dengan dua titik potong untuk melakukan kawin silang. Dua induk yang akan
dilakukan kawin silang dipilih secara acak dari enam induk yang sudah terpilih.
Hasil dari pengacakan mendapatkan kawin silang dilakukan antara Kromosom 1
dengan 6, Kromosom 3 dengan 4, dan Kromosom 8 dengan 10.
Sebagai penjelasan kawin silang dengan metode order crossover dengan
dua titik potong, berikut ini diberikan contoh kawin silang antara Kromosom 1
dan Kromosom 6.
Kromosom 1
4 6 5 9 1 3 8 2 7
Kromosom 6
7 6 8 3 2 5 1 9 4

1.

2.

Langkah-langkah order crossover dengan dua titik potong:
Membangkitkan dua bilangan bulat acak antara 1 dan panjang kromosom -1
sebagai dua titik potong untuk memilih substring dari kedua induk. Hasil
pengacakan didapat titik 3 dan 6 sebagai titik potong. Gen-gen ke-3 sampai
ke-6 pada kromosom induk menjadi substring yang akan dipertukarkan.
Kromosom 1
4 6 5 9 1 3 8 2 7
Kromosom 6
7 6 8 3 2 5 1 9 4
Kromosom anak didapat dengan menukar substring Kromosom 1 (induk
pertama) dengan Kromosom 6 (induk kedua). Gen-gen yang lain dibiarkan
kosong terlebih dahulu.
Anak 1
_ _ 8 3 2 5 _ _ _
Anak 2
_ _ 5 9 1 3 _ _ _

14
3.

Mengisikan gen-gen induk pertama kepada gen-gen Anak 1 (anak pertama)
yang dimulai dari gen setelah titik potong kedua hingga akhir kromosom
kemudian dilanjutkan dari gen pertama hingga gen pada titik potong kedua.
Apabila gen tersebut sudah ada di substring anak, maka gen tersebut
dilewati atau tidak diwariskan kepada anak. Gen 8, 2, 3, dan 5 dari
Kromosom 1 sudah ada di substring Anak 1, sehingga gen-gen tersebut
tidak diisikan ke Anak 1.
Anak 1
9 1 8 3 2 5 7 4 6
4.
Mengisikan gen-gen Kromosom 6 kepada gen-gen Anak 2 dengan proses
yang sama dengan langkah 3. Gen 1, 9, 3, dan 5 dari Kromosom 6 sudah ada
di substring Anak 2, sehingga gen-gen tersebut tidak diisikan ke Anak 2.
Anak 2
8 2 5 9 1 3 4 7 6
Dengan cara yang serupa, didapat anak-anak dari kawin silang antara
Kromosom 3 dengan 4 dan Kromosom 8 dan 10 seperti dalam Tabel 4. Substring
yang ditandai menunjukkan substring yang dikawinsilangkan.

Tabel 4 Anak hasil kawin silang pada Iterasi 1
Induk
Kromosom induk
Anak
Kromosom 1
4 6 5 9 1 3 8 2 7
Anak 1
Kromosom 6
7 6 8 3 2 5 1 9 4
Anak 2
Kromosom 3
3 7 9 1 5 2 6 4 8
Anak 3
Kromosom 4
7 5 8 6 4 3 9 2 1
Anak 4
Kromosom 8
2 9 6 3 7 4 1 5 8
Anak 5
Kromosom 10 6 5 7 1 2 8 4 9 3
Anak 6

Kromosom anak
1 8 3 2 5 7 4 6
2 5 9 1 3 4 7 6
2 8 6 4 3 7 9 1
3 9 1 5 2 7 8 6
3 7 1 5 8 4 9 2
7 2 8 9 4 1 5 3

9
8
5
4
6
6

VI

Mutasi
Sebelum mutasi dilakukan, dibangkitan bilangan acak
antara 0 dan 1.
Jika
maka mutasi dilakukan. Peluang mutasi
= 0,1
merepresentasikan sebesar 10% dari gen-gen anak mengalami mutasi. Hasil
pembangkitan bilangan acak
untuk keenam anak menghasilkan mutasi
dilakukan hanya pada Anak 1 saja. Metode mutasi yang digunakan adalah metode
insertion. Dua posisi gen dipilih secara acak sebagai posisi gen yang dipotong dan
posisi gen akan disisipkan. Kromosom Anak 1 akan dipotong pada gen kedua dan
disisipkan di posisi setelah gen kelima, sehingga Gen 1 dipotong dan disisipkan
setelah Gen 2.
disisipkan

dipotong

Anak 1

9

Hasil Mutasi

9

1

8

8

3

2

3

2

1

5

5

7

7

4

4

6

6

Gambar 5 Hasil mutasi Anak 1 dengan motede insertion

15

Proses perbaikan tidak diperlukan dalam implementasi ini karena selama
proses kawin silang dan mutasi kromosom tidak mengalami perubahan banyaknya
gen. Setiap kromsosom baru hasil kawin silang atau mutasi pasti akan memiliki 9
gen yang berbeda, sehingga setiap pelanggan pasti akan dikunjungi.
VI

Penggantian
Proses penggantian dilakukan untuk menjamin bahwa individu pada
generasi selanjutnya adalah individu terbaik. Metode penggantian yang digunakan
adalah metode steady state update. Ukuran populasi pada setiap generasi
dipertahankan tetap 10 individu. Individu yang memiliki nilai fitness terendah
akan dihapus dari generasi atau populasi. Nilai fitness dari setiap anak disajikan
dalam Tabel 5. Nilai fitness anak akan dibandingkan dengan nilai fitness individu
seperti dalam Tabel 3. Selanjutnya enam individu dengan nilai terendah akan
dihapus dari populasi yaitu anak ke-4, 5, dan 6 serta individu ke-7, 8, dan 9.
Individu ke-7, 8, dan 9 akan digantikan oleh anak ke-1, 2, dan 3, sehingga didapat
populasi baru sebagai generasi ke-2 yang diberikan dalam Tabel 6. Karena iterasi
dalam algoritme belum mencapai batas iterasi maksimum, iterasi dilanjutkan
untuk Iterasi 2.

Tabel 5 Nilai fitness anak pada Iterasi 1
Anak
Permintaan blok
ke-i
1
2
3
1
36
6
8
12
2
2
36
7
7
12
2
3
38
7
10
10
0
4
43
9
8
9
0
5
42
9
7
10
0
6
42
10
9
7
0
Total fitness

0.026316
0.026316
0.026316
0.023256
0.023810
0.023810
0.149822

0.17565
0.17565
0.17565
0.15522
0.15892
0.15892

0.18
0.35
0.53
0.68
0.84
1.00

Iterasi 2
Individu pada Iterasi 2 akan mengalami proses yang sama dengan individu
sebelumnya. Nilai fitness individu pada Iterasi 2 sudah dihitung sebelumnya saat
akan membandingkan anak dan induk pada Iterasi 1. Rangkuman nilai fitness
individu pada Iterasi 2 disajikan dalam Tabel 7.
Proses seleksi induk dilakukan untuk memilih enam individu sebagai induk.
Pembangkitan bilangan acak antara 0 dan 0.167 diperoleh bilangan 0.135 sebagai
letak pointer ke-1. Letak pointer dan individu terpilih disajikan dalam Tabel 8.

16
Tabel 6 Individu pada generasi ke-2
Kromosom ke-i
Blok 1
1
4
6
5
2
2
4
5
3
3
7
9
4
7
5
8
5
8
6
4
6
7
6
8
a
7
9
8
3
a
8
8
2
5
a
9
5
2
8
10
6
5
7
a

9
1
1
6
9
3
2
9
6
1

Blok 2
1
7
5
4
2
2
1
1
4
2

3
9
2
3
1
5
5
3
3
8

8
3
6
9
5
1
7
4
7
4

Blok 3
2
8
4
2
7
9
4
7
9
9

7
6
8
1
3
4
6
6
1
3

individu baru

Nilai fitness

Tabel 7 Nilai fitness dan peluang kumulatif individu pada Iterasi 2
Kromosom
Permintaan blok
ke-i
1
2
3
1
38
9
7
10
0
0.026316 0.097810
2
35 10
10
6
0
0.028571 0.106194
3
36
9
8
9
0
0.027778 0.103244
4
38
9
9
8
0
0.026316 0.097810
5
38
9
8
9
0
0.026316 0.097810
6
37
9
7
10
0
0.027027 0.100454
7
36
6
8
12
2
0.026316 0.097810
8
36
7
7
12
2
0.026316 0.097810
9
38
7
10
10
0
0.026316 0.097810
10
36
9
8
9
0
0.027778 0.103244
Total fitness
0.269049

0.10
0.20
0.31
0.41
0.50
0.60
0.70
0.80
0.90
1.00

Pemilihan induk

Tabel 8 Pemilihan induk pada Iterasi 2
Pointer ke-i
1
2
Letak pointer
0.135
0.302
Kromosom terpilih
2
3

3
0.469
5

4
0.636
6

5
0.803
9

6
0.97
10

17
Kawin silang
Pembangkitan bilangan acak r diperoleh r = 0.37. Karena r < Pc maka
kawin silang dilakukan. Pengacakan pasangan kawin silang diperoleh pasangan
Kromosom 2 dengan Kromosom 7, Kromosom 3 dengan Kromosom 5, dan
Kromosom 9 dengan Kromosom 10.

Tabel 9 Anak hasil kawin silang pada Iterasi 2
Induk
Kromosom induk
Anak
Kromosom 2
2 4 5 1 7 9 3 8 6
Anak 1
Kromosom 7
9 8 3 2 1 5 7 4 6
Anak 2
Kromosom 3
3 7 9 1 5 2 6 4 8
Anak 3
Kromosom 5
8 6 4 9 2 1 5 7 3
Anak 4
Kromosom 9
5 2 8 6 4 3 7 9 1
Anak 5
Kromosom 10
6 5 7 1 2 8 4 9 3
Anak 6

2
9
5
4
4
1

Kromosom anak
5 1 9 3 8 7 4
2 1 5 7 4 3 8
6 4 9 2 1 8 3
7 9 1 5 2 3 8
3 7 1 2 8 9 5
2 8 6 4 3 9 5

6
6
7
6
6
7

Mutasi
Hasil pembangkitan bilangan acak untuk keenam anak menghasilkan
keputusan mutasi dilakukan hanya pada Anak 1 dan Anak 4. Anak 1 dan Anak 4
di mutasi dengan titik potong dan titik penyisipan masing-masing adalah (8;3) dan
(7;1).
Anak 1
2 5 1 9 3 8 7 4 6
Hasil mutasi
2 5 1 4 9 3 8 7 6
Anak 4
4 7 9 1 5 2 3 8 6
Hasil mutasi
4 3 7 9 1 5 2 8 6
Penggantian

Tabel 10 Nilai fitness anak pada Iterasi 2
Anak
Permintaan blok
ke-i
1
2
3
1
40
8
9
9
0
2
36
8 12
6
2
3
40
9
8
9
0
4
43
12
7
7
2
5
41
12
8
6
2
6
38
8
9
9
0
Total fitness

0.025000
0.026316
0.025000
0.022222
0.023256
0.026316
0.148110

0.168794
0.177678
0.168794
0.150039
0.157018
0.177678

0.17
0.35
0.52
0.67
0.82
1.00

Nilai fitness anak akan dibandingkan dengan nilai fitness individu pada
Tabel 7. Beberapa nilai fitness yang rendah ditandai dan kromosomnya akan
dihapus dari populasi. Jika ada dua atau lebih kromosom dengan nilai fitness yang
sama maka kromosom yang dipertahankan dipilih secara acak atau kromsom
yang tidak terkena penalti. Individu ke-8 diganti dengan anak ke-6. Setelah

18
pengantian diperoleh populasi baru sebagai generasi ke-3 yang dapat dilihat pada
Tabel 11. Karena iterasi dalam algoritme belum mencapai batas iterasi maksimum,
iterasi dilanjutkan untuk Iterasi 3.

Tabel 11 Individu pada generasi ke-3
Kromosom ke-i
Blok 1
1
4
6
5
2
2
4
5
3
3
7
9
4
7
5
8
5
8
6
4
6
7
6
8
7
9
8
3
a
8
1
2
8
9
5
2
8
10
6
5
7
a

9
1
1
6
9
3
2
6
6
1

Blok 2
1
7
5
4
2
2
1
4
4
2

3
9
2
3
1
5
5
3
3
8

8
3
6
9
5
1
7
9
7
4

Blok 3
2
8
4
2
7
9
4
5
9
9

7
6
8
1
3
4
6
7
1
3

individu baru

Iterasi 3
Nilai fitness

Tabel 12 Nilai fitness dan peluang kumulatif individu pada Iterasi 3
Kromosom
Permintaan blok
ke-i
1
2
3
1
38
9
7
10
0
0.026316
0.097810
2
35
10
10
6
0
0.028571
0.106194
3
36
9
8
9
0
0.027778
0.103244
4
38
9
9
8
0
0.026316
0.097810
5
38
9
8
9
0
0.026316
0.097810
6
37
9
7
10
0
0.027027
0.100454
7
36
6
8
12
2
0.026316
0.097810
8
38
8
9
9
0
0.026316
0.097810
9
38
7
10
10
0
0.026316
0.097810
10
36
9
8
9
0
0.027778
0.103244
Total fitness
0.269049

0.10
0.20
0.31
0.41
0.50
0.60
0.70
0.80
0.90
1.00

19
Pemilihan induk

Tabel 13 Pemilihan induk pada Iterasi 3
Pointer ke-i
1
2
Letak pointer
0.161
0.328
Kromosom terpilih
2
4

3
0.495
5

4
0.662
7

5
0.829
9

6
0.996
10

Kawin silang
Pada Iterasi 3 proses kawin silang tidak dilakukan karena pembangkitan
bilangan acak r diperoleh r = 0.66692 sehingga r > Pc. Karena kawin silang tidak
dilakukan, mutasi tidak dilakukan dan semua individu pada generasi ke-3 menjadi
individu pada generasi ke-4. Karena iterasi dalam algoritme belum mencapai batas
iterasi maksimum, iterasi dilanjutkan untuk Iterasi 4.
Iterasi 4
Nilai fitness
Individu pada Iterasi 4 sama dengan Iterasi 3. Individu-individu pada Iterasi
4 dan nilai fitness-nya bisa dilihat pada Tabel 11 dan Tabel 12. Namun pada
Iterasi 4 ini dilakukan pemilihan induk baru lagi secara acak. Pada Iterasi 4
proses kawin silang dilakukan karena pembangkitan bilangan acak r diperoleh r =
0.273046 sehingga r < Pc.
Pemilihan induk

Tabel 14 Pemilihan induk pada Iterasi 4
Pointer ke-i
1
2
Letak pointer
0.095
0.262
Kromosom terpilih
1
3

3
0.429
5

4
0.596
6

5
0.763
8

6
0.93
10

Kawin silang
Pengacakan pasangan dilakukan untuk mendapatkan pasangan kawin silang,
diperoleh Kromosom 6 dengan 3, Kromosom 5 dengan 8, dan Kromosom 1
dengan 10. Substring terpilih yang akan dikawinsilangkan untuk semua induk
sama, yaitu substring pada gen ke-6 dan ke-7. Anak hasil kawin silang pada
Iterasi 4 disajikan dalam Tabel 15.
Mutasi
Hasil pembangkitan bilangan acak r untuk keenam anak diperoleh r < Pm
sehingga mutasi tidak dilakukan terhadap anak hasil kawin silang. Algoritme
dilanjutkan pada proses penggantian.

20
Tabel 15 Anak hasil kawin silang pada Iterasi 4
Induk
Kromosom induk
Anak
Kromosom 6
7 6 8 3 2 5 1 9 4
Anak 1
Kromosom 3
3 7 9 1 5 2 6 4 8
Anak 2
Kromosom 5
8 6 4 9 2 1 5 7 3
Anak 3
Kromosom 8
1 2 8 6 4 3 9 5 7
Anak 4
Kromosom 1
4 6 5 9 1 3 8 2 7
Anak 5
Kromosom 10
6 5 7 1 2 8 4 9 3
Anak 6

7
3
6
8
6
5

Kromosom anak
8 3 5 1 2 6 9
7 9 2 6 5 1 4
4 2 1 5 3 9 7
6 4 3 9 1 5 7
5 9 1 3 8 4 2
7 1 2 4 3 8 9

4
8
8
2
7
6

Penggantian
Nilai fitness anak dan individu pada Iterasi 4 dibandingkan dan dipilih 10
individu terbaik. Tabel nilai fitness individu pada Iterasi 4 sama dengan nilai
fitness individu pada Iterasi 3, dapat dilihat pada Tabel 12. Nilai fitness anak pada
Iterasi 4 diberikan dalam Tabel 16. Individu ke-1 dan individu ke-7 digantikan
oleh anak ke-2 dan anak ke-6 karena nilai fitness-nya lebih tinggi. Setelah
pengantian diperoleh populasi baru sebagai generasi ke-5 yang dapat dilihat pada
Tabel 17. Karena iterasi dalam algoritme belum mencapai batas iterasi maksimum,
iterasi dilanjutkan untuk Iterasi 5.
Tabel 16 Nilai fitness anak pada Iterasi 4
Anak
Permintaan blok
ke-i
1
2
3
1
2
3
4
5
6

45
36
41
38
39
37

9
8
9
9
7
10
10
7
9
9
7
10
6
7
13
10
10
6
Total fitness

0
0
0
0
3
0

Tabel 17 Individu baru pada generasi ke-5
Kromosom ke-i
Blok 1
1a
3
7
9
2
2
2
4
5
1
3
3
7
9
1
4
7
5
8
6
5
8
6
4
9
6
7
6
8
3
a
7
5
7
1
2
8
1
2
8
6
9
5
2
8
6
10
6
5
7
1
a

individu baru

0.022222
0.027778
0.024390
0.026316
0.023810
0.027027
0.151543

Blok 2
6
7
5
4
2
2
4
4
4
2

5
9
2
3
1
5
3
3
3
8

0.146640
0.183300
0.160946
0.173653
0.157114
0.178346

1
3
6
9
5
1
8
9
7
4

Blok 3
4
8
4
2
7
9
9
5
9
9

0.15
0.33
0.49
0.66
0.82
1.00

8
6
8
1
3
4
6
7
1
3

21
Iterasi 5
Nilai fitness

Tabel 18 Nilai fitness dan peluang kumulatif individu pada Iterasi 5
Kromosom
Permintaan blok
ke-i
1
2
3
1
36
9
7
10
0
0.027778 0.102417
2
35 10
10
6
0
0.028571 0.105343
3
36
9
8
9
0
0.027778 0.102417
4
38
9
9
8
0
0.026316 0.097027
5
38
9
8
9
0
0.026316 0.097027
6
37
9
7
10
0
0.027027 0.099649
7
37 10
10
6
0
0.027027 0.099649
8
38
8
9
9
0
0.026316 0.097027
9
38
7
10
10
0
0.026316 0.097027
10
36
9
8
9
0
0.027778 0.102417
Total fitness
0.271222

0.10
0.21
0.31
0.41
0.50
0.60
0.70
0.80
0.90
1.00

Pemilihan induk

Tabel 19 Pemilihan induk pada Iterasi 5
Pointer ke-i
1
2
Letak pointer
0.131
0.298
Kromosom terpilih
2
3

3
0.465
5

4
0.632
7

5
0.799
8

6
0.966
10

Kawin silang
Pada Iterasi 5, kawin silang dilakukan karena pembangkitan bilangan acak r
diperoleh r = 0.576154 sehingga r < Pc.

Tabel 20 Anak hasil kawin silang pada Iterasi 5
Induk
Kromosom induk
Anak
Kromosom 10
6 5 7 1 2 8 4 9 3
Anak 1
Kromosom 2
2 4 5 1 7 9 3 8 6
Anak 2
Kromosom 5
8 6 4 9 2 1 5 7 3
Anak 3
Kromosom 8
1 2 8 6 4 3 9 5 7
Anak 4
Kromosom 3
3 7 9 1 5 2 6 4 8
Anak 5
Kromosom 7
5 7 1 2 4 3 8 9 6
Anak 6

5
5
6
8
6
8

Kromosom anak
1 2 8 7 9 4 3
1 7 9 2 8 3 6
4 2 1 7 3 9 5
6 4 3 9 1 5 7
7 1 2 4 3 8 9
7 9 1 5 2 6 4

6
4
8
2
5
3

22
Mutasi
Hasil pembangkitan bilangan acak r untuk keenam anak diperoleh r > Pm
sehingga mutasi tidak dilakukan terhadap anak hasil kawin silang. Algoritme
dilanjutkan pada proses penggantian.
Penggantian

Tabel 21 Nilai fitness anak pada Iterasi 5
Anak
Permintaan blok
ke-i
1
2
3
1
2
3
4
5
6

50
41
31
38
38
40

9
8
9
9
7
10
10
7
9
9
7
10
6
7
13
10
10
6
Total fitness

0
0
0
0
0
0

0.020000
0.024390
0.032258
0.026316
0.026316
0.025000
0.154280

0.129635
0.158091
0.209088
0.170572
0.170572
0.162043

0.13
0.29
0.50
0.67
0.84
1.00

Nilai fitness individu pada Iterasi 5 dapat dilihat pada Tabel 18. Individu ke4 digantikan oleh anak ke-3 karena nilai fitness-nya lebih tinggi. Setelah
pengantian diperoleh populasi baru sebagai generasi ke-6 yang dapat dilihat pada
Tabel 22. Karena iterasi dalam algoritme belum mencapai batas iterasi maksimum,
iterasi dilanjutkan untuk Iterasi 6.

Tabel 22 Individu
Kromosom ke-i
1
2
3
4a
5
6
7
8
9
10
a

individu baru

pada generasi ke-6
Blok 1
3
7
9
2
4
5
3
7
9
6
4
2
8
6
4
7
6
8
5
7
1
1
2
8
5
2
8
6
5
7

2
1
1
1
9
3
2
6
6
1

Blok 2
6
7
5
7
2
2
4
4
4
2

5
9
2
3
1
5
3
3
3
8

1
3
6
9
5
1
8
9
7
4

Blok 3
4
8
4
5
7
9
9
5
9
9

8
6
8
8
3
4
6
7
1
3

23
Iterasi 6
Nilai fitness

Tabel 23 Nilai fitness dan peluang kumulatif individu pada Iterasi 6
Kromosom
Permintaan blok
ke-i
1
2
3
1
36
9
7
10
0
0.027778 0.100221
2
35
10
10
6
0
0.028571 0.103085
3
36
9
8
9
0
0.027778 0.100221
4
31
10
10
6
0
0.032258 0.116386
5
38
9
8
9
0
0.026316 0.094947
6
37
9
7
10
0
0.027027 0.097513
7
37
10
10
6
0
0.027027 0.097513
8
38
8
9
9
0
0.026316 0.094947
9
38
7
10
10
0
0.026316 0.094947
10
36
9
8
9
0
0.027778 0.100221
Total fitness
0.277164

0.10
0.20
0.30
0.42
0.51
0.61
0.71
0.80
0.90
1.00

Pemilihan induk

Tabel 24 Pemilihan induk pada Iterasi 6
Pointer ke-i
1
2
Letak pointer
0.157
0.324
Kromosom terpilih
2
4

3
0.491
5

4
0.658
7

5
0.825
9

6
0.992
10

Kawin silang
Pada Iterasi 6 kawin silang tidak dilakukan karena pembangkitan bilangan
acak r diperoleh r = 0.657591 sehingga r > Pc. Karena kawin silang tidak
dilakukan, mutasi tidak dilakukan dan semua individu pada generasi ke-6 menjadi
indiv