35
3.2 Penyelesaian Model Matetematika CVRP pada Pendistribusian Roti di
CV. Jogja Transport
Setelah menentukan model matematika CVRP pada pendistribusian Roti di CV. Jogja Transport, langkah selanjutnya adalah menyelesaikan model tersebut. Data
pelanggan yang menjadi tujuan pendistribusian beserta jumlah permintaan Roti terlampir pada Lampiran 1 dan 2. Berdasarkan data pelanggan pada Lampiran 1 dan
bantuan google maps maka diperoleh letak pelanggan dan depot seperti pada Gambar 3.1.
Gambar 3.1 Letak Depot dan Pelanggan
36 Gambar 3.1 diasumsikan bahwa setiap jalan memiliki kualitas jalan yang sama
dan tingkat kemacetan yang sama. Selanjutnya dilakukan pengambilan lokasi depot dan pelanggan sebagai simpul dan dapat dibuat graf kosong seperti pada gambar 3.2.
Gambar 3.2 Graf Pendistribusian Roti Jarak antara simpul yang sama selalu nol dan jarak antara simpul adalah bersifat
simetrik atau jarak simpul A ke B sama dengan jarak simpul B ke A. Penentuan rute distribusi model CVRP adalah dengan mengunjungi setiap simpul tanpa adanya
pengulangan atau setiap simpul hanya dikunjungi satu kali. Selanjutnya, dibuat tabel jarak depot ke pelanggan dan antar pelanggan dengan menggunakan google maps.
Terdapat berbagai pilihan rute dalam penentuan jarak menggunakan google maps, rute
37 yang dipilih adalah rute dengan jarak terpendek dan tidak satu jalur, sehingga asumsi
= berlaku. Tabel matriks jarak terlampir pada Lampiran
1.
Setelah diketahui tabel jarak, maka dapat dilakukan penyelesaian model menggunakan Algoritma
Genetika dengan bantuan software Matlab, dan Metode Nearest Neighbour. 3.2.1 Penyelesaian Model Menggunakan Algoritma Genetika
Sebelum memulai untuk menyelesaikan model dengan Algoritma Genetika, akan diberikan beberapa contoh dari istilah penting dalam membangun penyelesaian
masalah menggunakan Algoritma Genetika, yaitu sebagai berikut: 1. Gen, direpresentasikan dengan bilangan real yang masing-masing bilangan
menunjukkan depot dan pelanggan-pelanggan. Contoh:
Gen 0 = Depot Gen 1 = Pelanggan 1
2. Kromosom, direpresentasikan dengan gabungan dari beberapa gen. Contoh:
Kromosom 1 = 6 3 7 5 1 2 4 3. Individu, merupakan kromosom yang membentuk suatu rute perjalanan.
Contoh: Individu 1 = 0 4 7 1 6 2 3 5 0
4. Nilai fitness, inversi dari total jarak dari rute yang didapatkan atau 1x, dimana x adalah total jarak dalam suatu rute.
5. Populasi, direpresentasikan dengan sekumpulan individu. Contoh:
Individu 1 = 0 4 7 1 6 2 3 5 0
38 Individu 2 = 0 2 3 7 5 1 4 6 0
Individu 3 = 0 1 7 4 6 5 2 3 0 Individu 4 = 0 4 6 7 2 5 1 3 0
Individu 5 = 0 5 3 7 6 2 1 4 0 6. Induk, merupakan kromosom yang akan dipindah silang.
7. Anak, merupakan kromosom hasil pindah silang. 8. Generasi, menyatakan satu siklus proses evolusi atau satu iterasi dalam Algoritma
Genetika. Setelah mengetahui beberapa istilah yang akan digunakan dalam Algoritma
Genetika, langkah selanjutnya adalah menyelesaikan model CVRP. Berikut merupakan urutan langkah-langkah yang digunakan untuk menyelesaikan CVRP dengan
menggunakan Algoritma Genetika: 1.
Penyandian Gen Pengkodean Tiap gen dalam kromosom merepresentasikan depot yang merupakan tempat
awal pendistribusian dan pelanggan, dengan kata lain gen adalah simpul suatu graf. Berikut merupakan representasi gen yang ditunjukkan oleh tabel 3.1:
Tabel 3.1 Representasi Gen Gen
DepotPelanggan Gen
DepotPelanggan Depot CV. Jogja Transport
14 Toko Irma
1 Pamela 1
15 N Mart
2 Pamela 4
16 Amani MM
3 Citrouli 2
17 Betta Swalayan
39 Gen
DepotPelanggan Gen
DepotPelanggan 4
Pamela 8 18
Toko 62 5
Pamela 2 19
Ramai Mall 6
Karuma 20
HS Camilan 7
Bintaran Mart 21
Toko AFI 8
Kemkid Mart 22
Vivo Mini Market 9
Jogja Mart 23
Kios Dani Blok B2 10
WS Kotagede 24
Kantin Amanah RSI 11
Taman Siswa Mart 25
Progo 12
Sun Mart 26
Kokarda 13
TWIN 2.
Membangkitkan Populasi Awal Langkah ini membangkitkan sejumlah individu secara acak sehingga
membentuk satuan populasi. Satu individu terdapat 26 gen yang berisi gen dari 1 sampai 26 yang membentuk rute pendistribusian roti. Dibangkitkan beberapa rute
secara acak sesuai dengan ukuran populasi menggunakan software Matlab. Script prosedur pembangkitan populasi awal terdapat pada lampiran 4. Hasil pembangkitan
secara acak rute pendistribusian yang membentuk populasi pada generasi awal adalah sebagai berikut dan selengkapnya terdapat pada lampiran 5.
Individu 1 = 22 6 3 16 11 7 17 14 8 5 21 25 26 19 15 1 23 2 4 18 24 13 9 20 10 12
3. Menentukan Nilai Fitness
Setelah membangkitan populasi awal, langkah selanjutnya adalah menentukan nilai fitness dari setiap individu. Setiap individu dihitung jarak totalnya, kemudian
dihitung nilai fitnessnya dengan menggunakan rumus 2.8 pada bab sebelumnya.
40 Ditentukan nilai fitness dari setiap individu dalam populasi menggunakan software
matlab. Script prosedur dan perhitungannya terdapat pada lampiran 4. Berikut merupakan nilai fitness yang didapat dari generasi awal.
Tabel 3.2 Nilai Fitness Individu Populasi Awal Individu Nilai Fitness Individu Nilai Fitness
1 0,0091
11 0,0106
2 0,0104
12 0,0097
3 0,0099
13 0,0089
4 0,0109
14 0,0094
5 0,0096
15 0,0090
6 0,0097
16 0,0094
7 0,0096
17 0,0093
8 0,0094
18 0,0114
9 0,0106
19 0,0093
10 0,0090
20 0,0086
Setelah dihitung nilai fitness dari setiap individu dengan bantuan software matlab, maka didapatkan nilai fitness terbaik dari populasi awal yaitu pada
individu ke-18 dengan nilai fitness sebesar 0,0114. Individu dengan nilai fitness terbaik
dari populasi generasi pertama akan dipertahankan dan dibawa ke generasi selanjutnya.
4. Seleksi
Langkah selanjutnya adalah melakukan seleksi, yaitu pemilihan dua buah kromosom untuk dijadikan sebagai induk yang dilakukan secara proporsional sesuai
dengan nilai fitness-nya untuk menentukan individu sebagai induk. Induk tersebut akan
41 dilakukan proses pindah silang dengan individu lain yang terpilih. Metode yang
digunakan dalam proses seleksi ini adalah metode Roulette Wheel selection. Langkah dari metode ini yaitu dengan membuat interval nilai kumulatif dari nilai fitness masing
masing kromosom dibagi total nilai fitness dari semua kromosom. Kemudian sebuah kromosom akan terpilih jika bilangan random yang dibangkitkan berada dalam interval
kumulatifnya. Dipilih beberapa induk untuk dilakukan proses crossover dengan metode
seleksi Roulette Wheel menggunakan software matlab. Induk-induk yang kemudian terpilih selengkapnya bisa dilihat pada lampiran 6 dan script prosedur seleksi terdapat
pada lampiran 4. Berikut merupakan salah satu individu yang terpilih sebagai induk: Induk 1 = Individu 1 =
22 6 3 16 11 7 17 14 8 5 21 25 26 19 15 1 23 2 4 18 24 13 9 20 10 12
Induk 2 = Individu 7 = 18 19 14 9 4 10 20 15 7 26 1 16 3
6 8 24 25 13 23 21 22 5 17 2 11 12 5.
Crossover Pindah Silang Setelah terpilih induk-induk dari proses seleksi, selanjutnya induk-induk
tersebut akan dilakukan proses pindah silang. Pindah silang akan menghasilkan individu baru hasil dari 2 induk yang disebut anak. Setiap pasang induk menghasilkan
sepasang anak agar proses seleksi pada generasi selanjutnya mendapatkan jumlah populasi yang sama.
42 Pindah silang ini diimplementasikan dengan skema order crossover. Proses
pindah silang ditentukan oleh � Probabilitas Crossover antara 0,6 sd 0,95
Michalewicz, 1996: 35 dan nilai probabilitas pasangan induk. Setiap pasang induk akan diberikan suatu bilangan acak [0,1], jika probabilitas pasangan induk kurang dari
� maka dilakukan pindah silang dan berlaku sebaliknya. Apabila tidak terjadi pindah silang maka anak untuk generasi berikutnya adalah induk tersebut.
Berikut hasil pindah silang berupa anak menggunakan software Matlab yang selengkapnya bisa dilihat pada lampiran 7:
Sebelum dilakukan pindah silang: Induk 1 = Individu 1 =
22 6 3 16 11 7 17 14 8 5 21 25 26 19 15 1 23 2 4 18 24 13 9 20 10 12
Induk 2 = Individu 7 = 18 19 14 9 4 10 20 15 7 26 1 16 3
6 8 24 25 13 23 21 22 5 17 2 11 12
Setelah dilakukan pindah silang, diperoleh sepasang anak sebagai berikut: Anak 1 =
11 7 14 26 19 15 1 4 18 9 20 10 12 6 8 24 25 13 23 21 22 5 17 2 3 16
Anak 2 = 7 26 16 3 6 8 25 21 22 5 17 11 12 19
15 1 23 2 4 18 24 13 9 20 14 10
Gen yang bercetak tebal pada masing masing anak merupakan gen inti dari masing masing induknya. Gen selain gen inti pada anak 1 diisi oleh gen dari induk 2
43 yang belum ada pada anak 1. Sebaliknya, gen selain gen inti pada anak 2 diisi oleh gen
dari induk 1 yang belum ada pada anak 2. 6.
Mutasi Setelah dilakukannya proses pindah silang, anak yang dihasilkan dari proses
tersebut selanjutnya akan diproses ke tahap mutasi. Terdapat beberapa teknik mutasi seperti swapping mutation, inversion mutation, reciprocal exchange mutation, dan
uniform mutation. Teknik mutasi yang digunakan dalam skripsi ini adalah teknik swapping mutation, karena teknik mutasi ini sangat mudah dan sederhana untuk
diimplementasikan. 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. Proses mutasi dilakukan pada anak hasil pindah silang dengan tujuan untuk memperoleh
individu baru sebagai kandidat solusi pada generasi selanjutnya dengan fitness yang lebih baik, dan akhirnya menuju solusi optimum yang diinginkan. Berikut individu
hasil mutasi yang diperoleh menggunakan software Matlab dan selengkapnya terdapat pada lampiran 8:
Sebelum di mutasi: Anak 1 =
11 7 14 26 19 15 1 4 18 9 20 10 12 6 8 24 25 13 23 21 22 5 17 2 3 16
Anak 2 = 7 26 16 3 6 8 25 21 22 5 17 11 12 19
15 1 23 2 4 18 24 13 9 20 14 10 Setelah di mutasi:
44 Anak 1 =
11 7 14 26 19 15 5 4 18 9 20 10 12 6 24 8 25 13 23 21 22 1 17 2 3 16
Anak 2 = 7 26 16 3 6 8 25 21 22 5 17 11 12 19
15 1 9 2 4 18 24 13 23 20 14 10 7.
Elitism Setelah langkah-langkah di atas dilakukan, maka langkah selanjutnya adalah
membentuk populasi selanjutnya di generasi kedua, proses ini dinamakan sebagai elitism. Proses elitism bertujuan untuk menjaga agar individu bernilai fitness tertinggi
tersebut tidak hilang selama proses evolusi. Proses evolusi merupakan proses Algoritma Genetika mulai dari pembentukan populasi awal hingga evaluasi nilai fitness
dari populasi baru yang terbentuk. Prosedur pembentukan populasi selanjutnya terdapat dalam lampiran 4. Berikut merupakan hasil pembentukan populasi baru
menggunakan software Matlab di generasi kedua yang selengkapnya dapat dilihat pada lampiran 9.
Individu 1 = 10 6 18 22 19 25 15 23 3 8 12 13 11
17 7 21 24 1 5 20 26 14 4 16 2 9 Setelah diperoleh generasi baru, maka langkah selanjutnya adalah mencari nilai
fitness generasi baru dengan menggunakan software Matlab, hasil perhitungan fitness generasi baru selengkapnya dapat dilihat pada lampiran 10. Diperlukan beberapa kali
percobaan dalam menerapkan Algoritma Genetika menggunakan software Matlab hingga mendapatkan nilai fitness yang optimum dan konvergen di generasi tertentu,
yaitu dengan mencoba beberapa nilai ukuran populasi dan jumlah generasi yang
45 berbeda. Hal ini karena Algoritma Genetika akan selalu menghasilkan solusi yang
berbeda dalam setiap proses seleksi. Berikut tabel percobaan dengan menggunakan beberapa nilai ukuran populasi dan jumlah generasi yang berbeda:
Tabel 3.3 Hasil Percobaan Algoritma Genetika Percobaan
ke- Ukuran
Populasi Jumlah
Generasi Fitness
Total Jarak
1 20
100 0.0164745
60.7 2
30 0.0154083
64.9 3
40 0.0164474
60.8 4
50 0.0155763
64.2 5
20 250
0.0169205 59.1
6 30
0.0186567 53.6
7 40
0.0188324 53.1
8 50
0.018315 54.6
9 20
500 0.0201207
49.7 10
30 0.0202429
49.4 11
40 0.018622
53.7 12
50 0.0192308
52 13
20 1000
0.0218818 45.7
14 30
0.0220751 45.3
15 40
0.0229358 43.6
16 50
0.0215054 46.5
17 20
2500 0.02457
40.7 18
30 0.0238663
41.9 19
40 0.0217865
45.9 20
50 0.026455
37.8 21
20 5000
0.0276243 36.2
46 Percobaan
ke- Ukuran
Populasi Jumlah
Generasi Fitness
Total Jarak
22 30
0.0269542 37.1
23 40
0.0265957 37.6
24 50
0.0228311 43.8
25 20
7500 0.0286533
34.9 26
30 0.0257069
38.9 27
40 0.0273224
36.6 28
50 0.0252525
39.6 29
20 10000
0.0248756 40.2
30 30
0.025974 38.5
31 40
0.0240385 41.6
32 50
0.0229885 43.5
Tabel 3.3 merupakan hasil percobaan Algoritma Genetika dengan beberapa ukuran populasi random sesuai rekomendasi parameter Algoritma Genetika pada bab
sebelumnya yaitu 20, 30, 40, dan 50. Jumlah iterasi yang digunakan adalah 100, 250, 500, 1000, 2500, 5000, 7500, dan 10000. Parameter yang digunakan dibuat sama yaitu
dengan probabilitas crossover 0,65 dan probabilitas mutation 0,038. Probabilitas crossover sebesar 0,65 berarti peluang suatu individu akan dikenai proses crossover
adalah sebesar 65. Sedangkan probabilitas mutation sebesar 0,038 berarti peluang suatu gen akan dimutasi adalah sebesar 3,8.
Berdasarkan tabel 3.3, percobaan dengan ukuran 20 populasi menghasilkan nilai fitness terbaik yaitu sebesar 0,0286533 pada iterasi ke-7500, dengan ukuran 30
populasi nilai fitness terbaik yang dihasilkan sebesar 0,0269542 pada iterasi ke-5000,
47 dengan ukuran 40 populasi nilai fitness terbaik yang dihasilkan sebesar 0,0273224 pada
iterasi ke-7500, sedangkan dengan ukuran 50 populasi nilai fitness terbaik yang dihasilkan sebesar 0,026455 pada iterasi ke-2500.
Dapat dilihat dari percobaan yang telah dilakukan bahwa ukuran populasi dan jumlah generasi sangat mempengaruhi solusi yang dihasilkan. Pada permasalahan ini,
semakin besar jumlah generasi, maka peluang untuk mendapatkan solusi yang optimal semakin tinggi, dan sebaliknya. Sedangkan ukuran populasi yang besar tidak menjamin
solusi yang dihasilkan akan semakin baik. Hal ini terlihat dari tabel percobaan dengan jumlah generasi sebanyak 7500 bahwa solusi yang dihasilkan ukuran populasi paling
kecil yaitu 20 lebih baik dari solusi yang dihasilkan dengan ukuran populasi yang lebih besar lainnya. Sementara dengan jumlah generasi sebanyak 2500, solusi yang
dihasilkan ukuran populasi paling besar yaitu 50 lebih baik dari solusi yang dihasilkan dengan ukuran populasi yang lebih kecil lainnya. Dibutuhkan ukuran populasi yang
tepat pada setiap permasalahan untuk mendapatkan solusi yang optimal. Dapat disimpulkan bahwa solusi optimal yang dihasilkan oleh setiap iterasi
dapat berubah. Hal ini disebabkan karena setiap generasi yang dibentuk dari generasi sebelumnya sangat dipengaruhi oleh populasi awal, seleksi, pindah silang, dan mutasi.
Sehingga di setiap proses generasi akan selalu dihasilkan solusi optimal yang berbeda- beda. Proses tersebut akan selalu berulang-ulang hingga didapatkan individu dengan
nilai fitness terbaik. Berdasarkan tabel 3.3 pada percobaan ke-25 dengan ukuran populasi 20 dan
jumlah iterasi 7500 didapatkan nilai fitness sebesar 0,0286533. Nilai fitness tersebut
48 merupakan nilai fitness terbaik yang dapat dihasilkan oleh Algoritma Genetika, artinya
nilai fitness yang didapatkan belum mencapai nilai fitness optimum. Nilai fitness terbaik hanya mencapai 0,0286533. dengan total jarak tempuh 34,9 km. Berikut grafik
percobaan ke-25 seperti gambar 3.3:
Gambar 3.3 Grafik pergerakan nilai fitness Kurva pada Gambar 3.3 merupakan pergerakan nilai fitness hingga generasi ke-
7500. Dan kurva yang berada dibawah merupakan pergerakan nilai rata-rata fitness dari 7500 generasi. Pergerakan nilai fitness akan semakin baik dan konstan dari generasi ke
generasi dan mencapai konvergen di generasi ke-7000, untuk generasi setelah 7000 sampai generasi ke-7500 tetap, dan diperoleh nilai fitness terbaik sebesar 0,0286533,
1000 2000
3000 4000
5000 6000
7000 8000
9000 0.005
0.01 0.015
0.02 0.025
0.03
fitness terbaik: 0.028653 fitness rata-rata: 0.013556
panjang jalur terbaik: 34.900 ukuran populasi: 20
probabilitas mutasi: 0.038 generasi
fi tn
e s
s
49 sehingga didapatkan solusi optimal yaitu rute dengan jarak tempuh minimum. Berikut
merupakan rute yang dihasilkan pada percobaan ke-25 seperti pada tabel 3.4: Tabel 3.4 Pembagian rute percobaan ke-25
Pembagian Rute
Jarak Tempuh
Jumlah Permintaan
1 0 4 2 10 17 16 23 1 24 5 11 6 0
39,5 km 353 roti
0 7 25 19 15 26 3 22 13 12 18 8 14 20 9 21 0
410 roti
2 0 4 2 10 17 16 23 1 24 5 11 6
7 0 41,9 km
358 roti 0 25 19 15 26 3 22 13 12 18 8
14 20 9 21 0 405 roti
3 0 4 2 10 17 16 23 1 24 5 11 6
7 25 0 42,7 km
393 roti 0 19 15 26 3 22 13 12 18 8 14
20 9 21 0 370 roti
Berdasarkan tabel 3.4 dapat diketahui solusi dari model CVRP pada pendistribusian roti di CV. Jogja Transport yaitu:
Rute 1: 0 4 2 10 17 16 23 1 24 5 11 6 0, Depot
– Pamela 8 – Pamela 2 – WS Kotagede – Betta Swalayan – Amani MM – Kios Dani Blok B2
– Pamela 1 – Kantin Amanah RSI – Pamela 2 – Taman Siswa Mart – Karuma
– Depot. Rute 2: 0 7 25 19 15 26 3 22 13 12 18 8 14 20 9 21 0
Depot – Bintaran Mart – Progo – Ramai Mall – N Mart – Kokarda – Citrouli 2 – Vivo
Mini Market – Twin – Sun Mart – Toko 62 – Kemkid Mart – Toko Irma – HS Camilan
50 – Jogja Mart – Toko Afi – Depot, dengan total jarak tempuh kedua rute tersebut yaitu
39,5 km.
Gambar 3.4 Rute Pendistribusian dengan Algoritma Genetika Keterangan:
: Rute 1 : Rute 2
3.2.2 Penyelesaian Model Menggunakan Metode Nearest Neighbour Metode ini memilih pelanggan yang layak untuk dirangkai menjadi rute adalah
pelanggan yang paling dekat dengan lokasi pelanggan yang terakhir kali dikunjungi. Penentuan pelanggan tersebut didasari dari data Matriks Jarak Lampiran 3. Kemudian
rute yang terbentuk, akan diuji kelayakannya berdasarkan kapasitas angkut sepeda
51 motor
� . Berikut langkah-langkah pembentukan rute pendistribusian roti dengan Metode Nearest Neighbour.
1.
Pembentukan Rute Pertama = 1
Pada pembentukan rute pertama, sales mengawali perjalanan dari depot CV. Jogja Transport 0 kemudian pelanggan berturut-turut dilayani sesuai dengan
kapasitas angkut maksimum kendaraan �
�� �
= hingga mengakhiri perjalanan
kembali ke depot. Adapun langkah-langkah pembentukan rute pertama sebagai berikut: a.
Pada langkah ini, karena sales mengawali perjalanan dari depot 0, maka dipilih pelanggan yang paling dekat dengan 0. Berdasarkan Matriks Jarak Lampiran 3,
pelanggan yang paling dekat dengan 0 adalah pelanggan 21 dengan jarak 0,4 km. Dengan demikian rute yang terbentuk menjadi
0 − 21 – 0 dengan kapasitas angkut 5 buah roti
�
�� �
berdasarkan Tabel Data Permintaan Lampiran 2. Oleh karena � �
�� �
, maka pemilihan pelanggan 21 masuk dalam kategori layak, sehingga rute 0 − 21 − 0 dianggap layak.
b. Pada langkah ini, karena lokasi terakhir yang dikunjungi sales adalah pelanggan
21, maka dipilih pelanggan yang paling dekat dengan 21. Berdasarkan Matriks Jarak Lampiran 3, pelanggan yang paling dekat dengan 21 adalah pelanggan 4
dengan jarak 0,9 km. Dengan demikian rute yang terbentuk menjadi 0 − 21 – 4 – 0
dengan kapasitas angkut 5 + 45 = 50 buah roti �
�� �
berdasarkan Tabel Data Permintaan Lampiran 2. Oleh karena
� �
�� �
, maka pemilihan pelanggan 4 masuk dalam kategori layak, sehingga rute 0 − 21 – 4 − 0 dianggap layak.
52 c.
Pada langkah ini, karena lokasi terakhir yang dikunjungi sales adalah pelanggan 4, maka dipilih pelanggan yang paling dekat dengan 4. Berdasarkan Matriks Jarak
Lampiran 3, pelanggan yang paling dekat dengan 4 adalah pelanggan 6 dengan jarak 1,3 km. Dengan demikian rute yang terbentuk menjadi
0 − 21 – 4 – 6 – 0 dengan kapasitas angkut 50 + 50 = 100 buah roti
�
�� �
berdasarkan Tabel Data Permintaan Lampiran 2. Oleh karena
� �
�� �
, maka pemilihan pelanggan 6 masuk dalam kategori layak, sehingga rute 0 − 21 – 4 – 6 – 0 dianggap layak.
d. Pada langkah ini, karena lokasi terakhir yang dikunjungi sales adalah pelanggan 6,
maka dipilih pelanggan yang paling dekat dengan 6. Berdasarkan Matriks Jarak Lampiran 3, pelanggan yang paling dekat dengan 6 adalah pelanggan 11 dengan
jarak 0,9 km. Dengan demikian rute yang terbentuk menjadi 0 − 21 – 4 – 6 – 11 -
0 dengan kapasitas angkut 100 + 35 = 135 buah roti �
�� �
berdasarkan Tabel Data Permintaan Lampiran 2. Oleh karena
� �
�� �
, maka pemilihan pelanggan 11 masuk dalam kategori layak, sehingga rute 0 − 21 – 4 – 6 – 11 - 0 dianggap
layak. e.
Pada langkah ini, karena lokasi terakhir yang dikunjungi sales adalah pelanggan 11, maka dipilih pelanggan yang paling dekat dengan 11. Berdasarkan Matriks
Jarak Lampiran 3, pelanggan yang paling dekat dengan 11 adalah pelanggan 7 dengan jarak 0,8 km. Dengan demikian rute yang terbentuk menjadi
0 − 21 – 4 – 6 – 11 – 7 - 0 dengan kapasitas angkut 135 + 5 = 140 buah roti �
�� �
berdasarkan Tabel Data Permintaan Lampiran 2. Oleh karena
� �
�� �
, maka pemilihan
53 pelanggan 7 masuk dalam kategori lay
ak, sehingga rute 0 − 21 – 4 – 6 – 11 – 7 - 0 dianggap layak.
f. Pada langkah ini, karena lokasi terakhir yang dikunjungi sales adalah pelanggan 7,
maka dipilih pelanggan yang paling dekat dengan 7. Berdasarkan Matriks Jarak Lampiran 3, pelanggan yang paling dekat dengan 7 adalah pelanggan 25 dengan
jarak 1 km. Dengan demikian rute yang terbentuk menjadi 0 − 21 – 4 – 6 – 11 – 7
– 25 - 0 dengan kapasitas angkut 140 + 35 = 175 buah roti �
�� �
berdasarkan Tabel Data Permintaan Lampiran 2. Oleh karena
� �
�� �
, maka pemilihan pelanggan 25 masuk dalam kategori layak, sehingga rute 0 − 21 – 4 – 6 – 11 – 7 –
25 - 0 dianggap layak. g.
Pada langkah ini, karena lokasi terakhir yang dikunjungi sales adalah pelanggan 25, maka dipilih pelanggan yang paling dekat dengan 25. Berdasarkan Matriks
Jarak Lampiran 3, pelanggan yang paling dekat dengan 25 adalah pelanggan 19 dengan jarak 0,9 km. Dengan demikian rute yang terbentuk menjadi
0 − 21 – 4 – 6 – 11 – 7 – 25 – 19 - 0 dengan kapasitas angkut 175 + 40 = 215 buah roti �
�� �
berdasarkan Tabel Data Permintaan Lampiran 2. Oleh karena � �
�� �
, maka pemilihan pelanggan 19 masuk dalam kategori layak, sehingga rute 0 − 21 – 4 – 6
– 11 – 7 – 25 – 19 - 0 dianggap layak. h.
Pada langkah ini, karena lokasi terakhir yang dikunjungi sales adalah pelanggan 19, maka dipilih pelanggan yang paling dekat dengan 19. Berdasarkan Matriks
Jarak Lampiran 3, pelanggan yang paling dekat dengan 19 adalah pelanggan 18
54 dengan jarak 0,7 km. Dengan demikian rute yang terbentuk menjadi
0 − 21 – 4 – 6 – 11 – 7 – 25 – 19 – 18 - 0 dengan kapasitas angkut 215 + 13 = 228 buah roti
�
�� �
berdasarkan Tabel Data Permintaan Lampiran 2. Oleh karena � �
�� �
, maka pemilihan pelanggan 18 masuk
dalam kategori layak, sehingga rute 0 − 21 – 4
– 6 – 11 – 7 – 25 – 19 – 18 - 0 dianggap layak. i.
Pada langkah ini, karena lokasi terakhir yang dikunjungi sales adalah pelanggan 18, maka dipilih pelanggan yang paling dekat dengan 18. Berdasarkan Matriks
Jarak Lampiran 3, pelanggan yang paling dekat dengan 18 adalah pelanggan 8 dengan jarak 0,6 km. Dengan demikian rute yang terbentuk menjadi
0 − 21 – 4 – 6 – 11 – 7 – 25 – 19 – 18 – 8 - 0 dengan kapasitas angkut 228 + 45 = 273 buah roti
�
�� �
berdasarkan Tabel Data Permintaan Lampiran 2. Oleh karena �
�
�� �
, maka pemilihan pelanggan 8 masuk dalam kategori layak, sehingga rute 0 − 21 – 4 – 6 – 11 – 7 – 25 – 19 – 18 – 8 – 0 dianggap layak.
j. Pada langkah ini, karena lokasi terakhir yang dikunjungi sales adalah pelanggan 8,
maka dipilih pelanggan yang paling dekat dengan 8. Berdasarkan Matriks Jarak Lampiran 3, pelanggan yang paling dekat dengan 8 adalah pelanggan 12 dengan
jarak 0,6 km. Dengan demikian rute yang terbentuk menjadi 0 − 21 – 4 – 6 – 11 –
7 – 25 – 19 – 18 – 8 - 12 – 0 dengan kapasitas angkut 273 + 12 = 285 buah roti
�
�� �
berdasarkan Tabel Data Permintaan Lampiran 2. Oleh karena �
�
�� �
, maka pemilihan pelanggan 12 masuk dalam kategori layak, sehingga rute 0 − 21 – 4 – 6 – 11 – 7 – 25 – 19 – 18 – 8 - 12 – 0 dianggap layak.
55 k.
Pada langkah ini, karena lokasi terakhir yang dikunjungi sales adalah pelanggan 12, maka dipilih pelanggan yang paling dekat dengan 12. Berdasarkan Matriks
Jarak Lampiran 3, pelanggan yang paling dekat dengan 12 adalah pelanggan 15 dengan jarak 0,7 km. Dengan demikian rute yang terbentuk
0 − 21 – 4 – 6 – 11 – 7 – 25 – 19 – 18 – 8 - 12 – 15 - 0 dengan kapasitas angkut 285 + 25 = 310 buah roti
�
�� �
berdasarkan Tabel Data Permintaan Lampiran 2. Oleh karena �
�
�� �
, maka pemilihan pelanggan 15 masuk dalam kategori layak, sehingga rute 0 − 21 – 4 – 6 – 11 – 7 – 25 – 19 – 18 – 8 - 12 – 15 – 0 dianggap layak.
l. Pada langkah ini, karena lokasi terakhir yang dikunjungi sales adalah pelanggan
15, maka dipilih pelanggan yang paling dekat dengan 15. Berdasarkan Matriks Jarak Lampiran 3, pelanggan yang paling dekat dengan 15 adalah pelanggan 26
dengan jarak 2 km. Dengan demikian rute yang terbentuk menjadi 0 − 21 – 4 – 6 –
11 – 7 – 25 – 19 – 18 – 8 - 12 – 15 – 26 - 0 dengan kapasitas angkut 310 + 50 =
360 buah roti �
�� �
berdasarkan Tabel Data Permintaan Lampiran 2. Oleh karena
� �
�� �
, maka pemilihan pelanggan 26 masuk dalam kategori layak, sehingga rute 0 − 21 – 4 – 6 – 11 – 7 – 25 – 19 – 18 – 8 - 12 – 15 – 26 - 0 dianggap
layak. m.
Pada langkah ini, karena lokasi terakhir yang dikunjungi sales adalah pelanggan 26, maka dipilih pelanggan yang paling dekat dengan 26. Berdasarkan Matriks
Jarak Lampiran 3, pelanggan yang paling dekat dengan 26 adalah pelanggan 3 dengan jarak 0,9 km. Dengan demikian rute yang terbentuk menjadi
0 − 21 – 4 – 6
56 – 11 – 7 – 25 – 19 – 18 – 8 - 12 – 15 – 26 – 3 - 0 dengan kapasitas angkut 360 +
40 = 400 buah roti �
�� �
berdasarkan Tabel Data Permintaan Lampiran 2. Oleh karena
� �
�� �
, maka pemilihan pelanggan 3 masuk dalam kategori layak, sehingga rute 0 − 21 – 4 – 6 – 11 – 7 – 25 – 19 – 18 – 8 - 12 – 15 – 26 – 3 - 0
dianggap layak. n.
Pada langkah ini, karena lokasi terakhir yang dikunjungi sales adalah pelanggan 3, maka dipilih pelanggan yang paling dekat dengan 3. Berdasarkan Matriks Jarak
Lampiran 3, pelanggan yang paling dekat dengan 3 adalah pelanggan 22 dengan jarak 1,8 km. Dengan demikian rute yang terbentuk menjadi
0 − 21 – 4 – 6 – 11 – 7
– 25 – 19 – 18 – 8 - 12 – 15 – 26 – 3 – 22 - 0 dengan kapasitas angkut 400 + 35 = 435 buah roti
�
�� �
berdasarkan Tabel Data Permintaan Lampiran 2. Oleh karena
� �
�� �
, maka pemilihan pelanggan 22 masuk dalam kategori tidak layak, sehingga perlu dipilih pelanggan lain yang paling dekat dengan 3 dan jumlah
permintaannya jika digabung tidak melebihi �
�� �
. Berdasarkan Matriks Jarak Lampiran 2 dan Tabel Data Permintaan Lampiran 2, pelanggan yang paling
dekat dengan 3 dan jumlah permintaannya jika digabung tidak melebihi �
�� �
adalah pelanggan 23 dengan jarak 3,9 km. Dengan demikian rute yang terbentuk menjadi
0 − 21 – 4 – 6 – 11 – 7 – 25 – 19 – 18 – 8 - 12 – 15 – 26 – 3 – 23 - 0 dengan kapasitas angkut 400 + 10 = 410 buah roti
�
�� �
berdasarkan Tabel Data Permintaan Lampiran 2. Oleh karena
� �
�� �
, maka pemilihan pelanggan 23
57 masuk dalam kategori layak, sehingga rute 0 − 21 – 4 – 6 – 11 – 7 – 25 – 19 – 18 –
8 - 12 – 15 – 26 – 3 – 23 - 0 dianggap layak.
o. Pada langkah ini, karena lokasi terakhir yang dikunjungi sales adalah pelanggan
23, maka dipilih pelanggan yang paling dekat dengan 23. Berdasarkan Matriks Jarak Lampiran 3, pelanggan yang paling dekat dengan 23 adalah pelanggan 16
dengan jarak 0,6 km. Dengan demikian rute yang terbentuk menjadi 0 − 21 – 4 – 6
– 11 – 7 – 25 – 19 – 18 – 8 - 12 – 15 – 26 – 3 – 23 - 16 - 0 dengan kapasitas angkut 410 + 10 = 420 buah roti
= �
�� �
berdasarkan Tabel Data Permintaan Lampiran 2. Oleh karena
� = �
�� �
, maka pemilihan pelanggan 16 masuk dalam kategori layak, sehingga rute 0 − 21 – 4 – 6 – 11 – 7 – 25 – 19 – 18 – 8 - 12 – 15 – 26 – 3 –
23 - 16 - 0 dianggap layak dan tidak dapat disisipi pelanggan lagi. Dengan demikian rute pertama yang terbentuk adalah 0
– 21 – 4 – 6 – 11 – 7 – 25
– 19 – 18 – 8 - 12 – 15 – 26 – 3 – 23 - 16 – 0. Total jarak yang ditempuh pada rute pertama adalah 20 km dengan melayani 15 pelanggan. Dengan demikian, pelanggan
yang belum dilayani ada sebanyak 11 pelanggan. Oleh karena masih terdapat pelanggan yang belum dilayani, maka akan dibentuk rute kedua sebagai berikut.
2.
Pembentukan Rute Kedua = 2
Pada pembentukan rute kedua, sales mengawali perjalanan dari depot CV. Jogja Transport 0 kemudian pelanggan berturut-turut dilayani sesuai dengan kapasitas
angkut maksimum kendaraan �
�� �
= hingga mengakhiri perjalanan kembali
ke depot. Adapun langkah-langkah pembentukan rute kedua sebagai berikut:
58 a.
Pada langkah ini, karena sales mengawali perjalanan dari depot 0, maka dipilih pelanggan yang paling dekat dengan 0. Berdasarkan Matriks Jarak Lampiran 3,
pelanggan yang paling dekat dengan 0 adalah pelanggan 2 dengan jarak 2 km. Dengan demikian rute yang terbentuk menjadi
0 − 2 – 0 dengan kapasitas angkut 45 buah roti
�
�� �
berdasarkan Tabel Data Permintaan Lampiran 2. Oleh karena
� �
�� �
, maka pemilihan pelanggan 2 masuk dalam kategori layak, sehingga rute 0 − 2 − 0 dianggap layak.
b. Pada langkah ini, karena sales mengawali perjalanan dari depot 2, maka dipilih
pelanggan yang paling dekat dengan 2. Berdasarkan Matriks Jarak Lampiran 3, pelanggan yang paling dekat dengan 2 adalah pelanggan 10 dengan jarak 1.4 km.
Dengan demikian rute yang terbentuk menjadi 0 − 2 – 10 - 0 dengan kapasitas
angkut 45 + 35 = 75 buah roti �
�� �
berdasarkan Tabel Data Permintaan Lampiran 2. Oleh karena
� �
�� �
, maka pemilihan pelanggan 10 masuk dalam kategori layak, sehingga rute 0 − 2 – 10 - 0 dianggap layak.
c. Pada langkah ini, karena sales mengawali perjalanan dari depot 10, maka dipilih
pelanggan yang paling dekat dengan 10. Berdasarkan Matriks Jarak Lampiran 3, pelanggan yang paling dekat dengan 10 adalah pelanggan 17 dengan jarak 0.8 km.
Dengan demikian rute yang terbentuk menjadi 0 − 2 – 10 – 17 - 0 dengan kapasitas
angkut 75 + 15 = 90 buah roti �
�� �
berdasarkan Tabel Data Permintaan Lampiran 2. Oleh karena
� �
�� �
, maka pemilihan pelanggan 17 masuk dalam kategori layak, sehingga rute 0 − 2 – 10 – 17 - 0 dianggap layak.
59 d.
Pada langkah ini, karena sales mengawali perjalanan dari depot 17, maka dipilih pelanggan yang paling dekat dengan 17. Berdasarkan Matriks Jarak Lampiran 3,
pelanggan yang paling dekat dengan 17 adalah pelanggan 24 dengan jarak 2.1 km. Dengan demikian rute yang terbentuk menjadi
0 − 2 – 10 – 17 – 24 – 0 dengan kapasitas angkut 90 + 13 = 103 buah roti
�
�� �
berdasarkan Tabel Data Permintaan Lampiran 2. Oleh karena
� �
�� �
, maka pemilihan pelanggan 24 masuk dalam kategori layak, sehingga rute 0 − 2 – 10 – 17 – 24 – 0 dianggap layak.
e. Pada langkah ini, karena sales mengawali perjalanan dari depot 24, maka dipilih
pelanggan yang paling dekat dengan 24. Berdasarkan Matriks Jarak Lampiran 3, pelanggan yang paling dekat dengan 24 adalah pelanggan 5 dengan jarak 0.5 km.
Dengan demikian rute yang terbentuk menjadi 0 − 2 – 10 – 17 – 24 – 5 - 0 dengan
kapasitas angkut 103 + 45 = 148 buah roti �
�� �
berdasarkan Tabel Data Permintaan Lampiran 2. Oleh karena
� �
�� �
, maka pemilihan pelanggan 5 masuk dalam kategori layak, sehingga rute 0 − 2 – 10 – 17 – 24 – 5 - 0 dianggap
layak. f.
Pada langkah ini, karena sales mengawali perjalanan dari depot 5, maka dipilih pelanggan yang paling dekat dengan 5. Berdasarkan Matriks Jarak Lampiran 3,
pelanggan yang paling dekat dengan 5 adalah pelanggan 1 dengan jarak 1.5 km. Dengan demikian rute yang terbentuk menjadi
0 − 2 – 10 – 17 – 24 – 5 – 1 - 0 dengan kapasitas angkut 148 + 55 = 203 buah roti
�
�� �
berdasarkan Tabel Data Permintaan Lampiran 2. Oleh karena
� �
�� �
, maka pemilihan pelanggan 1
60 masuk dal
am kategori layak, sehingga rute 0 − 2 – 10 – 17 – 24 – 5 – 1 - 0 dianggap layak.
g. Pada langkah ini, karena sales mengawali perjalanan dari depot 1, maka dipilih
pelanggan yang paling dekat dengan 1. Berdasarkan Matriks Jarak Lampiran 3, pelanggan yang paling dekat dengan 1 adalah pelanggan 22 dengan jarak 4.6 km.
Dengan demikian rute yang terbentuk menjadi 0 − 2 – 10 – 17 – 24 – 5 – 1 – 22 -
0 dengan kapasitas angkut 203 + 37 = 240 buah roti �
�� �
berdasarkan Tabel Data Permintaan Lampiran 2. Oleh karena
� �
�� �
, maka pemilihan pelanggan 22 masuk dalam kategori layak, sehingga rute 0 − 2 – 10 – 17 – 24 – 5 – 1 – 22 - 0
dianggap layak. h.
Pada langkah ini, karena sales mengawali perjalanan dari depot 22, maka dipilih pelanggan yang paling dekat dengan 22. Berdasarkan Matriks Jarak Lampiran 3,
pelanggan yang paling dekat dengan 22 adalah pelanggan 13 dengan jarak 2 km. Dengan demikian rute yang terbentuk menjadi
0 − 2 – 10 – 17 – 24 – 5 – 1 – 22 – 13 - 0 dengan kapasitas angkut 240 + 40 = 280 buah roti
�
�� �
berdasarkan Tabel Data Permintaan Lampiran 2. Oleh karena
� �
�� �
, maka pemilihan pelanggan 13 masuk dalam kategori layak, sehingga rute 0 − 2 – 10 – 17 – 24 – 5
– 1 – 22 – 13 - 0 dianggap layak. i.
Pada langkah ini, karena sales mengawali perjalanan dari depot 13, maka dipilih pelanggan yang paling dekat dengan 13. Berdasarkan Matriks Jarak Lampiran 3,
pelanggan yang paling dekat dengan 13 adalah pelanggan 14 dengan jarak 4.4 km.
61 Dengan demikian rute yang terbentuk menjadi
0 − 2 – 10 – 17 – 24 – 5 – 1 – 22 – 13
– 14 - 0 dengan kapasitas angkut 280 + 8 = 288 buah roti �
�� �
berdasarkan Tabel Data Permintaan Lampiran 2. Oleh karena
� �
�� �
, maka pemilihan pelanggan 14 masuk dalam katego
ri layak, sehingga rute 0 − 2 – 10 – 17 – 24 – 5 – 1 – 22 – 13 – 14 - 0 dianggap layak.
j. Pada langkah ini, karena sales mengawali perjalanan dari depot 14, maka dipilih
pelanggan yang paling dekat dengan 14. Berdasarkan Matriks Jarak Lampiran 3, pelanggan yang paling dekat dengan 14 adalah pelanggan 20 dengan jarak 2.1 km.
Dengan demikian rute yang terbentuk menjadi 0 − 2 – 10 – 17 – 24 – 5 – 1 – 22 –
13 – 14 – 20 - 0 dengan kapasitas angkut 288 + 5 = 293 buah roti �
�� �
berdasarkan Tabel Data Permintaan Lampiran 2. Oleh karena � �
�� �
, maka pemilihan pelanggan 20 masuk dalam kategori layak, sehingga rute 0 − 2 – 10 – 17
– 24 – 5 – 1 – 22 – 13 – 14 – 20 - 0 dianggap layak. k.
Pada langkah ini, karena sales mengawali perjalanan dari depot 20, maka dipilih pelanggan yang paling dekat dengan 20. Berdasarkan Matriks Jarak Lampiran 3,
pelanggan yang paling dekat dengan 20 adalah pelanggan 9 dengan jarak 2.2 km. Dengan demikian rute yang terbentuk menjadi
0 − 2 – 10 – 17 – 24 – 5 – 1 – 22 – 13
– 14 – 20 – 9 - 0 dengan kapasitas angkut 293 + 50 = 343 buah roti �
�� �
berdasarkan Tabel Data Permintaan Lampiran 2. Oleh karena � �
�� �
, maka pemilihan pelanggan 0 masuk dalam kategori layak, sehingga rute 0 − 2 – 10 – 17
– 24 – 5 – 1 – 22 – 13 – 14 – 20 – 9 - 0 dianggap layak.
62 Semua pelanggan telah dilayani pada tahap ini, dengan demikian pembentukan
rute kedua selesai. Adapun rute kedua yang terbentuk adalah 0 − 2 – 10 – 17 – 24 – 5
– 1 – 22 – 13 – 14 – 20 – 9 - 0 dengan total jarak yang ditempuh sejauh 25,9 km. Dari perhitungan yang telah dilakukan menggunakan Metode Nearest
Neighbour, permasalahan proses pendistribusian roti di CV. Jogja Transport menghasilkan 2 rute sebagai berikut:
Rute 1: Depot – Toko Afi – Pamela 8 – Karuma – Taman Siswa Mart – Bintaran Mart
– Progo – Ramai Mall – Toko 62 – Kemkid Mart – Sun Mart – N Mart – Kokarda – Citrouli 2
– Kios Dani Blok B2 – Amani MM – Depot, dengan total jarak tempuh 20 km dan mengangkut 420 buah roti.
Rute 2: Depot – Pamela 4 – WS Kotagede – Betta Swalayan – Kantin Amanah RSI –
Pamela 2 – Pamela 1 – Vivo Mini Market – Twin – Toko Irma – HS Camilan – Jogja
Mart – Depot, dengan total jarak tempuh 25,9 km dan mengangkut 343 buah roti.
Gambar 3.5 Rute Pendistribusian dengan Metode Nearest Neighbour
63 Keterangan:
: Rute 1 : Rute 2
Adapun rekapitulasi hasil penyelesaian masalah menggunakan Metode Nearest Neighbour sebagai berikut:
Tabel 3.5 Hasil Penyelesaian Model dengan Metode Nearest Neighbour
No. Rute
Jarak km
Roti Penggunaan
Kapasitas Terangkut
Kendaraan Angkut
1 0 21 4 6 11 7 25 19
20 420
100 18 8 12 15 26 3 23 16 0
2 0 2 10 17 24 5
25,9 343
81,67 1 22 13 14 20 9 0
Pada Tabel 3.5, pembentukan rute menggunakan Metode Nearest Neighbour menghasilkan 2 rute. Rute pertama melayani 15 pelanggan dan menempuh
perjalanan sejauh 20 km dengan mengangkut 420 buah roti. Rute kedua melayani 11 pelanggan dan menempuh perjalanan sejauh 25,9 km dengan mengangkut 343 buah
roti. Tabel 3.5 juga menunjukkan bahwa rute yang dibentuk menggunakan Metode
Nearest Neighbour masih kurang efektif dalam hal jarak tempuh. Hal tersebut dikarenakan Metode Nearest Neighbour lebih mengoptimalkan kapasitas kendaraan.
Artinya, jika setiap rute memaksimalkan kapasitas kendaraan, maka jarak tempuhnya tidak akan optimal karena terdapat beberapa pelanggan terdekat yang tidak masuk ke
dalam rute karena jumlah permintaannya melebihi sisa kapasitas. Sebagai contoh pada rute ke 1, pelanggan yang terdekat dengan pelanggan 3 adalah pelanggan 22, namun
64 karena jumlah permintaan pelanggan 22 melebihi sisa kapasitas kendaraan, maka
dipilih pelanggan terdekat lain yang jumlah permintaannya memenuhi sisa kapasitas kendaraan, yaitu pelanggan 23 dengan jarak yang lebih jauh dibanding pelanggan 22.
Oleh karena itu, keefektifitasan jarak tempuh dalam Metode Nearest Neighbour sangat dipengaruhi oleh jumlah permintaan pelanggan dan sisa kapasitas kendaraan angkut.
3.3 Perbandingan Penyelesaian Model menggunakan Algoritma Genetika