IMPLEMENTASI ALGORITMAFLOYD WARSHALL DAN NEAREST NEIGHBOUR DALAM PENGOPTIMALAN RUTE CAPACITATED VEHICLE ROUTING PROBLEM WITH TIME WINDOWS.

(1)

1

BAB I

PENDAHULUAN

A. Latar Belakang Masalah

Distribusi adalah kegiatan yang selalu menjadi bagian dalam menjalankan sebuah usaha. Distribusi merupakan suatu proses pengiriman barang dari suatu depot ke konsumen. Dalam proses distribusi, salah satu hal yang harus diperhatikan adalah kepuasan konsumen karena kepuasan konsumen akan berpengaruh terhadap keberhasilan penjualan produk. Salah satu faktor kepuasan konsumen adalah barang sampai ke konsumen dengan tepat waktu dan produk sesuai dengan yang diharapkan. Keberhasilan penjualan dapat dilihat dari banyaknya penjualan atau kenaikan angka penjualan. Untuk mencapai keberhasilan penjualan dan kepuasan konsumen, permasalahan distribusi ini menjadi sangat penting karena berhubungan dengan biaya transportasi yang berpengaruh terhadap total biaya produksi.

Permasalahan distribusi barang merupakan aspek yang harus diperhatikan karena permasalahan tersebut memiliki pengaruh yang cukup besar terhadap biaya dan tingkat pelayanan kepada konsumen. Ada beberapa kendala yang harus dihadapi dalam proses distribusi, seperti jumlah permintaan barang yang berbeda-beda pada setiap konsumen, kapasitas kendaraan, batas waktu pengiriman, kecepatan rata-rata yang dapat ditempuh pada jalur dan waktu tertentu, dan lokasikonsumen yang berbeda pula. Oleh karena itu diperlukan suatu cara agar proses distribusi dapat berjalan dengan lancar dan tepat waktu.

Salah satu cara yang dapat dilakukan dalam proses distribusi adalah dengan mengoptimalkan rute kendaraan agar waktu yang digunakan untuk melayani


(2)

2

konsumen lebih efisien dan barang dapat sampai ke konsumen tepat waktu. Permasalahan optimisasi rute kendaraan dikenal dengan vehicle routing problem (VRP). Vehicle routing problem merupakan masalah penentuan rute optimal kendaraan dalam pendistribusian barang dari satu depot atau lebih ke sejumlah konsumen di lokasi yang berbeda dengan permintaan yang telah diketahui dan memenuhi sejumlah kendala (Yeun dkk, 2008). Tujuan dari VRP adalah mengantarkan barang ke konsumen dengan rute yang optimum dan meminimalisasi jumlah kendaraan yang digunakan untuk keluar-masuk depot. Contoh kasus dalam kehidupan sehari-hari yang dapat dimodelkan dalam permasalahan VRP antara lain distribusi air minum, distribusi surat kabar, pelayanan jasa kurir, jasa ojek, penentuan rute bus sekolah, dan lain sebagainya.

Beberapa jenis permasalahan VRP berdasarkan kendalanya antara lain capacitated vehicle routing problem (CVRP) dengan kendala kapasitas setiap kendaraan terbatas, vehicle routing problem with time windows (VRPTW) dengan kendala konsumen harus disuplai dalam time windows (jangka waktu tertentu), multiple depot vehicle routing problem (MDVRP) dengan kendala distributor memiliki banyak depot untuk menyuplai konsumen, vehicle routing problem with pick-up and delivering (VRPPD) dengan kendala ada kemungkinan konsumen mengembalikan barang ke depot asal, split delivery vehicle routing problem (SDVRP) dengan kendala konsumen dilayani dengan kendaraan yang berbeda, dan periodic vehicle routing problem dengan kendala pengantaran hanya dilakukan di hari tertentu.

VRP yang bertujuan membentuk rute optimal dalam melayani konsumen dengan kendala kapasitas dan time windows disebut capacitated vehicle routing


(3)

3

problem with time windows (CVRPTW). Beberapa metode yang dapat digunakan untuk menyelesaikan kasus ini adalah metode eksak dan metode heuristik. Metode eksak merupakan algoritma yang menghitung setiap solusi sampai didapat solusi yang optimal namun waktu penyelesaiannya relatif lama, sedangkan metode heuristik merupakan algoritma yang menggunakan performa komputasi sederhana dalam penyelesaian masalah sehingga dapat memberikan solusi yang mendekati optimal yang relatif cepat.

Dalam menyelesaikan permasalahan CVRPTW, akan dikombinasikan dua metode yaitu metode eksak dan metode heuristik. Salah satu metode eksak yang akan digunakan adalah algoritma floyd warshall dan metode heuristik yang digunakan adalah algoritma nearest neighbour. Algoritma floyd warshall merupakan salah satu varian dari pemrograman dinamis yang memecahkan masalah dengan memandang solusi yang akan diperoleh sebagai suatu keputusan yang saling terkait, dengan kata lain solusi-solusi yang dibentuk berasal dari solusi pada tahap sebelumnya dan ada kemungkinan solusi lebih dari satu (Achmad Asrori, 2013). Chairul, dkk. (2014) mendefinisikan metode nearest neighbour sebagai metode untuk memecahkan masalah dengan cara mempertimbangkan jarak yang terpendek.

Cukup banyak penelitian mengenai penyelesaian masalah VRP dan variasinya yang telah dilakukan dengan menggunakan algoritma floyd warshall dan nearest neighbour. Hasil dari skripsi Dzikri Udkhia Rizqi yang berjudul Aplikasi Algoritma Hybrid Fuzzy Warshall untuk Menentukan Rute Tercepat Jaringan Kerja Polres Magelang Kota membuktikan bahwa algoritma floyd warshall dan hasil dari skripsi Wahyu Kartika Cahyaningsih yang berjudul


(4)

4

Penyelesaian Capacitated Vehicle Routing Problem (CVRP) Menggunakan Algoritma Sweep untuk Optimasi Rute Distribusi Surat Kabar Kedaulatan Rakyat juga membuktikan bahwa algoritma nearest neighbour dapat menghasilkan rute yang lebih efektif daripada rute sebelumnya. Namun masih sedikit penelitian yang membandingkan efektifitas kedua algoritma tersebut dalam menyelesaikan masalah CVRPTW. Oleh karena itu akandilakukan penelitian untuk menyelesaikan masalah CVRPTW dengan algoritma floyd warshall dan nearest neighbour.

B. Batasan Masalah

Batasan masalah pada penelitian ini adalah sebagai berikut 1. Pemberian bobot hanya berdasarkan waktu tempuh.

2. Kecepatan pada tiap jalur diasumsikan berdasarkan interval waktu per jam. 3. Data yang digunakan hanya sebatas data simulasi.

4. Kapasitas maksimal kendaraan dan kecepatan maksimal kendaraan homogen.

C. Rumusan Masalah

Berdasarkan latar belakang, masalah yang dapat dirumuskan adalah Bagaimana menentukan rute tercepat kendaraan pada model capacitated vehicle routing problem with time windows dengan algoritma floyd warshall


(5)

5

D. Tujuan

Tujuan dari penelitian ini adalah menentukan rute tercepat kendaraan pada model capacitated vehicle routing problem with time windows dengan algoritma floyd warshall dan nearest neighbour.

E. Manfaat

Manfaat yang dapat diambil dari penelitian ini adalah sebagai berikut: Bagi diri sendiri:

Untuk mengetahui penentuan rute kendaraan pada model Capatitated Vehicle Routing Problem with Time Windows dengan Metode Floyd Warshall dan Nearest Neighbour.

Bagi umum:

Dapat menambah pengetahuan di bidang teori graf, vehicle routing problem, penelitian operasional dan ilmu matematika.


(6)

6 BAB II KAJIAN TEORI

Pada bab ini berisi paparan teori yang berhubungan dengan distribusi, optimisasi, graf, vehicle routing problem (VRP), capatitated vehicle routing problem with time windows (CVRPTW), metode penyelesaian CVRPTW, yakni algoritma floyd warshall, dan nearest neighbour.

A. Distribusi

Menurut Chopra dan Meindl (2010 : 86), distribusi adalah suatu kegiatan untuk memindahkan barang dari pihak supplier kepada pihak agen dalam suatu supply chain. Distribusi merupakan suatu kunci dari keuntungan yang akan diperoleh perusahaan karena distribusi secara langsung akan mempengaruhi biaya dari supply chain dan kebutuhan agen. Jaringan distribusi yang tepat dapat digunakan untuk mencapai berbagai macam tujuan dari supply chain, mulai dari biaya yang rendah sampai respon yang tinggi terhadap permintaan agen.

Salah satu fungsi distribusi adalah pengangkutan (transportasi). Pada umumnya tempat kegiatan produksi berbeda dengan tempat konsumen, maka untuk mengatasi hal ini diperlukan adanya kegiatan pengangkutan (transportasi). Seiring dengan bertambahnya jumlah penduduk, kebutuhan manusia juga semakin banyak. Hal ini mengakibatkan barang yang disalurkan juga semakin besar maka diperlukan alat untuk melakukan suatu kegiatan transportasi.

Distribusi meliputi semua aspek dalam pengiriman barang kepada agen. Beberapa permasalahan yang sering dihadapi dalam distribusi berkaitan dengan optimasi jaringan distribusi antara lain (Harry dan Syamsudin, 2011) :


(7)

7

1. Titik Depot

Dalam manajemen distribusi, selalu ada tempat untuk menyimpan dan menyediakan barang hasil produksi, tempat ini dinamakan depot. Dalam hal ini lokasi depot biasa disebut dengan titik depot. Keberadaan titik depot sangat menentukan kelancaran pada kegiatan distribusi barang, sehingga barang dapat sampai pada agen tepat pada waktunya.

2. Penentuan rute dan jadwal pengiriman

Salah satu hal yang menjadi keputusan terpenting dalam manajemen distribusi adalah penentuan jadwal serta rute pengiriman dari satu titik ke beberapa titik tujuan. Keputusan seperti ini sangat penting bagi suatu perusahaan yang mengirimkan barangnya dari satu titik ke berbagai titik yang tersebar di sebuah kota, karena sangat berpengaruh terhadap biaya pengiriman. Namun biaya bukanlah satu-satunya faktor yang perlu dipertimbangkan dalam proses distribusi. Selain itu dalam menentukan jadwal dan rute sering kali juga harus mempertimbangkan faktor-faktor lain seperti kapasitas kendaraan dan batas waktu pengiriman.

Secara umum, permasalahan penjadwalan dan penentuan rute pengiriman memiliki beberapa tujuan yang ingin dicapai seperti tujuan untuk meminimumkan biaya pengiriman, meminimumkan waktu atau meminimumkan jarak tempuh.Salah satu dari tujuan tersebut dapat menjadi fungsi tujuan (objective function) dan yang lainnya menjadi kendala (constraint). Misal fungsi tujuannya adalah meminimumkan biaya pendistribusian dan kendalanya adalah kapasitas kendaraan dan time windows.


(8)

8 B. Optimisasi

Optimisasi merupakan suatu upaya sistematis untuk memilih elemen terbaik dari suatu kumpulan elemen yang ada. Didalam kontek matematika, optimisasi ini dapat dinyatakan sebagai suatu usaha sistematis untuk mencari nilai minimum atau maksimum dari suatu fungsi. Dengan kata lain, optimisasi merupakan suatu proses mencari nilai terbaik berdasarkan fungsi tujuan dengan daerah asal yang telah didefinisikan. Secara sederhana, optimisasi dapat dinyatakan dengan :

min/max f(x)

Sebagai contoh, kita ambil sebuah fungsi f(x) = x2, dimana x adalah anggota bilangan real. Di dalam contoh ini, min f(x) merupakan fungsi tujuannya karena yang dicari adalah hasil minimal dari fungsi tersebut, sedangkan x adalah daerah asal yang didefinisikan sebagai anggota bilangan real.

