PENERAPAN ALGORITMA GENETIKA DAN ALGORITMA SWEEP PADA PENYELESAIAN CAPACITATED VEHICLE ROUTING PROBLEM (CVRP) UNTUK OPTIMASI PENDISTRIBUSIAN GULA.

(1)

BAB I PENDAHULUAN

A. Latar Belakang

Distribusi merupakan proses penyaluran produk dari produsen sampai ke tangan masyarakat atau konsumen. Kemudahan konsumen dalam mendapatkan produk yang diinginkan menjadi prioritas utama dari setiap perusahaan untuk memuaskan pelanggannya. Dalam sistem distribusi, rute yang dipilih merupakan elemen terpenting dalam menentukan jarak yang harus ditempuh dan biaya yang harus dikeluarkan. Jika rute yang dipilih optimal, maka sistem distribusi menjadi lebih efektif dan efisien karena akan melewati rute yang minimal jaraknya, sehingga elemen-elemen yang melibatkan jarak menjadi minimal pula, seperti biaya transportasi, waktu tempuh, tingkat polusi yang dihasilkan, dan energi yang dikeluarkan.

Transportasi memegang peranan penting dalam masalah pendistribusian, karena harus menjamin mobilitas produk dengan berbagai kendala seperti pengiriman harus tepat waktu tanpa mengabaikan biaya distribusi agar tidak membengkak. Biaya distribusi dipengaruhi oleh beberapa hal seperti rute yang dipilih dalam pengiriman dan kapasitas angkut kendaraan. Permasalahan dalam penentuan rute, termasuk dalam vehicle routing problem (VRP) yaitu permasalahan penentuan rute kendaraan untuk melayani beberapa pelanggan.


(2)

Bentuk dasar VRP secara umum berkaitan dengan masalah penentuan suatu rute kendaraan (vehicle) yang melayani suatu pelanggan yang diasosiasikan dengan node dengan demand atau permintaan yang diketahui dan rute yang menghubungkan depot dengan pelanggan, dan antar pelanggan yang lainnya (Toth & Vigo, 2002).

VRP sering digunakan dalam penyelesaian berbagai masalah, seperti masalah pengiriman barang. Beberapa jenis permasalahan utama pada VRP menurut Toth dan Vigo (2002) yaitu capacitated vehicle routing problem (CVRP), vehicle routing problem with pick up and delivery (VRPPD), distance constrained vehicle routing problem (DCVRP), vehicle routing problem with multiple depot (MDVRP), split delivery vehicle routing problem (SDVRP), dan vehicle routing problem with time windows (VRPTW).

Permasalahan dalam jumlah permintaan pelanggan yang disesuaikan dengan kapasitas kendaraan dapat diselesaikan menggunakan Capacitated Vehicle Routing Problem (CVRP), dalam masalah ini setiap kendaraan mempunyai kapasitas yang terbatas. Setiap kendaraan melakukan pendistribusian sebanyak satu kali pengiriman yaitu dari depot ke setiap wilayah pelayanan lalu kembali ke depot, sehinga suatu sistem pelayanan pada penentuan rute distribusi menjadi lebih efektif dan efisien sehingga bisa meningkatkan kemampuan perusahaan untuk dapat memenuhi permintaan produk secara lebih cepat agar kepercayaan dan kepuasan konsumen meningkat.


(3)

Banyaknya aplikasi dari CVRP yang sesuai dengan permasalahan di dunia nyata mengakibatkan CVRP menjadi salah satu bidang ilmu yang banyak diteliti. Penelitian-penelitian untuk menyelesaikan CVRP tersebut dilakukan dengan metode-metode yang berbeda. Salah satunya adalah metode heuristik. Metode heuristik merupakan metode yang tidak mengeksplorasi solusi dan solusi yang didapatkan kualitasnya cukup baik dengan waktu perhitungan yang singkat. Beberapa metode heuristik yang dapat digunakan antara lain saving algorithm dan sweep algorithm. Penyelesaian CVRP juga dapat dilakukan dengan metode metaheuristik. Metode metaheuristik merupakan prosedur pencarian solusi umum untuk melakukan eksplorasi yang lebih dalam pada daerah yang menjanjikan dari ruang solusi yang ada (Dreo, Petrowsky, dan Taillard, 2006). Kelebihan metode metaheuristik dibanding metode heuristik adalah kemampuannya untuk menghasilkan solusi mendekati optimal (rear-optimum) dalam waktu singkat. Beberapa metode metaheuristik yang dapat digunakan antara lain adalah variable neighborhood search, greedy randomized adaptive search procedure, stochastic local search, iterated local search, particle swarm optimization, scatter search, differential evolution, ant colony system, simulated annealing, tabu search, dan genetic algorithm (Utomo dkk, 2015).

Penyelesaian CVRP dalam penelitian ini menggunakan metode heuristik dan metode metaheuristik. Metode heuristik pada penelitian ini menggunakan algoritma sweep. Algoritma sweep dipilih karena algoritma sweep menghasilkan solusi yang sesuai dengan keadaan nyata di lapangan untuk masalah optimasi


(4)

pendistribusian gula. Metode metaheuristik yang digunakan adalah algoritma genetika. Algoritma genetika merupakan suatu prosedur penelusuran yang berdasarkan pada mekanisme dari natural selection dan natural genetics yang dapat digunakan untuk memecahkan combinatorial optimization problems yang sulit. Algoritma genetika diperkenalkan oleh John Holland dan para peneliti dari University of Michigan pada tahun 1960. Algoritma genetika dipilih karena algoritma genetika tidak mempunyai kriteria khusus yang dijumpai pada algoritma metaheuristik lainnya dalam menyaring kualitas solusi, oleh karena itu waktu komputasi juga relatif lebih singkat, serta dapat menghasilkan beberapa alternatif solusi yang mempunyai nilai obyektif yang sama.

Beberapa penelitian yang menggunakan metode Algoritma Genetika telah banyak dilakukan, sebagai contoh adalah penelitian yang dilakukan Adam Arif (2015) yaitu untuk menyelesaikan masalah optimasi pengiriman aqua galon di Yogyakarta. Penelitian tersebut, Algoritma Genetika diselesaikan dengan menggunakan metode seleksi berupa Rank Selection, pindah silang menggunakan Order Crossover, dan tahap mutasi menggunakan Swapping Mutation. Penelitian Algoritma Sweep untuk penyelesaian CVRP juga telah dilakukan sebelumnya oleh Wahyu Kartika (2015). Pada penelitian tersebut CVRP diselesaikan dengan menggunakan algoritma sweep yang sangat sederhana dalam perhitungannya yaitu dengan melakukan tahap clustering (pengelompokan) kemudian menentukan urutan rute dari setiap kelompok yang telah diperoleh dari tahap


(5)

Penyelesaian CVRP pada penelitian ini menggunakan data primer yang diambil dari studi kasus di salah satu Pabrik Gula yang berada di Yogyakarta. Data yang diambil adalah data pendistribusian selama satu hari yang terdiri dari 25 toko yang berada di Yogyakarta. Penelitian ini akan membahas mengenai pemilihan rute optimum untuk masalah pendistribusian gula di Kota Yogyakarta, karena selama ini perusahaan belum mempunyai rute yang tetap untuk pendistribusian gula. Pendistribusian yang selama ini dilakukan hanya berdasarkan perkiraan saja tanpa mengetahui rute yang dipilih minimal atau belum. Pada penelitian ini akan dibentuk rute optimum pendistribusian gula supaya pendistribusian gula tidak mengalami keterlambatan dalam pengiriman dan juga jarak tempuh yang dihasilkan tidak terlalu jauh. Permasalahan pendistribusian gula dapat dimodelkan dengan Capacitated Vehicle Routing Problem (CVRP), kemudian model tersebut akan diselesaikan dengan menggunakan algoritma genetika dan algoritma sweep.

B. Batasan Masalah

Berdasarkan latar belakang masalah di atas, pembatasan masalah dalam penelitian ini hanya dibatasi pada pemilihan rute optimum pendistribusian gula di 25 toko yang berada di Kota Yogyakarta . Pemilihan rute optimum juga dibatasi menggunakan Algoritma Genetika dengan metode seleksi yaitu Roulette Whell Selection. Proses pindah silang yang digunakan dalam penelitian ini yaitu order crossover dan mutasi yang dipilih adalah swapping mutation.


