46 BAB III PEMBAHASAN
A. Model Capacitated Vehicle Routing Problem (CVRP) untuk Optimasi Rute Distribusi Gula di Pabrik Gula Yogyakarta
Alur pendistribusian gula dimulai dari pemesanan gula yang dilakukan oleh
beberapa sales yang membawahi beberapa toko ke bagian pemasaran. Kemudian
pemesanan akan direkap , apabila pemesanan sudah memenuhi kapasitas maka
akan dibuatkan surat jalan untuk truk mendistribusikan gula ke beberapa toko yang
sudah melakukan pemesanan sebelumnya, yang diberikan ke bagian instalansi.
Sopir truk yang akan mendistribusikan gula akan mengambil surat ijin yang berada
di bagian instalansi kemudian akan menuju gudang dan digudang akan dicatat gula
yang akan didistribusikan ke beberapa toko dengan surat ijin yang telah diperoleh
sebelumnya. Setelah memasukkan gula ke dalam truk maka truk akan keluar dari
pabrik yang selanjutnya di Pos satpam juga akan dilakukan pemeriksaan kembali
kemana truk itu akan beroperasi dan akan meminta surat jalan truk. Gula
didistribusikan dalam satuan kilogram ke wilayah Yogyakarta dan Jawa Tengah.
Pada penulisan skripsi ini hanya akan dibatasi pada kegiatan distribusi di wilayah
Yogyakarta. Jumlah toko yang menjadi tujuan distribusi gula di wilayah
Yogyakarta sebanyak 25 toko. Kegiatan distribusi gula dimulai dari perusahaan
(depot) dan berakhir atau kembali ke depot. Setiap harinya gula didistribusikan
47
Pendistribusian gula yang dilakukan oleh perusahaan menggunakan
kendaraan dengan jenis Mobil Box PS I sebanyak 3 unit dengan masing-masing
berkapasitas 6.000 kg, Box HD sebanyak 1 unit dengan kapasitas 8.500 kg, dan
Troton sebanyak 1 unit dengan kapasitas 16.000 kg. Pendistibusian gula di Wilayah
Yogyakarta menggunakan mobil jenis Box PS I sedangkan box HD dan Troton
digunakan untuk mendistribusikan gula di Jawa Tengah dan sekitarnya.
Pendistribusian dilakukan setiap hari antara pukul 08.00-15.00 WIB dimulai dan
berakhir di depot. Kegiatan distribusi dilakukan oleh 2 orang yang terdiri dari
pengemudi (driver) dan asisten pengemudi (distributor). Setelah driver dan
distributor mengunjungi setiap agen, maka akan kembali ke perusahaan (depot).
Masalah yang dihadapi perusahaan adalah menentukan rute distribusi berdasarkan
perkiraan saja tanpa mengetahui 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 untuk meminimumkan
total jarak tempuh dengan mempertimbangkan kendala kapasitas kendaraan untuk
memenuhi semua permintaan agen.
Permasalahan CVRP pada distribusi gula didefinisikan sebagai suatu graf G
= (V,E). Himpunan V terdiri atas gabungan himpunan agen C dan depot, V ={0,1,2,…,26}. Himpunan C berupa agen 1 sampai dengan 25, C={1,2,…,25}dan
depot dinyatakan dengan 0 dan 26. Jaringan jalan yang digunakan oleh kendaraan
48
{(i,j)|i,j ∈ V, i≠j}. Semua rute dimulai dan berakhir di 0. Himpunan kendaraan K
merupakan kumpulan kendaraan yang homogeny dengan kapasitas q. Setiap agen
i, untuk setiap i ∈ C memiliki permintaan 𝑑𝑖 sehingga panjang rute dibatasi oleh
kapasitas kendaraan. Setiap rusuk (i,j) ∈ E memiliki jarak tempuh 𝑐𝑖𝑗 , waktu
tempuh 𝑡𝑖𝑗 dan juga bahwa 𝑐𝑖𝑖 = 𝑐𝑗𝑗 = 0.
Asumsi yang digunakan dalam penulisan skripsi ini adalah :
1. Setiap pesanan agen dapat dipenuhi oleh perusahaan,
2. Kendaraan yang digunakan mempunyai kapasitas yang sama yaitu 6.000kg,
3. Setiap agen terhubung satu sama lain dan jarak antar agen simetris, artinya
𝑐𝑖𝑗 = 𝑐𝑗𝑖,
4. Waktu pengiriman pada setiap agen dapat dilakukan kapan saja pada selang
waktu pukul 08.00-15.00 WIB.
Didefinisikan :
Untuk setiap kendaraan k didefinisikan variabel :
Xijk ={
1, jika terdapat perjalanan dari i ke j dengan kendaraan k 0, 𝑗ika tidak terdapat perjalanan dari i ke j dengan kendaraan k
Formula matematis CVRP untuk optimasi rute distrbusi gula di wilayah Yogyakarta adalah sebagai berikut :
Meminimumkan rute pengiriman dengan total kendaraan 3 unit, dimulai dari depot ke sejumlah agen yang berjumlah 25 dan kendaraan kembali lagi ke depot. Permasalahan tersebut dapat dimodelkan sebagai berikut :
49 Meminimumkan Z = ∑3𝑘=1∑25𝑖=0∑26𝑗=1𝑐𝑖𝑗𝑥𝑖𝑗𝑘
Dengan kendala
1. Untuk setiap agen hanya akan dikunjungi tepat satu kali oleh 1 kendaraan, pada
permasalahan ini terdapat 3 unit kendaraan dengan jumlah titik sebanyak 25
yang harus dikunjungi. Permasalahan ini dapat diilustrasikan sebagai berikut
Kendaraan Titik 1 2 3 0 𝑋0𝑗1 𝑋0𝑗2 𝑋0𝑗3
:
:
:
:
25 𝑋25𝑗1 𝑋25𝑗2 𝑋25𝑗3Secara matematis dapat dituliskan sebagai berikut :
i. Untuk j = {1, 2, …, 26}
∑25𝑖=0∑3𝑘=1𝑋𝑖1𝑘= 1
:
∑25𝑖=0∑3𝑘=1𝑋𝑖25𝑘 = 1
50 ∑25𝑖=0∑3𝑘=1𝑋0𝑗𝑘 = 1
:
∑25𝑖=0∑3𝑘=1𝑋𝑖1𝑘= 1
2. Total permintaan dari semua agen yang berjumlah 25 dalam satu rute tidak
melebihi kapasitas setiap kendaraan yaitu 6000 kg :
∑
25𝑖=0(𝑑
𝑖∑
26𝑗=1𝑋
𝑖𝑗𝑘≤ 6.000,
𝑘 = {1,2,3}
3. Setiap rute berawal dari depot yaitu titik 0 ke agen yang berjumlah 25 dan
dimulai dari titik 1 dan setiap titik hanya dikunjungi tepat satu kali :
∑
26𝑗=1𝑥
0𝑗𝑘= 1,
∑
25𝑖=0𝑥
𝑖1𝑘= 1,
𝑘 = {1,2,3}
4. Setiap kendaran yang mengunjungi suatu titik pasti akan meninggalkan titik
tersebut, artinya kendaraan hanya mengunjungi tepat satu kali :
∑
25𝑖=0𝑥
𝑖𝑗𝑘− ∑
26𝑗=1𝑥
𝑗𝑖𝑘= 0,
𝑘 = {1,2,3}
5. Setiap rute dimulai dari depot 0 dan akan berakhir di depot 26 yang juga
merupakan depot asal :
∑
25𝑖=0𝑥
𝑖(26)𝑘= 0,
𝑘 = {1,2,3}
6. Variabel𝑥
𝑖𝑗𝑘 merupakan variabel biner :51
B.
Penyelesaian Model Capacitated Vehicle Routing Problem (CVRP) Menggunakan Algoritma SweepLangkah-langkah penyelessaian Model Capacitated Vehicle Routing Problem
(CVRP) menggunakan Algoritma Sweep adalah sebagai berikut :
1. Matriks Jarak dan Matriks Waktu Tempuh a. Matriks Jarak
Data jarak tempuh dari depot dan setiap agen disajikan pada Lampiran 1.
Data tersebut diperoleh dengan bantuan Google Maps.
b. Matriks Waktu Tempuh
Untuk menghitung waktu tempuh (menit) menggunakan cara membagi
jarak tempuh dengan rata-rata kecepatan kendaraan.
Waktu Tempuh =
(
𝑗𝑎𝑟𝑎𝑘 (𝑘𝑚)𝑘𝑒𝑐𝑒𝑝𝑎𝑡𝑎𝑛 𝑟𝑎𝑡𝑎−𝑟𝑎𝑡𝑎
)
x 60 (satuan dalam menit)Contoh perhitungan waktu tempuh dari Depot (0) ke Pamela Swalayan (2)
=
(
7,450
)
x 60 =8,88 menit ≈ 9 menitHasil perhitungan waktu tempuh (menit) dari asal ke tujuan distribusi disajikan
pada Lampiran 2.
2. Tahap Penyelesaian Model CVRP Menggunakan Algoritma Sweep
Dalam menyelesaikan model CVRP dengan algoritma sweep diperlukan
dua tahapan proses yaitu pengelompokkan (clustering) dilanjutkan dengan
52 1) Tahap Pengelompokkan (clustering)
Langkah-langkah pada tahap pengelompokkan sebagai berikut :
i. Menggambar masing-masing agen dalam koordinat kartesius dan menetapkan
lokasi depot sebagai pusat koordinat. Langkah-langkah untuk menggambarkan
peta dalam koordinat kartesius terdapat dalam Lampiran 4. Gambar 3.1 adalah
koordinat kartesius untuk masing-masing agen.
Gambar 3.1 Koordinat Kartesius Masing-masing Agen ii. Menentukan semua koordinat polar dari masing-masing agen yang
berhubungan dengan depot. Langkah untuk mengubah koordinat kartesius (x,y)
menjadi koordinat polar (𝑟, 𝜃) adalah dengan menggunakan rumus pada
Persamaan (2.11) dan (2.12) pada bab sebelumnya atau dengan bantuan
Software Gogebra yang disajikan pada Lampiran 4.
Contoh perhitungan untuk mengubah koordinat kartesius (1.62,-2.04) menjadi
53
1 (1.64,-2.12) ↔ 𝑟 = √(1,64)2+ (−2,12)2 = 2,68
𝜃 = 𝑎𝑟𝑐 tan (−2,12
1,64) = 307,72 °
Hasil yang diperoleh dari perhitungan koordinat polar disajikan pada Tabel 3.1.
Titik Agen Sudut Polar Titik Agen Sudut Polar
1 2.68; 307.72° 14 1.15; 263.99° 2 2.16; 7.45° 15 3.54; 41.34° 3 7.62; 93.61° 16 4.31; 33.84° 4 3.34; 58.21° 17 1.84; 55.62° 5 4.82; 97.63° 18 1.88; 45.43° 6 2.34; 79.65° 19 1; 36.87° 7 2.72; 49.17° 20 2.98; 61.54° 8 2.48; 12.58° 21 4.87; 71.57° 9 5.15; 36.47° 22 6.72; 91.36° 10 2.99; 54.82° 23 4.18; 62.94° 11 1.85; 129.73° 24 4.09; 42.42° 12 2.82; 279.4° 25 3.99; 34.8° 13 2.16; 59.4°
54 iii. Melakukan pengelompokkan (clustering)
Dimulai dari agen yang memiliki sudut polar terkecil dan seterusnya
berurutan sampai agen yang memiliki sudut polar terbesar dengan
memperhatikan kapsitas kendaraan. Urutan agen dari sudut polar terkecil
sampai sudut polar terbesar dituliskan dalam Persamaan (3.1) sebagai berikut :
2, 8, 16, 25, 9, 19, 15, 24, 18, 7, 10, 17, 4, 13, 20, 23, 21, 6, 22, 3, 5, 11, 14, 12,
1 (3.1)
Apabila permintaan pada agen 2 sampai agen 24 dalam Persamaan (3.1)
dijumlahkan maka diperoleh hasil sebagai berikut :
=1250 kg + 500 kg + 750 kg + 250 kg + 1000 kg + 625 kg + 1000 kg + 250 kg
=5625 kg
iv. Memastikan semua agen masuk dalam cluster saat ini
Agen 2 sampai agen 24 terpilih dan dimasukkan dalam cluster I.
v. Pengelompokkan dihentikan sampai agen 24 karena apabila agen 18 ikut
terpilih maka akan melebihi kapasitas maksimal kendaraan.
vi. Selanjutnya akan dibuat cluster baru dimulai dari agen 18 yang memiliki sudut
polar terkecil yang belum terpilih dalam cluster sebelumnya (agen yang
terakhir ditinggalkan). Apabila permintaan pada agen 18 sampai agen 23 dalam
55
= 500 kg + 1100 kg + 500 kg + 375 kg + 50 kg + 1000 kg + 1500 kg + 450 kg
=5475 kg
Agen S sampai agen 23 telah terpilih dan dimasukkan dalam cluster II
vii. Akan dibuat cluster terakhir yaitu cluster III. Dimulai dari agen 21 yang
memiliki sudut polar terkecil yang belum terpilih dalam cluster sebelumnya.
Apabila permintaan pada agen V sampai agen B dalam Persamaan (3.1)
dijumlahkan maka diperoleh hasil sebagai berikut :
= 750 kg + 1000 kg + 625 kg + 350 kg + 700 kg + 25 kg + 175 kg + 1100 kg +
1050 kg
= 5775 Kg
Agen V sampai agen B telah terpilih dan dimasukkan dalam cluster III
Setelah diperoleh custer I, II, dan cluster III maka proses
pengelompokan selesai karena semua agen sudah termuat dalam ketiga cluster
tersebut. Langkah selanjutnya yaitu melakukan pembentukan rute.
2) Tahap Pembentukan Rute
Pada tahap pembentukan rute, masing-masing cluster yang telah diperoleh pada
tahap sebelumnya akan diselesaikan dengan menggunakan metode Nearest
56
57
Gambar 3.3 Peta Agen Cluster I
58
Gambar 3.5 Peta Agen Cluster III
Berdasarkan ketiga cluster tersebut, maka dapat dibentuk rute kendaraan
dengan menggunakan algoritma Nearest Neighbour. Pada algoritma Nearest
Neighbour ini, pembentukan rute akan dimulai pada rute yang memiliki jarak paling
minimum setiap melalui agen. Selanjutnya memilih agen yang belum dikunjungi dan
memilih jarak yang paling minimum. Berikut pembentukan rute kendaraan untuk
cluster I, cluster II, dan cluster III.
a. Pembentukan rute cluster I
Langkah-langkah pembentukan rute untuk cluster I dengan menggunakan
algoritma Nearest Neighbour adalah sebagai berikut :
1. Langkah 0 : Inisialisasi
59
Titik awal perjalanan akan dimulai dari titik 0 yang merupakan depot
perusahaan.
1.2 Menentukan himpunan titik yang akan dikunjungi selanjutnya.
Himpunan titik yang akan dikunjungi pada cluster I adalah sebagai berikut:
𝐶 = {2, 8, 16, 25, 9, 19, 15, 24 }
1.3 Menentukan rute perjalanan saat ini ( R ).
R = 0, karena belum ada titik lain yang dikunjungi
2. Langkah 1 : Memilih titik yang selanjutnya akan dikunjungi yang memiliki
jarak paling minimal dengan titik yang berada di rutan terakhir dari rute R.
Berikut daftar jarak dari himpunan titik yang akan dikunjungi dari titik 0 :
3. Langkah 2: menambahkan titik yang terpilih pada urutan rute saat ini dan
keluarkan dari daftar titik yang masih harus dikunjungi.
R = 0 → 19 dan diperoleh C yang baru yaitu
𝐶∗ = { 2, 8, 16, 25, 9, 15, 24 }
d(0,2) = 7,4 km d(0,19) = 3,4 km
d(0,8) = 8,6 km d(0,16) = 15 km
d(0,9) = 19 km d(0,24) = 16 km
d(0,9) = 16 km d(0,25) = 15 km
60
4. Masih ada sejumlah titik yang harus dikunjungi maka kembali melakukan
langkah 1.
Berikut daftar jarak dari himpunan titik yang masih dikunjungi dari titik 19
d(19,2) = 4 km d(19,16) = 10 km
d(19,8) = 5,4 km d(19,24) = 11 km
d(19,9) = 13 km d(19,25) = 9,3 km
d(19,15) = 9,2 km
Jarak yang terpilih adalah d(19,2) = 4 km
5. Urutan rute saat ini adalah R = 0 → 19→ 2 dan diperoleh 𝐶∗ yang baru yaitu
𝐶∗ = {8, 16, 25, 9, 15, 24 }
6. Masih ada sejumlah titik yang harus dikunjungi maka kembali melakukan
langkah 1.
Berikut daftar jarak dari himpunan titik yang masih dikunjungi dari titik 2
7. Urutan rute saat ini adalah R = 0 → 19→ 2 → 𝟖 dan diperoleh 𝐶∗ yang baru
yaitu
d(2,8) = 1,3 km d(2,16) = 8 km
d(2,9) = 13 km d(2,24) = 8,5 km
d(2,15) = 5,7 km d(2,25) = 7,3 km
61 𝐶∗ = {16, 25, 9, 15, 24 }
8. Masih ada sejumlah titik yang harus dikunjungi maka kembali melakukan
langkah 1.
Berikut daftar jarak dari himpunan titik yang masih dikunjungi dari titik 8
d(8,9) = 11 km d(8,24) = 8,5 km
d(8,15) = 7,4 km d(8,25) = 6 km
d(8,16) = 6,7 km
Jarak yang terpilih adalah d(8,25) = 6 km
9. Urutan rute saat ini adalah R = 0 → 19→ 2 → 𝐈𝟖 → 𝟐𝟓 dan diperoleh 𝐶∗ yang
baru yaitu
𝐶∗ = {16, 9, 15, 24 }
10. Masih ada sejumlah titik yang harus dikunjungi maka kembali melakukan
langkah 1.
Berikut daftar jarak dari himpunan titik yang masih dikunjungi dari titik 25
d(25,9) = 4,4 km d(25,24) = 2 km
d(25,15) = 1,4 km d(25,16) = 3,1 km
62
11. Urutan rute saat ini adalah R = 0 → 19→ 2 → 𝟖 → 𝟐𝟓 → 𝟏𝟓 dan diperoleh 𝐶∗
yang baru yaitu
𝐶∗ = {16, 9, 24 }
12. Masih ada sejumlah titik yang harus dikunjungi maka kembali melakukan
langkah 1.
Berikut daftar jarak dari himpunan titik yang masih dikunjungi dari titik 15
d(15,9) = 6 km d(15,24) = 1,9 km
d(15,16) = 4,7 km
Jarak yang terpilih adalah d(15,24) = 1,9 km
13. Urutan rute saat ini adalah R = 0 → 19→ 2 → 𝟖 → 𝟐𝟓 → 𝟏𝟓 → 𝟐𝟒 dan
diperoleh 𝐶∗ yang baru yaitu
𝐶∗ = {16, 9}
14. Masih ada sejumlah titik yang harus dikunjungi maka kembali melakukan
langkah 1.
Berikut daftar jarak dari himpunan titik yang masih dikunjungi dari titik 24
d(24,9) = 5,7 km d(24,16) = 4,5km
63
Urutan rute saat ini adalah R = 0 → 19→ 2 → 𝟖 → 𝟐𝟓 → 𝟏𝟔 → 𝟐𝟒 → 𝟏𝟔 dan
diperoleh 𝐶∗ yang baru yaitu
𝐶∗ = { 9}
Titik terakhir yang harus dikunjungi adalah titik 9.
15. Masih ada titik yang harus dikunjungi maka kembali melakukan langkah 1.
d(16,9) = 5,1 km
16. Urutan rute yang diperoleh adalah
R = 0 → 19→ 2 → 𝟖 → 𝟐𝟓 → 𝟏𝟓 → 𝟐𝟒 → 𝟏𝟔 → 𝟗
17. Langkah 3 : karena semua titik telah dimasukkan ke dalam urutan rute R, maka
langkah terakhir yaitu menambahkan titik awal perjalanan ke dalam rute R
sehingga diperoleh urutan rute terakhir untuk cluster I yaitu
R = 0 → 19→ 2 → 𝟖 → 𝟐𝟓 → 𝟏𝟓 → 𝟐𝟒 → 𝟏𝟔 → 𝟗 → 𝟎
Hasil pembentukan rute beserta catatan waktu yang dihabiskan untuk
perjalanan pada rute I disajikan Tabel 3.2.
Table 3.2 Hasil Penentuan Rute I
Agen Waktu Kedatangan Waktu Keberangkatan
0 08.00
19 08.04 08.19
64 b. Pembentukan rute untuk cluster II
Langkah-langkah pembentukan rute untuk cluster II dengan menggunakan
algoritma Nearest Neighbour adalah sebagai berikut :
1. Langkah 0 : Inisialisasi
1.1 Menentukan titik yang akan menjadi titik awal perjalanan.
Titik awal perjalanan akan dimulai dari titik 0 yang merupakan depot
perusahaan.
1.2 Menentukan himpunan titik yang akan dikunjungi selanjutnya.
Himpunan titik yang akan dikunjungi pada cluster II adalah sebagai berikut:
𝐶 = {18, 7, 10, 17, 4, 13, 20, 23 }
1.3 Menentukan rute perjalanan saat ini ( R ).
R = 0, karena belum ada titik lain yang dikunjungi
8 08.41 08.56 25 09.03 09.18 15 09.20 09.35 24 09.37 09.52 16 09.57 10.12 9 10.18 10.33 0 10.56
65
2. Langkah 1 : Memilih titik yang selanjutnya akan dikunjungi yang memiliki
jarak paling minimal dengan titik yang berada di rutan terakhir dari rute R.
Berikut daftar jarak dari himpunan titik yang akan dikunjungi dari titik 0 :
d(0,18) = 6,2 km d(0,4) = 9,6 km
d(0,7) = 9,4 km d(0,13) = 6,5 km
d(0,10) = 9,3 km d(0,20) = 8,6 km
d(0,17) = 6,3 km d(0,23) = 17 km
Jarak yang terpilih adalah d(0,18) = 6,2 km
3. Langkah 2: menambahkan titik yang terpilih pada urutan rute saat ini dan
keluarkan dari daftar titik yang masih harus dikunjungi.
R = 0 → 18 dan diperoleh C yang baru yaitu
𝐶∗ = { 7, 10, 17, 4, 13, 20, 23}
4. Masih ada sejumlah titik yang harus dikunjungi maka kembali melakukan
langkah 1.
Berikut daftar jarak dari himpunan titik yang masih dikunjungi dari titik 18
d(18,7) = 3,1km d(18,4) = 3,9 km
d(18,10) = 3,6 km d(18,13) = 0,95 km
66 d(18,23) = 6,3 km
Jarak yang terpilih adalah d(18,17) = 0,9km
5. Urutan rute saat ini adalah R = 0 → 18→ 17 dan diperoleh 𝐶∗ yang baru yaitu
𝐶∗ = {7, 10, 4, 13, 20, 23 }
6. Masih ada sejumlah titik yang harus dikunjungi maka kembali melakukan
langkah 1.
Berikut daftar jarak dari himpunan titik yang masih dikunjungi dari titik 17
d(17,7) = 3,1 km d(17,4) = 4,8 km
d(17,10) = 3,9 km d(17,13) = 1,4 km
d(17,20) = 3 km d(17,23) = 5,9 km
Jarak yang terpilih adalah d(17,13) = 1,4 km
7. Urutan rute saat ini adalah R = 0 → 18→ 17 → 𝟏𝟑 dan diperoleh 𝐶∗ yang baru
yaitu
𝐶∗ = {7, 10, 4, 20, 23}
8. Masih ada sejumlah titik yang harus dikunjungi maka kembali melakukan
langkah 1.
67
d(13,7) = 3,1km d(13,20) = 4,5 km
d(13,10) = 3,9 km d(13,23) = 5,8 km
d(13,4) = 4,8 km
Jarak yang terpilih adalah d(13,7) = 3,1 km
9. Urutan rute saat ini adalah R = 0 → 18→ 17 → 𝟏𝟑 → 𝟕 dan diperoleh 𝐶∗ yang
baru yaitu
𝐶∗ = {10, 4, 20, 23 }
10. Masih ada sejumlah titik yang harus dikunjungi maka kembali melakukan
langkah 1.
Berikut daftar jarak dari himpunan titik yang masih dikunjungi dari titik 7
d(7,10) = 0,1 km d(7,20) = 1,8 km
d(7,4) = 0,85 km d(7,23) = 5,1 km
Jarak yang terpilih adalah d(7,10) = 0,1 km
11. Urutan rute saat ini adalah R = 0 → 18→ 17 → 𝟏𝟑 → 𝟕 → 𝟏𝟎 dan diperoleh
𝐶∗ yang baru yaitu
𝐶∗ = {4, 20, 23 }
12. Masih ada sejumlah titik yang harus dikunjungi maka kembali melakukan
68
Berikut daftar jarak dari himpunan titik yang masih dikunjungi dari titik 10
d(10,4) = 1,7 km d(10,23) = 5 km
d(10,20) = 1,3 km
Jarak yang terpilih adalah d(10,20) = 1,3 km
13. Urutan rute saat ini adalah R = 0 → 18→ 17→ 𝟏𝟑 → 𝟕 → 𝟏𝟎 → 𝟐𝟎 dan
diperoleh 𝐶∗ yang baru yaitu
𝐶∗ = {4, 23}
14. Masih ada sejumlah titik yang harus dikunjungi maka kembali melakukan
langkah 1.
Berikut daftar jarak dari himpunan titik yang masih dikunjungi dari titik 20
d(20,4) = 1,3 km d(20,23) = 2,9 km
Jarak yang terpilih adalah d(20,4) = 1,3 km
15. Urutan rute saat ini adalah R = 0 → 18→ 17 → 𝟏𝟑 → 𝟕 → 𝟏𝟎 → 𝟐𝟎 → 𝟒 dan
diperoleh 𝐶∗ yang baru yaitu
𝐶∗ = { 23}
Titik terakhir yang harus dikunjungi adalah titik 23.
16. Masih ada titik yang harus dikunjungi maka kembali melakukan langkah 1.
69 17. Urutan rute yang diperoleh adalah
R = 0 → 18→ 17 → 𝟏𝟑 → 𝟕 → 𝟏𝟎 → 𝟐𝟎 → 𝟒 → 𝟐𝟑
18. Langkah 3 : karena semua titik telah dimasukkan ke dalam urutan rute R, maka
langkah terakhir yaitu menambahkan titik awal perjalanan ke dalam rute R
sehingga diperoleh urutan rute terakhir untuk cluster II yaitu
R = 0 → 18→ 17 → 𝟏𝟑 → 𝟕 → 𝟏𝟎 → 𝟐𝟎 → 𝟒 → 𝟐𝟑 → 𝟎
Hasil pembentukan rute beserta catatan waktu yang dihabiskan untuk
perjalanan pada rute II disajikan Tabel 3.3.
Table 3.3 Hasil Penentuan Rute II
Agen Waktu Kedatangan Waktu Keberangkatan
0 08.00 18 08.08 08.23 17 08.24 08.39 13 08.41 08.56 7 09.01 09.16 10 09.17 09.32 20 09.34 09.49 4 09.51 10.06 23 10.10 10.25 0 10.45
70 c. Pembentukan rute untuk cluster III
Langkah-langkah pembentukan rute untuk cluster III dengan menggunakan
algoritma Nearest Neighbour adalah sebagai berikut :
1. Langkah 0 : Inisialisasi
1.1 Menentukan titik yang akan menjadi titik awal perjalanan.
Titik awal perjalanan akan dimulai dari titik 0 yang merupakan depot
perusahaan.
1.2 Menentukan himpunan titik yang akan dikunjungi selanjutnya
Himpunan titik yang akan dikunjungi pada cluster III adalah sebagai
berikut:
𝐶 = {21, 6, 22, 3, 5, 11, 14, 12, 1 }
1.3 Menentukan rute perjalanan saat ini ( R ).
R = 0, karena belum ada titik lain yang dikunjungi
2. Langkah 1 : Memilih titik yang selanjutnya akan dikunjungi yang memiliki
jarak paling minimal dengan titik yang berada di rutan terakhir dari rute R.
Berikut daftar jarak dari himpunan titik yang akan dikunjungi dari titik 0 :
d(0,21) = 18 km d(0,11) = 6 km
d(0,6) = 5,2 km d(0,14) = 3,2 km
71
3. Langkah 2: menambahkan titik yang terpilih pada urutan rute saat ini dan
keluarkan dari daftar titik yang masih harus dikunjungi.
R = 0 → 14 dan diperoleh C yang baru yaitu
𝐶∗ = { 21, 6, 22, 3, 5, 11, 12, 1}
4. Masih ada sejumlah titik yang harus dikunjungi maka kembali melakukan
langkah 1.
Berikut daftar jarak dari himpunan titik yang masih dikunjungi dari titik 14
d(14,21) = 20 km d(0,5) = 19 km
d(0,6) = 9,3 km d(0,11) = 8,6km
d(0,22) = 23 km d(0,12) = 5,9 km
d(0,3) = 17 km d(0,1) = 6,5 km
Jarak yang terpilih adalah d(0,12) = 5,9 km
5. Urutan rute saat ini adalah R = 0 → 14→ 12 dan diperoleh 𝐶∗ yang baru yaitu
𝐶∗ = {21, 6, 22, 3, 5, 11, 1 }
6. Masih ada sejumlah titik yang harus dikunjungi maka kembali melakukan
langkah 1.
d(0,3) = 21 km d(0,1) = 9,2 km
d(0,5) = 15 km
72
Berikut daftar jarak dari himpunan titik yang masih dikunjungi dari titik 12
d(12,21) =27 km d(12,5) = 25 km
d(12,6) = 15 km d(12,11) = 15 km
d(12,3) = 33 km d(12,1) = 5 km
d(12,22) = 29 km
Jarak yang terpilih adalah d(12,1) = 5 km
7. Urutan rute saat ini adalah R = 0 → 14→ 12 → 𝟏 dan diperoleh 𝐶∗ yang baru
yaitu
𝐶∗ = {21, 6, 22, 3, 5, 11}
8. Masih ada sejumlah titik yang harus dikunjungi maka kembali melakukan
langkah 1.
Berikut daftar jarak dari himpunan titik yang masih dikunjungi dari titik 1
d(1,21) = 26 km d(1,3) = 37 km
d(1,6) = 14 km d(1,5) = 23 km
d(1,22) = 28 km d(1,11) = 14 km
Jarak yang terpilih adalah d(1,11) = 14 km
9. Urutan rute saat ini adalah R = 0 → 𝟏𝟒 → 12 → 𝟏 → 𝟏𝟏 dan diperoleh 𝐶∗ yang
baru yaitu
73
10. Masih ada sejumlah titik yang harus dikunjungi maka kembali melakukan
langkah 1.
Berikut daftar jarak dari himpunan titik yang masih dikunjungi dari titik 11
d(11,21) = 13 km d(11,22) = 15 km
d(11,3) = 20 km d(11,5) = 9,1 km
d(11,6) = 6,8 km
Jarak yang terpilih adalah d(11,6) = 6,8 km
11. Urutan rute saat ini adalah R = 0 → 14→ 12 → 𝟏 → 𝟏𝟏 → 𝟔 dan diperoleh 𝐶∗
yang baru yaitu
𝐶∗ = {21, 22, 3, 5 }
12. Masih ada sejumlah titik yang harus dikunjungi maka kembali melakukan
langkah 1.
Berikut daftar jarak dari himpunan titik yang masih dikunjungi dari titik 6
d(6,22) = 12 km d(6,3) = 14 km
d(6,21) = 7,6 km d(6,5) = 8,9 km
Jarak yang terpilih adalah d(6,21) = 7,6 km
13. Urutan rute saat ini adalah R = 0 → 14→ 12 → 𝟏 → 𝟏𝟏 → 𝟔 → 𝟐𝟏 dan
diperoleh 𝐶∗ yang baru yaitu
74
14. Masih ada sejumlah titik yang harus dikunjungi maka kembali melakukan
langkah 1.
Berikut daftar jarak dari himpunan titik yang masih dikunjungi dari titik 21
d(21,5) = 7,7 km d(21,22) = 8,1 km
d(21,3) = 9,6 km
Jarak yang terpilih adalah d(21,5) = 7,7 km
15. Urutan rute saat ini adalah R = 0 → 14→ 12 → 𝟏 → 𝟏𝟏 → 𝟔 → 𝟐𝟏 → 𝟓 dan
diperoleh 𝐶∗ yang baru yaitu
𝐶∗ = { 22, 3}
16. Masih ada sejumlah titik yang harus dikunjungi maka kembali melakukan
langkah 1.
Berikut daftar jarak dari himpunan titik yang masih dikunjungi dari titik 5
d(5,22) = 5,5 km d(5,3) = 7,6 km
Jarak yang terpilih adalah d(5,22) = 7,7 km
17. Urutan rute saat ini adalah R = 0 → 14→ 12 → 𝟏 → 𝟏𝟏 → 𝟔 → 𝟐𝟏 → 𝟓 →
𝟐𝟐 dan diperoleh 𝐶∗ yang baru yaitu
𝐶∗ = {3}
75
18. Masih ada titik yang harus dikunjungi maka kembali melakukan langkah 1.
d(22,3) = 3,7 km
19. Urutan rute yang diperoleh adalah
R = 0 → 14→ 12 → 𝟏 → 𝟏𝟏 → 𝟔 → 𝟐𝟏 → 𝟓 → 𝟐𝟐 → 𝟑
20. Langkah 3 : karena semua titik telah dimasukkan ke dalam urutan rute R, maka
langkah terakhir yaitu menambahkan titik awal perjalanan ke dalam rute R
sehingga diperoleh urutan rute terakhir untuk cluster III yaitu
R = 0 → 14→ 12 → 𝟏 → 𝟏𝟏 → 𝟔 → 𝟐𝟏 → 𝟓 → 𝟐𝟐 → 𝟑 → 𝟎
Hasil pembentukan rute beserta catatan waktu yang dihabiskan untuk
perjalanan pada rute III disajikan Tabel 3.4.
Table 3.4 Hasil Penentuan Rute III
Agen Waktu Kedatangan Waktu Keberangkatan
0 08.00 14 08.04 08.19 12 08.26 08.41 1 08.47 09.02 11 09.19 09.34 6 09.42 09.57 21 10.06 10.21 5 10.30 10.45
76
3. Rute yang diperoleh menggunakan Algoritma Sweep
Berikut ini adalah hasil yang diperoleh menggunakan Algoritma Sweep.
Tabel 3.5 Rute Menggunakan Algoritma Sweep
Rute I Rute II Rute III Total 0- 19- 2- 8- 25- 15- 24- 16- 9- 0 0- 18- 17- 13- 7- 10- 20- 4- 23 0- 14- 12- 1- 11- 6- 21- 5- 22- 3- 0 Jarak 46,6 km 34,9 km 74,9 km 156,4 km Waktu 61 menit 45 menit 96 menit 202 menit
Rute yang terbentuk berdasarkan perhitungan menggunakan Algoritma
Sweep adalah sebagai berikut :
22 10.52 11.07
3 11.11 11.26
77 Rute I :
Gambar 3.6 Graf Pendistribusian Rute I
Depot → Jalan DI Panjaitan No. 54, Suryodiningratan → Jalan Pramuka No. 84
Giwangan → Jalan Ngeksigondo No. 7, Prenggan → Jalan Yogya-Solo KM 7,
Babarsari → Plaza Ambarukmo, Jalan Laksda Adisucipto → Jalan Raya
Seturan, Depok Sports Centre → Jalan Raya Solo KM 8, Maguwoharjo → Jalan
Ringroad Utara, Maguwoharjo, Depok → Depot.
Rute II :
78
Depot → Jalan Sultan Agung No. 10, wirogunan → Jalan Mayor Sutomo No.
29, Ngupasan → Jalan Madukismo, Ngupasan → Jalan Urip Sumoharjo No.
38A, Klitren, Gondokusuman → Jalan Urip Sumoharjo, Klitren,
Gondokusuman → Jalan C. Simanjutak No.70, Terban, Gondokusuman → Jalan
Colombo No.26, Caturtunggal, Depok → Jalan Kaliurang KM 6,2 No.51 →
Depot.
Rute III :
Gambar 3.8 Graf Pendistribusian Rute III
Depot → Jalan Bantul, Pendowoharjo, Sewon → Jalan Parangtritis Km 11,
Sabdodadi → Pacar, Sewon, Trimulyo → Jalan Raya Wates N0.256
Ambarketawang → Jalan HOS Cokroaminoto No.176 Tegalrejo → Jalan
Palagan Tentara Pelajar No.31, Ngaglik → Jalan Kebon Agung No.88,
Tlogoadi, Mlati → Triharjo, Sleman → Jalan Magelang Km 15,5, Kemloko,
79
C. Penyelesaian Model Capacitated Vehicle Routing Problem (CVRP)
Menggunakan Algoritma Genetika
Tujuan menyelesaikam CVRP adalah mencari jumlah jarak semua
kendaraan yang melakukan pendistribusian. CVRP dapat diselesaikan dengan
menggunakan algoritma genetik. Langkah-langkah penyelesaian CVRP dengan
algoritma genetik sebagai berikut
1. Penyandian Gen (Pengkodean)
Teknik penyandian adalah proses penyandian gen dari kromosom. Gen
merupakan bagian dari kromosom, satu gen biasanya akan mewakili satu variabel.
Pada penelitian ini gen merupakan representasi dari kantor agen yang merupakan
tempat awal pendistribusian dan agen pelanggan, dengan kata lain gen adalah titik
suatu graf. Gen Depot 0 Depot 1 Ruko Amanat 2 Pamela Swalayan 3 WS Medari (Sleman) 4 Tamara Swalayan 5 Janu putra 6 Superindo Jl Godean 7 Superindo Jl Solo
80
8 Superindo Perintis Kemerdekaan
9 Lotte mart
10 Toko Sinar
11 D’elingmas Swalayan 12 Mitra SMKN 1 Bantul
13 Bina Usaha Kopkar
14 Mega Swalayan (Bantul)
15 Carrefour Amplaz
16 Carrefour Maguwo
17 Progo
18 Superindo Sultan Agung
19 Maga Swalayan 20 Mirota Kampus 21 Mirota Palagan 22 Alexander Toserba 23 Superindo Jl Kaliurang 24 Superindo Seturan 25 Mirota Babarsari
81 2. Membangkitkan Populasi Awal (Spanning)
Membangkitkan populasi awal adalah membangkitkan sejumlah gen secara acak membentuk kesatuan individu. Pada CVRP populasi awal dimulai
dengan membangkitkan semua individu secara acak. Satu individu terdapat 25 gen
yang berisi gen dari 1 sampai 25 yang membentuk rute pendistribusian gula di
wilayah Yogyakarta. Adanya kendala kapasitas tiap kendaraan, maka saat
pembangkitkan individu disertai juga membangkitkan kapasitas tiap individu.
Membangkitkan kapasitas individu dilakukan dengan tujuan pembagian rute
berdasarkan kapasitas mobil . Dengan bantuan software Matlab, diambil beberapa
rute secara acak. Hasil pengambilan secara acak rute perjalanan yang membentuk
populasi pada generasi awal adalah sebagai berikut dan selengkapnya terdapat pada
lampiran 7 Individu 1 = 9 19 4 23 15 22 17 25 2 16 3 1 6 13 5 7 11 24 8 10 18 12 21 20 14 Permintaan = 1000 625 50 450 1000 1000 1500 250 1250 750 350 1050 625 1100 700 500 25 250 500 375 500 1100 750 1000 175
Selanjutnya individu dibagi menjadi 3 rute dengan syarat setiap mobil box
tidak boleh mendistribusikan gula lebih dari 6000 kg dan jumlah kendaraan
82
di depot. Depot direpresentasikan dengan gen bernomor 0 dan agen pelanggan
direpresentasikan dengan gen nomor 1 sampai dengan 25 seperti pada Tabel 3.7
Tabel 3.7 Pembagian Rute
Kendaraan Rute Permintaan
1 0 → 9 → 19 →4 → 23→ 15→ 22 → 17→ 25 → 0 5875 kg 2 0 →2 → 16 →3 →1 →6 → 13 → 5 →0 5825 kg 3 0 → 7 → 11 →24 → 8→ 10→ 18 → 12→ 21 → 20→ 14→ 0 5175 kg
3. Evaluasi Nilai Fitness (Fitness Value)
Setelah dilakukan pembangkitan populasi awal, langkah selanjutnya adalah
menentukan nilai fitness dari setiap individu. Nilai fitness digunakan untuk
menentukan rute terpendek. Setiap individu dihitung jarak totalnya, kemudian
dihitung nilai fitnessnya dengan menggunakan Rumus 2.13 pada bab sebelumnya.
Dengan bantuan software matlab ditentukan nilai fitness dari individu (prosedur
dan perhitungannya terdapat pada lampiran 6. Nilai fitness yang di dapat dari
83
Tabel 3.8 Hasil evaluasi nilai fitness generasi awal
Fitness Nilai Fitness Fitness Nilai Fitness
Fitness 1 0.0033 Fitness 11 0.0042 Fitness 2 0.0036 Fitness 12 0.0037 Fitness 3 0.0039 Fitness 13 0.0039 Fitness 4 0.0034 Fitness 14 0.0042 Fitness 5 0.0046 Fitness 15 0.0034 Fitness 6 0.0037 Fitness 16 0.0039 Fitness 7 0.0036 Fitness 17 0.0040 Fitness 8 0.0038 Fitness 18 0.0039 Fitness 9 0.0036 Fitness 19 0.0035 Fitness 10 0.0033 Fitness 20 0.0040
Setelah dihitung nilai fitness dari setiap individu dengan bantuan software
matlab, maka didapatkan nilai fitness terbaik dari populasi awal yaitu pada
individu ke-5 dengan nilai fitness sebesar 0,0046. Individu dengan nilai fitness
terbaik dari populasi generasi pertama akan dipertahankan dan dibawa ke
generasi selanjutnya. Langkah selanjutnya adalah melakukan seleksi untuk
menentukan individu sebagai induk.
4. Seleksi (Selection)
Tahap selanjutnya yaitu tahap seleksi, fungsi tahap seleksi adalah memilih
84
akan dilakukan proses pindah silang dengan individu lain yang terpilih. Metode
yang digunakan dalam proses seleksi ini adalah metode roulette wheel selection,
Metode ini dapat dianalogikan seperti permainan roda putar. Pada permainan roda
putar, lingkaran roda dibagi menjadi beberapa wilayah. Pada roulette wheel
selection, lebar suatu wilayah kromosom ditentukan menurut nilai fitnessnya,
semakin besar nilai fitnessnya maka akan semakin besar wilayahnya, dan semakin
besar pula peluang kromosom tersebut untuk dipilih. Dengan bantuan software
matlab didapatkan induk-induk yang terpilih pada lampiran 8 dan prosedur seleksi
terdapat pada lampiran 6. Berikut hasil individu yang terpilih sebagai induk.
Induk 1= Individu 18 20 15 5 23 22 6 3 2 7 18 14 12 25 10 24 1 11 13 4 16 21 8 19 9 17 Induk 2= Individu 12 12 1 21 6 13 3 23 5 20 9 18 15 25 22 4 10 8 17 14 24 19 16 7 2 11
5. Pindah Silang (Crossover)
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. Pindah silang ini
85
Setiap pasang induk menghasilkan sepasang anak agar proses seleksi pada
generasi selanjutnya mendapatkan jumlah populasi yang sama. Proses pindah
silang ditentukan oleh Pc (Probabilitas Crossover) dan nilai probabilitas pasangan
induk. Setiap pasang induk akan diberikan suatu bilangan acak [0,1] , jika
probabilitas pasangan induk kurang dari Pc maka dilakukan pindah silang dan
berlaku sebaliknya. Apabila tidak terjadi pindah silang maka anak untuk generasi
berikutnya adalah induk tersebut. Dengan bantuan software matlab didapatkan
keturunan yang selengkapnya bisa dilihat pada lampiran 9 dan prosedur crossover
terdapat pada lampiran 6. Berikut hasil pindah silang dengan bantuan software
matlab. 1) Induk 1 20 15 5 23 22 6 3 2 7 18 14 12 25 10 24 1 11 13 4 16 21 8 19 9 17 Induk 2 12 1 21 6 13 3 23 5 20 9 18 15 25 22 4 10 8 17 14 24 19 16 7 2 11 2) Anak 1 1 11 13 4 16 21 8 19 17 9 18 15 25 20 5 23 22 6 3 2 7 14 12 10 24
86 Anak 2
10 8 17 24 19 16 7 2 11 18 14 12 25 1 21 6
13 3 23 5 20 9 15 22 4
6. Mutasi
Setelah dilakukannya proses pindah silang, anak yang dihasilkan dari
proses tersebut selanjutnya akan diproses ke tahap mutasi. Skema mutasi yang
digunakan adalah swapping mutation. Untuk semua gen yang ada, jika bilangan
random yang dibangkitkan [0,1] kurang dari probabilitas mutasi yang ditentukan,
maka nilai gen tersebut akan ditukarkan dengan nilai gen lain yang dipilih secara
acak. 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 lama-kelamaan menuju solusi optimum yang
diinginkan. Berikut individu hasil mutasi yang diperoleh dengan bantuan software
Matlab dan selengkapnya terdapat pada lampiran 10:
1) Sebelum Dimutasi
Anak 1
1 11 13 4 16 21 8 19 17 9 18 15 25 20 5 23
87 Anak 2 10 8 17 24 19 16 7 2 11 18 14 12 25 1 21 6 13 3 23 5 20 9 15 22 4 2) Setelah Dimutasi Anak 1 2 11 13 4 16 21 9 19 15 8 20 17 25 18 5 23 22 6 3 1 7 14 12 10 24 Anak 2 10 8 17 24 19 16 7 2 11 18 14 12 25 1 21 6 13 3 23 5 20 9 15 22 4
7. Pembentukan Populasi Baru
Setelah langkah-langkah di atas dilakukan, maka dibentuk populasi
selanjutnya di generasi kedua. Individu terbaik dengan nilai fitness tertinggi pada
populasi awal dibawa ke populasi selanjutnya, proses ini dinamakan sebagai
elitism. Proses elitism bertujuan untuk menjaga agar individu bernilai fitness
tertinggi tersebut tidak hilang selama proses evolusi. Prosedur pembentukan
populasi selanjutnya terdapat dalam lampiran 6 dan hasil pembentukkan populasi
baru bisa dilihat pada lampiran 11 dengan bantuan software Matlab. Berikut
88
Individu 1 = 17 20 10 8 13 22 21 3 25 16 24 5 2 23
15 6 9 4 18 12 7 11 19 1 14
Setelah didapatkan generasi baru maka proses selanjutnya adalah mencari
nilai fitness generasi baru dengan bantuan software Matlab (hasil perhitungan
pada lampiran 12. Iterasi dilakukan hingga mendapatkan nilai fitness yang
optimum dan konvergen digenerasi tertentu. Algoritma genetika bersifat random
generator, sehingga setiap melakukan proses seleksi maka akan selalu
menghasilkan solusi yang berbeda. Dalam hal ini diperlukan beberapa kali
percobaan dalam mengaplikasikan algoritma genetika dengan software Matlab
agar didapatkan solusi yang optimum, yaitu dengan mencoba beberapa nilai
ukuran populasi dan jumlah generasi. Berikut tabel percobaan dengan
menggunakan beberapa nilai ukuran populasi dan jumlah generasi yang berbeda.
Tabel 3.9 Hasil Uji coba Menggunakan Software Matlab
Percobaan Ke- Ukuran Populasi Jumlah Generasi Nilai Fitness Total Jarak 1 15 100 0,0061 166,100 2 150 0,0057 176,400 3 200 0,0056 179,500 4 500 0,0061 165,000 5 1000 0,0068 146,550
89 6 20 100 0,0063 159,400 7 150 0,0062 162,300 8 200 0,0061 165,100 9 500 0,0068 146,900 10 1000 0,0080 123,650 11 25 100 0,0059 168,200 12 150 0,0060 167,700 13 200 0,0061 163,100 14 500 0,0063 159,850 15 1000 0,0071 141,000
Berdasarkan Tabel 3. dilakukan uji coba dengan beberapa ukuran populasi
random yaitu 15, 20 dan 25. Jumlah iterasi yang digunakan adalah 100, 150, 200,
500, 1000 dan parameter yang digunakan dibuat sama yaitu dengan crossover rate
0,8 dan mutation rate 0,05. Berdasarkan tabel ukuran populasi percobaan dengan 15
populasi menghasilkan nilai fitness terbaik yaitu sebesar 0,0068 pada iterasi ke-1000,
dengan ukuran 20 populasi nilai fitness yang dihasilkan sebesar 0,0080 pada iterasi
ke 1000, sedangkan dengan ukuran 25 populasi nilai fitness terbaik sebesar 0,0071
juga pada iterasi ke-1000. Dapat terlihat dari setiap percobaan semakin bertambah
ukuran populasi dan jumlah generasinya maka nilai fitness yang dihasilkan juga akan
semakin baik. Ukuran populasi dan jumlah generasi mempengaruhi kinerja dan
90
menyediakan cukup materi untuk mencakup ruang permasalahan, sehingga pada
umumnya kinerja algoritma genetika menjadi buruk. Penggunaan populasi yang
lebih besar dapat membuat kinerja algoritma genetika semakin baik dan dapat
mencegah terjadinya konvergensi pada wilayah lokal. Begitu juga dengan jumlah
generasi, jumlah generasi yang besar dapat mengarahkan ke arah solusi yang lebih
optimal, namun akan membutuhkan waktu running yang lama. Sedangkan jika
jumlah generasinya terlalu sedikit maka solusi yang dihasilkan akan terjebak dalam
lokal optimal.
Dapat disimpulkan bahwa yang menyebabkan hasil solusi optimal setiap
iterasi berubah karena dalam algoritma genetika, solusi optimal dapat dihasilkan
disetiap generasi yang dibentuk dari generasi sebelumnya sangat dipengaruhi oleh
populasi awal, seleksi, pindah silang dan mutasi. Maka disetiap proses generasi akan
selalu dihasilkan individu baru atau representasi solusi optimal dari permasalahan
yang dihadapi. Proses tersebut akan selalu berulang-ulang hingga didapatkan solusi
yang mendekati optimal. Solusi dikatakan mendekati optimal jika dalam proses
generasi didapatkan individu-individu yang memiliki nilai fitness terbaik.
Berdasarkan Tabel 3.9 pada percobaan ke-10 dengan ukuran populasi 20 dan
jumlah iterasi ke-1000 didapatkan nilai fitness sebesar 0,0080 yang artinya nilai
fitness yang didapatkan belum mencapai nilai fitness maksimum. Nilai fitness terbaik
hanya mencapai 0,0080. dengan total jarak tempuh 123,650 km. Berikut grafik
91
Gambar 3.9 Grafik Generasi Ke-1000
Kurva yang berada diatas merupakan nilai fitness pada generasi ke-1000. Dan
kurva yang berada dibawah merupakan nilai fitness rata-rata dari 1000 generasi.
Pergerakan nilai fitness akan semakin baik dan konstan dari generasi ke generasi dan
mencapai konvergen di generasi ke-850, untuk generasi setelah 850 sampai generasi
ke-1000 tetap didapatkan nilai fitness terbaik sebesar 0,0080, sehingga didapatkan
solusi optimal rute terpendek. Berikut rute yang dihasilkan pada percobaan ke-10
92
Tabel 3.10 Pembagian rute pada percobaan ke-10
Keterangan :
1) Rute kendaraan 1 (Total kapasitas 5750 kg dan Total Jarak Tempuh 52,95 km)
Depot - Jalan Raya Wates No.256 - Jl. Madukismo Ngupasan - Jl. Sultan Agung
No.10 Wirogunan Mergangsan - Jl. Mayor Suryotomo No.29 Ngupasan - Jl.
HOS Cokroaminoto No.176 Tegalrejo – Jl Raya Seturan Kav.IV Depok Sports
Centre – Jl Ringroad Utara Maguwoharjo – Jl Raya Solo Km 8 No.234
Maguwoharjo – Depot.
Kendaraan Rute Permintaan Jarak Tempuh
1 0 11 13 18 17 6 24 9 16 0 5750 52,95 2 0 25 5 3 22 21 23 4 20 7 10 0 5425 56,40 3 0 15 2 8 19 1 12 14 0 5700 38,6
93
Gambar 3.10 Graf Pendistribusian Rute I
Selanjutnya dari rute yang telah diperoleh, dihitung catatan waktu yang
dihabiskan selama pendistribusian pada rute 1 dan setiap agen dilayani selama 15
menit.
Tabel 3.11 Lama waktu pendistribusian pada rute 1
Agen Waktu Kedatangan Waktu Keberangkatan
0 08.00 11 08.07 08.22 13 08.29 08.44 18 08.45 09.00 17 09.01 09.16 6 09.22 09.37
94
2) Rute kendaraan 2 (Total kapasitas 5425 kg dan Total Jarak Tempuh 56,40 km)
Depot– Jl Yogya Solo KM 7 Babarsari – Jl Kebon Agung No 88 Tlogodadi –
Jl Magelang Km 15,5 Kemloko – Triharjo Sleman – Jalan Palagan Tentara
pelajar No 31 – Jl Kaliurang Km 6,2 No 51 – Jl Colombo No.26 – Jl C.
Simanjutak No.70 Terban – Jl Urip Sumoharjo No.38A Klitren - Jl Urip
Sumoharjo Klitren – Depot.
Gambar 3.11 Graf Pendistribusian Rute II
24 09.47 10.02
9 10.09 10.24
16 10.30 10.45
95
Selanjutnya dari rute yang telah diperoleh, dihitung catatan waktu yang
dihabiskan selama pendistribusian pada rute 2 dan setiap agen dilayani selama 15
menit.
Tabel 3.12 Lama waktu pendistribusian pada rute 2 Agen Waktu Kedatangan Waktu Keberangkatan
0 08.00 25 08.18 08.33 5 08.50 09.15 3 09.24 09.39 22 09.43 09.58 21 10.08 10.23 23 10.28 10.43 4 10.47 11.02 20 11.04 11.19 7 11.21 11.36 10 11.37 11.52 0 12.03
96
3) Rute kendaraan 3 (Total kapasitas 5700 kg dan Total Jarak Tempuh 38,06 km)
Depot– Plaza Ambarukmo LG – Jl Pramuka No.84 Giwangan – Jl Ngeksigondo
No.7 Prenggan – Jl Panjaitan No.54 Suryodiningratan – Pacar Sewon Trimulyo
– Jl Parangtritis Km 11 Sabdodadi – Jl Bantul Pendowoharjo – Depot.
Gambar 3.12 Graf Pendistribusian Rute III
Selanjutnya dari rute yang telah diperoleh, dihitung catatan waktu yang
dihabiskan selama pendistribusian pada rute 2 dan setiap agen dilayani selama 15
97
Tabel 3.13 Lama waktu pendistribusian pada rute 3
D. Perbandingan Rute yang diperoleh menggunakan Algoritma Sweep dengan
Algoritma Genetika
Perbandingan rute yang diperoleh dengan menggunakan Algoritma Sweep
dan Algoritma Genetika ditunjukkan pada Tabel 3.14.
Agen Waktu Kedatangan Waktu Keberangkatan
0 08.00 15 08.19 08.34 2 08.41 08.56 8 08.58 09.13 19 09.20 09.35 1 09.45 10.00 12 10.06 10.21 14 10.28 10.43 0 10.47
98
Tabel 3.14 Perbandingan Rute yang diperoleh dengan Menggunakan Algoritma Sweep dan Algoritma Genetika
Rute dengan Menggnakan Algoritma Sweep
Rute 1 Rute 2 Rute 3 Total
0 – 19 – 2 – 8 – 25 – 15 – 24 – 16 – 9 – 0 0 – 18 – 17 -13 – 7 – 10 – 20 – 4 – 23 - 0 0 – 14 – 12 – 1 – 11 – 6 – 21 – 5 – 22 – 3 - 0 Jarak Tempuh 46,6 km 34,9 km 74,9 km 156,4 km Waktu Tempuh
61 menit 45 menit 96 menit 202 menit
Rute dengan Menggnakan Algoritma Genetika
Rute 1 Rute 2 Rute 3 Total
0 – 11 – 13 – 18 -17 – 6 – 24 – 9 – 16 - 0 0 – 25 – 5 – 3 – 22 – 21 – 23 – 4 – 20 – 7 – 10 - 0 0 – 15 – 2 – 8 – 19 – 1 – 12 – 14 - 0 Jarak Tempuh 52,95 km 56,40 km 38,6 km 147,95 km Waktu Tempuh
45 menit 72 km 58 menit 175 menit
Pada Tabel 3.14 secara keseluruhan, algoritma genetika menghasilkan total
99
Algoritma Sweep. Algoritma genetika menghasilkan total jarak tempuh 147,95 km
dan waktu tempuh 175 menit. Algoritma sweep menghasilkan total jarak tempuh
156,4 km dan waktu tempuh 202 menit. Dengan demikian dapat dikatakan bahwa
solusi yang dihasilkan algoritma genetika lebih baik dalam segi jarak maupun waktu
jika dibandingkan algoritma dalam menyelesaikan Capacitated Vehicle Routing