Optimisasi digunakan hampir di semua bidang ilmu antara lain bidang teknik, sains, ilmu sosial, ekonomi dan bisnis. Banyak permasalahan di bidang teknik, sains dan ekonomi yang dapat dinyatakan sebagai permasalahan optimisasi seperti meminimalkan biaya, mempersingkat waktu, memperkecil resiko maupun memaksimalkan keuntungan dan kualitas. Optimisasi juga seringkali menjadi fokus utama dalam pengambilan keputusan suatu tindakan. Pengambilan keputusan dalam optimisasi terdiri dari beberapa langkah (Talbi, 2009) :

1. Merumuskan Masalah

Pertama kali yang perlu dilakukan pada tahap ini adalah mengidentifikasi permasalahan yang akan diselesaikan. Faktor-faktor yang mempengaruhi permasalahan dan fungsi tujuan dari permasalahan tersebut perlu didata dengan cermat.


(9)

9

2. Memodelkan Masalah

Didalam tahap ini, permasalahanakan dimodelkan secara matematis. Permasalahan yang sesungguhnya mungkin akan sangat kompleks dan sulit jika harus diilustrasikan, sehingga perlu disederhanakan dalam pemodelan matematis.

3. Optimisasi

Setelah permasalahan dimodelkan secara matematis, metode optimisasi diterapkan untuk mendapatkan penyelesaian yang dapat diterima (acceptable solution). Seringkali model permasalahan yang dibuat tidak dapat mewakili permasalahan yang sesungguhnya, sehingga ketepatan dalam memodelkan permasalahan sangat mempengaruhi hasil yang didapatkan. Penyelesaian yang didapatkan dapat merupakan solusi optimal maupun non-optimal.

4. Menerapkan Penyelesaian Masalah

Penyelesaian yang didapatkan kemudian diterapkan untuk mengetahui apakah penyelesaian tersebut dapat diterima atau tidak. Jika penyelesaian tersebut tidak dapat diterima, maka model permasalahan maupun metode optimisasinya perlu diperbaiki dan prosesnya diulang kembali.


(10)

10

Berikut penyajian langkah-langkah pengambilan keputusan dalam bentuk flowchart dapat dilihat pada Gambar 2.1.

Gambar 2.1. Flowchart Proses Pengambilan Keputusan Merumuskan Masalah

Memodelkan Masalah

Optimalisasi

Menerapkan Penyelesaian Masalah

Apakah hasil optimasi layak untuk diterapkan?

Apakah hasil penyelesaian dapat

diterima?

Penyelesaian diterima

Tidak Tidak

Ya Ya


(11)

11 C. Efektivitas

Efektivitas berasal dari kata efektif yang memiliki arti berhasil, tepat guna, atau sesuatu yang dilakukan berhasil dengan baik. Pius A. Partanto dan M. Dahlan Bahri dalam bukunya Kamus Ilmiah Populer (1994) mendefinisikan efektivitas sebagai ketepatgunaan, hasil guna, dan menunjang tujuan. Hidayat (1986) mendefinisikan efektivitas sebagai suatu ukuran yang menyatakan seberapa jauh target telah tercapai, dimana semakin besar persentase target yang dicapai, maka semakin tinggi efektivitasnya.

Secara umum, efektivitas dapat diartikan sebagai hal yang berhubungan dengan keberhasilan atau suatu ukuran yang menyatakan sejauh mana tujuan yang dicapai sesuai dengan tujuan yang telah ditentukan sebelumnya. Dalam hal ini, akan dibandingkan efektifitas algoritma floyd warshall dan nearest neighbour dalam menentukan rute tercepat.

D. Graf

1. Definisi Graf

Definisi graf menurut Edgar G. Goodaire dan Michael M. Parmanter (2002) adalah kumpulan simpul (vertex atau nodes) yang dihubungkan satu sama lain melalui busur (edges). Secara matematis, suatu graf G didefinisikan sebagai pasangan himpunan G(V,E) dengan V(G) adalah himpunan tidak kosong dari simpul (vertex atau nodes), V(G) = {v1, v2, v3, …, vn}, dan E(G) adalah himpunan

busur (edges atau arcs) E(G) = {e1, e2, e3, …, en}, yang menghubungkan sepasang


(12)

12

Sebuah graf direpresentasikan dalam bentuk gambar. Simpul pada graf digambarkan dengan lingkaran kecil, sedangkan busur yang menghubungkan dua simpul digambarkan dengan kurva sederhana atau segmen garis dengan titik akhir di kedua simpul tersebut.

Gambar 2.2. Graf G

2. Jenis-jenis Graf

Menurut Mardiyono (1996:32) sesuai dengan kekhasan strukturnya, graf dapat diklasifikasikan dalam beberapa jenis yaitu graf sederhana, tidak sederhana, berarah, teratur, berbobot, pohon. Namun dalam hal ini hanya akan dijelaskan beberapa graf yang relevan saja dengan penelitian ini.

a. Graf sederhana,

Graf sederhana adalah graf yang tidak memiliki rusuk ganda dan gelang. Rusuk ganda adalah dua rusuk yang menghubungkan dua simpul yang sama, sedangkan gelang adalah suatu simpul yang menghubungkan suatu simpul dengan simpul itu sendiri (loop). Contoh graf sederhana dapat dilihat pada Gambar 2.3.


(13)

13

Gambar 2.3. Graf G1

b. Graf berarah,

Graf berarah adalah graf yang setiap rusuknya memiliki orientasi arah. Arah rusuk yang menghubungkan dua buah simpul dilambangkan dengan anak panah.

Contoh graf berarah dapat dilihat pada Gambar 2.4.

Gambar 2.4. Graf G2

c. Graf berbobot,

Graf yang setiap rusuknya diberi sebuah harga/bobot. Contoh graf berbobot dapat dilihat pada Gambar 2.5.


(14)

14 3. Keterhubungan

Pada bagian ini akan dijelaskan masing-masing keterhubungan graf yaitu, pengertian jalan, lintasan, jalur/jejak, siklus dan sirkuit yang disertai dengan contoh gambar dan kalimat untuk memperjelas pengertian-pengertian tersebut.

Gambar 2.6. Graf G4

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 uvwxyz atau dengan kata lain walk antara u sampai z. (Robin J. Wilson & John J. Watkin, 1990 : 34).

Contoh 1:

W1 = v2,v3,v1,v2,v4,v1,v2,v4,v5,v1,v2 berarti W1 merupakan sebuah jalan di G4.

b. Jejak (trail)

Jika seluruh rusuk (tidak harus seluruh simpul) pada sebuah trayek berbeda, maka trayek tersebut disebut trail (jejak). (Robin J. Wilson & John J. Watkin, 1990 : 35)

Contoh 2:

W2 = v2,v3,v1,v4,v5,v1 berarti W2 merupakan sebuah jejak di G4.

c. Lintasan (path)

Jika seluruh rusuk dan simpul pada sebuah trayek berbeda, maka trayek tersebut disebut lintasan. (Robin J. Wilson & John J. Watkin, 1990 : 35).


(15)

15

Contoh 3:

W3 = v1,v3,v2,v4,v5 berarti W3 merupakan sebuah lintasan di G4.

d. Sirkuit (circuit)

Jika seluruh rusuk (tidak harus seluruh simpul) pada sebuah trayek berbeda, serta titik awal dan titik akhirnya berhimpit, maka trayek tersebut disebut circuit (sirkuit).

Contoh 4:

W4 = v2,v3,v1,v4,v5,v1,v2 adalah merupakan sebuah sirkuit di G4.

e. Sikel (cycle)

Jika seluruh rusuk dan simpul pada sebuah trayek berbeda, serta titik awal dan titik akhirnya berhimpit, maka trayek tersebut disebut cycle (sikel). Contoh 5:

W5 = v1,v3,v2,v4,v5,v1 merupakan sebuah sikel di G4.

Suatu graf G dikatakan terhubung jika untuk setiap pasang dua simpulnya terhubung. Simpul u dan v disebut terhubung jika terdapat lintasan dari u ke v. (Nizhizeki dan Rahman, 2004: 22)

4. Representasi Graf dalam Matriks

Permasalahan optimasi distribusi dapat direpresentasikan dalam sebuah graf. Simpul merepresentasikan depot/konsumen, dan rusuk merepresentasikan jalur depot ke konsumen dan jalur antar konsumen. Keterhubungan antar simpul pada graf akan disajikan dalam sebuah matriks agar dapat lebih mudah pada penyelesaiannya. Matriks tersebut dinamakan matriks ketetanggaan. Matriks ketetanggaan digunakan dalam merepresentasikan suatu graf berdasarkan banyak rusuk yang menghubungkan simpul-simpulnya. Banyaknya baris dan kolom matriks sama dengan banyak simpul yang ada dalam graf.


(16)

16

Jong Jek Siang (2006 : 273) mendefinisikan matriks ketetanggaan sebagai berikut. Misalkan G adalah graf tak berarah dengan simpul-simpul v1, v2, v3, …, vn

dengan n berhingga. Matriks ketetanggaan yang sesuai dengan graf G adalah matriks A = [aij] dengan aij merupakan banyak rusuk yang menghubungkan

simpul vi dengan simpul vj pada graf tak berarah akan selalu sama dengan banyak

rusuk yang menghubungkan simpul vj dengan simpul vi, maka matriks

ketetanggaannya merupakan matriks ketetanggaan yang simetris [aij] = [aji], untuk

semua i,j V, dimana V adalah himpunan simpul.

Graf G4 pada Gambar 2.7 jika dinyatakan dalam matriks ketetanggaan adalah

sebagai berikut :

[ ]

Gambar 2.7. Matriks Ketetanggaan

Pada matriks ketetanggaan dapat dilihat simpul yang saling berhubungan maupun tidak. Jika aij = 0 maka simpul vi tidak terhubung dengan simpul vj,

sedangkan jika aij = 1 maka simpul vi terhubung dengan simpul vj.

E. Vehicle Routing Problem

1. Pengertian Vehicle Routing Problem

Menurut Rahmi dan Murti (2013): Vehicle Routing Problem (VRP) merupakan permasalahan dalam sistem distribusi yang bertujuan untuk membuat suatu rute yang optimal, dengan sekelompok kendaraan yang sudah diketahui kapasitasnya, agar dapat memenuhi permintaan konsumen dengan lokasi dan


(17)

17

jumlah permintaan yang telah diketahui. Suatu rute yang optimal adalah rute yang memenuhi berbagai kendala operasional, yaitu memiliki total jarak dan waktu perjalanan yang ditempuh terpendek dalam memenuhi permintaan konsumen serta menggunakan kendaraan dalam jumlah yang terbatas. Berikut ini adalah beberapa kendala atau batasan yang harus dipenuhi dalam VRP yaitu:

1. Rute kendaraan dimulai dari depot dan berakhir di depot,

2. Masing-masing konsumen harus dikunjungi sekali dengan satu kendaraan, 3. Kendaraan yang digunakan adalah homogen dengan kapasitas tertentu,

sehingga permintaan konsumen pada setiap rute yang dilalui tidak boleh melebihi kapasitas kendaraan.

4. Jika kapasitas kendaraan sudah mencapai batas, maka konsumen berikutnya akan dilayani oleh shift berikutnya.

Tujuan umum VRP menurut Toth dan Vigo (2002) adalah

1. Meminimalkan jarak dan biaya tetap yang berhubungan dengan penggunaan kendaraan,

2. Meminimalkan banyaknya kendaraan yang dibutuhkan untuk melayani permintaan seluruh konsumen,

3. Menyeimbangkan rute-rute dalam hal waktu perjalanan dan muatan kendaraan, dan