(6)

C. Rumusan Masalah

Berdasarkan latar belakang tersebut, maka rumusan dalam skripsi ini adalah : 1. Bagaimana model CVRP untuk pendistribusian gula khususnya di wilayah

Yogyakarta?

2. Bagaimana menyelesaikan masalah CVRP menggunakan algoritma genetika? 3. Bagaimana menyelesaikan masalah CVRP menggunakan algoritma Sweep?

D. Tujuan Penelitian

Adapun tujuan dalam penulisan skripsi ini adalah :

1. Membentuk model CVRP untuk pendistribusian gula khususnya di wilayah Yogyakarta.

2. Dapat menyelesaikan masalah CVRP menggunakan algoritma genetika. 3. Dapat menyelesaikan masalah CVRP menggunakan algoritma sweep.

E. Manfaat Penelitian

Manfaat dari penulisan skripsi ini adalah : 1. Bagi perusahaan

Membantu perusahaan dalam menentukan rute pendistribusian yang efektif dengan batasan kapasitas kendaraan yang ditentukan sehingga dapat meminimumkan biaya distribusi.


(7)

2. Bagi pembaca

Menambah pengetahuan tentang Capacitated Vehicle Routing Problem (CVRP), algoritma genetika, dan algoritma sweep sebagai salah satu metode penyelesaian dalam pendistribusian suatu produk.

3. Bagi penulis

Menambah wawasan dan pemahaman tentang Capacitated Vehicle Routing Problem (CVRP) dan juga mampu menerapkan algoritma genetika dan algoritma sweep sebagai salah satu metode penyelesaian dalam pendistribusian suatu produk.


(8)

BAB II KAJIAN TEORI

Secara umum, pada bab ini membahas mengenai kajian teori yang digunakan dalam penelitian yaitu optimasi, graf, traveling salesman problem (TSP), vehicle routing problem (VRP), capacitated vehicle routing problem (CVRP), metode penyelesaian CVRP, algoritma sweep, algoritma genetika, dan penelitian yang relevan.

A. Masalah Optimasi

Brogan (1991 : 501) menyatakan bahwa optimasi ialah proses untuk mencapai hasil yang ideal atau optimal (nilai efektif yang dicapai). Optimasi secara intuisi berarti melakukan pekerjaan dengan cara terbaik. Sedangkan menurut Licker (2013 : 170), optimasi berasal dari kata bahasa Inggris optimization memiliki arti memaksimumkan atau meminimumkan sebuah fungsi yang diberikan untuk beberapa macam kendala.

Masalah optimasi digunakan untuk meyelesaikan permasalahan guna mencapai nilai minimal atau maksimal dari suatu fungsi nyata. Banyak masalah dalam dunia nyata yang dapat direpresentasikan dalam kerangka permasalahan ini, misal pendapatan yang maksimum, biaya yang minimum dan lain sebagainya. Apabila ada hal yang dioptimumkan ternyata kuantitatif, maka masalah optimum akan menjadi masalah maksimum dan minimum (Susanta, 1991). Hasil dari


(9)

Persoalan yang berkaitan dengan optimasi sangat kompleks dalam kehidupan sehari-hari. Nilai optimal yang didapatkan dalam optimasi dapat berupa besaran panjang, waktu, dan lain-lain. Optimasi mempunyai beberapa persoalan diantaranya :

1. Menentukan lintasan terpendek dari suatu tempat ke tempat lain.

2. Menentukan jumlah pekerja seminimal mungkin untuk melakukan suatu proses produksi agar pengeluaran biaya pekerja dapat diminimalkan dan hasil produksi tetap maksimal.

3. Mengatur jalur kendaraan umum agar semua lokasi dapat dijangkau.

Pada penulisan skripsi ini, optimasi yang ingin dicapai adalah optimasi rute. Optimasi rute adalah pencarian rute yang paling optimal (rute terpendek) dengan mempertimbangkan kapasitas kendaraan.

B. Graf

1. Definisi Graf

Graf G didefinisikan sebagai pasangan himpunan (V, E), ditulis dengan notasi G = (V, E). Dalam hal ini, V merupakan himpunan tidak kosong dari simpul-simpul (vertices atau node) digambarkan dalam titik-titik, dan E adalah himpunan sisi-sisi (edges atau arcs) digambarkan dalam garis-garis yang menghubungkan sepasang simpul (Munir, 2009). Dapat dikatakan graf adalah kumpulan dari simpul-simpul yang dihubungkan oleh sisi-sisi.


(10)

2. Jenis-jenis Graf

Graf dapat dikelompokkan beberapa kategori (jenis) bergantung pada sudut pandang pengelompokkannya. Pengelompokkan graf dapat dipandang berdasarkan ada tidaknya sisi ganda atau sisi gelang (loop), berdasarkan jumlah simpul atau berdasarkan orientasi arahpada sisi (Munir, 2009).

1) Jenis graf berdasarkan ada tidaknya gelang dan rusuk ganda

Berdasarkan ada tidaknya gelang dan rusuk ganda graf dapat dibedakan menjadi 2 jenis yaitu graf sederhana dan tidak sederhana. Dalam sebuah graf ada kemungkinan dijumpai dua rusuk atau lebih yang menghubungkan dua simpul yang sama. Rusuk seperti ini disebut rusuk ganda. Ada pula rusuk yang menghubungkan simpul tertentu dengan dirinya sendiri yang disebut gelang (Loop).Berdasar ada tidaknya gelang atau rusuk ganda, graf dapat dibedakan menjadi 2 jenis.

a. Graf Sederhana

Graf sederhana adalah graf yang tidak memuat rusuk ganda dan gelang. Beberapa graf sederhana dapat ditunjukkan sebagai berikut :

i. Graf nol adalah graf yang tidak memiliki rusuk atau himpunan rusuknya merupakan himpunan kosong. Gambar 2.1 menunjukkan graf nol dengan 2 buah simpul.


(11)

ii. Graf lengkap adalah graf sederhana yang setiap pasang simpulnya saling berikatan. Notasi graf lengkap n simpul adalah � .

Gambar 2.2 Graf Lengkap

iii. Graf Bipartit adalah graf sederhana yang himpunan simpulnya dapat dipartisi menjadi 2 bagian, misal � dan � sehingga setiap rusuknya mempunyai titik ujung di � dan titik ujung yang lain di � .

Gambar 2.3 Graf Bipartit b. Graf Tidak Sederhana

Graf tidak sederahana adalah graf yang memiliki gelang atau rusuk ganda.


(12)

2) Jenis Graf Berdasarkan Keteraturan Derajat Simpulnya

Berdasarkan keteraturan derajat dari simpulnya graf dapat dibedakan menjadi 2 jenis yaitu :

a. Graf Teratur

Graf teratur adalah graf yang setiap simpulnya berderajat sama.

Gambar 2.5. Graf Teratur

b. Graf Tidak Teratur

Graf tidak teratur adalah graf yang setiap simpulnya tidak mempunyai derajat yang sama.

V1 V2

V3 V4

Gambar 2.6 Graf Tidak Teratur

3) Jenis Graf Berdasarkan Orientasi Arah pada Sisi a. Graf tak-berarah

Graf yang sisinya tidak mempunyai orientasi arah disebut graf tak-berarah. Pada graf tak-berarah, urutan pasangan simpul yang dihubungkan oleh sisi tidak diperhatikan. jadi (u,v) = (v,u) adalah sisi yang sama.


(13)

b. Graf Berarah

Graf yang setiap sisinya diberikan orientasi arah disebut sebagai graf berarah. Sisi berarah dapat dinyatakan dengan sebutan busur (arc). Pada graf berarah, (u,v) dan (v,u) menyatakan dua buah busur yang berbeda, dengan kata lain (u,v) ≠ (v,u). Untuk busur (u,v), simpul u dinamakan simpul asal (initial vertex) dan simpul v dinamakan simpul terminal (terminal vertex) (Munir, 2009). 4) Graf Berbobot