4. Meminimalkan pinalti sebagai akibat dari pelayanan yang kurang memuaskan terhadap konsumen, seperti keterlambatan pengiriman dan lain sebagainya.


(18)

18 2. Klasifikasi Jenis-jenis VRP

Terdapat beberapa jenis VRP yang tergantung pada jumlah faktor pembatas dan tujuan yang akan dicapai. Pembatas yang paling umum digunakan yaitu jarak dan waktu. Tujuan yang ingin dicapai biasanya meminimalkan jarak tempuh, waktu maupun biaya (Indra dkk, 2014).

Berdasarkan faktor pembatasnya, VRP terbagi menjadi beberapa jenis, diantaranya :

a. MTVRP (Multiple Trips Vehicle Routing Problem)

Setiap kendaraan dapat melayani lebih dari satu rute untuk memenuhi kebutuhan konsumen.

b. VRPTW (Vehicle Routing Problem with Time Windows)

Setiap konsumen yang dilayani oleh kendaraan memiliki batas waktu menerima pelayanan.

c. Pickup and Delivery Vehicle Routing Problem

Terdapat sejumlah barang yang perlu dipindahkan dari lokasi penjemputan tertentu ke lokasi pengiriman lainnya.

d. CVRP (Capacited Vehicle Routing Problem)

Kendaraan yang memiliki keterbatasan daya angkut (kapasitas) barang yang harus diantarkan ke suatu tempat.

e. VRP with Multiple Products

Konsumen memiliki pesanan lebih dari satu jenis produk yang harus diantarkan.

f. MDVRP (Multiple Depot Vehicle Routing Problem) Depot awal untuk melayani konsumen lebih dari satu.


(19)

19

g. Periodic Vehicle Routing Problem

Adanya perencanaan yang berlaku untuk satuan waktu tertentu. h. VRP with Heterogeneous Fleet of Vehicles

Kapasitas masing-masing kendaraan tidak selalu sama. Jumlah dan tipe kendaraan diketahui.

F. Capacitated Vehicle Routing Problem with Time Windows

1. Pengertian

Capatitated vehicle routing problem with time windows (CVRPTW) adalah salah satu jenis VRP yang merupakan kombinasi dari bentuk umum capatitated vehicle routing problem (CVRP) dan vehicle routing problem with time windows (VRPTW). CVRPTW bertujuan untuk membentuk rute optimal untuk memenuhi permintaan konsumen yang dilakukan secara delivery dengan kendala kapasitas dan time windows.

Kendala pertama pada CVRPTW adalah kendala kapasitas. Kendala kapasitas yang dimaksud adalah bahwa setiap kendaraan memiliki kapasitas tertentu dan jika kapasitas kendaraan sudah penuh, maka kendaraan tersebut tidak dapat melayani konsumen selanjutnya. Kendala berikutnya adalah kendala time windows pada masing-masing konsumen dan time windows pada depot. Time windows pada masing-masing konsumen [ai ,bi] adalah interval waktu yang

ditentukan oleh masing-masing konsumen bagi setiap kendaraan untuk dapat melakukan pelayanan pada konsumen tersebut. Kendaraan dapat memulai pelayanan di antara waktu awal konsumen (ai) dan waktu akhir konsumen (bi).


(20)

20

dilayani apabila kendaraan tersebut datang sebelum waktu awal konsumen, sedangkan time windows pada depot [a0 ,b0] didefinisikan sebagai interval waktu

yang menunjukkan waktu awal keberangkatan kendaraan dari depot dan waktu kembalinya kendaraan ke depot, itu artinya kendaraan tidak boleh meninggalkan depot sebelum waktu awal depot (a0) dan harus kembali ke depot sebelum waktu

akhir depot (b0).

2. Formulasi CVRPTW

Berikut akan diberikan pendefinisian variabel dan pemodelan matematika untuk CVRPTW.

Masalah CVRPTW dapat direpresentasikan sebagai suatu graf berarah G = (V,A) dengan V = {v0, v1, v2, …, vn} adalah himpunan simpul (verteks), v0

menyatakan depot dengan vn+1 merupakan depot semu dari v0 yaitu tempat

kendaraan memulai dan mengakhiri rute perjalanan. Sedangkan A = {(vi, vj) | vi, vj

V, i j} adalah himpunan rusuk atau garis berarah (arc) yang menghubungkan dua simpul yaitu ruas jalan penghubung antar konsumen ataupun antara depot dengan konsumen.

Setiap simpul {vi V, i 0} memiliki permintaan (demand) sebesar qi

dengan qi adalah integer positif. Himpunan K = {k1, k2, …, kn} merupakan

kumpulan kendaran yang homogen dengan kapasitas maksimal yang identik yaitu , sehingga panjang setiap rute dibatasi oleh kapasitas kendaraan. Setiap verteks (vi, vj) memiliki waktu tempuh Wtij yaitu waktu tempuh dari simpul i ke j. Waktu


(21)

21

Dari permasalahan CVRPTW tersebut kemudian diformulasikan ke dalam bentuk model matematika dengan tujuan meminimumkan total waktu tempuh kendaraan untuk melayani semua konsumen, jika z adalah fungsi tujuan maka

min ∑

dengan variabel keputusan sebagai berikut.

1. Variabel .

Variabel mempresentasikan ada atau tidaknya perjalanan dari konsumen ke-i ke konsumen ke-j oleh kendaraan ke-k.

1, jika ada perjalanan dari konsumen i ke konsumen j oleh kendaraan k. 0, jika tidak ada perjalanan dari konsumen i ke konsumen j oleh kendaraan k.

2. Variabel .

Variabel menyatakan waktu dimulainya pelayanan pada konsumen ke-i oleh kendaraan ke-k, menyatakan waktu saat kendaraan ke-k meninggalkan depot dan kembali ke depot, dan menyatakan lamanya pelayanan di konsumen ke-i.

3. Variabel .

Variabel menyatakan kapasitas total dalam kendaraan ke-k setelah melayani konsumen ke-i, sedangkan menyatakan banyaknya permintaan konsumen ke-j.

Adapun kendala dari permasalahan CVRPTW adalah sebagai berikut.

1. Setiap konsumen hanya dikunjungi tepat satu kali oleh kendaraan yang sama.


(22)

22

2. Total jumlah permintaan konsumen dalam satu rute tidak melebihi kapasitas kendaraan yang melayani rute tersebut.

Jika ada lintasan dari i ke j dengan kendaraan k, maka

3. Jika ada perjalanan dari konsumen ke-i ke konsumen ke-j, maka waktu memulai pelayanan di konsumen ke-j lebih dari atau sama dengan waktu kendaraan ke-k untuk memulai pelayanan di konsumen ke-i ditambah waktu pelayanan konsumen ke-i dan ditambah waktu tempuh perjalanan dari konsumen ke-i ke konsumen ke-j.

Jika ada lintasan dari i ke j dengan kendaraan k, maka

4. Waktu kendaraan untuk memulai pelayanan di konsumen ke-i harus berada

pada selang waktu .

5. Setiap rute perjalan berawal dari depot dan berakhir di depot.

∑ ∑ ∑ 6. Kekontinuan rute, artinya kendaraan yang mengunjungi setiap konsumen,

setelah selesai melayani akan meninggalkan konsumen tersebut.

∑ ∑ 7. Variabel keputusan Xijk merupakan integer biner


(23)

23 3. Representasi Solusi

Solusi layak dari formulasi CVRPTW yang dihasilkan adalah himpunan rute kendaraan yang memiliki total waktu tempuh minimal dengan memenuhi semua kendala yang ada. Himpunan rute tersebut dapat dituliskan sebagai berikut, { }. Solusi CVRPTW dapat digambarkan dalam bentuk graf yang setiap rute perjalanannya merupakan lintasan tertutup dengan depot sebagai simpul awal dan simpul akhir, sedangkan simpul lainnya adalah konsumen. Ilustrasi mengenai solusi layak dari CVRPTW seperti pada contoh berikut (Gambar 2.8).

Gambar 2.8. Ilustrasi Solusi Layak CVRPTW

Pada Gambar 2.8 terdapat 8 konsumen yaitu A, B, C, D, E, F, G, H. Dengan penggunaan algoritma eksak ataupun heuristik didapat sebuah solusi yang terdiri dari empat rute perjalanan kendaraan yang diawali dan diakhiri di depot serta memenuhi kendala yang ada pada CVRPTW. Rute pertama terdiri dari konsumen A dan B, rute kedua terdiri dari konsumen C dan D, rute ketiga terdiri dari konsumen E, F dan G, dan rute yang terakhir hanya terdiri dari konsumen H saja.

Dengan demikian, representasi solusi dari masalah CVRPTW tersebut adalah { }


(24)

24

dengan total waktu tempuh kendaraan = Wt0A,t + WtAB,t + WtB0,t + Wt0C,t + WtCD,t +

WtD0,t + Wt0E,t + WtEF,t + WtFG,t + WtG0,t + Wt0H,t + WtH0,t.

G. Algoritma

Menurut Al-Khawarizmi (dalam Sutejo, 1997 : 5) algoritma di dalam bidang pemrograman didefinisikan sebagai suatu metode khusus yang tepat dan terdiri dari serangkaian langkah-langkah yang terstruktur dan dituliskan secara sistematis yang dikerjakan untuk menyelesaikan suatu masalah dengan bantuan komputer, sedangkan menurut Antony Pranata (2000 : 8) definisi algoritma adalah urutan langkah-langkah berhingga untuk memecahkan masalah logika atau matematika.

Dari kedua definisi di atas, dapat disimpulkan bahwa algoritma adalah suatu metode khusus yang tepat dan terdiri dari langkah-langkah atau serangkaian langkah-langkah berhingga yang disusun secara logis, terstruktur, dan dituliskan secara sistematis untuk menyelesaikan suatu masalah. Dalam kehidupan sehari-hari, manusia juga menyelesaikan suatu masalah dalam hidupnya dengan menggunakan algoritma baik secara sadar maupun tidak.

Contoh 1:

Jika kita ingin mengambil uang tabungan di bank, pastinya akan melakukan suatu prosedur-prosedur dengan urutan sebagai berikut.

Gambar 2.9. Contoh Algoritma Mengambil Uang Tabungan di Bank

1. Mengambil no.antrian di bank 2. Mengambil blanko transaksi 3. Mengisi blanko transaksi

4. Menyerahkan blanko kepada petugas Bank 5. Menunggu antrian untuk dipanggil


(25)

25

Contoh tersebut merupakan salah satu bukti bahwa apa yang dilakukan dalam kehidupan sehari-hari menggunakan suatu algoritma, karena prosedur-prosedur yang dilakukan merupakan suatu algoritma.

Algoritma merupakan sebuah himpunan berhingga yang berisi instruksi-instruksi yang mempunyai karakteristik tertentu. Menurut Richard Johnsonbaugh (2001 : 121) karakteristik algoritma adalah sebagai berikut :

1. Presisi (precision)

Presisi (precision) adalah langkah-langkah dari suatu algoritma yang harus dinyatakan dengan jelas sehingga algoritma tersebut dapat ditulis dalam bahasa pemrograman.

2. Unik (uniueness)

Unik (uniueness) adalah hasil lanjutan dari setiap langkah dari pelaksanaan didefinisikan secara tunggal dan semata-mata bergantung pada masukan dan hasil dari langkah sebelumnya.

3. Terhingga (finiteness)

Terhingga (finiteness) adalah algoritma berhenti setelah beberapa instruksi terhingga dilaksanakan. Jadi tidak mungkin jika algoritma berjalan terus tanpa henti.

4. Masukan (input)

Masukan (input) adalah algoritma yang memerlukan suatu masukan. Masukan adalah besaran yang diberikan kepada algoritma sebelum algoritma mulai bekerja.


(26)

26

5. Keluaran (output)

Keluaran (output) adalah sebuah algoritma yang menghasilkan suatu keluaran dimana keluaran tersebut adalah hasil dari proses yang nilainya tergantung pada masukan.

6. Umum (generality)

Umum (generality) adalah algoritma yang berlaku pada semua anggota himpunan masukan.

Terdapat dua macam metode untuk penyelesaian permasalahan VRP, yaitu metode eksak dan metode heuristik :

1. Algoritma Eksak

Penyelesaian vehicle routing problem (VRP) menggunakan algoritma eksak dilakukan dengan cara menghitung setiap solusi sampai ditemukan solusi terbaik. Kelemahan dari algoritma ini adalah menghabiskan waktu yang sangat lama karena waktu yang dibutuhkan untuk mencari solusi permasalahan akan bergerak secara eksponensial dengan semakin rumitnya permasalahan. Kelebihan dari algoritma eksak dibandingkan dengan solusi heuristik adalah selalu mendapat solusi yang optimum.

2. Algoritma Heuristik

Pada kasus-kasus tertentu mungkin solusi optimum dapat diberikan namun memerlukan proses perhitungan yang sangat panjang dan tidak praktis. Bahkan beberapa masalah hanya dapat ditentukan solusi optimumnya dengan cara mencoba satu persatu semua solusi yang mungkin terjadi.


(27)

27

Ketika dihadapkan dengan masalah dalam lingkup yang besar, pencarian solusi dengan cara mencoba solusi satu persatu akan memakan waktu yang sangat lama dan tidak efektif. Oleh karena itu dibutuhkan suatu metode praktis yang mampu melakukan pendekatan agar dapat meminimalkan waktu sesingkat mungkin dalam mencari solusi. Algoritma ini disebut heuristik.

Algoritma heuristik bersifat memberikan pendekatan terhadap solusi yang ingin dicari. Algoritma heuristik yang baik selalu dapat memberikan solusi yang mendekati optimum. Algoritma heuristik mempunyai ciri-ciri menemukan solusi yang baik tetapi tidak harus terbaik dan lebih cepat atau mudah diterapkan dibandingkan dengan algoritma terperinci yang diketahui.

Algoritma heuristik merupakan algoritma yang dapat memberikan solusi yang mendekati optimal lebih cepat dibandingkan dengan algoritma eksak. Kelebihan algoritma heuristik adalah lebih cepat dan fleksibel untuk diaplikasikan dibandingkan dengan algoritma eksak.

H. Algoritma Floyd Warshall dan Nearest Neighbour 1. Algoritma Floyd Warshall

Menurut Jong Jek Siang (2011 : 297) : algoritma floyd warshall untuk mencari lintasan terpendek merupakan algoritma yang sederhana dan mudah implementasinya. Prinsip algoritma floyd warshall yaitu pada iterasi ke-1, dihitung jarak terpendek dari semua titik ke semua titik. Misalkan W(0) adalah matriks keterhubungan awal graf berarah berbobot, W* adalah matriks ketetanggaan berbobot terpendek dengan Wij*sama dengan lintasan terpendek dari


(28)

28

iterasi ke 1 hingga n yang dilakukan pada matriks. Namun dalam hal ini kita tidak mencari lintasan terpendek melainkan waktu tempuh terpendek pada masalah CVRPTW.

Adapun langkah-langkah pemecahan masalah CVRPTW dengan metode floyd warshallsebagai waktu tempuh terpendek antar node.

a. Langkah 1

Buat waktu tempuh antar node-node (Wt(0)) pada saat t dengan rumus : Wtij,t = jarak tempuh x 60/kecepatan pada saat t di jalur i-j

b. Langkah 2 Wt = Wt(0) c. Langkah 3

Untuk h = 1 hingga n Untuk i = 1 hingga n Untuk j = 1 hingga n

Jika Wtij,t > Wtih,t + Wthj,s , s = Wtih,t

maka tukar Wtij,t dengan Wtih,t + Wthj,s , s = Wtih,t

d. Langkah 4 Wt* = Wt e. Langkah 5


(29)

29

Penyajian langkah-langkah dari algoritma floyd warshall dalam bentuk flowchart dapat dilihat pada Gambar 2.10.

Gambar 2.10. Flowchart Algoritma Floyd Warshall

2. Algoritma Nearest Neighbour

Menurut Chairul, dkk (2014) : Metode nearest neighbour merupakan metode yang digunakan untuk memecahkan masalah pemilihan rute dengan cara mencari jarak terpendek untuk menempuh lokasi pengiriman. Prinsip dasar dari metode ini adalah membentuk rute dengan memilih konsumen yang terdekat dari lokasi awal.

Buat matriks waktu tempuh berdasarkan matriks jarak

tempuh dengan rumus : Wt = (jarak*60)/kecepatan

Tukar Wtij,t dengan

Wtih,t+Wthj,s,dimana

s=Wtih,t

Mulai

Selesai

Apakah sudah didapat hasil yang minimum?

Ya

Ya Tidak Tidak


(30)

30

Adapun langkah-langkah pemecahan masalah CVRPTW dengan algoritma nearest neighbour adalah sebagai berikut.

a. Langkah 1

Set depot sebagai titik awal, t = 0, dan demand = 0. b. Langkah 2

Cari konsumen ke-j yang memiliki waktu tempuh terpendek dari titik awal i. c. Langkah 3

Hitung total waktu tempuh kendaraan (Wt = t + waktu pelayanan i + Wtij,t).

Untuk Wt aj maka Wt = aj. Jika Wt bj maka lanjut ke Langkah 4. Jika

Wt > bj, maka lanjut ke Langkah 6.

d. Langkah 4

Hitung permintaan/muatan kendaraan (demand = demand + qi). Jika demand

Q, maka lanjut ke Langkah 5. Jika demand > Q, maka lanjut ke Langkah 6.

e. Langkah 5

Set konsumen ke-j sebagai titik awal, kemudian ulangi ke Langkah 3. f. Langkah 6

Batalkan pemilihan konsumen, kemudian pilih konsumen yang belum dilayani dan yang terdekat dengan titik awal berdasarkan keterurutan dan kembali ke Langkah 3. Jika semua konsumen tidak ada yang layak, lanjutkan ke Langkah 7.

g. Langkah 7

Kembali ke depot dan lanjut ke Langkah 8. h. Langkah 8

Jika semua konsumen telah dilayani maka algoritma dihentikan. Jika ada konsumen yang belum dilayani maka kembali ke Langkah 1.


(31)

31

Penyajian langkah-langkah dari algoritma nearest neighbour dalam bentuk flowchart dapat dilihat pada Gambar 2.11.

Gambar 2.11. Flowchart Algoritma Nearest Neighbour Cari konsumen ke-j dengan Wtij

dari yang terkecil dari depot/konsumen ke-i berdasarkan keterurutan

Ubah i = j, t = t + si + Wtij,t, dan

demand = demand + qi

Kembali ke depot Set i = depot, t = 0,

dan demand = 0

Apakah j memenuhi kendala

kapasitas dan time windows?

Apakah j daftar urutan terakhir?

Apakah ada konsumen yang belum dilayani ?

Tidak Tidak

Tidak

Ya Ya

Ya

Selesai Mulai


(32)

32

BAB III

METODE PENELITIAN

A. Metode Penelitian

Penelitian ini menggunakan penelitian kuantitatif. Penelitian kuantitatif adalah penelitian yang dimulai dari teori, hipotesis, desain penelitian, memilih subjek, mengumpulkan data, memproses data, menganalisa data, dan menuliskan kesimpulan. Tujuan dari penelitian ini adalah menentukan model yang akan digunakan dalam permasalahan CVRPTW dan menyelesaikannya dengan algoritma floyd warshall dan nearest neighbour.

B. Jenis dan Sumber Data Penelitian

Jenis data yang digunakan dalam permasalahan ini adalah data simulasi yang dibuat berdasarkan karakteristik dari sebuah data nyata. Data yang akan dibuat dalam data simulasi ini antara lain letak depot dan konsumen, permintaan konsumen, dan time windows. Dalam hal ini akan ditambah dengan data matriks hubung dan alokasi kecepatan rata-rata pada tiap jalur berdasarkan waktu per jam. Penambahan kendala tersebut bertujuan untuk mengembangkan pemodelan matematika agar lebih kompleks dan dapat lebih real untuk diaplikasikan ke dalam permasalahan yang sebenarnya.

C. Teknik Pengumpulan Data

Teknik pengumpulan data yang digunakan dengan cara mencari referensimelalui buku-buku, skripsi, dokumen, jurnal-jurnal dan sebagainya. Teknik ini hanya digunakan sebagai referensi dalam pembuatan data simulasi.


(33)

33

D. Teknik Analisis Data

Menurut Bodgan dan Biklen (1982), pengertian analisis data merupakan upaya yang dilakukan dengan cara bekerja dengan data, mengorganisasikan data, memilah-milahnya menjadi satuan yang dapat dikelola, mensintesiskannya, mencari dan menemukan pola, menemukan apa yang penting dan apa yang dipelajari, dan memutuskan apa yang akan diceritakan ke orang lain.

Untuk analisis data dilakukan dengan cara mengolah data tersebut dengan langkah-langkah.

1. Input data ke dalam program sesuai dengan perintah program. 2. Data yang telah diinput akan diolah oleh program.

3. Dihasilkan output dari hasil pengolahan data.

Setelah data selesai diolah, hasil output diinterpretasikan secara kualitatif dengan tujuan menarik kesimpulan dan menjawab rumusan masalah pada permasalahan ini.

E. Desain Penelitian

Desain penelitian adalah rencana atau strategi yang digunakan untuk menjawab pertanyaan penelitian (menguji hipotesis) dan mengontrol variabel atau fokus penelitian. Desain penelitian juga dapat dimengerti sebagai rencana dan struktur penyelidikan yang digunakan untuk memperoleh bukti-bukti empiris dalam menjawab pertanyaan penelitian. Jadi desain penelitian dapat diartikan sebagai rancangan penelitian yang dijadikan pedoman dalam melakukan sebuah proses penelitian.


(34)

34

Penelitian diawali dengan studi pustaka mengenai algoritma floyd warshall dan algoritma nearest neighbour. Selanjutnya akan ditentukan variabel input dan output yang akan digunakan dalam model, untuk menentukan model menggunakan bantuan program MatLab. Gambar 3 merupakan desain tahapan penelitian yang dilakukan dalam penelitian ini.

Gambar 3. Desain Penelitian Pengoptimalan Rute dalam CVRPTW

1. Mencari studi pustaka yang berkaitan dengan model algoritma floyd warshall dan nearest neighbour.

2. Merancang model permasalahan. 3. Membuat data simulasi.


(35)

35

BAB IV PEMBAHASAN

Pada bab ini akan dijelaskan mengenai penggunaan algoritma floyd warshall dan nearest neighbour dalam penyelesaian masalah capacitated vehicle routing problem with time windows (CVRPTW) dan implementasinya pada data simulasi dengan menggunakan Matlab (Matrix Laboratory).

A. Algoritma Floyd Warshall dan Nearest Neighbour pada Model CVRPTW

Penggunaan algoritma floyd warshall dan nearest neighbour pada penyelesaian capacitated vehicle routing problem with time windows (CVRPTW) akan dijelaskan pada A.1 dan A.2.

1. Algoritma Floyd Warshall

Dalam hal ini akan dijelaskan penggunaan algoritma floyd warshall dalam membentuk rute kendaraan pada penyelesaian capacitated vehicle routing problem with time windows (CVRPTW). Berikut langkah-langkahnya.

a. Langkah 1 Wt = Wt(0) b. Langkah 2

Untuk h = 1 hingga n Untuk i = 1 hingga n Untuk j = 1 hingga n

Jika Wtij,t > Wtih,t + Wthj,s , s = t + Wtih,t

maka tukar Wtij,t dengan Wtih,t + Wthj,s , s = t + Wtih,t