Graf berbobot adalah graf yang setiap sisinya diberi sebuah harga (bobot). Bobot pada tiap sisi dapat berbeda-beda bergantung pada masalah yang dimodelkan dengan graf. Bobot dapat menyatakan jarak antara dua buah kota, biaya perjalanan dua buah kota, waktu tempuh pesan (message) dari sebuah simpul komunikasi ke simpul komunikasi lain, ongkos produksi, dan sebagainya (Munir, 2009).

3. Keterhubungan

Suatu graf G dikatakan terhubung (connected) jika untuk setiap dua simpul u dan v di G, terdapat lintasan yang menghubungkan simpul itu, sebaliknya graf dikatakan tidak terhubung (disconnected) jika tidak ada lintasan yang menghubungkannya. Jika suatu graf tidak terhubung maka graf G akan terdiri dari beberapa subgraf yang disebut komponen graf. Banyaknya komponen graf G dinotasikan dengan � � . Graf terhubung mempunyai satu komponen dan graf tidak terhubung mempunyai lebih dari satu komponen (Mardiyono, 1996 : 44). Misalnya ditunjukan pada Gambar 2.7: (Munir, 2009:371).


(14)

Gambar 2.7 Simpul Terhubung dari Graf N

a. Jalan (Walk)

Sebuah perjalanan dengan panjang k pada sebuah graf G adalah rangkaian terurut dari k rusuk pada graf G dengan bentuk :

uv, vw, wx,…,yz ;

walk tersebut dinyatakan dengan uv, vw, wx,…,yz atau dengan kata lain walk antara u sampai z (Robin J. Wilson & John M. Aldous, 1990 : 34). Contoh walk pada graf N adalah ( � ,� , � , � , � ,,,).

b. Jejak ( Trail)

Jejak adalah walk dengan semua rusuk dalam barisan adalah berbeda (Munir, 2009 :370). Contoh trail pada graf N adalah � , � , � ,� , � , � .

c. Lintasan (Path)

Jika seluruh rusuk (tidak harus seluruh simpul) pada sebuah trayek berbeda, maka trayek tersebut disebut jejak (trail). Sedangkan jika simpul-simpulnya berbeda jejak tersebut disebut lintasan (Robin J. Wilson & John M. Aldous, 1990 : 35). Contoh lintasan pada Graf N adalah � , � , � ,� , � .

� � �


(15)

d. Sikel

Trayek tertutup pada Graf G adalah sebuah rangkaian terurut rusuk-rusuk G dalam bentuk :

Kl,lm,mn,…,pq,qk;

Jika seluruh rusuknya berbeda, maka trayek tersebut disebut trail tertutup. Jika rusuk k,l,m,n,..,p,q seluruhnya berbeda, maka trail tersebut disebut sikel (Robin J. Wilson & John M. Aldous, 1990 : 35). Contoh sikel pada Graf N adalah

� , � , � , � , � , � .

e. Sirkuit dan Lintasan Hamilton

i. Sirkuit Hamilton ialah sirkuit yang melalui tiap simpul di dalam graf tepat satu kali, kecuali simpul asal (sekaligus simpul akhir) yang dilalui dua kali.

ii. Lintasan Hamilton ialah lintasan yang melalui tiap simpul di dalam graf tepat satu kali.

Contoh Sirkuit dan Lintasan Hamilton ditunjukkan pada Gambar 2.8 :


(16)

C. Travelling Salesman Problem (TSP)

1. Pengertian Travelling Salesman problem (TSP)

Travelling Salesman Problem (TSP) dikemukakan pada tahun 1800 oleh matematikawan Irlandia, Willian Rowan Hamilton dan matematikawan Inggris, Thomas Penyngton. TSP dikenal sebagai suatu permasalahan optimasi yang bersifat klasik dimana tidak ada penyelesaian yang ada. Permasalahan ini melibatkan seorang salesman yang harus melakukan kunjungan sekali pada semua kota dalam sebuah rute sebelum salesman kembali ke titik awal (depot), sehingga perjalanannya dikatakan sempurna ( Era Madonna dkk, 2013).

Agus dan Wayan (2010) dalam jurnalnya menjelaskan bahwa penentuan rute perjalanan merupakan salah satu permasalahan yang sering dihadapi dalam kehidupan sehari-hari. Salah satu contoh yaitu rute manakah yang memiliki biaya paling murah untuk dilalui seorang salesman ketika harus mengunjungi sejumlah titik. Setiap titik tersebut harus dikunjungi tepat satu kali kemudian kembali lagi ke titik semula. Permasalahan tersebut dikenal sebagai Travelling Salesman Problem (TSP). Secara matematis TSP dapat diformulasikan sebagai berikut : Didefinisikan :