c. Langkah 3 Wt* = Wt


(36)

36 d. Langkah 4

Ulangi langkah 2 sampai didapatkan hasil yang minimum. e. Langkah 5

Jika rute masih memungkinkan untuk ditambah muatan, maka sisipkan konsumen lain dalam rute tersebut dan ulangi langkah 2.

2. Algoritma Nearest Neighbour

Algoritma nearest neighbour merupakan algoritma yang memiliki prinsip dasar membentuk rute dengan memilih konsumen yang terdekat dari lokasi awal. Berikut langkah-langkah dari algoritma tersebut.

a. Langkah 1

Cari konsumen ke-j yang memiliki waktu tempuh terpendek dari titik awal i. b. Langkah 2

Hitung total waktu tempuh kendaraan (Wt = t + waktu pelayanan i + Wtij,t).

Untuk Wt aj maka Wt = aj. Jika Wt bj maka lanjut ke Langkah 3. Jika

Wt > bj, maka lanjut ke Langkah 5.

c. Langkah 3

Hitung permintaan/muatan kendaraan (demand = demand + qi). Jika

demand Q, maka lanjut ke Langkah 4. Jika demand > Q, maka lanjut ke Langkah 5.

d. Langkah 4

Set konsumen ke-j sebagai titik awal, kemudian ulangi ke Langkah 2. e. Langkah 5

Batalkan pemilihan konsumen, kemudian pilih konsumen yang belum dilayani dan yang terdekat dengan titik awal berdasarkan keterurutan dan kembali ke Langkah 2. Jika semua konsumen tidak ada yang layak, lanjutkan ke Langkah 6.


(37)

37 f. Langkah 6

Kembali ke depot. g. Langkah 7

Jika pada saat kembali ke depot Wt > bdepot, maka batalkan konsumen

terakhir dan kembali ke depot.

B. Formulasi Floyd Warshall dan Nearest Neighbour pada Penyelesaian CVRPTW

Fungsi tujuan dari model penentuan rute kendaraan pada penelitian ini adalah meminimumkan total waktu tempuh kendaraan, yaitu

min ∑

dengan memperhatikan kendala berikut ini. 1. Variabel .

Variabel mempresentasikan ada atau tidaknya perjalanan dari konsumen ke-i ke konsumen ke-j oleh kendaraan ke-k.

1, jika ada perjalanan dari konsumen i ke konsumen j oleh kendaraan k. 0, jika tidak ada perjalanan dari konsumen i ke konsumen j oleh kendaraan k.

2. Variabel .

Variabel menyatakan waktu dimulainya pelayanan pada konsumen ke-i oleh kendaraan ke-k, menyatakan waktu saat kendaraan ke-k meninggalkan depot dan kembali ke depot, dan menyatakan lamanya pelayanan di konsumen ke-i.

3. Variabel .

Variabel menyatakan kapasitas total dalam kendaraan ke-k setelah melayani konsumen ke-i, sedangkan menyatakan banyaknya permintaan konsumen ke-j.


(38)

38

Adapun kendala dari permasalahan CVRPTW adalah sebagai berikut.

1. Setiap konsumen hanya dikunjungi tepat satu kali oleh kendaraan yang sama.

∑ ∑ ∑

2. Total jumlah permintaan konsumen dalam satu rute tidak melebihi kapasitas kendaraan yang melayani rute tersebut.

Jika ada lintasan dari i ke j dengan kendaraan k, maka

3. Jika ada perjalanan dari konsumen ke-i ke konsumen ke-j, maka waktu memulai pelayanan di konsumen ke-j lebih dari atau sama dengan waktu kendaraan ke-k untuk memulai pelayanan di konsumen ke-i ditambah waktu pelayanan konsumen ke-i dan ditambah waktu tempuh perjalanan dari konsumen ke-i ke konsumen ke-j.

Jika ada lintasan dari i ke j dengan kendaraan k, maka

4. Waktu kendaraan untuk memulai pelayanan di konsumen i harus berada pada selang waktu .

5. Setiap rute perjalan berawal dari depot dan berakhir di depot.

∑ ∑ ∑

6. Kekontinuan rute, artinya kendaraan yang mengunjungi setiap konsumen, setelah selesai melayani akan meninggalkan konsumen tersebut.


(39)

39

7. Variabel keputusan Xijk merupakan integer biner

{ }

C. Penyelesaian Model CVRPTW dengan Algoritma Floyd Warshall dan Nearest Neighbour

Pada subbab sebelumnya telah dijelaskan mengenai penggunaan algoritma floyd warshall dan nearest neighbour dalam penyelesaian masalah CVRPTW dan implementasinya pada data simulasi. Pada subbab ini, akan diperlihatkan bagaimana aplikasi dari algorima floyd warshall dan nearest neighbour dalam permasalahan di kehidupan sehari-hari.

1. Deskripsi Masalah

Sebuah usaha yang bergerak di bidang jasa pengiriman barang menerapkan sistem layanan antar barang (delivery service) terhadap konsumennya. Distributor dari perusahaan akan mengantar barang ke konsumen. Wilayah operasi perusahaan adalah dalam lingkup satu propinsi. Jenis layanan pengiriman barang adalah one day service. One day service adalah pelayanan yang apabila pelanggan menginginkan pelayanan barang dapat dilakukan dalam satu hari dan dengan rentang waktu yang telah ditentukan sebelumnya oleh pelanggan. Pada penelitian ini, digunakan layanan one day sevice yang sesuai dengan permasalahan CVRPTW seperti pada Gambar 4.1.


(40)

40

Gambar 4.1. Permasalahan CVRPTW pada Data Simulasi

Untuk satu hari kerja, perusahaan memiliki transportation request yang hendak dilayani. Setiap transportation request terdiri dari informasi mengenai konsumen, lokasi pengiriman barang, permintaan konsumen, dan time windows konsumen. Terkadang dalam melakukan distribusi barang, perusahaan menentukan rute berdasarkan jarak tempuh saja, namun tidak memperkirakan tingkat kemacetan. Karena banyaknya pelanggan yang harus dilayani dengan batasan waktu dan jumlah permintaan/muatan yang berbeda-beda, ada kalanya pengiriman barang tidak tepat waktu dan ada kalanya kapasitas kendaraan tidak mencukupi. Hal tersebut juga dapat mengakibatkan tingkat pelayanan di perusahaan tersebut menurun.

Berdasarkan uraian di atas, penentuan rute yang saat ini digunakan oleh perusahaan masih kurang efektif karena dengan adanya beberapa kendala tersebut, mengakibatkan kurang maksimalnya pihak perusahaan dalam melakukan proses pengiriman barang ke konsumen. Oleh karena itu, diperlukan suatu metode dalam


(41)

41

penentuan rute yang efektif sehingga menghasilkan total waktu tempuh perjalanan yang optimal dengan mempertimbangkan kendala yang ada. Pada penelitian ini, akan digunakan algoritma floyd warshall dan nearest neighbour dalam menyelesaikan permasalahan di perusahaan.

2. Pengumpulan Data

Dalam menyelesaikan permasalahan CVRPTW, dibutuhkan beberapa data yang digunakan untuk mendapatkan solusi rute distribusi yang optimal. Data yang digunakan merupakan data yang berkaitan dengan permasalahan distribusi barang kepada konsumen. Dalam permasalahan ini, data yang digunakan adalah data simulasi. Tujuan dibuat data simulasi tersebut untuk menguji coba metode yang akan digunakan dan diharapkan dapat diimplementasikan ke dalam permasalahan nyata. Adapun data-data tersebut mengenai lokasi konsumen, jumlah permintaan konsumen, kapasitas kendaraan, time windows, service time, matriks jarak antar konsumen, alokasi rata-rata kecepatan pada waktu dan jalur tertentu.

1. Lokasi Depot dan Konsumen

Terdapat beberapa lokasi konsumen yang akan dikunjungi. Berikut disajikan data lokasi depot dan konsumen berdasarkan data simulasi. Namun karena hanya data simulasi, maka lokasi depot dan konsumen dibuat dalam bentuk koordinat-x dan koordinat-y


(42)

42

Tabel 4.1. Lokasi Depot dan Konsumen

No Keterangan Lokasi

Koordinat-x Koordinat-y

1 Depot 30 90

2 Konsumen 47 47

3 Konsumen 2 90

4 Konsumen 65 6

5 Konsumen 21 30

6 Konsumen 75 97

7 Konsumen 48 59

8 Konsumen 67 74

9 Konsumen 37 95

10 Konsumen 5 70

2. Kendaraan

Dalam melakukan pelayanan terhadap konsumen, kendaraan yang digunakan berupa mobil box. Jumlah kendaraan yang akan digunakan berdasarkan jumlah rute yang terbentuk. Setiap kendaraan memiliki box tempat meletakkan barang konsumen dengan kapasitas muatan 200 buah dan kecepatan rata-rata maksimal yang digunakan masing-masing kendaraan adalah 50 km/jam.

3. Jumlah Permintaan Konsumen

Jumlah permintaan setiap konsumen (qi) berbeda-beda dan satuan yang digunakan untuk jumlah permintaan ini adalah jumlah (buah). qi yang bernilai positif menyatakan banyaknya permintaan yang harus diantar ke konsumen ke-i. Berikut disajikan Tabel 4.2 mengenai jumlah permintaan dari setiap konsumen pada data simulasi.


(43)

43

Tabel 4.2. Jumlah Permintaan Konsumen

Node Keterangan Permintaan 2 Konsumen-1 70 3 Konsumen-2 60 4 Konsumen-3 45 5 Konsumen-4 55 6 Konsumen-5 70 7 Konsumen-6 70 8 Konsumen-7 70 9 Konsumen-8 65 10 Konsumen-9 60

4. Jarak

Data jarak yang diperlukan adalah jarak antara lokasi depot dengan lokasi konsumen dan jarak antar konsumen tersebut. Perhitungan jarak dilakukan dengan menggunakan bantuan perhitungan jarak antar dua titik

√ .

Data jarak dari depot ke konsumen dan jarak antar konsumen ditampilkan dalam bentuk matriks. Selanjutnya, jarak tempuh dari titik A ke titik B diasumsikan sama dengan jarak tempuh dari titik B ke titik A.

Tabel 4.3. Data Jarak antar lokasi

1 2 3 4 5 6 7 8 9 10

1 0 46.2385 28 91 60.6712 45.5412 35.8469 40.3113 8.6023 32.0156

2 46.2385 0 62.2415 44.7772 inf inf 12.0416 33.6006 inf inf

3 28 62.2415 0 105 62.9365 inf 55.4707 inf inf inf

4 91 44.7772 105 0 inf 91.5478 inf inf inf inf

5 60.6712 inf 62.9365 inf 0 86.0523 39.6232 63.6553 inf inf

6 45.5412 inf inf 91.5478 86.0523 0 46.6154 24.3516 inf inf

7 35.8469 12.0416 55.4707 inf 39.6232 46.6154 0 24.2074 inf 44.3847

8 40.3113 33.6006 inf inf 63.6553 24.3516 24.2074 0 inf 62.1289

9 8.6023 inf inf inf inf inf inf inf 0 inf


(44)

44 Keterangan :

inf = tidak ada akses secara langsung dari baris ke-i menuju kolom ke-j. 5. Waktu

Data waktu yang dibutuhkan terdiri daritime windows depot, time windows masing-masing konsumen, service time, dan waktu tempuh kendaraan. Waktu operasional untuk melakukan pelayanan dalam data simulasi ini dimulai dari pukul 07.00 WIB s.d. pukul 12.00 WIB dengan toleransi keterlambatan kembalinya kendaraan ke depot 15 menit, maka time windows depot dalam satuan menit adalah [0, 315].

Tabel 4.4. Time Windows Konsumen

Konsumen Time Windows Konsumen-1 07.00 – 11.00 Konsumen-2 07.00 – 12.00 Konsumen-3 07.45 – 11.00 Konsumen-4 07.00 – 12.00 Konsumen-5 07.00 – 12.00 Konsumen-6 07.00 – 11.30 Konsumen-7 08.00 – 11.00 Konsumen-8 07.45 – 11.30 Konsumen-9 07.30 – 11.00

Service time atau waktu pelayanan konsumen dapat dibagi menjadi waktu pemuatan barang (loading), waktu penurunan barang (unloading), dan waktu untuk urusan administrasi. Dalam penelitian ini, diketahui bahwa rata-rata waktu pelayanan pelanggan adalah 10 menit.

6. Keterhubungan

Data keterhubungan dalam penelitian ini adalah ada dan tidaknya akses secara langsung antar lokasi


(45)

45

Tabel 4.5. Data Keterhubungan antar lokasi.

Dari

Ke 1 2 3 4 5 6 7 8 9 10

1 0 1 1 1 1 1 1 1 1 1

2 1 0 1 1 0 0 1 1 0 0

3 1 1 0 1 1 0 1 0 0 0

4 1 1 1 0 0 1 0 0 0 0

5 1 0 1 0 0 1 1 1 0 0

6 1 0 0 1 1 0 1 1 0 0

7 1 1 1 0 1 1 0 1 0 1

8 1 1 0 0 1 1 1 0 0 1

9 1 0 0 0 0 0 0 0 0 0

10 1 0 0 0 0 0 1 1 0 0

7. Alokasi Kecepatan berdasarkan Waktu

Data alokasi kecepatan berdasarkan waktu adalah kecepatan rata-rata maksimal yang dapat ditempuh kendaraan pada pukul 07.00 – 12.00 dan di jalur tertentu. Untuk alokasi waktunya diambil kecepatan rata-rata maksimal setiap satu jam selama 5 jam.

Tabel 4.6. Data Kecepatan Rata-rata pada pukul 07.00-08.00

1 2 3 4 5 6 7 8 9 10 1 0 35 35 45 40 50 30 40 40 35 2 38 0 38 35 0 0 30 36 0 0 3 34 36 0 50 40 0 39 0 0 0 4 30 30 40 0 0 37 0 0 0 0 5 50 0 42 0 0 45 35 34 0 0 6 50 0 0 34 36 0 37 37 0 0 7 30 40 35 0 30 31 0 30 0 33 8 45 35 0 0 30 35 30 0 0 36

9 50 0 0 0 0 0 0 0 0 0


(46)

46

Tabel 4.7. Data Kecepatan Rata-rata pada pukul 08.00-09.00

1 2 3 4 5 6 7 8 9 10 1 0 50 40 45 45 50 35 45 45 45 2 42 0 43 40 0 0 40 39 0 0 3 38 45 0 55 48 0 45 0 0 0 4 30 35 45 0 0 39 0 0 0 0 5 40 0 43 0 0 55 38 40 0 0 6 45 0 0 38 36 0 40 45 0 0 7 35 40 40 0 35 37 0 35 0 40 8 47 45 0 0 40 35 35 0 0 40

9 53 0 0 0 0 0 0 0 0 0

10 45 0 0 0 0 0 45 40 0 0

Tabel 4.8. Data Kecepatan Rata-rata pada pukul 09.00-10.00

1 2 3 4 5 6 7 8 9 10 1 0 60 55 55 45 60 40 50 60 40 2 50 0 45 48 0 0 47 47 0 0 3 45 50 0 55 50 0 50 0 0 0 4 40 42 45 0 0 50 0 0 0 0 5 45 0 50 0 0 52 43 40 0 0 6 50 0 0 40 42 0 45 45 0 0 7 45 40 40 0 40 43 0 39 0 48 8 50 50 0 0 50 50 45 0 0 45

9 50 0 0 0 0 0 0 0 0 0

10 55 0 0 0 0 0 50 45 0 0

Tabel 4.9. Data Kecepatan Rata-rata pada pukul 10.00-11.00

1 2 3 4 5 6 7 8 9 10 1 0 65 70 60 55 65 55 60 70 55 2 80 0 60 65 0 0 55 60 0 0 3 65 70 0 65 70 0 70 0 0 0 4 65 60 55 0 0 60 0 0 0 0 5 50 0 60 0 0 58 59 60 0 0 6 55 0 0 60 62 0 70 68 0 0 7 50 60 60 0 65 58 0 60 0 55 8 60 65 0 0 70 65 59 0 0 60

9 80 0 0 0 0 0 0 0 0 0


(47)

47

Tabel 4.10. Data Kecepatan Rata-rata pada pukul 11.00-12.00

1 2 3 4 5 6 7 8 9 10 1 0 60 60 55 40 55 45 50 55 50 2 65 0 50 60 0 0 45 50 0 0 3 58 55 0 55 55 0 57 0 0 0 4 63 60 50 0 0 62 0 0 0 0 5 50 0 60 0 0 55 54 50 0 0 6 50 0 0 50 56 0 60 62 0 0 7 40 60 56 0 65 55 0 55 0 53 8 50 60 0 0 65 62 55 0 0 58

9 75 0 0 0 0 0 0 0 0 0

10 50 0 0 0 0 0 70 65 0 0

3. Pengolahan Data

Penyelesaian permasalahan CVRPTW untuk mendapatkan solusi rute distribusi pada data simulasi dilakukan dengan mengolah data yang telah diperoleh dan dijelaskan sebelumnya pada subbab C.2. Permasalahan CVRPTW tersebut akan diselesaikan dengan menggunakan Algoritma floyd warshall dan nearest neighbour. Penggunaan algoritma floyd warshall dan nearest neighbour dalam menyelesaikan masalah CVRPTW dimulai dengan pembentukan matriks waktu tempuh yang kemudian diolah dengan algoritma floyd warshall yang akan dijelaskan pada subbab A.1. Selanjutnya penyelesaian masalah menggunakan algoritma nearest neighbour akan dijelaskan pada subbab A.2. Namun sebelumnya, akan disajikan Tabel 4.11 mengenai data pelanggan berdasarkan perolehan data yang telah dijelaskan pada subbab C.2 untuk membantu proses penyelesaian masalah CVRPTW tersebut.


(48)

48

Tabel 4.11. Data Keseluruhan

No Lokasi Demand Time Windows Koor-x Koor-y

1 30 90 0 0 315 10

2 47 47 70 0 240 10

3 2 90 60 0 300 10

4 65 6 45 45 240 10

5 21 30 55 0 300 10

6 75 97 70 0 300 10

7 48 59 70 0 270 10

8 67 74 70 60 240 10

9 37 95 65 45 270 10

10 5 70 60 30 240 10

Keterangan :

Berikut langkah-langkah penyelesaian masalah CVRPTW dengan algoritma nearest neighbour.

1. Pembentukan rute pertama

Perjalanan diawali dari depot(1) dengan kendaraan-1 dan pada pukul 07.00 (t=0). Kemudian konsumen akan dilayani berturut-turut sesuai dengan batasan kendala dan kembali ke depot sebelum batas waktu akhir depot. Adapun langkah-langkah pembentukan rute pertama.

a. Membuat matriks waktu tempuh saat t=0. Kecepatan rata-rata kendaraan bersifat dinamis berdasarkan waktu dan kecepatan rata-rata maksimal kendaraan yaitu 50 km/jam. Jika kecepatan rata-rata maksimal kendaraan < kecepatan rata-rata pada kondisi jalan dan waktu tertentu, maka kecepatan rata-rata yang digunakan adalah kecepatan rata-rata maksimal kendaraan. Jika kecepatan rata-rata maksimal kendaraan > kecepatan rata-rata pada kondisi jalan dan waktu tertentu, maka


(49)

49

kecepatan rata-rata yang digunakan adalah kecepatan rata-rata pada kondisi jalan dan waktu tertentu.

Tabel 4.12.a. Matriks waktu tempuh kendaraan ke-1 saat t=0

1 2 3 4 5 6 7 8 9 10

1 0 79.266 48 121.3333 91.0069 54.6494 71.6938 60.4669 12.9035 54.8839

2 73.0082 0 98.276 76.761 inf inf 24.0832 56.001 inf inf

3 49.4118 103.7358 0 126 94.4047 inf 85.3396 inf inf inf

4 182 89.5545 157.5 0 inf 148.4559 inf inf inf inf

5 72.8055 inf 89.9093 Inf 0 114.7364 67.9255 112.3329 inf inf

6 54.6494 inf inf 161.5549 143.4205 0 75.5926 39.4891 inf inf

7 71.6938 18.0624 95.0927 Inf 79.2465 90.2234 0 48.4149 inf 80.6994

8 53.7484 57.601 inf Inf 127.3106 41.7456 48.4149 0 inf 103.5482

9 10.3228 inf inf Inf inf inf inf inf 0 inf

10 48.0234 inf inf Inf inf inf 66.5770 98.0983 inf 0

b. Memilih konsumen yang akan dilayani berdasarkan matriks waktu tempuh terkecil dari depot yaitu konsumen-8 dengan waktu tempuh 12.9035 menit dan demand 65 buah. Karena waktu tempuh dari depot ke konsumen-8 adalah 12.9035 menit < , maka kendaraan sampai di tempat konsumen lebih awal dari time windows. Jadi konsumen mulai dilayani pada pukul 07.45 dengan lama pelayanan 10 menit dan total demand < kapasitas kendaraan. Jadi, rute sementara yang terbentuk adalah 1 – 9 dengan waktu tempuh total menit dan total demand = 65 buah.

c. Karena kendaraan selesai melayani konsumen-8 pada pukul 07.55, maka buat matriks waktu tempuh saat t=55.


(50)

50

Tabel 4.12.b. Matriks waktu tempuh kendaraan ke-1 saat t=55

1 2 3 4 5 6 7 8 9 10

1 0 61.6513 43.8261 121.3333 84.0063 54.6494 64.5244 55.8156 11.9109 46.1025

2 68.2208 0 90.3505 70.0861 inf inf 19.7044 53.0536 inf inf

3 45.8182 88.9164 0 126 83.2983 inf 77.401 inf inf inf

4 182 80.599 145.3846 0 inf 143.2922 inf inf inf inf

5 84.0063 inf 88.5044 Inf 0 103.2628 64.2539 100.5084 inf inf

6 58.553 inf Inf 149.8055 143.4205 0 71.7161 34.5141 inf inf

7 64.5244 18.0624 86.8237 Inf 71.3218 79.9122 0 43.5734 inf 70.7013

8 52.2017 48.3849 Inf Inf 104.1633 41.7456 43.5734 0 inf 96.4069

9 10.3228 inf Inf Inf inf inf inf inf 0 inf

10 44.3293 inf Inf Inf inf inf 61.4557 94.7729 inf 0

d. Karena tidak ada akses dari konsumen-8 ke konsumen lain,maka kendaraanharus kembali ke depot. Waktu tempuh dari konsumen-8 ke depot adalah menit. Waktu tempuh total

menit < , maka memenuhi kendalatime windows. Jadi kendaraan sampai di depot pada pukul 08.06. Jadi, rute yang terbentuk adalah 1 – 9 – 1 dengan waktu tempuh total 66 menit dan total demand = 65 buah.


(51)

51

Gambar 4.2. Hasil Rute 1 pada Data Simulasi dengan NN

2. Pembentukan rute kedua

Perjalanan diawali dari depot(1) dengan kendaraan-2 dan pada pukul 07.00 (t=0). Kemudian konsumen akan dilayani berturut-turut sesuai dengan batasan kendala dan kembali ke depot sebelum batas waktu akhir depot. Adapun langkah-langkah pembentukan rute kedua.