Xij = { , jika ada perjalanan � � dari titik i menuju titik j

, jika tidak ada perjalanan � � dari titik i menuju titik j

Cij merupakan jarak dari titik i menuju titik j


(17)

Dengan kendala

∑= = , untuk j=1,2,3,...,n-1 (2.2)

= = , untuk i=1,2,3,..,n-1 (2.3)

2. Penyelesaian Travelling Salesman Problem (TSP)

Permasalahan TSP dapat diselesaikan dengan beberapa cara, tergantung dengan sistem permasalahan yang dihadapi. Adapun metode atau cara yang dapat dilakukan untuk menyelesaikan berbagai macam permasalahan TSP yaitu Djikstra, Nearest Neighbour, Insertion. Pada penulisan skripsi ini akan digunakan metode Nearest Neighbour untuk menyelesaikan permasalahan distribusi gula di salah satu pabrik gula yang berada di Yogyakarta. Menurut Era Madonna dkk (2013), pada metode Nearest Neighbour ini, pemilihan rute akan dimulai pada rute yang memiliki nilai jarak paling minimum setiap melalui agen, kemudian akan memilih agen selanjutnya yang belum dikunjungi dan memiliki jarak yang paling minimum.

Metode Nearest Neighbour merupakan metode paling sederhana untuk menyelesaikan masalah Travelling Salesman Problem. Pertama, memilih salah satu titik yang mewakili suatu titik awal. Selanjutnya, memilih titik tujuan yang memiliki jarak terdekat dengan titik yang sebelumnya dikunjungi. Setelah seluruh titik dikunjungi atau seluruh titik telah terhubung, maka tutup rute perjalanan dengan kembali ke titik asal. Berikut ini merupakan langkah-langkah yang harus


(18)

dilakukan dalam pengerjaan pembentukan rute dengan menggunakan metode Nearest Neighbour (Era Madonna, 2013):

1. Langkah 0 : Inisialisasi

1.1menentukan satu titik yang akan menjadi titik awal (depot) perjalanan. 1.2menentukan C={1,2,3,4,...,n} sebagai himpunan titik yang akan

dikunjungi.

1.3menentukan urutan rute perjalanan saat ini(sementara)(R). 2. Langkah 1 : memilih titik yang selanjutnya akan dikunjungi

Jika n1 adalah titik yang berada di urutan terakhir dari rute R maka akan ditemukan titik berikutnya n2 yang memiliki jarak paling minimum dengan n1 , dimana n2 merupakan anggota dari C. Apabila terdapat banyak pilihan optimal artinya terdapat lebih dari satu titik yang memiliki jarak yang sama dari titik terakhir dalam rute R dan jarak tersebut merupakan jarak yang paling minimum maka pilih secara acak.

3. Langkah 2 : menambah titik yang terpilih pada langkah 1 pada urutan rute berikutnya. Menambahkan titik n2 di urutan terakhir dari rute sementara dan mengeluarkan yang terpilih tersebut dari daftar titik yang belum dikunjungi. 4. Langkah 3 : jika semua titik yang harus dikunjungi telah dimasukkan dalam

rute atau C=∅, maka tidak ada lagi titik yang ada di C. Selanjutnya, menutup rute dengan menambahkan titik inisialisasi atau titik awal perjalanan diakhir


(19)

rute. Dengan kata lain, rute ditutup dengan kembali lagi ke titik asal. Jika sebaliknya, kembali melakukan langkah 1.

Metode Nearest Neeighbour digunakan pada penulisan skripsi ini dikarenakan metode ini merupakan salah satu metode yang memiliki karakteristik pembentukan rute distribusi sesuai dengan keadaan nyata yang terdapat pada kondisi di lapangan, serta alasan penggunaan metode ini dikarenakan teknik penentuan rute yang diterapkan pada metode ini lebih mudah dilakukan dibandingkan dengan metode TSP yang lain dan metode Nearest Neighbour ini merupakan metode yang dapat dijadikan sebagi dasar dalam pembuatan rute distribusi dengan menggunakan metode yang lainnya.

D. Vehicle Routing Problem (VRP)

Yeun dkk (2008) mendefinisikan VRP sebagai masalah penentuan rute optimal kendaraan dalam pendistribusian barang atau jasa dari satu atau lebih depot ke sejumlah agen di lokasi yang berbeda dengan permintaan yang telah diketahui dan memenuhi sejumlah kendala. VRP pertama kali dipelajari oleh Dantzig dan Ramser pada tahun 1959 dalam bentuk rute dan penjadwalan truk. Solusi dari sebuah VRP yaitu sejumlah rute pengiriman kebutuhan agen dimana kendaraan berangkat dari depot lalu menuju agen dan kembali lagi ke depot (Indra dkk, 2014).


(20)

Menurut Toth dan Vigo (2002) terdapat empat tujuan umum dari VRP adalah sebagai berikut :

1. Meminimumkan biaya transportasi, terkait dengan jarak dan biaya tetap yang berhubungan dengan kendaraan.

2. Meminimumkan jumlah kendaraan yang dibutuhkan untuk melayani setiap agen.

3. Menyeimbangkan rute, untuk waktu perjalanan dan muatan kendaraan. 4. Meminimumkan penalti akibat pelayanan yang kurang memuaskan dari

agen.

Menurut Indra dkk (2014) VRP terbagi menjadi beberapa jenis, antara lain :

1. Capacitated VRP (CVRP), yaitu setiap kendaraan mempunyai kapasitas yang terbatas.

2. VRP with time windows (VRPTW), yaitu setiap pelanggan harus disuplai dalam jangka waktu tertentu.

3. Multiple Depot VRP (MDVRP), yaitu distributor memiliki banyak depot untuk menyuplai pelanggan.

4. VRP with pick-up and delivering (VRPPD), yaitu pelanggan mungkin mengembalikan barang pada depot asal.


(21)

6. VRP with heterogeneous fleet of vehicles, yaitu kapasitas kendaraan antar kendaraan satu dengan kendaraan lain tidak selalu sama. Jumlah dan tipe kendaraan diketahui.

Pada penulisan skripsi ini akan dibahas jenis VRP yaitu Capacitated VRP dengan keistimewaan yaitu dapat menentukan rute dengan jarak tempuh minimum dengan penambahan kendala kapasitas kendaraan.

E. Capacitated Vehicle Routing Problem (CVRP)

Menurut Wijaya dkk (2004), CVRP merupakan salah satu variasi yang paling umum dari masalah VRP, dimana terdapat penambahan kendala berupa kapasitas kendaraan yang homogen (identik) untuk mengunjungi sejumlah agen sesuai dengan permintaannya masing-masing. Pada permasalahan CVRP, total jumlah permintaan agen dalam satu rute tidak melebihi kapasitas kendaraan yang melayani rute tersebut, setiap agen dikunjungi hanya satu kali oleh satu kendaraan dan semua rute dimulai dan berakhir di depot. Tujuan dari CVRP adalah meminimumkan total jarak tempuh rute perjalanan kendaraan yang digunakan dalam mendistribusikan barang dari tempat pengiriman (depot) ke masing-masing agen.

Pemodelan untuk CVRP memiliki parameter-parameter sebagai berikut :

n : adalah jumlah agen

q : menunjukkan kapasitas setiap kendaraan


(22)

cij : jarak tempuh perjalanan dari agen i ke agen j

semua parameter dianggap nilai integer tidak negatif. Sejumlah kendaraan homogeny dengan kapasitas q dan sebuah depot utama, dengan indeks 0, melakukan pengiriman ke agen, dengan indeks 1 sampai n. Permasalahannya adalah menentukan rute pasti pada setiap kendaraan yang dimulai dan diakhiri di depot. Setiap agen harus dipasangkan dengan rute yang tepat, karena setiap agen hanya dapat dilayani oleh satu kendaraan. Jumlah seluruh permintaan agen yang ada pada setiap rute harus berada dalam batas kapasitas kendaraan. Tujuannya adalah untuk meminimalkan total jarak tempuh perjalanan (Wijaya dkk, 2004).

Menurut Wijaya dkk (2004), model matematika dari CVRP didefinisikan sebagai suatu graf G =(V,E). Himpunan V terdiri atas gabungan himpunan agen C dari 1 sampai n dengan penambahan depot sebagai titik 0 dan 1. Jaringan jalan yang digunakan oleh kendaraan dinyatakan sebagai himpunan rusuk berarah E yaitu penghubung antar agen, E = {(i,j)| i,j ∈ �, ≠ }. Semua rute dimulai dari 0 dan berakhir di 0. Himpunan kendaraan k merupakan kumpulan kendaraan yang homogen dengan kapasitas q. Setiap agen i untuk setiap ∈ � memiliki permintaan di sehingga panjang rute dibatasi oleh kapasitas kendaraan. Setiap

rusuk (i,j) ∈ E memiliki jarak tempuh cij dan jarak tempuh diasumsikan simetris,

contoh cij = cji, dan juga bahwa cii = cjj =0. Satu-satunya variabel keputusan adalah


(23)

Xijk={ , jika terdapat perjalanan dari ke dengan kendaraan

, ika tidak terdapat perjalanan dari ke dengan kendaraan

Fungsi tujuan dari model matematika CVRP adalah

Meminimumkan Z = ∑ ∑ ∑∈� ∈� (2.4)

Dengan kendala,

1. Setiap titik dikunjungi tepat satu kali oleh suatu kendaraan :

∑ ∈ ∑ ∈� = , ∀ ∈ V (2.5)

2. Total permintaan semua titik dalam satu rute tidak melebihi kapasitas kendaraan :

∑∈� ∑ ∈� ≤ , ∀ ∈ � (2.6)

3. Setiap rute berawal dari depot 0 :

∑ ∈� = , ∀ ∈ � (2.7)

4. Setiap kendaraan yang mengunjungi satu titik pasti akan meninggalkan titik tersebut :

∑∈� − ∑ ∈� = , ∀ ∈ � (2.8)

5. Setiap rute berakhir di depot :

∑ ∈� = , ∀ ∈ � (2.9)

6. Variabel xijk merupakan variabel biner :


(24)

Berdasarkan definisi CVRP, diperoleh suatu kesimpulan mengenai input dari permasalahan CVRP sebagai berikut :

1. Input permasalahan CVRP adalah daftar jarak agen, daftar permintaan tiap agen dan kapasitas kendaraan.

2. Dalam terminologi graf, kumpulan agen atau titik pada permasalahan CVRP adalah sebuah graf lengkap dengan bobot rusuk adalah jarak antar agen. F. Algoritma Sweep

Algoritma Sweep adalah algoritma dua tahap, yaitu tahap pertama terdiri dari clustering agen yang mana clustering awal dilakukan dengan menggabungkan titik-titik dalam satu cluster berdasarkan kapasitas maksimal kendaraan, dan tahap kedua adalah membentuk rute-rute untuk masing-masing cluster. Berikut ini merupakan langkah-langkah yang harus dilakukan dalam menyelesaikan permasalahan CVRP dengan menggunakan algoritma sweep (Arunya Boonkleaw etc, 2009) :

1. Tahap pengelompokan (Clustering)

Tahap pertama dalam algoritma sweep adalah mengelompokan masing-masing titik agen ke dalam sebuah cluster. Berikut ini adalah langkah-langkah dalam pengelompokan :

a. Menggambar masing-masing agen (yang selanjutnya disebut sebagai titik) dalam koordinat kartesius dan menetapkan titik depot sebagai pusat koordinat.


(25)

b. Menentukan semua koordinat polar dari masing-masing titik yang berhubungan dengan depot. Langkah untuk mengubah koordinat kartesius (x,y) menjadi koordinat polar (r,θ) adalah sebagai berikut :

= √ + (2.11)

� = � tan (2.12)

Setelah diperoleh masing-masing titik dalam koordinat polar maka selanjutnya menggambarkan titik-titik tersebut dalam bidang dua dimensi. Langkah untuk mengubah koordinat kartesius menjadi koordinat polar juga dapat dilakukan dengan menggunakan Software Geogebra.

c. Melakukan pengelompokan (clustering) dimulai dari titik yang memiliki sudut polar terkecil dan seterusnya berurutan sampai titik yang memiliki sudut polar terbesar dengan memperhatikan kapasitas kendaraan.

d. Memastikan semua titik tersapu dalam cluster saat ini.

e. Pengelompokan dihentikan ketika dalam satu cluster akan melebihi kapasitas maksimal kendaraan.

f. Membuat cluster baru dengan langkah yang sama seperti langkah c dimulai dari titik yang memiliki sudut polar terkecil yang belum termasuk dalam cluster sebelumnya (titik yang terakhir ditinggalkan).

g. Mengulangi langkah c-f, sampai semua titik telah dimasukkan dalam sebuah cluster.


(26)

2. Tahap pembentukan rute

Tahap kedua dalam algoritma sweep yaitu membentuk rute-rute berdasarkan cluster yang telah diperoleh pada tahapan clustering. Setiap cluster akan menjadi sebuah permasalahan Travelling Salesman Problem (TSP). Oleh karena itu, dalam menyelesaikan tahapan pembentukan rute, langkah yang digunakan sama dengan ketika menyelesaikan permasalahan TSP. Pada penulisan skripsi ini, metode yang digunakan untuk menyelesaikan permasalahan TSP adalah metode Nearest Neighbour. Diagram alir dari Algoritma Sweep ditunjukkan pada Gambar 2.9


(27)

Gambar 2.9 Diagram Alir Algoritma Sweep

G. Algoritma Genetika

1. Definisi Algoritma Genetika (Kusumadewi, 2003 : 87)

Algoritma Genetika merupakan suatu metode algoritma pencarian berdasarkan pada mekanisme seleksi alam dan genetik alam. Algoritma genetika

Menggambar titik-titik dalam bidang koordinat kartesius

Mulai

Jumlah permintaan ≤ kapasitas kendaraan

Selesai

Menentukan rute distribusi menggunakan metode Nearest neighbour

Mencari titik-titik yang memiliki sudut polar terendah kemudian

digabungkan

Mengubah koordinat kartesius menjadi koordinat polar

clustering

Tidak

Pembentukan rute


(28)

pertama kali diperkenalkan oleh John Holland dalam bukunya yang berjudul

Adaption in natural and artificial systems”, dan oleh De Jong dalam bukunya

Adaption of the behavior of a class of genetic adaptive systems”, yang keduanya diterbitkan pada tahun 1975 yang merupakan dasar dari algoritma genetika (Davis, 1991). Tujuan Holland mengembangkan algoritma saat itu bukan untuk mendesain suatu algoritma yang dapat memecahkan suatu masalah, namun lebih mengarah ke studi mengenai fenomena adaptasi di alam dan mencoba menerapkan mekanisme adaptasi alam tersebut ke dalam sistem komputer.

Kemunculan Algoritma Genetika diinspirasikan dari teori-teori dalam ilmu biologi, sehingga banyak istilah dan konsep biologi yang digunakan dalam Algoritma Genetika. Sesuai dengan namanya, proses-proses yang terjadi dalam Algoritma Genetika sama dengan apa yang terjadi pada evolusi biologi yaitu seleksi, pindah silang, dan mutasi.

Algoritma Genetika merupakan teknik pencarian yang didasarkan atas mekanisme seleksi dan genetik natural. Algoritma genetika berbeda dengan teknik pencarian konvensional, algoritma genetika dimulai dari himpunan solusi yang pada umumnya dihasilkan secara acak. Himpunan ini disebut populasi, sedangkan setiap individu dalam populasi disebut kromosom (merupakan representasi dari solusi ) dan yang menempati kromosom disebut gen dan nilainya dapat berupa bilangan numerik, bilangan biner, symbol ataupun sebuah karakter dari permasalahan yang ingin diselesaikan ( Gen, 2000 : 1).


(29)

Kromosom-kromosom berevolusi dalam suatu proses iterasi yang berkelanjutan yang disebut generasi. Pada setiap generasi, kromosom dievaluasi berdasarkan nilai fungsi fitness (Gen dan Cheng, 2000). Nilai fitness adalah nilai yang menunjukkan nilai ketangguhan kromosom dalam beradaptasi terhadap masalah. Untuk menghasilkan generasi berikutnya (offspring) didapatkan dari perkawinan silang (crossover) atau memodifikasi kromosom menggunakan operator mutasi (mutation) dengan harapan akan menghasilkan kromosom baru dengan tingkat fitness yang lebih tinggi sebagai generasi baru atau keturunan (offspring) berikutnya. setelah beberapa generasi maka algoritma genetika akan konvergen pada kromosom terbaik, yang diharapkan merupakan solusi optimal (Goldberg, 1989 : 71).

Hal-hal yang terdapat dalam algoritma genetika adalah sebagai berikut (Satriyanto, 2009).

a. Gen (Genotype) adalah sebuah nilai yang menyatakan satuan dasar yang membentuk suatu arti tertentu dalam satu kesatuan gen yang dinamakan kromosom.

b. Allele yaitu nilai dari sebuah gen, dapat berupa bilangan biner, float, integer, karakter dan kombinatorial.

c. Kromosom adalah gabungan gen – gen yang membentuk nilai tertentu.

d. Individu merupakan suatu nilai atau keadaan yang menyatakan salah satu solusi yang mungkin dari permasalahan yang diangkat.


(30)

e. Populasi merupakan sekumpulan individu yang akan diproses bersama dalam satu siklus proses evolusi. Populasi terdiri dari sekumpulan kromosom.

f. Induk, adalah kromosom yang akan dikenai operasi genetik pindah silang g. Pindah silang merupakan operasi genetik yang mewakili proses

perkembangbiakan antar individu.

h. Offspring adalah kromosom yang merupakan hasil dari operasi genetik pindah silang dikenal keturunan atau sebagai anak.

i. Mutasi merupakan operasi genetik yang mewakili proses mutasi dalam perjalanan hidup individu. Mutasi berperan menghasilkan perubahan acak dalam populasi, yang berguna untuk menambah variasi dari kromosom – kromosom dalam sebuah populasi.

j. Proses Seleksi merupakan proses yang mewakili proses seleksi alam (natural selection) dari teori Darwin. Proses ini dilakukan untuk menentukan induk dari operasi genetik pindah silang yang akan dilakukan untuk menghasilkan keturunan (offspring).

k. Nilai fitness merupakan penilaian yang menentukan bagus tidaknya sebuah kromosom.

l. Fungsi Evaluasi adalah fungsi yang digunakan untuk menentukan nilai fitness. Fungsi evaluasi ini merupakan sekumpulan kriteria-kriteria tertentu dari permasalahan yang ingin diselesaikan.


(31)

setiap generasi, untuk menjaga agar jumlah kromosom dalam populasi tetap konstan, kromosom–kromosom yang mempunyai Nilai fitness yang rendah dan memiliki peringkat dibawah nilai minimal akan dihapus dari populasi. 2. Skema Alur Algoritma Genetika

Skema algoritma genetika pertama kali dikemukakan oleh David Goldberg (1989), dengan skema tersebut dapat dilihat pada Gambar 2.10 :

Gambar 2.10Skema Algoritma Genetika oleh David Goldberg (1989)

Siklus ini kemudian diperbaiki oleh beberapa ilmuwan yang mengembangkan algoritma genetika, yaitu Zbignew Michalewichz dengan menambahkan operator elitism dan membalik proses seleksi setelah proses reproduksi.


(32)

Gambar 2.11 Skema Algoritma Genetika oleh Michalewichz (1996)

3. Komponen Algoritma Genetika

a. Penyandian Permasalahan ( Pengkodean)

Teknik penyandian adalah proses penyandian gen dari kromosom. Gen merupakan bagian dari kromosom, satu gen biasanya akan mewakili satu variabel. Gen dapat direpresentasikan dalam bentuk bit, bilangan real, daftar aturan, elemen permutasi, elemen program atau representasi lainnya yang dapat diimplementasikan dalam operator genetika (Satriyanto, 2009).

Terdapat beberapa teknik pengkodean dalam algoritma genetika diantaranya pengkodean biner, pengkodean permutasi, pengkodean nilai dan pengkodean pohon (Lukas, Anwar dan Yuliani, 2005). Pada penelitian ini, representasi gen menggunakan teknik pengkodean permutasi. Dalam pengkodean ini, tiap gen dalam kromosom merepresentasikan suatu urutan (Anwar dan


(33)

Contoh 2.3 kromosom 1 = 2 3 4 5 1 6 7

Keterangan: kromosom 1 berisi urutan secara acak gen kesatu sampai ke tujuh. Gen direpresentasikan dengan sebuah bilangan dan bilangan-bilangan tersebut representasi dari masing-masing kota.

b. Membangitkan Populasi Awal (Spanning)

Membangkitkan populasi awal adalah membangkitkan sejumlah individu secara acak atau melalui prosedur tertentu. Ukuran populasi tergantung pada masalah yang akan dipecahkan dan jenis operator genetika yang akan diimplementasikan. Setelah ukuran populasi ditentukan, kemudian dilakukan inisialisasi terhadap kromosom yang terdapat pada populasi tersebut. Inisialisasi kromosom dilakukan secara acak, namun demikian harus tetap memperhatikan domain solusi dan kendala permasalahan yang ada (Kusumadewi, 2003: 282).

Terdapat berbagai teknik dalam pembangkitan populasi awal diantaranya adalah random generator, pendekatan tertentu, dan permutasi gen. Pada penelitian ini pembangkitan populasi awal dilakukan dengan menggunakan random generator. Inti dari cara ini adalah melibatkan pembangkitan bilangan random dalam interval (0,1) untuk setiap nilai gen sesuai dengan representasi kromosom yang digunakan.

c. Evaluasi Nilai Fitness (Fitness Value)

Evaluasi nilai fitness berfungsi untuk mengukur kualitas dari sebuah solusi dan memungkinkan tiap solusi untuk dibandingkan (Michalewicz, 1996: 72). Suatu individu dievaluasi berdasarkan suatu fungsi tertentu sebagai ukuran baik


(34)

tidaknya individu tersebut. Di dalam evolusi alam, individu yang bernilai fitness tinggi yang akan bertahan hidup, sedangkan individu yang bernilai fitness rendah akan mati (Goldberg, 1989). Pada masalah optimasi, fungsi fitness yang yang digunakan adalah

f 

 

(2.13)

dengan x merupakan nilai dari individu, yang artinya semakin kecil nilai x, maka semakin besar nilai fitnessnya. Tetapi hal ini akan menjadi masalah jika x bernilai 0, yang mengakibatkan f bisa bernilai tak hingga. Untuk mengatasinya, x perlu ditambah sebuah bilangan sangat kecil sehingga nilai fitnessnya menjadi

=

+�

,

(2.14)

dengan a adalah bilangan yang dianggap sangat kecil (konstanta) dan bervariasi sesuai dengan masalah yang akan diselesaikan (Suyanto, 2005:10).

d. Seleksi (Selection)

Seleksi merupakan pemilihan dua buah kromosom untuk dijadikan sebagai induk yang dilakukan secara proporsional sesuai dengan dengan nilai fitness-nya (Michalewicz, 1996: 75). Masing-masing individu yang diseleksi akan diberikan probabilitas reproduksi tergantung dari nilai objektif dirinya sendiri terhadap nilai objektif dari semua individu dalam seleksi tersebut. Nilai fitness inilah yang nantinya akan digunakan pada tahap seleksi berikutnya.


(35)

Terdapat beberapa metode seleksi menurut Kusumadewi (2003:105), yaitu rank-based fitness assignment, roulette wheel selection, stochastic universal sampling, seleksi lokal (local selection), seleksi dengan pemotongan (truncation selection) dan seleksi dengan turnamen (tournament selection).Skripsi ini menggunakan metode Roulette Wheel Selection.

Cara kerja metode Roulette Wheel Selection adalah sebagai berikut :

1. Dihitung nilai fitness dari masing-masing individu ( , dimana i adalah individu ke-1 s/d ke-n).

2. Dihitung total fitness semua individu.

3. Dihitung probabilitas masing-masing individu.

4. Dari probabilitas tersebut, dihitung jatah masing-masing individu pada angka 1 sampai 100.

5. Dibangkitkan bilangan random antara 1 sampai 100.

6. Dari bilangan random yang dihasilkan, ditentukan individu mana yang terpilih dalam proses seleksi.

Urutan langkah proses seleksi menggunakan metode Roulette Wheel adalah sebagai berikut

a. Misalkan diberikan contoh populasi beserta nilai fitnessnya. b. Menentukan nilai segmen unutk masing-masing individu. c. Dibangkitkan bilangan random antara 1-100 sebanyak 5 kali.


(36)

d. Memutar roda Roulette sebanyak individu tersebut. Setiap kali putaran akan menghasilkan suatu bilangan random dengan rentang antara 1-100 yang menunjukkan daerah atau segmen dari individu.

e. Terpilih hasil individu yang setelah roda Roulette diputar sebanyak 5 kali.

Individu 1: fitness =10% Jatah untuk individu 1=1-10 Individu 2: fitness =25% Jatah untuk individu 2=11-35 Individu 3: fitness =40% Jatah untuk individu 3=36-75 Individu 4: fitness =15% Jatah untuk individu 4=76-90 Individu 5: fitness =10% Jatah untuk individu 5=91=100

Individu Terpilih

Random 30= Individu 2 Random 88= Individu 4 Random 64= Individu 3 Random 18= Individu 2 Random 44= Individu 3


(37)

e. Pindah Silang (Crossover)

Pindah Silang (crossover) adalah operator dari algoritma genetika yang melibatkan dua induk untuk membentuk kromosom baru. Pindah silang menghasilkan keturunan baru dalam ruang pencarian yang siap diuji. Operasi ini tidak selalu dilakukan pada setiap individu yang ada. Individu dipilih secara acak untuk dilakukan crossover dengan Pc (Probabilitas Crossover) antara 0,6 s/d 0,95. Jika pindah silang tidak dilakukan, maka nilai dari induk akan diturunkan kepada keturunan (Michalewicz, 1996: 78).

Prinsip dari pindah silang ini adalah melakukan operasi (pertukaran aritmatika) pada gen yang bersesuaian dari dua induk untuk menghasilkan individu baru. Proses crossover dilakukan pada setiap individu dengan probabilitas crossover yang ditentukan. Secara skematis proses crossover dapat digambarkan seperti Gambar 2.12


(38)

Gambar 2.12 Sistematika Proses Cross Over

Dari Gambar 2.12, jika bilangan p yang dibangkitkan secara acak kurang dari probabilitas crossover (probCO), maka kedua induk dilakukan operasi pindah silang (crossover). Tetapi jika bilangan p yang dibangkitkan lebih dari atau sama dengan probCO, maka tidak dilakukan operasi pindah silang.

Teknik crossover yang digunakan adalah teknik Order Crossover (OX) yang diperkenalkan oleh Davis (Tanjung, 2010).


(39)

Prosedur OX

Teknik ini diawali dengan membangkitkan dua bilangan acak. Kemudian gen yang berada diantara kedua bilangan acak tersebut (substring) disalin ke keketurunan (offspring) dengan posisi yang sama pada masing-masing kromosom orang tua. Mengurutkan gen yang berada dalam kromosom orang tua kedua dengan urutan gen yang pertama adalah dari gen yang berada pada posisi setelah bilangan acak kedua yang telah dibangkitkan sebelumnya lalu diikuti oleh gen-gen yang berada pada posisi sebelum bilangan acak pertama dan diakhiri dengan gen-gen yang berada pada posisi diantara kedua bilangan acak.

Gen yang telah diurutkan tadi dibandingkan dengan offspring pertama. Apabila gen yang terurut tersebut mengandung gen yang berada pada offspring pertama, maka abaikan gen tersebut dari urutan. Masukkan urutan yang baru saja didapat ke offspring pertama dengan cara memasukkan urutan gen pada posisi setelah bilangan acak kedua terlebih dahulu pada offspring pertama dan sisanya dimasukkan pada posisi sebelum bilangan acak pertama. Untuk menghasilkan offspring kedua dilakukan cara yang sama untuk kromosom orang tua pertama.

Gambar 2.13 adalah ilustrasi dari OX


(40)

1. Membangkitkan dua bilangan acak.

Induk 1

2. Dibangkitkan 2 bilangan acak sebelum gen induk-1 dan setelah gen induk 1. Hal yang sama juga dilakukan untuk induk-2. Didapatkan keturunan dengan gen yang sama.

Keturunan 1

Keturunan 2

3. Mengurutkan gen yang berada pada induk kedua dengan urutan gen yang berada pada posisi setelah bilangan acak kedua diikuti dengan gen yang berada pada posisi sebelum bilangan acak pertama dan diakhiri dengan gen yang berada pada posisi diantara kedua bilangan acak.

4. Kemudian gen yang telah diurutkan tersebut dibandingkan dengan keturunan pertama. Apabila gen tersebut ada pada keturunan kedua maka abaikan gen tersebut dari urutan itu.

5. Kemudian masukkan urutan yang baru saja didapat pada keturunan dengan cara memasukkan urutan gen pada posisi setelah bilangan acak kedua terlebih dahulu

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

4 5 6 7 1 8 7 6

9 3 4 5 2 1 8 7 6 Induk 2


(41)

dan sisanya dimasukkan pada posisi sebelum bilangan acak pertama. Begitu juga untuk menghasilkan keturunan kedua.

Keturunan 1

Keturunan 1

Keturunan2

Keturunan 2

Gambar 2.13 Ilustrasi OX Operator

f. Mutasi (Mutation)

Mutasi merupakan proses untuk mengubah nilai dari satu atau beberapa gen dalam suatu kromosom. Operasi mutasi yang dilakukan pada kromosom dengan tujuan untuk memperoleh kromosom-kromosom baru sebagai kandidat solusi pada generasi mendatang dengan fitness yang lebih baik, dan lama-kelamaan menuju solusi optimum yang diinginkan. Akan tetapi, untuk mencapai hal ini, penekanan selektif juga memegang peranan yang penting. Jika dalam proses pemilihan kromosom-kromosom cenderung terus pada kromosom yang memiliki fitness yang tinggi saja, konvergensi prematur akan sangat mudah terjadi (Murniati, 2009: 24). Gambar 2.14 adalah alur skematis proses mutasi.

4 5 6 7

2 1 8 4 5 6 7 9 3

4 5 6 7


(42)

Gambar 2.14 Sistematika Proses Mutasi

Dari Gambar 2.14, jika p merupakan bilangan random yang dibangkitkan kurang dari probabilitas mutasi (ProbMut) maka individu hasil crossover dilakukan proses mutasi. Sedangkan jika bilangan p yang dibangkitkan lebih dari atau sama dengan probMut, maka individu hasil crossover tidak dilakukan proses mutasi. Teknik swapping mutation 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: 57).


(43)

Contoh Sebelum

Sesudah

g. Elitism

Elitism merupakan proses untuk menjaga agar individu bernilai fitness tertinggi tersebut tidak hilang selama evolusi (Kusumadewi, 2003: 112). Proses seleksi dilakukan secara random sehingga tidak ada jaminan bahwa suatu indvidu yang bernilai fitness tertinggi akan selalu terpilih. Walaupun individu bernilai fitness tertinggi terpilih, mungkin saja individu tersebut akan rusak (nilai fitness-nya menurun) karena proses pindah silang. Oleh karena itu, untuk menjaga agar individu bernilai fitness tertinggi tersebut tidak hilang selama evolusi, maka perlu dibuat satu atau lebih. Proses Elitism dilakukan dengan menduplikat individu dengan nilai fitness terbaik untuk dijadikan individu pertama pada generasi berikutnya.

h. Pembentukan Populasi Baru

Proses membangkitkan populasi baru bertujuan untuk membentuk populasi baru yang berbeda dengan populasi awal. Pembentukan populasi baru ini didasarkan pada keturunan-keturunan baru hasil mutasi ditambah dengan individu terbaik setelah dipertahankan dengan proses elitism. Setelah populasi baru

1 2 3 4 5 6 8 9 7


(44)

terbentuk, kemudian mengulangi langkah-langkah evaluasi nilai fitness, proses seleksi dengan truncation selection, proses pindah silang, proses mutasi pada populasi baru untuk membentuk populasi baru selanjutnya.

H. Penelitian yang Relevan

Beberapa penelitian tentang CVRP dan algoritma genetika telah banyak

dilakukan antara lain “Algoritma Genetika pada Penyelesaian Capacitated Vehicle Routing Problem (Optimasi Rute Pendistribusian Aqua Galon PT Tirta Investama” oleh Adam Arif, penelitian ini menggunakan algoritma genetika dalam menyelesaikan CVRP dengan menggunakan data dari peneliti sebelumnya yang menggunakan algoritma Branch and Bound. Selain penelitian yang menggunakan algoritma genetika sebagai metode penyelesaiannya terdapat juga penelitian tentang CVRP dengan metode heuristik yaitu Algoritma Sweep sebagai metode penyelesaiannya oleh Wahyu Kartika Cahyaningsih yang berjudul

“Penyelesaian Capacitated Vehicle Routing Problem (CVRP) menggunakan algoritma sweep untuk optimasi rute distribusi surat kabar Kedaulatan Rakyat”. Hasil dari penelitian ini adalah bahwa algoritma sweep menghasilkan total jarak tempuh kendaraan dan waktu tempuh yang lebih baik daripada total jarak tempuh kendaraan dan waktu tempuh perusahaan saat ini yaitu 52 dengan jarak 142,9 km dan waktu tempuh 210 menit sedangkan milik perusahaan yaitu dengan jarak 174,9 km dan waktu tempuh 233 menit. Menghasilkan penghematan jarak tempuh sebesar 18,29 %.


(45)

Ada persamaan dan perbedaan penelitian ini dengan penelitian sebelumnya. Persamaan pada skripsi Adam Arif dan Wahyu Kartika Cahyaningsih yaitu menggunakan algoritma genetik dan algoritma Sweep.Perbedaannya yaitu dalam metode seleksi yang digunakan, dalam penelitian Adam Arif menggunakan metode seleksi Rangking Selection sedangkan pada penelitian ini menggunakan Seleksi Roulette Whell Selection dan perbedaan dalam menentukan nilai paramater yang digunakan dalam algoritma genetika seperti Ukuran Populasi, Jumlah Generasi, Probabilitas Mutasi dan Probabilitas Crossover. Dalam skripsi ini akan dibandingkan antara Algoritma Genetika dan Algoritma Sweep. Data yang digunakan adalah data primer dari hasil penelitian yang dilakukan di salah satu Pabrik Gula di Yogyakarta.


(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 dinyatakan sebagai himpunan rusuk berarah E yaitu penghubung antar agen, E =


(48)

{(i,j)|i,j ∈ V, ij}. 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 ={ , jika terdapat perjalanan dari i ke j dengan kendaraan k , 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 = ∑ ===

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 � � �

:

:

:

:

25 � � �

Secara matematis dapat dituliskan sebagai berikut :

i. Untuk j = {1, 2, …, 26}

== � =

:

∑= ∑ = � =


(50)

∑= ∑ = � =

:

== � =

2. Total permintaan dari semua agen yang berjumlah 25 dalam satu rute tidak melebihi kapasitas setiap kendaraan yaitu 6000 kg :

=

=

≤ .

,

= { , , }

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 :

=

= ,

=

= ,

= { , , }

4. Setiap kendaran yang mengunjungi suatu titik pasti akan meninggalkan titik tersebut, artinya kendaraan hanya mengunjungi tepat satu kali :

=

− ∑

=

= ,

= { , , }

5. Setiap rute dimulai dari depot 0 dan akan berakhir di depot 26 yang juga merupakan depot asal :

=

= ,

= { , , }

6. Variabel

merupakan variabel biner :


(51)

B.

Penyelesaian Model Capacitated Vehicle Routing Problem (CVRP) Menggunakan Algoritma Sweep

Langkah-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)

= , x 60 =8,88 menit ≈ 9 menit

Hasil 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 pembentukan rute.


(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.


(53)

1 (1.64,-2.12) ↔� =√ , + − , = ,

� = �� tan − ,

, = , °

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 Persamaan (3.1) dijumlahkan maka diproleh hasil sebagai berikut


(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 Neighbour. Gambar 3.2 menunjukkan Peta Pendistribusian Gula.


(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.3Menentukan 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 Jarak yang terpilih adalah d(0,19) = 3,4 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 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 Jarak yang terpilih adalah d(2,8) = 1,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 Jarak yang terpilih adalah d(25,15) = 1,4 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 Jarak yang terpilih adalah d(24,16) = 4,5 km


(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.1Menentukan titik yang akan menjadi titik awal perjalanan.

Titik awal perjalanan akan dimulai dari titik 0 yang merupakan depot perusahaan.

1.2Menentukan 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.3Menentukan 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


(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 d(18,17) = 0,9 km d(18,20) = 3,4 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 langkah 1.


(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.


(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


(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.1Menentukan titik yang akan menjadi titik awal perjalanan.

Titik awal perjalanan akan dimulai dari titik 0 yang merupakan depot perusahaan.

1.2Menentukan 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 }

. 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 d(0,22) = 20 km d(0,12) = 9 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}


(1)

145

Individu 12 = 19 17 10 8 13 22 21 3 25 16 24 5 2 23 15 6 9 4 20 1 12 11 18 14 7

Individu 13 = 16 21 9 17 14 18 6 3 23 22 15 4 8 7 10 25 19 20 5 2 12 24 1 11 13

Individu 14 = 21 13 5 20 22 6 3 2 7 18 14 12 25 10 24 1 11 17 16 23 15 4 8 19 9

Individu 15 = 1 8 5 21 18 9 22 7 17 24 6 12 23 13 4 3 20 25 11 16 10 2 14 19 15

Individu 16 = 24 18 9 16 8 5 3 25 10 13 23 4 20 7 21 6 17 12 11 14 1 2 15 22 19

Individu 17 = 2 16 8 3 9 21 23 10 4 5 17 14 11 22 15 18 13 12 1 24 7 19 20 25 6

Individu 18 = 13 16 12 8 1 9 7 19 20 11 25 6 2 4 15 23 18 3 21 24 10 5 17 14 22

Individu 19 = 1 9 18 3 16 13 17 4 21 10 2 23 20 15 8 5 22 14 6 25 7 11 19 24 12

Individu 20 = 10 8 13 21 3 25 16 24 2 23 15 6 9 4 18 12 7 11 19 1 5 22 14 17 20


(2)

146

Lampiran 12

Nilai fitness generasi selanjutnya yang didapatkan dengan bantuan software Matlab.

Nilai Fitness individu 1 = 0.0046 Nilai Fitness individu 2 = 0.0046

Nilai Fitness individu 3 = 0.0037 Nilai Fitness individu 4 = 0.0039 Nilai Fitness individu 5 = 0.0034 Nilai Fitness individu 6 = 0.0036 Nilai Fitness individu 7 = 0.0036 Nilai Fitness individu 8 = 0.0036 Nilai Fitness individu 9 = 0.0042 Nilai Fitness individu 10 = 0.0037

Nilai Fitness individu 11 = 0.0045 Nilai Fitness individu 12 = 0.0043 Nilai Fitness individu 13= 0.0041 Nilai Fitness individu 14 = 0.0036 Nilai Fitness individu 15 = 0.0033 Nilai Fitness individu 16 = 0.0045 Nilai Fitness individu 17 = 0.0045 Nilai Fitness individu 18= 0.0036 Nilai Fitness individu 19 = 0.0035 Nilai Fitness individu 20 = 0.0040


(3)

149

Lampiran 13

Hasil populasi baru pada generasi ke-1000 dengan bantuan software Matlab.

Individu 1 = 11 13 18 17 6 24 9 16 25 5 3 22 21 23 4 20 7 10 15 2 8 19 1 12 14

Individu 2 = 11 13 18 17 6 24 9 16 25 5 3 22 21 23 4 20 7 10 15 2 8 19 1 12 14

Individu 3 = 20 7 15 2 19 24 9 16 22 5 3 25 21 23 11 1 13 4 6 12 18 8 14 10 17

Individu 4 = 15 2 19 1 14 3 4 25 6 24 17 12 18 8 11 13 5 9 16 22 21 23 20 7 10

Individu 5 = 23 4 20 7 8 15 1 14 24 5 25 22 13 21 10 19 2 16 3 11 18 6 17 12 9

Individu 6 = 14 5 17 24 9 23 8 1 4 20 7 12 3 11 18 6 15 13 22 21 10 19 2 16 25

Individu 7 = 24 9 16 25 5 22 21 23 4 7 8 20 18 10 15 2 3 19 1 12 14 11 13 17 6

Individu 8 = 5 9 18 3 19 1 12 14 13 11 17 22 21 23 4 20 7 10 15 2 8 6 24 16 25

Individu 9 = 16 17 24 3 22 2 13 10 8 25 21 7 5 23 1 19 15 4 20 9 12 14 11 18 6

Individu 10 = 5 15 1 12 2 19 21 9 23 14 11 7 4 18 25 13 6 24 16 17 3 22 8 20 10


(4)

150

Individu 11 = 18 6 19 13 24 4 16 25 9 8 17 5 3 22 2 14 21 23 15 1 10 20 7 12 11

Individu 12 = 14 12 2 11 5 3 24 21 9 23 13 19 1 10 6 15 4 16 25 17 22 7 20 8 18

Individu 13 = 25 5 3 22 21 23 4 20 7 10 152 8 19 1 16 14 24 11 13 18 17 6 9 12

Individu 14 = 6 24 21 7 10 15 19 12 14 4 16 25 9 8 17 1 5 3 22 23 2 20 11 13 18

Individu 15 = 12 17 10 18 6 15 13 22 9 23 2 16 25 14 5 3 24 21 8 19 1 11 4 20 7

Individu 16 = 12 17 11 18 6 15 13 22 9 23 2 16 25 14 5 3 24 21 8 19 1 10 4 20 7

Individu 17 = 13 24 17 6 18 9 16 25 5 14 3 22 21 23 4 20 7 10 15 2 8 19 1 12 11

Individu 18 = 13 18 17 6 24 9 16 25 20 11 322 21 23 4 5 7 10 15 2 8 19 1 12 14

Individu 19 = 14 11 9 22 13 3 4 25 6 24 5 12 18 8 16 17 1 21 23 20 7 10 15 2 19

Individu 20 = 19 13 18 17 6 24 9 16 11 5 3 22 21 23 20 25 1 12 8 14 10 4 7 15 2


(5)

151

Lampiran 14

Nilai fitness generasi ke-1000 yang didapatkan dengan bantuan software Matlab. Nilai Fitness individu 1 = 0.0080

Nilai Fitness individu 2 = 0.0080

Nilai Fitness individu 3 = 0.0052 Nilai Fitness individu 4 = 0.0047 Nilai Fitness individu 5 = 0.0044 Nilai Fitness individu 6 = 0.0054 Nilai Fitness individu 7 = 0.0033 Nilai Fitness individu 8 = 0.0050 Nilai Fitness individu 9 = 0.0057 Nilai Fitness individu 10 = 0.0047

Nilai Fitness individu 11 = 0.0042 Nilai Fitness individu 12 = 0.0044 Nilai Fitness individu 13= 0.0041 Nilai Fitness individu 14 = 0.0044 Nilai Fitness individu 15 = 0.0048 Nilai Fitness individu 16 = 0.0043 Nilai Fitness individu 17 = 0.0046 Nilai Fitness individu 18= 0.0042 Nilai Fitness individu 19 = 0.0042 Nilai Fitness individu 20 = 0.0041


(6)