a. Membuat matriks waktu tempuh saat t=0. Kecepatan rata-rata kendaraan bersifat dinamis berdasarkan waktu dan kecepatan rata-rata maksimal kendaraan yaitu 50 km/jam. Jika kecepatan rata-rata maksimal kendaraan < kecepatan rata-rata pada kondisi jalan dan waktu tertentu, maka kecepatan rata-rata yang digunakan adalah kecepatan rata-rata maksimal kendaraan. Jika kecepatan rata-rata maksimal kendaraan > kecepatan rata-rata pada kondisi jalan dan waktu tertentu, maka kecepatan rata-rata yang digunakan adalah kecepatan rata-rata pada


(52)

52

kondisi jalan dan waktu tertentu. Tabel disajikan di Tabel B.1 pada Lampiran 2.

b. Memilih konsumen yang akan dilayani berdasarkan matriks waktu tempuh terkecil dari depot, yaitu konsumen-2 dengan waktu tempuh 48 menit dan demand 60 buah. Karena waktu tempuh dari depot ke konsumen-2 adalah 48 menit < , maka konsumen mulai dilayani pada pukul 07.48 dengan lama pelayanan 10 menit dan total demand 60 buah < kapasitas kendaraan. Jadi, rute sementara yang terbentuk adalah 1 – 3 dengan waktu tempuh total

menit dan total demand = 60 buah.

c. Karena kendaraan selesai melayani konsumen-2 pada pukul 07.58, maka buat matriks waktu tempuh saat t=58. Tabel disajikan di Tabel B.2 pada Lampiran 2.

d. Memilih konsumen yang akan dilayani berdasarkan matriks waktu tempuh terkecil dari konsumen-2, yaitu konsumen-6 dengan waktu tempuh 75.2996 76 menit dan demand 70 buah. Karena waktu tempuh dari konsumen-8 ke konsumen-6 adalah 76 menit, maka total waktu tempuh sementara adalah 134 menit < , konsumen mulai dilayani pada pukul 09.14 dengan lama pelayanan 10 menit dan total demand 60 + 70 = 130 buah < kapasitas kendaraan. Jadi, rute sementara yang terbentuk adalah 1 – 3 – 7 dengan waktu tempuh total

menit dan total demand = 130


(53)

53

e. Karena kendaraan selesai melayani konsumen-6 pada pukul 09.24, maka buat matriks waktu tempuh saat t=144. Tabel disajikan di Tabel B.3 pada Lampiran 2.

f. Memilih konsumen yang akan dilayani berdasarkan matriks waktu tempuh terkecil dari konsumen-6, yaitu konsumen-1 dengan waktu tempuh 18.0624 19 menit dan demand 70 buah. Karena waktu tempuh dari konsumen-6 ke konsumen-1 adalah 19 menit, maka total waktu tempuh sementara adalah 165 menit < , konsumen mulai dilayani pada pukul 09.45 dengan lama pelayanan 10 menit dan total demand 60 + 70 + 70 = 200 buah = kapasitas kendaraan. Jadi, rute sementara yang terbentuk adalah 1 – 3 – 7 – 2 dengan waktu tempuh total menit dan total demand = 200 buah.

g. Karena kendaraan selesai melayani konsumen-1 pada pukul 09.53, maka buat matriks waktu tempuh saat t=173. Tabel disajikan di Tabel B.4 pada Lampiran 2.

h. Karena kapasitas kendaraan-2 sudah penuh, maka kendaraan harus kembali ke depot. Waktu tempuh dari konsumen-1 ke depot adalah

menit. Waktu tempuh total

menit < , maka memenuhi kendala time windows. Jadi kendaraan sampai di depot pada pukul 10.49. Jadi, rute yang terbentuk adalah 1 – 3 – 7 – 2 – 1 dengan waktu tempuh total 229 menit dan total demand = 200 buah.


(54)

54

Gambar 4.3. Hasil Rute 2 pada Data Simulasi dengan NN

3. Pembentukan rute ketiga

Perjalanan diawali dari depot(1) dengan kendaraan-3 dan pada pukul 07.00 (t=0). Kemudian konsumen akan dilayani berturut-turut sesuai dengan batasan kendala dan kembali ke depot sebelum batas waktu akhir depot. Adapun langkah-langkah pembentukan rute ketiga.

a. Membuat matriks waktu tempuh saat t=0. Kecepatan rata-rata kendaraan bersifat dinamis berdasarkan waktu dan kecepatan rata-rata maksimal kendaraan yaitu 50 km/jam. Jika kecepatan rata-rata maksimal kendaraan < kecepatan rata-rata pada kondisi jalan dan waktu tertentu, maka kecepatan rata-rata yang digunakan adalah kecepatan rata-rata maksimal kendaraan. Jika kecepatan rata-rata maksimal kendaraan > kecepatan rata-rata pada kondisi jalan dan waktu tertentu, maka kecepatan rata-rata yang digunakan adalah kecepatan rata-rata pada


(55)

55

kondisi jalan dan waktu tertentu. Tabel disajikan di Tabel C.1 pada Lampiran 2.

b. Memilih konsumen yang akan dilayani berdasarkan matriks waktu tempuh terkecil dari depot, yaitu konsumen-5 dengan waktu tempuh 54.6494 55 menit dan demand 70 buah. Karena waktu tempuh dari depot ke konsumen-5 adalah 55 menit < , maka konsumen mulai dilayani pada pukul 07.55 dengan lama pelayanan 10 menit dan total demand 70 buah < kapasitas kendaraan. Jadi, rute sementara yang terbentuk adalah 1 – 6 dengan waktu tempuh total menit dan total demand = 70 buah.

c. Karena kendaraan selesai melayani konsumen-5 pada pukul 08.05, maka buat matriks waktu tempuh saat t=65. Tabel disajikan di Tabel C.2 pada Lampiran 2.

d. Memilih konsumen yang akan dilayani berdasarkan matriks waktu tempuh terkecil dari konsumen-5, yaitu konsumen-7 dengan waktu tempuh 32.4688 33 menit dan demand 70 buah. Karena waktu tempuh dari konsumen-5 ke konsumen-7 adalah33 menit, maka total waktu tempuh sementara adalah 98 menit < , konsumen mulai dilayani pada pukul 08.38 dengan lama pelayanan 10 menit dan total demand 70 + 70 = 140 buah < kapasitas kendaraan. Jadi, rute sementara yang terbentuk adalah 1 – 6 – 8 dengan waktu tempuh total

menit dan total demand = 140 buah.


(56)

56

e. Karena kendaraan selesai melayani konsumen-7 pada pukul 08.48, maka buat matriks waktu tempuh saat t=108. Tabel disajikan di Tabel C.3 pada Lampiran 2.

f. Memilih konsumen yang akan dilayani berdasarkan matriks waktu tempuh terkecil dari konsumen-7, yaitu konsumen-9 dengan waktu tempuh 90.9203 91 menit dan demand 60 buah. Karena waktu tempuh dari konsumen-7 ke konsumen-9 adalah 91 menit, maka total waktu tempuh sementara adalah 199 menit < , konsumen mulai dilayani pada pukul 10.19 dengan lama pelayanan 10 menit dan total demand 70 + 70 + 60 = 200 buah = kapasitas kendaraan. Jadi, rute sementara yang terbentuk adalah 1 – 6 – 8 – 10 dengan waktu tempuh total menit dan total demand = 200 buah.

g. Karena kendaraan selesai melayani konsumen-9 pada pukul 10.29, maka buat matriks waktu tempuh saat t=209. Tabel disajikan di Tabel C.4 pada Lampiran 2.

h. Karena kapasitas kendaraan-3 sudah penuh, maka kendaraan harus kembali ke depot. Waktu tempuh dari konsumen-9 ke depot adalah

menit. Waktu tempuh total

menit < , maka memenuhi kendala time windows. Jadi kendaraan sampai di depot pada pukul 11.08. Jadi, rute yang terbentuk adalah 1 – 6 – 8 – 10 – 1 dengan waktu tempuh total 248 menit dan total demand = 200 buah.


(57)

57

Gambar 4.4. Hasil Rute 3 pada Data Simulasi dengan NN

4. Pembentukan rute keempat

Perjalanan diawali dari depot(1) dengan kendaraan-4 dan pada pukul 07.00 (t=0). Kemudian konsumen akan dilayani berturut-turut seperti saat membentuk rute sebelumnya. Adapun langkah-langkah pembentukan rute keempat.

a. Membuat matriks waktu tempuh saat t=0. Kecepatan rata-rata kendaraan bersifat dinamis berdasarkan waktu dan kecepatan rata-rata maksimal kendaraan yaitu 50 km/jam. Jika kecepatan rata-rata maksimal kendaraan < kecepatan rata-rata pada kondisi jalan dan waktu tertentu, maka kecepatan rata-rata yang digunakan adalah kecepatan rata-rata maksimal kendaraan. Jika kecepatan rata-rata maksimal kendaraan > kecepatan rata-rata pada kondisi jalan dan waktu tertentu, maka kecepatan rata-rata yang digunakan adalah kecepatan rata-rata pada


(58)

58

kondisi jalan dan waktu tertentu. Tabel disajikan di Tabel D.1 pada Lampiran 2.

b. Memilih konsumen yang akan dilayani berdasarkan matriks waktu tempuh terkecil dari depot, yaitu konsumen-4 dengan waktu tempuh 91.0069 92 menit dan demand 55 buah. Karena waktu tempuh dari depot ke konsumen-4 adalah 92 menit < , maka konsumen mulai dilayani pada pukul 08.32 dengan lama pelayanan 10 menit dan total demand 55 buah < kapasitas kendaraan. Jadi, rute sementara yang terbentuk adalah 1 – 5 dengan waktu tempuh total menit dan total demand = 55 buah.

c. Karena kendaraan selesai melayani konsumen-4 pada pukul 08.32, maka buat matriks waktu tempuh saat t=102. Tabel disajikan di Tabel D.2 pada Lampiran 2.

d. Karenatidak ada akses dari konsumen-4 ke konsumen lain, maka kendaraan harus kembali ke depot. Waktu tempuh dari konsumen-4 ke depot adalah menit. Waktu tempuh total

menit < , maka memenuhi kendala time windows. Jadi kendaraan sampai di depot pada pukul 10.14. Jadi, rute yang terbentuk adalah 1 – 5 – 1 dengan waktu tempuh total 194 menit dan total demand = 55 buah.


(59)

59

Gambar 4.5. Hasil Rute 4 pada Data Simulasi dengan NN

5. Pembentukan rute kelima

Perjalanan diawali dari depot(1) dengan kendaraan-5 dan pada pukul 07.00 (t=0). Kemudian konsumen akan dilayani berturut-turut seperti saat membentuk rute sebelumnya. Adapun langkah-langkah pembentukan rute kelima.

a. Membuat matriks waktu tempuh saat t=0. Kecepatan rata-rata kendaraan bersifat dinamis berdasarkan waktu dan kecepatan rata-rata maksimal kendaraan yaitu 50 km/jam. Jika kecepatan rata-rata maksimal kendaraan < kecepatan rata-rata pada kondisi jalan dan waktu tertentu, maka kecepatan rata-rata yang digunakan adalah kecepatan rata-rata maksimal kendaraan. Jika kecepatan rata-rata maksimal kendaraan > kecepatan rata-rata pada kondisi jalan dan waktu tertentu, maka kecepatan rata-rata yang digunakan adalah kecepatan rata-rata pada


(60)

60

kondisi jalan dan waktu tertentu. Tabel disajikan di Tabel E.1 pada Lampiran 2.

b. Memilih konsumen yang akan dilayani berdasarkan matriks waktu tempuh terkecil dari depot, yaitu konsumen-3 dengan waktu tempuh 121.3333 122 menit dan demand 45 buah. Karena waktu tempuh dari depot ke konsumen-3 adalah 122 menit < , maka konsumen mulai dilayani pada pukul 09.02 dengan lama pelayanan 10 menit dan total demand 45 buah < kapasitas kendaraan. Jadi, rute sementara yang terbentuk adalah 1 – 4 dengan waktu tempuh total menit dan total demand = 45 buah.

c. Karena kendaraan selesai melayani konsumen-3 pada pukul 09.12, maka buat matriks waktu tempuh saat t=132. Tabel disajikan di Tabel E.2 pada Lampiran 2.

d. Karena konsumen-3 adalah satu-satunya konsumen yang tersisa, maka kendaraan harus kembali ke depot. Waktu tempuh dari konsumen-3 ke depot adalah menit. Waktu tempuh total

menit < , maka memenuhi kendala time windows. Jadi kendaraan sampai di depot pada pukul 11.29. Jadi, rute yang terbentuk adalah 1 – 5 – 1 dengan waktu tempuh total 269 menit dan total demand = 45 buah.


(61)

61

Gambar 4.6. Hasil Rute 5 pada Data Simulasi dengan NN

Berdasarkan perhitungan yang telah dilakukan menggunakan algoritma nearest neighbour, permasalahan CVRPTW dalam data simulasi tersebut menghasilkan sebuah solusi yang terdiri dari 5 rute untuk melayani 9 konsumen. Adapun rekapitulasi hasil penyelesaian masalah menggunakan algoritma nearest neighbour.

Tabel 4.13. Rekapitulasi Hasil penyelesaian CVRPTW dengan NN Kendaraan

ke- Rute Perjalanan Demand (buah)

Waktu Tempuh (menit)

1 1 – 9 – 1 65 66

2 1 – 3 – 7 – 2 – 1 200 229

3 1 – 6 – 8 – 10 – 1 200 248

4 1 – 5 – 1 55 194

5 1 – 4 – 1 45 269

Total 565 1006

Pada Tabel 4.13, pembentukan rute menggunakan algoritma nearest neighbour menghasilkan 5 rute untuk melayani 9 pelanggan dengan waktu penyelesaian selama 1.006 menit.


(62)

62

Berikut disajikan output Matlab untuk penggunaan algoritma nearest neighbour dalam menyelesaikan masalah CVRPTW pada data simulasi. Source code secara lengkap untuk kedua algoritma tersebut seperti pada Lampiran 1.

Gambar 4.7. Hasil Output pada Matlab dengan nearest neighbour

Dengan demikian, dapat disimpulkan bahwa hasil yang paling optimal dari kombinasi kedua algoritma tersebut adalah terbentuk 5 rute dari 9 konsumen dengan total waktu tempuh 1.006 menit.

Source code penyelesaian masalah CVRPTW dengan MatLab. 1. Menentukan titik awal.

depot = 1; x1=depot

x2 = input ('\n Depot yang dipilih adalah '); fprintf('\n');

%Pertukaran data

[x3] = [m(x1,:)]; [m(x1,:)] = [m(x2,:)]; [m(x2,:)] = [x3];

2. Buat matriks waktu tempuh berdasarkan waktu t. for q=1:length(m1)


(63)

63 if Snew>=0 && Snew<45

if kec>v1(q,l)

kec_kendaraan=v1(q,l); else

kec_kendaraan=kec; end

elseif Snew>=45 && Snew<60

if kec>v1(q,l)+(v2(q,l)-v1(q,l))*(Snew-45)/15 kec_kendaraan=v1(q,l)+(v2(q,l)-v1(q,l))*(Snew-45)/15; else kec_kendaraan=kec; end ... ... ... end st(q,l)=(d(q,l)*60)/kec_kendaraan; if d(q,l)==0 && q==l

st(q,l)=0; end end end st; stnew=st;

3. Tentukan konsumen dengan menggunakan algoritma nearest neighbour. [minSt,next]=min(stnew(current,:));

Snew=Snew+minSt+m(current,7); if Snew<=m(next,5)

Snew=m(next,5); end

demand=demand+m(next,4);

if Snew<=m(next,6) && demand<=kapasitas A=Snew;

B=demand; end

for abc=1:size(pp,2)

if Snew>m(next,6) || demand>kapasitas stnew(current,next) = inf;

[minSt1,next1] = min(stnew(current,:)); stnew(current,next1) = inf;

Snew2=A+minSt1+m(current,7); if Snew2<m(next1,5);

Snew2=m(next1,5); else

Snew2; end

demand2=B+m(next1,4);

if (demand2<=kapasitas && Snew2<=m(next1,6)) && minSt1~=inf


(1)

ix

7. Seluruh dosen dan staf Jurusan Pendidikan Matematika Universitas Negeri Yogyakarta yang telah memberikan ilmu serta pelayanannya kepada penulis, 8. Teman-teman Program Studi Matematika 2011 yang telah saling mendukung

untuk saling belajar,

9. Semua pihak yang telah memberikan dukungan, bantuan, dan motivasi kepada penulis.

Penulis menyadari adanya kekurangan dalam penulisan tugas akhir skripsi ini. Oleh karena itu, penulis menerima kritik dan saran yang bersifat membangun. Semoga penulisan tugas akhir ini dapat bermanfaat bagi pembaca dan pihak yang terkait.

Yogyakarta, 23 Mei 2016 Penulis


(2)

x DAFTAR ISI

PERSETUJUAN ... II PENGESAHAN ... III PERNYATAAN ... IV PERSEMBAHAN ... VI ABSTRAK ... VII KATA PENGANTAR ... VII DAFTAR ISI ... X DAFTAR GAMBAR ... XII DAFTAR TABEL ... XIV BAB I PENDAHULUAN

A. Latar Belakang ... 1

B. Batasan Masalah ... 4

C. Rumusan Masalah ... 4

D. Tujuan Penelitian ... 5

E. Manfaat Penelitian ... 5

BAB II KAJIAN TEORI A. Distribusi ... 6

B. Optimasi ... 8

C. Efektivitas ... 11

D. Graf ... 11

1. Definisi Graf... 11

2. Jenis-jenis Graf... 12

3. Keterhubungan ... 14

4. Representasi Graf dalam Matriks ... 15

E. Vehicle Routing Problem ... 16

1. Pengertian Vehicle Routing Problem ... 16

2. Klasifikasi Jenis-jenis VRP ... 18

F. Capatitated Vehicle Routing Problem with Time Windows ... 19

1. Pengertian ... 19


(3)

xi

3. Representasi Solusi ... 23

G. Algoritma ... 24

H. Algoritma Floyd Warshall dan Nearest Neighbour ... 27

1. Floyd Warshall ... 27

2. Nearest Neighbour ... 29

BAB III METODE PENELITIAN A. Metode Penelitian ... 32

B. Jenis dan Sumber Data Penelitian ... 32

C. Teknik Pengumpulan Data ... 32

D. Teknik Analisis Data ... 33

E. Desain Penelitian ... 33

BAB IV PEMBAHASAN A. Algoritma Floyd Warshall dan Nearest Neighbour pada Model CVRPTW . ... 35

1. Algoritma Floyd Warshall ... 35

2. Algoritma Nearest Neighbour ... 36

B. Formulasi Floyd Warshall dan Nearest Neighbour pada Penyelesaian CVRPTW ... 37

C. Penyelesaian Model CVRPTW dengan Algoritma Floyd Warshall dan Nearest Neighbour ... 39

1. Deskripsi Masalah ... 39

2. Pengumpulan Data ... 41

3. Pengolahan Data ... 47

BAB V KESIMPULAN DAN SARAN A. Kesimpulan ... 75

B. Saran ... 77

DAFTAR PUSTAKA ... 78


(4)

xii

DAFTAR GAMBAR

Gambar 2.1. Flowchart Proses Pengambilan Keputusan ... 10

Gambar 2.2. Graf G ... 12

Gambar 2.3. Graf G1 ... 13

Gambar 2.4. Graf G2 ... 13

Gambar 2.5. Graf G3 ... 13

Gambar 2.6. Graf G4 ... 14

Gambar 2.7. Matriks Ketetanggaan ... 16

Gambar 2.8. Ilustrasi Solusi Layak CVRPTW ... 23

Gambar 2.9. Contoh Algoritma Mengambil Uang Tabungan di Bank ... 24

Gambar 2.10. Flowchart Algoritma Floyd Warshall ... 29

Gambar 2.11. Flowchart Algoritma Nearest Neighbour ... 31

Gambar 3. Desain Penelitian Pengoptimalan Rute dalam CVRPTW ... 34

Gambar 4.1. Permasalahan CVRPTW pada Data Simulasi ... 40

Gambar 4.2. Hasil Rute 1 pada Data Simulasi dengan NN ... 51

Gambar 4.3. Hasil Rute 2 pada Data Simulasi dengan NN ... 54

Gambar 4.4. Hasil Rute 3 pada Data Simulasi dengan NN ... 57

Gambar 4.5. Hasil Rute 4 pada Data Simulasi dengan NN ... 59

Gambar 4.6. Hasil Rute 5 pada Data Simulasi dengan NN ... 61

Gambar 4.7. Hasil Output pada Matlab dengan nearest neighbour ... 62

Gambar 4.8. Hasil Rute 1 pada Data Simulasi dengan FW ... 68

Gambar 4.9. Hasil Rute 2 pada Data Simulasi dengan FW ... 68

Gambar 4.10. Hasil Rute 3 pada Data Simulasi dengan FW ... 71

Gambar 4.11. Hasil Rute 4 pada Data Simulasi dengan FW ... 73


(5)

xiii

DAFTAR TABEL

Tabel 4.1. Lokasi Depot dan Konsumen ... 42

Tabel 4.2. Jumlah Permintaan Konsumen... 43

Tabel 4.3. Data Jarak antar lokasi ... 43

Tabel 4.4. Time Windows Konsumen ... 44

Tabel 4.5. Data Keterhubungan antar lokasi. ... 45

Tabel 4.6. Data Kecepatan Rata-rata pada pukul 07.00-08.00 ... 45

Tabel 4.7. Data Kecepatan Rata-rata pada pukul 08.00-09.00 ... 46

Tabel 4.8. Data Kecepatan Rata-rata pada pukul 09.00-10.00 ... 46

Tabel 4.9. Data Kecepatan Rata-rata pada pukul 10.00-11.00 ... 46

Tabel 4.10. Data Kecepatan Rata-rata pada pukul 11.00-12.00 ... 47

Tabel 4.11. Data Keseluruhan ... 48

Tabel 4.12.a. Matriks waktu tempuh kendaraan ke-1 saat t=0 ... 49

Tabel 4.12.b. Matriks waktu tempuh kendaraan ke-1 saat t=55 ... 50

Tabel 4.13. Rekapitulasi Hasil penyelesaian CVRPTW dengan NN... 61

Tabel 4.14.a. Total Waktu Tempuh Pembentukan Rute Pertama dengan Floyd Warshall pada iterasi 1 ... 64

Tabel 4.14.b. Total Waktu Tempuh Pembentukan Rute Pertama dengan Floyd Warshall pada iterasi 2 ... 65

Tabel 4.15. Total Waktu Tempuh Pembentukan Rute Pertama dengan Floyd Warshall saat Kembali ke Depot ... 67

Tabel 4.16.a. Total Waktu Tempuh Pembentukan Rute Ketiga dengan Floyd Warshall pada iterasi 1 ... 69

Tabel 4.16.b. Total Waktu Tempuh Pembentukan Rute Ketiga dengan Floyd Warshall pada iterasi 2 ... 69

Tabel 4.17. Total Waktu Tempuh Pembentukan Rute Ketiga dengan Floyd Warshall saat Kembali ke Depot ... 70

Tabel 4.18. Total Waktu Tempuh Pembentukan Rute Keempat dengan Floyd Warshall pada iterasi 1 ... 71

Tabel 4.19. Total Waktu Tempuh Pembentukan Rute Keempat dengan Floyd Warshall saat Kembali ke Depot ... 72


(6)

xiv