54
BAB III PEMBAHASAN
Pembahasan pada bab ini adalah penentuan rute tercepat pendistribusian makanan ringan PT. Sri Aneka Pangan Nusantara dengan aplikasi Logika Fuzzy dan Algoritma Semut. Logika fuzzy digunakan untuk memodelkan karakteristik- karakteristik yang dimiliki oleh jalan, yaitu panjang jalan derajat kejenuhan jalan, dan persentase kerusakan jalan. Model logika fuzzy yang digunakan adalah fuzzy Mamdani. Hasil keluaran dari logika fuzzy yang merupakan nilai lama waktu tempuh diolah dengan Algoritma Semut untuk menentukan rute tercepat.
A. Merepresentasikan Data ke Dalam Notasi Simpul
Pendistribusian makanan ringan oleh PT. Sri Aneka Pangan Nusantara dilaksanakan pada hari senin s/d sabtu dengan 4 mobil box. Pada hari senin, salah satu mobil melakukan pendistribusian di 22 outlet dengan lokasi kabupaten Bantul. Data tersebut yang akan dijadikan objek penelitian ini, selanjutnya akan direpresentasikan ke dalam bentuk simpul-simpul. PT. Sri Aneka Pangan Nusantara menjadi lokasi awal dan akhir rute. Berdasarkan hal tersebut maka berikut daftar simpul-simpul yang merepresentasikan PT. Sri Aneka Pangan Nusantara dan data outlet:
Tabel 3.1 Simpul Representasi PT Sri Aneka Pangan Nusantara dan data outlet
Simpul Nama Outlet
𝑣1 PT. Sri Aneka Pangan Nusantara 𝑣2 Toko Amira
55
Simpul Nama Outlet
𝑣6 Toko Fan’s 𝑣7 Toko Kuncoro 𝑣8 Toko Ana 𝑣9 Toko Mubarok 𝑣10 Toko Putra Menara 𝑣11 Toko Samirejo 𝑣12 Toko Fitri 𝑣13 Toko Berkah 𝑣14 Enha Mart 𝑣15 Toko Pandi 𝑣16 Toko Rumana 𝑣17 Toko Sakinah 𝑣18 Toko Rida 𝑣19 Toko Anugerah 𝑣20 Toko Rejeki Bendo 𝑣21 Toko Sidoharjo 𝑣22 Toko Lestari Imogiri 𝑣23 Toko Protelon
56
57
Gambar 3.1 menggambarkan representasi PT. Sri Aneka Pangan Nusantara dan 22 outlet yang terhubung dan berarah. Anak panah pada dua ujung sisi menunjukkan bahwa dua simpul merupakan jalan dua arah, sedangkan sisi dengan satu anak panah menunjukkan bahwa jalan searah ke arah yang ditunjukkan oleh anak panah.
B. Menentukan Panjang Jalan, Derajat Kejenuhan, dan Persentase Kerusakan Jalan
Tahap selanjutnya dicari panjang jalan yang dilalui dari simpul-simpul terhubung dengan bantuan google maps dari peta outlet yang termuat dalam Lampiran 1. Berikut data jalan yang dilalui dari simpul-simpul terhubung beserta panjang jalan, derajat kejenuhan, dan persentase kerusakan jalan:
Tabel 3. 2 Jalan yang Dilalui dari Simpul-simpul Terhubung
Simpul Terhubu
ng
Jalan yang Dilalui Panjang Jalan yang Dilalui (meter) Derajat Kejenuh an Persenta se Kerusak an Jalan 𝑣1, 𝑣9 Jl. Wahidin Sudiro Husodo,
Jl. Parangtritis, Jl. Tembi 890, 2890, 440, 0,36 0,73 0,72 0.17 0.20 0.22 𝑣1, 𝑣13 Jl. Wahidin Sudiro Husodo, 765, 0,36 0.17 𝑣1, 𝑣15 Jl. Wahidin Sudiro Husodo,
Jl. Manding-Imogiri, 890, 2990, 0,36 0,46 0.17 0.21 𝑣1, 𝑣18 Jl. Wahidin Sudiro Husodo,
58 Jl. Bibis, Jl. Goa Selarong, Jl. Gatot Subroto 1540, 4920, 1140, 0,61 0,58 0,61 0.22 0.17 0.20 𝑣3, 𝑣4 Jl. Imogiri Barat, Jl. Nasional III, Jl. Ngipik, Jl. Wiyoro, 1170, 4630, 480, 430, 0,61 0,20 0,67 0,65 0.32 0.23 0.20 0.21 𝑣5, 𝑣3 Jl. Raya Kasongan, Jl. Bantul, Jl. Nasional III, Jl. Imogiri Barat, 215, 2460, 2757, 1170, 0,64 0,72 0,20 0,61 0.23 0.24 0.23 0.32 𝑣3, 𝑣6 Jl. Imogiri Barat, Jl. Nasional III, Jl. Parangtritis, Jl. KH Ali Maksum, 1170, 970, 780, 670, 0,61 0,20 0,73 0,69 0.32 0.23 0.20 0.44 𝑣3, 𝑣9 Jl. Imogiri Barat, Jl. Nasional III, Jl. Parangtritis, Jl. Tembi, 1170, 970, 4110, 440, 0,61 0,20 0,73 0,72 0.32 0.23 0.20 0.22 𝑣4, 𝑣9 Jl. Wiyoro, Jl. Ngipik, Jl. Nasional III, Jl. Parangtritis, Jl. Tembi, 430, 480, 5600, 4110, 440, 0,65 0,67 0,20 0,73 0,72 0.21 0.20 0.23 0.20 0.22 𝑣4, 𝑣14 Jl. Wiyoro, Jl. Ngipik, Jl. Raya Pleret, Jl. Jejeran, Jl. Imogiri Timur, 430, 140, 4300 1870, 2030, 0,65 0,67 0,82 0,69 0,61 0.21 0.20 0.49 0.26 0.50 𝑣5, 𝑣8 Jl. Raya Kasongan, Jl. Jogoripon, 215, 850, 0,64 0,50 0.23 0.45 𝑣5, 𝑣10 Jl. Raya Kasongan, Jl. Bantul, Jl. S. Parman, 215, 4470, 170, 0,64 0,72 0,13 0.23 0.24 0.15 𝑣5, 𝑣12 Jl. Raya Kasongan, Jl. Bantul, Jl. Prof. Dr. Supomo, 215, 5200, 340, 0,64 0,72 0,47 0.23 0.24 0.16 𝑣6, 𝑣7 Jl. KH. Ali Maksum,
Jl. Puri Sewon Asri,
420, 430, 0,69 0,24 0.44 0.20 𝑣6, 𝑣9 Jl. KH Ali Maksum, Jl. Parangtritis, Jl. Tembi, 670, 3330, 4440, 0,69 0,73 0,72 0.44 0.20 0.22 𝑣7, 𝑣8 Jl. Puri Sewon Asri,
Jl. Jogoripon, 470, 430, 0,24 0,50 0.20 0,45 𝑣7, 𝑣9 Jl. Puri Sewon Asri,
59 Jl. Parangtritis, Jl. Tembi, 1904, 440, 0,73 0,72 0,20 0,22 𝑣8, 𝑣9 Jl. Jogoripon, Jl. Tegal Sari, Jl. Cepit-Tembi, Jl. Parangtritis, Jl. Tembi, 450, 1670, 300, 170, 440, 0,50 0,16 0,69 0,73 0,72 0,45 0,20 0,23 0,20 0,22 𝑣9, 𝑣11 Jl. Tembi, Jl. Parangtritis, Jl. Pramuka, Jl. Mgr. Sugiyo Pranoto, 440, 1450, 1630, 640, 0,72 0,73 0.24 0,35 0,22 0,20 0,17 0,18 𝑣9, 𝑣14 Jl. Tembi, Jl. Sultan Agung, Jl. Imogiri Timur, 1660, 2370, 260, 0,72 0,63 0,61 0,22 0,15 0,50 𝑣9, 𝑣15 Jl. Tembi, Jl. Imogiri Barat, Jl. Manding-Imogiri, 1660, 2660, 710, 0,72 0,61 0,61 0,22 0,32 0,21 𝑣9, 𝑣18 Jl. Tembi, Jl. Parangtritis, 440, 4530, 0,72 0,73 0,22 0,20 𝑣10, 𝑣11 Jl. S. Parman, Jl. Mgr. Sugiyo Pranoto, 270, 120 0,13 0,35 0,15 0,18 𝑣10, 𝑣12 Jl. S. Parman, Jl. Jend. Sudirman, Jl. Prof. Dr. Supomo, 170, 490, 340 0,13 0,34 0,47 0,15 0,45 0,16 𝑣10, 𝑣13 Jl. S. Parman, Jl. Jend. A. Yani,
Jl. HOS Cokro Aminoto, Jl. Wahidin Sudiro Husodo,
75, 390, 620, 365, 0,13 0,52 0,52 0,36 0,15 0,28 0,24 0,17 𝑣11, 𝑣13 Jl. Mgr. Sugiyo Pranoto,
Jl. HOS Cokro Aminoto, Jl. Wahidin Sudiro Husodo,
870, 100, 365, 0,35 0,52 0,36 0,18 0,24 0,17 𝑣12, 𝑣13 Jl. Prof. Dr. Supomo, Jl. Urip Sumoharjo,
Jl. Wahidin Sudiro Husodo,
60 𝑣15, 𝑣20 Jl. Manding-Imogiri, Jl. Imogiri Timur, 550, 1480, 0,61 0,61 0,21 0,50 𝑣16, 𝑣20 Jl. Imogiri Timur, 1600, 0,61 0,50 𝑣17, 𝑣18 Jl. Sultan Agung, 2880, 0,63 0,15 𝑣18, 𝑣19 Jl. Bakulan-Imogiri, 1000 0,28 0,09 𝑣19, 𝑣21 Jl. Bakulan-Imogiri, Jl. Imogiri Timur, 2530, 430, 0,28 0,61 0,09 0,50 𝑣19, 𝑣22 Jl. Bakulan-Imogiri, Jl. Makam Raja, 2600, 200 0,28 0,51 0,09 0,33 𝑣20, 𝑣21 Jl. Imogiri Timur, 480, 0,61 0,50 𝑣21, 𝑣22 Jl. Imogiri Timur, Jl. Makam Raja, 510, 200, 0,61 0,51 0,50 0,33 𝑣21, 𝑣23 Jl. Imogiri Timur, Jl. Makam Raja, 510, 950, 0,61 0,51 0,50 0,33 𝑣22, 𝑣23 Jl. Makam Raja, 750, 0,51 0,33
C. Pembentukan Nilai Lama Waktu Tempuh dengan Logika Fuzzy
1. Penentuan Variable Input dan Output
Dalam membentuk nilai lama waktu tempuh, diperlukan beberapa variable, yaitu variable input dan output, yaitu:
a. Variable Input
Variable kebutuhan input merupakan faktor-faktor yang mempengaruhi nilai kemacetan jalan, yaitu panjang jalan, derajat kejenuhan, dan kerusakan jalan.
b. Variable Output
Output yang dihasilkan adalah nilai waktu tempuh dari tiap jalan.
2. Penentuan Himpunan Universal
61
a. Himpunan Universal pada Variable Input
1) Variable Panjang Jalan
Berdasarkan penelitian yang dilakukan penulis diketahui bahwa panjang jalan terpendek yang dilalui dari ke outlet lainnya adalah 75 m dan panjang jalan terpanjang adalah 5600 m sehingga himpunan universal untuk panjang jalan adalah [75, 5600].
2) Variable Derajat Kejenuhan
Berdasarkan data yang diperoleh pada penelitian yang dilakukan di Dinas Perhubungan Kabupaten Bantul dan penelitian yang dilakukan penulis, diketahui bahwa kepadatan terendah adalah 0,20 dan kepadatan tertinggi adalah 0,73. Sesuai kriteria kemacetan berdasarkan derajat kejenuhan pada Lampiran 2, himpunan universal untuk derajat kejenuhan adalah [0, 1]
3) Variable Persentase Kerusakan Jalan
Berdasarkan penelitian yang dilakukan penulis diketahui bahwa persentase kerusakan jalan terkecil yang dilalui dari outlet ke outlet lainnya adalah 0,09 dan persentase kerusakan jalan terbesar adalah 0,50. Sesuai dengan kriteria tingkat kerusakan jalan oleh Bina Marga seperti yang tertera pada Lampiran 3, himpunan universal untuk kerusakan jalan adalah [0, 1]
b. Himpunan Universal pada Variable Output
62
3. Penentuan Himpunan Fuzzy
a. Himpunan Fuzzy pada Input
Data yang diperoleh dari penelitian merupakan data tegas yang kemudian akan diubah menjadi himpunan fuzzy dengan menentukan fungsi keanggotaannya.
1) Panjang Jalan
Panjang jalan dilambangkan dengan notasi 𝑃. Fungsi keanggotaan panjang jalan dibagi menjadi tiga derajat keanggotaan, yaitu pendek, sedang, dan panjang.
Gambar 3.2 Fungsi Keanggotaan Himpunan Panjang Jalan
63 a) Fungsi linear untuk fungsi pendek
Representasi fungsi keanggotaan pendek yaitu representasi trapesium, sehingga fungsi linear untuk himpunan pendek ditentukan berdasarkan rumus fungsi keanggotaan (2.7). 𝑃𝑝𝑑(𝑥) = { 1 ; 𝑥 ≤ 610 2170 − 𝑥 1560 ; 610 ≤ 𝑥 ≤ 2170 0 ; 2170 ≤ 𝑥
Dengan cara yang sama, diperoleh fungsi linear untuk himpunan sedang dan fungsi linear himpunan panjang.
b) Fungsi linear untuk fungsi sedang
𝑃𝑠(𝑥) = { 0 𝑥 − 767 2010.5 ; ; 𝑥 ≤ 767 767 ≤ 𝑥 ≤ 2762.5 4773 − 𝑥 2010.5 0 ; ; 2762.5 ≤ 𝑥 ≤ 47734773 ≤ 𝑥
c) Fungsi linear untuk fungsi panjang
𝑃𝑝𝑗(𝑥) = {
0 ; 𝑥 ≤ 3505
𝑥 − 3505
1560 ; 3505 ≤ 𝑥 ≤ 5065
1 ; 5065 ≤ 𝑥
2) Derajat Kejenuhan lalu-lintas
64
Gambar 3.3 Fungsi Keanggotaan Himpunan Derajat Kejenuhan
Gambar 3.3 menggambarkan fungsi keanggotaan untuk derajat kejenuhan lalu-lintas. Fungsi keanggotaan lengang berada pada himpunan [0, 0.6], fungsi keanggotaan normal berada pada himpunan [0.29, 1] dan fungsi keanggotaan padat berada pada himpunan [0.69, 1]. Tiap fungsi keanggotaan, memiliki fungsi linier sebagai berikut:
a) Fungsi linear untuk fungsi lengang
Representasi fungsi keanggotaan pendek yaitu representasi trapesium, sehingga fungsi linear untuk himpunan pendek ditentukan berdasarkan rumus fungsi keanggotaan (2.7) 𝐷𝑙(𝑥) = { 1 ; 𝑥 ≤ 0.44 0.6 − 𝑥 0.16 ; 0.44 ≤ 𝑥 ≤ 0.6 0 ; 0.6 ≤ 𝑥
65 b) Fungsi linear untuk fungsi normal
𝐷𝑛(𝑥) = { 0 ; 𝑥 ≤ 0.29 𝑥 − 0.29 0.16 ; 0.29 ≤ 𝑥 ≤ 0.45 1 ; 0.45 ≤ 𝑥 ≤ 0.84 1 − 𝑥 0.16 ; 0.84 ≤ 𝑥 ≤ 1 0 ; 1 ≤ 𝑥 c) Fungsi linear untuk fungsi padat
𝐷𝑠(𝑥) = {
0 ; 𝑥 ≤ 0.69
𝑥 − 0.69
0.16 ; 0.69 ≤ 𝑥 ≤ 0.85
1 ; 0.85 ≤ 𝑥
3) Persentase Kerusakan Jalan
66
Gambar 3.4 Fungsi Keanggotaan Himpunan Persentase Kerusakan Jalan
Gambar 4.2 menggambarkan fungsi keanggotaan untuk persentase kerusakan jalan. Fungsi keanggotaan sempurna berada pada himpunan [0, 0.2], fungsi keanggotaan sangat baik berada pada himpunan [0.11, 0.16], fungsi keanggotaan baik berada pada himpunan [0.26, 0.49], dan fungsi keanggotaan sedang berada pada himpunan [0.4, 0.6]. Tiap fungsi keanggotaan, memiliki fungsi linier sebagai berikut:
a) Fungsi linear untuk fungsi sempurna
67
Dengan cara yang sama, diperoleh fungsi linear untuk himpunan sangat baik, fungsi linear untuk himpunan baik, dan fungsi linear himpunan sedang.
b) Fungsi linear untuk fungsi sangat baik
𝐾𝑠𝑏(𝑥) = { 0 ; 𝑥 ≤ 0.11 𝑥 − 0.11 0.05 ; 0.11 ≤ 𝑥 ≤ 0.16 1 ; 0.16 ≤ 𝑥 ≤ 0.3 0.35 − 𝑥 0.05 ; 0.3 ≤ 𝑥 ≤ 0.35 0 ; 0.35 ≤ 𝑥 c) Fungsi linear untuk fungsi baik
𝐾𝑏(𝑥) = { 0 ; 𝑥 ≤ 0.26 𝑥 − 0.26 0.05 ; 0.26 ≤ 𝑥 ≤ 0.31 1 ; 0.31 ≤ 𝑥 ≤ 0.44 0.49 − 𝑥 0.05 ; 0.44 ≤ 𝑥 ≤ 0.49 0 ; 0.49 ≤ 𝑥 d) Fungsi linear untuk fungsi sedang
𝐾𝑠(𝑥) = { 0 ; 𝑥 ≤ 0.4 𝑥 − 0.4 0.05 ; 0.4 ≤ 𝑥 ≤ 0.45 1 ; 0.45 ≤ 𝑥 ≤ 0.6 0.6 − 𝑥 0.05 ; 0.6 ≤ 𝑥 ≤ 0.65 0 ; 0.65 ≤ 𝑥 e) Fungsi linear untuk fungsi jelek
68 f) Fungsi linear untuk fungsi sangat jelek
𝐾𝑠𝑗(𝑥) = { 0 ; 𝑥 ≤ 0.71 𝑥 − 0.71 0.05 ; 0.71 ≤ 𝑥 ≤ 0.76 1 ; 0.76 ≤ 𝑥 ≤ 0.9 0.9 − 𝑥 0.05 ; 0.9 ≤ 𝑥 ≤ 0.95 0 ; 0.95 ≤ 𝑥 g) Fungsi linear untuk fungsi gagal
𝐾𝑔(𝑥) = {
0 ; 𝑥 ≤ 0.86
𝑥 − 0.86
0.05 ; 0.86 ≤ 𝑥 ≤ 0.91
1 ; 0.91 ≤ 𝑥
b. Himpunan Fuzzy pada Output
Himpunan fuzzy pada output merupakan nilai waktu tempuh dilambangkan dengan notasi 𝑊. Banyaknya himpunan fuzzy ditentukan dengan cara trail and error agar mendapatkan nilai lama waktu tempuh yang optimal. Dari hasil trial and error nilai waktu tempuh dibagi menjadi 11 himpunan, yaitu W1, W2, W3, W4, W5, W6, W7, W8, W9, W10, dan W11.
69
Gambar 3.5 menggambarkan fungsi keanggotaan untuk derajat kejenuhan lalu-lintas. Fungsi keanggotaan W1 berada pada himpunan [0, 0.1], fungsi keanggotaan W2 berada pada himpunan [0, 0.2], fungsi keanggotaan W3 berada pada himpunan [0.1, 0.3], fungsi keanggotaan W4 berada pada himpunan [0.2, 0.4], fungsi keanggotaan W5 berada pada himpunan [0.3, 0.5], fungsi keanggotaan W6 berada pada himpunan [0.4, 0.6], fungsi keanggotaan W7 berada pada himpunan [0.5, 0.7], fungsi keanggotaan W8 berada pada himpunan [0.6, 0.8], fungsi keanggotaan W9 berada pada himpunan [0.7, 0.9], fungsi keanggotaan W10 berada pada himpunan [0.8, 1], dan fungsi keanggotaan W11 berada pada himpunan [0.9, 1]. Fungsi Tiap fungsi keanggotaan memiliki fungsi linier sebagai berikut:
a) Fungsi linear untuk fungsi W1
Representasi fungsi keanggotaan W1 yaitu representasi segitiga, sehingga fungsi linear untuk himpunan W1 ditentukan berdasarkan rumus fungsi keanggotaan (2.7). 𝑊1(𝑥) = { 1 ; 𝑥 ≤ 0 0.1 − 𝑥 0.1 ; 0 ≤ 𝑥 ≤ 0.1 0 ; 0.1 ≤ 𝑥
70 b) Fungsi linear untuk fungsi W2
𝑊2(𝑥) = { 0 ; 𝑥 ≤ 0 𝑥 0.1 ; 0 ≤ 𝑥 ≤ 0.1 0.2 − 𝑥 0.1 ; 0.1 ≤ 𝑥 ≤ 0.2 0 ; 0.2 ≤ 𝑥 c) Fungsi linear untuk fungsi W3
𝑊3(𝑥) = { 0 ; 𝑥 ≤ 0.1 𝑥 − 0.1 0.1 ; 0.1 ≤ 𝑥 ≤ 0.2 0.3 − 𝑥 0.1 ; 0.2 ≤ 𝑥 ≤ 0.3 0 ; 0.3 ≤ 𝑥 d) Fungsi linear untuk fungsi W4
𝑊4(𝑥) = { 0 ; 𝑥 ≤ 0.2 𝑥 − 0.2 0.1 ; 0.2 ≤ 𝑥 ≤ 0.3 0.3 − 𝑥 0.1 ; 0.3 ≤ 𝑥 ≤ 0.4 0 ; 0.4 ≤ 𝑥 e) Fungsi linear untuk fungsi W5
𝑊5(𝑥) = { 0 ; 𝑥 ≤ 0.3 𝑥 − 0.3 0.1 ; 0.3 ≤ 𝑥 ≤ 0.4 0.5 − 𝑥 0.1 ; 0.4 ≤ 𝑥 ≤ 0.5 0 ; 0.5 ≤ 𝑥 f) Fungsi linear untuk fungsi W6
71 g) Fungsi linear untuk fungsi W7
𝑊7(𝑥) = { 0 ; 𝑥 ≤ 0.5 𝑥 − 0.5 0.1 ; 0.5 ≤ 𝑥 ≤ 0.6 0.7 − 𝑥 0.1 ; 0.6 ≤ 𝑥 ≤ 0.7 0 ; 0.7 ≤ 𝑥 h) Fungsi linear untuk fungsi W8
𝑊7(𝑥) = { 0 ; 𝑥 ≤ 0.6 𝑥 − 0.6 0.1 ; 0.6 ≤ 𝑥 ≤ 0.7 0.8 − 𝑥 0.1 ; 0.7 ≤ 𝑥 ≤ 0.8 0 ; 0.8 ≤ 𝑥 i) Fungsi linear untuk fungsi W9
𝑊9(𝑥) = { 0 ; 𝑥 ≤ 0.7 𝑥 − 0.7 0.1 ; 0.7 ≤ 𝑥 ≤ 0.8 0.9 − 𝑥 0.1 ; 0.8 ≤ 𝑥 ≤ 0.9 0 ; 0.9 ≤ 𝑥 j) Fungsi linear untuk fungsi W10
𝑊10(𝑥) = { 0 ; 𝑥 ≤ 0.8 𝑥 − 0.8 0.1 ; 0.8 ≤ 𝑥 ≤ 0.9 1 − 𝑥 0.1 ; 0.9 ≤ 𝑥 ≤ 1 0 ; 1 ≤ 𝑥 k) Fungsi linear untuk fungsi W11
𝑊11(𝑥) = {
0 ; 𝑥 ≤ 0.9
𝑥 − 0.9
0.1 ; 0.9 ≤ 𝑥 ≤ 1
72
4. Penentuan Rule
Pada tiap fungsi keanggotaan himpunan input memiliki m a s i n g - m a s i n g m e m i l i k i tiga, tiga, dan tujuh variabel keanggotaan, maka aturan atau rule evaluation sebagai berikut
𝑅𝑢1 : If (panjang_jalan is pendek) and (derajat_kejenuhan is lengang) and (persentase_kerusakan_jalan is sempurna) then (lama_tempuh is W1)
𝑅𝑢2 : If (panjang_jalan is pendek) and (derajat_kejenuhan is lengang) and (persentase_kerusakan_jalan is sangat_baik) then (lama_tempuh is W2)
𝑅𝑢3 : If (panjang_jalan is pendek) and (derajat_kejenuhan is lengang) and (persentase_kerusakan_jalan is baik) then (lama_tempuh is W3)
𝑅𝑢4 : If (panjang_jalan is pendek) and (derajat_kejenuhan is lengang) and (persentase_kerusakan_jalan is sedang) then (lama_tempuh is W4)
𝑅𝑢5 : If (panjang_jalan is pendek) and (derajat_kejenuhan is lengang) and (persentase_kerusakan_jalan is jelek) then (lama_tempuh is W5)
𝑅𝑢6 : If (panjang_jalan is pendek) and (derajat_kejenuhan is lengang) and (persentase_kerusakan_jalan is sangat_jelek) then (lama_tempuh is W6)
𝑅𝑢7 : If (panjang_jalan is pendek) and (derajat_kejenuhan is lengang) and (persentase_kerusakan_jalan is gagal) then (lama_tempuh is W7)
73
𝑅𝑢9 : If (panjang_jalan is pendek) and (derajat_kejenuhan is normal) and (persentase_kerusakan_jalan is sangat_baik) then (lama_tempuh is W3)
𝑅𝑢10 : If (panjang_jalan is pendek) and (derajat_kejenuhan is normal) and (persentase_kerusakan_jalan is baik) then (lama_tempuh is W4)
𝑅𝑢11 : If (panjang_jalan is pendek) and (derajat_kejenuhan is normal) and (persentase_kerusakan_jalan is sedang) then (lama_tempuh is W5)
𝑅𝑢12 : If (panjang_jalan is pendek) and (derajat_kejenuhan is normal) and (persentase_kerusakan_jalan is jelek) then (lama_tempuh is W6)
𝑅𝑢13 : If (panjang_jalan is pendek) and (derajat_kejenuhan is normal) and (persentase_kerusakan_jalan is sangat_jelek) then (lama_tempuh is W7)
𝑅𝑢14 : If (panjang_jalan is pendek) and (derajat_kejenuhan is normal) and (persentase_kerusakan_jalan is gagal) then (lama_tempuh is W8)
𝑅𝑢15 : If (panjang_jalan is pendek) and (derajat_kejenuhan is padat) and (persentase_kerusakan_jalan is sempurna) then (lama_tempuh is W3)
𝑅𝑢16 : If (panjang_jalan is pendek) and (derajat_kejenuhan is padat) and
(persentase_kerusakan_jalan is sangat_baik) then (lama_tempuh is W4)
74
𝑅𝑢18 : If (panjang_jalan is pendek) and (derajat_kejenuhan is padat) and (persentase_kerusakan_jalan is sedang) then (lama_tempuh is W6)
𝑅𝑢19 : If (panjang_jalan is pendek) and (derajat_kejenuhan is padat) and (persentase_kerusakan_jalan is jelek) then (lama_tempuh is W7)
𝑅𝑢20 : If (panjang_jalan is pendek) and (derajat_kejenuhan is padat) and
(persentase_kerusakan_jalan is sangat_jelek) then (lama_tempuh is W8)
𝑅𝑢21 : If (panjang_jalan is pendek) and (derajat_kejenuhan is padat) and (persentase_kerusakan_jalan is gagal) then (lama_tempuh is W9)
𝑅𝑢22 : If (panjang_jalan is sedang) and (derajat_kejenuhan is lengang) and (persentase_kerusakan_jalan is sempurna) then (lama_tempuh is W2)
𝑅𝑢23 : If (panjang_jalan is sedang) and (derajat_kejenuhan is lengang) and (persentase_kerusakan_jalan is sangat_baik) then (lama_tempuh is W3)
𝑅𝑢24 : If (panjang_jalan is sedang) and (derajat_kejenuhan is lengang) and (persentase_kerusakan_jalan is baik) then (lama_tempuh is W4)
𝑅𝑢25 : If (panjang_jalan is sedang) and (derajat_kejenuhan is lengang) and (persentase_kerusakan_jalan is sedang) then (lama_tempuh is W5)
75
𝑅𝑢27 : If (panjang_jalan is sedang) and (derajat_kejenuhan is lengang) and (persentase_kerusakan_jalan is sangat_jelek) then (lama_tempuh is W7)
𝑅𝑢28 : If (panjang_jalan is sedang) and (derajat_kejenuhan is lengang) and (persentase_kerusakan_jalan is gagal) then (lama_tempuh is W8)
𝑅𝑢29 : If (panjang_jalan is sedang) and (derajat_kejenuhan is normal) and (persentase_kerusakan_jalan is sempurna) then (lama_tempuh is W3)
𝑅𝑢30 : If (panjang_jalan is sedang) and (derajat_kejenuhan is normal) and (persentase_kerusakan_jalan is sangat_baik) then (lama_tempuh is W4)
𝑅𝑢31 : If (panjang_jalan is sedang) and (derajat_kejenuhan is normal) and (persentase_kerusakan_jalan is baik) then (lama_tempuh is W5)
𝑅𝑢32 : If (panjang_jalan is sedang) and (derajat_kejenuhan is normal) and (persentase_kerusakan_jalan is sedang) then (lama_tempuh is W6)
𝑅𝑢33 : If (panjang_jalan is sedang) and (derajat_kejenuhan is normal) and (persentase_kerusakan_jalan is jelek) then (lama_tempuh is W7)
𝑅𝑢34 : If (panjang_jalan is sedang) and (derajat_kejenuhan is normal) and (persentase_kerusakan_jalan is sangat_jelek) then (lama_tempuh is W8)
76
𝑅𝑢36 : If (panjang_jalan is sedang) and (derajat_kejenuhan is padat) and (persentase_kerusakan_jalan is sempurna) then (lama_tempuh is W4)
𝑅𝑢37 : If (panjang_jalan is sedang) and (derajat_kejenuhan is padat) and
(persentase_kerusakan_jalan is sangat_baik) then (lama_tempuh is W5)
𝑅𝑢38 : If (panjang_jalan is sedang) and (derajat_kejenuhan is padat) and (persentase_kerusakan_jalan is baik) then (lama_tempuh is W6)
𝑅𝑢39 : If (panjang_jalan is sedang) and (derajat_kejenuhan is padat) and (persentase_kerusakan_jalan is sedang) then (lama_tempuh is W7)
𝑅𝑢40 : If (panjang_jalan is sedang) and (derajat_kejenuhan is padat) and (persentase_kerusakan_jalan is jelek) then (lama_tempuh is W8)
𝑅𝑢41 : If (panjang_jalan is sedang) and (derajat_kejenuhan is padat) and
(persentase_kerusakan_jalan is sangat_jelek) then (lama_tempuh is W9)
𝑅𝑢42 : If (panjang_jalan is sedang) and (derajat_kejenuhan is padat) and (persentase_kerusakan_jalan is gagal) then (lama_tempuh is W10)
𝑅𝑢43 : If (panjang_jalan is panjang) and (derajat_kejenuhan is lengang) and (persentase_kerusakan_jalan is sempurna) then (lama_tempuh is W3)
77
𝑅𝑢45 : If (panjang_jalan is panjang) and (derajat_kejenuhan is lengang) and (persentase_kerusakan_jalan is baik) then (lama_tempuh is W5)
𝑅𝑢46 : If (panjang_jalan is panjang) and (derajat_kejenuhan is lengang) and (persentase_kerusakan_jalan is sedang) then (lama_tempuh is W6)
𝑅𝑢47 : If (panjang_jalan is panjang) and (derajat_kejenuhan is lengang) and (persentase_kerusakan_jalan is jelek) then (lama_tempuh is W7)
𝑅𝑢48 : If (panjang_jalan is panjang) and (derajat_kejenuhan is lengang) and (persentase_kerusakan_jalan is sangat_jelek) then (lama_tempuh is W8)
𝑅𝑢49 : If (panjang_jalan is panjang) and (derajat_kejenuhan is lengang) and (persentase_kerusakan_jalan is gagal) then (lama_tempuh is W9)
𝑅𝑢50 : If (panjang_jalan is panjang) and (derajat_kejenuhan is normal) and (persentase_kerusakan_jalan is sempurna) then (lama_tempuh is W4)
𝑅𝑢51 : If (panjang_jalan is panjang) and (derajat_kejenuhan is normal) and (persentase_kerusakan_jalan is sangat_baik) then (lama_tempuh is W5)
𝑅𝑢52 : If (panjang_jalan is panjang) and (derajat_kejenuhan is normal) and (persentase_kerusakan_jalan is baik) then (lama_tempuh is W6)
78
𝑅𝑢54 : If (panjang_jalan is panjang) and (derajat_kejenuhan is normal) and (persentase_kerusakan_jalan is jelek) then (lama_tempuh is W8)
𝑅𝑢55 : If (panjang_jalan is panjang) and (derajat_kejenuhan is normal) and (persentase_kerusakan_jalan is sangat_jelek) then (lama_tempuh is W9)
𝑅𝑢56 : If (panjang_jalan is panjang) and (derajat_kejenuhan is normal) and (persentase_kerusakan_jalan is gagal) then (lama_tempuh is W10)
𝑅𝑢57 : If (panjang_jalan is panjang) and (derajat_kejenuhan is padat) and (persentase_kerusakan_jalan is sempurna) then (lama_tempuh is W5)
𝑅𝑢58 : If (panjang_jalan is panjang) and (derajat_kejenuhan is padat) and (persentase_kerusakan_jalan is sangat_baik) then (lama_tempuh is W6)
𝑅𝑢59 : If (panjang_jalan is panjang) and (derajat_kejenuhan is padat) and (persentase_kerusakan_jalan is baik) then (lama_tempuh is W7)
𝑅𝑢60 : If (panjang_jalan is panjang) and (derajat_kejenuhan is padat) and (persentase_kerusakan_jalan is sedang) then (lama_tempuh is W8)
𝑅𝑢61 : If (panjang_jalan is panjang) and (derajat_kejenuhan is padat) and (persentase_kerusakan_jalan is jelek) then (lama_tempuh is W9)
𝑅𝑢62 : If (panjang_jalan is panjang) and (derajat_kejenuhan is padat) and
79
𝑅𝑢63 : If (panjang_jalan is panjang) and (derajat_kejenuhan is padat) and (persentase_kerusakan_jalan is gagal) then (lama_tempuh is W11)
5. Sistem Inferensi Fuzzy
Sistem inferensi fuzzy yang digunakan adalah metode Mamdani. Pada metode ini, aturan yang digunakan pada fungsi implikasi adalah aturan MIN. Dengan menggunakan fungsi keanggotaan pada masing-masing input, maka diperoleh nilai derajat keanggotaan. Sebagai contoh pada simpul (𝑣1, 𝑣13) sebagai berikut:
Tabel 3. 3 Derajat Keanggotaan
Variable Input Nilai
Input Derajat Keanggotaan Panjang Jalan 765 Pendek = 0.900641025
Derajat Kejenuhan 0.36 lengang = 1 Normal = 0.4375 Persentase
Kerusakan Jalan 0.17 Sempurna = 0.6 Sangat baik = 1
Dari hasil perhitungan derajat keanggotaan pada Tabel 3.3, aturan yang dapat diaplikasikan untuk melakukan inferensi mamdani hanya rule 1, 2, 8, dan 9. Berikut perhitungan 𝑎 −untuk rule tersebut:
𝑅𝑢1 : If (panjang_jalan is pendek) and (derajat_kejenuhan is lengang) and (persentase_kerusakan_jalan is sempurna) then (lama_tempuh is W1)
𝑎 − predikat = 𝑃𝑝𝑑∩ 𝐷𝑙∩ 𝐾𝑠𝑚
80
𝑅𝑢2 : If (panjang_jalan is pendek) and (derajat_kejenuhan is lengang) and (persentase_kerusakan_jalan is sangat_baik) then (lama_tempuh is W2) 𝑎 − predikat = 𝑃𝑝𝑑 ∩ 𝐷𝑙∩ 𝐾𝑠𝑏
= min 𝑃𝑝𝑑 765 , 𝐷𝑙 0.36 , 𝐾𝑠𝑏 0.17 = min 0.900641025 ; 1; 1
= 0.900641025
𝑅𝑢8 : If (panjang_jalan is pendek) and (derajat_kejenuhan is normal) and (persentase_kerusakan_jalan is sempurna) then (lama_tempuh is W2)
𝑎 − predikat = 𝑃𝑝𝑑 ∩ 𝐷𝑛∩ 𝐾𝑠𝑚
= min 𝑃𝑝𝑑 765 , 𝐷𝑙 0.36 , 𝐾𝑠𝑚 0.17 = min 0.900641025 ; 0.4375 ; 0.6 = 0.4375
𝑅𝑢9 : If (panjang_jalan is pendek) and (derajat_kejenuhan is normal) and (persentase_kerusakan_jalan is sangat_baik) then (lama_tempuh is W3) 𝑎 − predikat = 𝑃𝑝𝑑 ∩ 𝐷𝑛∩ 𝐾𝑠𝑏
= min 𝑃𝑝𝑑 765 , 𝐷𝑙 0.36 , 𝐾𝑠𝑏 0.17 = min 0.900641025 ; 0.4375 ; 1 = 0.4375
Langkah selanjutnya yaitu mengaplikasi fungsi tiap aturan untuk melakukan komposisi antar semua aturan. Aplikasi fungsi setiap aturan menggunakan metode MAX.
𝜇𝐵𝑘(𝑦) = max
81
Nilai inferensi yang diperoleh dari komposisi antar semua aturan adalah 0.6 yang merupakan derajat keanggotaan untuk himpunan output W1, 0.900641025 merupakan derajat keanggotaan untuk himpunan output W2, dan 0.4375 merupakan derajat keanggotaan untuk himpunan output W3, didapat pada Gambar 3.6.
Gambar 3.6 Aplikasi Fungsi Implikasi Rule 1, Rule 2, Rule 8, dan Rule 9
Langkah selanjutnya adalah mencari titik potong grafik pada Gambar 3.6 menggunakan fungsi keanggotaan himpunan fuzzy lancar pada output.
82 𝑅𝑢8 : 0,4375 =0,2 − a4 0,1 0,2 − a4 = 0,4375 × 0,1 a4 = 0,15625 𝑅𝑢9 : 0,4375 =0,3 − a5 0,1 0,3 − a5 = 0,4375 × 0,1 a5 = 0,25625 .
Dengan demikian, fungsi keanggotaan untuk hasil komposisi di atas adalah:
𝜇′𝑧 { 0,6 ; 0 ≤ 𝑧 ≤ 0,04 0,1 − 𝑧 0,1 ; 0,04 ≤ 𝑧 ≤ 0,05 𝑧 0,1 ; 0,05 ≤ 𝑧 ≤ 0,0900641025 0,900641025 ; 0,0900641025 ≤ 𝑧 ≤ 0.1099358975 0,2 − 𝑧 0,1 ; 0.1099358975 ≤ 𝑧 ≤ 0,15625 0,4375 ; 0,15625 ≤ 𝑧 ≤ 0,25625 0,3 − 𝑧 0,1 ; 0,25625 ≤ 𝑧 ≤ 0,3. 6. Defuzzifikasi
83 𝑧∗ = ∫ 𝑧 𝜇(𝑧)𝑑𝑧𝑧
∫ 𝜇(𝑧)𝑑𝑧𝑧
=𝑀1+ 𝑀2+ 𝑀3 + 𝑀4+ 𝑀5+ 𝑀6+ 𝑀7 𝐴1+ 𝐴2+ 𝐴3+ 𝐴4+ 𝐴5+ 𝐴6+ 𝐴7
dengan 𝑀𝑖 adalah momen ke-I dan 𝐴𝑖 merupakan luas daerah ke-i. Sebelum melakukan perhitungan untuk memperoleh hasil defuzzifikasi dengan metode Centroid, akan dicari momen untuk setiap daerah sebagai berikut:
a. Inferensi yang pertama, merupakan fungsi linear, sehingga
𝑀1 = ∫ (0,6)𝑧𝑑𝑧 = [ 0,6 2 𝑧 2] 0 0,04 0,04 0 = [0,00048 − 0] = 0,00048 dan 𝐴1 = ∫ (0,6)𝑑𝑧 = [0,6𝑧]00,04 0,04 0 = 0,06[0,04 − 0] = 0,024.
b. Inferensi yang pertama, merupakan fungsi turun, sehingga
84
c. Inferensi yang pertama, merupakan fungsi naik, sehingga
𝑀3 = ∫ ( 𝑧 0,1) 𝑧𝑑𝑧 = [ 𝑧3 0,3]0,05 0,0900641025 0,0900641025 0,05 = [0,002435196002 − 0,000416666667] = 0,002018529335 dan 𝐴3 = ∫ ( 𝑧 0,1) 𝑑𝑧 = [𝑧 − 𝑧2 0,2]0,05 0,0900641025 0,0900641025 0,05 = [0,04055771 − 0,0125] = 0,07194205. d. Inferensi yang pertama, merupakan fungsi linier, sehingga
𝑀4 = ∫ (0,900641025)𝑧𝑑𝑧 = [ 0,900641025 2 𝑧 2] 0,0900641025 0.1099358975 0.1099358975 0,0900641025 = [0,00544253 − 0,00365279] = 0,00178974 dan 𝐴4 = ∫ (0,900641025)𝑑𝑧 = [0,900641025z]0,0900641025 0.1099358975 0.1099358975 0,0900641025 = [0,0901278 − 0,08111543] = 0,01789735.
e. Inferensi yang pertama, merupakan fungsi turun, sehingga
85 𝐴5 = ∫ (2 − 𝑧 0,1) 𝑑𝑧 = [2𝑧 − 𝑧2 0,2] 0.109935897 0,15625 0,15625 0.109935897 = [0,19042969 − 0,15944229] = 0,0309874. f. Inferensi yang pertama, merupakan fungsi linier, sehingga
𝑀6 = ∫ (0,4375)𝑧𝑑𝑧 = [ 0,4375 2 𝑧 2] 0,15625 0,25625 0,25625 0,15625 = [0,01436401 − 0,00534058] = 0,00902344 dan 𝐴6 = ∫ (0,4375)𝑑𝑧 = [0,4375z]0,15625 0,25625 0,25625 0,15625 = [0,11210938 − 0,06835938] = 0,04375. g. Inferensi yang pertama, merupakan fungsi turun, sehingga
𝑀7 = ∫ (3 −0,1𝑧 ) 𝑧𝑑𝑧 = [3𝑧 2 2 − 𝑧3 0,3] 0,25625 0,3 0,3 0,25625 = [0,045 − 0,4240804] = 0,00259196 dan 𝐴7 = ∫ (3 − 𝑧 0,1) 𝑑𝑧 = [3𝑧 − 𝑧2 0,2]0,256257 0,3 0,3 0,25625 = [0,45 − 0,44042969] = 0,00957031.
Titik pusat diperoleh dengan mensubstitusi momen dan luas dari daerah ke dalam 𝑧∗
𝑧∗=0,00048 + 0,0002466 + 0,0020185293 + 0,00178974 + 0,00404142 + 0,00902344 + 0,00259196
86
Perhitungan defuzzifikasi lainnya dilakukan dengan software bantu Matlab R2013a. Sebagai contoh untuk proses defuzzifikasi, untuk simpul (𝑣1, 𝑣13) memiliki panjang jalan 765, derajat kejenuhan 0,36, dan persentase kerusakan jalan 0,17 maka proses defuzzifikasi ditunjukkan seperti Gambar 3.7 dengan nilai output sebesar 0,124. Nilai panjang jalan, derajat kejenuhan, dan persentase kerusakan jalan diproses dengan 63 rule evaluation yang telah dibentuk sebelumnya.
87
Hasil defuzzifikasi dari pengolahan data panjang jalan, derajat kejenuhan, dan persentase kerusakan jalan pada simpul satu ke simpul lainnya ditunjukkan pada Lampiran 5.
D. Perhitungan Rute Tercepat dengan Algoritma Semut
Langkah selanjutnya adalah menentukan rute tercepat distribusi. Berikut
representasi simpul-simpul ke dalam graf terhubung berbobot didasarkan pada peta
88
89
Pada gambar 3.8, masing-masing sisi antar dua simpul telah memiliki bobot nilai waktu tempuh dari tiga karakteristik jalan yang diproses dengan Logika Fuzzy. Bobot setiap dua simpul yang terhubung ini selanjutnya akan dipergunakan sebagai input dalam pemilihan rute tercepat distribusi PT. Sri Aneka Pangan Nusantara dengan Algoritma Semut. Berikut langkah-langkahnya.
1. Inisialisasi Harga Parameter Algoritma dan Feromon Awal
Inisialisasi awal semut dilakukan dengan meletakkan semua semut pada suatu simpul awal, yaitu simpul 𝑣1 (PT. Sri Aneka Pangan Nusantara). Kemudian semut pertama akan melewati sejumlah simpul yang telah ditentukan dan berakhir pada simpul awal kembali.
Selanjutnya pemilihan parameter 𝛼, β, dan ρ ditentukan berdasarkan penelitian yang pernah ditulis oleh Agus Leksono (2009:44-46) tentang pengaruh 𝛼, β, dan ρ terhadap performa Algoritma Semut. Pada penelitian tersebut menunjukkan bahwa perhitungan dengan parameter 𝛼 (0,5 ; 0,8 ; 1), β (0,1 ; 0,5 ; 0,8 ; 1), dan ρ (0,05 ; 0,01 ; 0,1) menunjukkan hasil optimal untuk 𝛼 = 1, β = 1, dan ρ = 0,05.
Berikut ini disajikan parameter-parameter selengkapnya.
a. Banyak simpul (𝑛) = 23
b. Tetapan siklus semut (𝑄) = 1
c. Tetapan pengendali intensitas jejak semut (𝛼) = 1 d. Tetapan pengendalian visibilitas (β) = 1
e. Banyak semut (𝑚) = 23
90
Data jarak antar simpul (𝑑𝑖𝑗) disajikan dalam Tabel 3.4 berikut, tabel selengkapnya tersaji pada Lampiran 6.
Tabel 3.4 Jarak Antar Simpul
𝑣1 𝑣2 𝑣3 𝑣4 𝑣5 … 𝑣23 𝑣1 0 0 0 0 0 … 0 𝑣2 0 0 1.03 0 1 … 0 𝑣3 0 1.03 0 0.963 0.997 … 0 𝑣4 0 0 0.963 0 0 … 0 𝑣5 0 1 0.997 0 0 … 0 … … … … 𝑣23 0 0 0 0 0 … 0
Langkah selanjutnya, dicari visibilitas antar node (𝜂𝑖𝑗) dengan rumus: 𝜂𝑖𝑗 = 1
𝑑𝑖𝑗
sehingga didapatkan nilai visibilitas antar node (𝜂𝑖𝑗) seperti dalam Tabel 3.5 berikut, tabel selengkapnya tersaji pada Lampiran 7.
Tabel 3.5 Visibilitas Antar Node
𝑣1 𝑣2 𝑣3 𝑣4 𝑣5 … 𝑣23 𝑣1 0 0 0 0 0 … 0 𝑣2 0 0 0.9709 0 1 … 0 𝑣3 0 0.9709 0 1.0384 1.003 … 0 𝑣4 0 0 1.0384 0 0 … 0 𝑣5 0 1 1.003 0 0 … 0 … … … … 𝑣23 0 0 0 0 0 … 0
Langkah selanjutnya adalah pemberian nilai feromon awal (𝜏𝑖𝑗) dengan probabilitas sesuai dengan kemungkinan yang berlaku, yaitu 1
91
data feromon awalnya seperti tersaji pada Tabel 3.6 berikut, tabel selengkapnya tersaji pada Lampiran 8.
Tabel 3.6 Tabel Feromon Awal
𝑣1 𝑣2 𝑣3 𝑣4 𝑣5 … 𝑣23 𝑣1 0 0 0 0 0 … 0 𝑣2 0 0 0.2 0 0.2 … 0 𝑣3 0 0.3333 0 0.3333 0.2 … 0 𝑣4 0 0 0.2 0 0 … 0 𝑣5 0 0.3333 0.2 0 0 … 0 … … … … 𝑣23 0 0 0 0 0 … 0
Setelah diperoleh tabel feromon, kemudian menempatkan titik pada node awal.
2. Pengisian Tabu List
Masing-masing semut memilih node awal secara acak, hasil selengkapnya tersaji pada Tabel 3.7
Tabel 3.7 Pemilihan Node Awal Semut Node awal
92 Semut Node awal
17 𝑣18 18 𝑣19 19 𝑣20 20 𝑣21 21 𝑣22 22 𝑣23
Berdasarkan penentuan node awal sebelumnya, tabu list akan diisi dengan node yang terpilih sebelumnya. Berikut penyajian tabu list-nya:
Tabel 3.8 Tabu List Awal
Tabu Node 0 𝑣1 1 𝑣2 2 𝑣3 3 𝑣4 4 𝑣5 5 𝑣6 6 𝑣7 7 𝑣8 8 𝑣9 9 𝑣10 10 𝑣11 11 𝑣12 12 𝑣13 13 𝑣14 14 𝑣15 15 𝑣16 16 𝑣17 17 𝑣18 18 𝑣19 19 𝑣20 20 𝑣21 21 𝑣22 22 𝑣23
93 𝑝𝑖𝑗𝑘 = { (𝜏𝑖𝑗)𝛼(𝜂𝑖𝑗)𝛽 ∑ (𝜏𝑖𝑘′)𝛼(𝜂 𝑖𝑘′)𝛽 𝑘′∈[𝑁−𝑇𝑎𝑏𝑢𝑘] , 𝑗 ∈ [𝑁 − 𝑇𝑎𝑏𝑢𝑘] 0 , 𝑗 𝑦𝑎𝑛𝑔 𝑙𝑎𝑖𝑛.
Pada s=1, misalnya pada semut 0 dengan node awal adalah 𝑣1 maka perhitungannya berupa: ∑ (𝜏𝑖𝑘′)𝛼(𝜂𝑖𝑘′)𝛽 𝑘′∈[𝑁−𝑇𝑎𝑏𝑢𝑘] = 𝜏𝑣1𝑣9(𝜂𝑣1𝑣9) + 𝜏𝑣1𝑣13(𝜂𝑣1𝑣13) + 𝜏𝑣1𝑣15(𝜂𝑣1𝑣15) + 𝜏𝑣1𝑣19(𝜂𝑣1𝑣18) = 0,111(1.4663) + 0,25(8.0645) + 0,2(2.6178) + 0,2(2.849) = 0,16292 + 2,01613 + 0,52356 + 0,5698 = 3,27241.
Jadi probabilitas node 𝑣1 ke node 𝑣9 adalah:
𝑝𝑣01𝑣9 = 𝜏𝑣1𝑣9(𝜂𝑣1𝑣9) 3,27241 =
0,16292
3,27241= 0,049786.
Demikian juga dengan node-node lainnya, hasilnya disajikan dalam Tabel 3.9 berikut, tabel selengkapnya tersaji pada Lampiran 9.
Tabel 3.9 Probabilitas pada s=1
94
Langlah selanjutnya dipilih bilangan acak [0 1]. Kemudian dipilih node yang memiliki jumlahan probabilitas yang mendekati nilai bilangan acak tersebut. Bilangan acak [0 1] yang terpilih seperti pada Tabel 3.10.
Tabel 3.10 Bilangan acak [0 1] pada s = 1 Semut Bilangan acak
0 0.646 1 0.954 2 0.845 3 0.423 4 0.416 5 0.122 6 0.809 7 0.994 8 0.111 9 0.581 10 0.654 11 0.327 12 0.814 13 0.786 14 0.712 15 0.326 16 0.878 17 0.694 18 0.941 19 0.157 20 0.261 21 0.714 22 0.176
95
Tabel 3. 11 Tabu pada s = 1 Semut Tabu 0 𝑣1, 𝑣13 1 𝑣2, 𝑣12 2 𝑣3, 𝑣6 3 𝑣4, 𝑣3 4 𝑣5, 𝑣2 5 𝑣6, 𝑣3 6 𝑣7, 𝑣8 7 𝑣8, 𝑣9 8 𝑣9, 𝑣1 9 𝑣10, 𝑣11 10 𝑣11, 𝑣10 11 𝑣12, 𝑣2 12 𝑣13, 𝑣11 13 𝑣14, 𝑣16 14 𝑣15, 𝑣19 15 𝑣16, 𝑣14 16 𝑣17, 𝑣18 17 𝑣18, 𝑣19 18 𝑣19, 𝑣22 19 𝑣20, 𝑣15 20 𝑣21, 𝑣20 21 𝑣22, 𝑣23 22 𝑣23, 𝑣21
Selanjutnya membuat tabel probabilitas baru dimana simpul yang telah dilewati bernilai 0, hasilnya seperti dalam Tabel 3.12 berikut, selengkapnya terdapat pada Lampiran 10.
Tabel 3.12 Probabilitas pada s = 2
96
Kemudian dipilih bilangan acak [0 1]. Dengan cara yang sama saat s =1, didapatkan tabu list pada s = 24, seperti pada Tabel 3.13.
Tabel 3.13 Tabu pada s = 24
97 Tabu Node 19 𝑣20, 𝑣15, 𝑣16, 𝑣14, 𝑣4, 𝑣3, 𝑣2, 𝑣5, 𝑣8, 𝑣7, 𝑣6, 𝑣9, 𝑣1, 𝑣13, 𝑣11, 𝑣10, 𝑣12, 𝑣17, 𝑣18, 𝑣19, 𝑣22, 𝑣23, 𝑣22, 𝑣20 20 𝑣21, 𝑣20, 𝑣16, 𝑣14, 𝑣4, 𝑣3, 𝑣6, 𝑣7, 𝑣8, 𝑣5, 𝑣2, 𝑣12, 𝑣17, 𝑣18, 𝑣1, 𝑣13, 𝑣10, 𝑣11, 𝑣9, 𝑣15, 𝑣19, 𝑣22, 𝑣23, 𝑣21 21 𝑣22, 𝑣23, 𝑣21, 𝑣20, 𝑣16, 𝑣14, 𝑣4, 𝑣3, 𝑣2, 𝑣5, 𝑣8, 𝑣7, 𝑣6, 𝑣9, 𝑣1, 𝑣13, 𝑣11, 𝑣10, 𝑣12, 𝑣17, 𝑣18, 𝑣15, 𝑣19, 𝑣22 22 𝑣23, 𝑣21, 𝑣20, 𝑣16, 𝑣14, 𝑣4, 𝑣3, 𝑣2, 𝑣5, 𝑣8, 𝑣7, 𝑣6, 𝑣9, 𝑣11, 𝑣13, 𝑣10, 𝑣12, 𝑣17, 𝑣18, 𝑣1, 𝑣15, 𝑣19, 𝑣22, 𝑣23
3. Menghitung Panjang Perjalanan
Langkah selanjutnya adalah menghitung panjang perjalanan pada setiap tabu. Pada tabu 0 dengan rute 𝑣1− 𝑣13− 𝑣12− 𝑣17− 𝑣17− 𝑣2− 𝑣3− 𝑣6 − 𝑣7− 𝑣8− 𝑣5− 𝑣10− 𝑣11− 𝑣9− 𝑣4 − 𝑣14− 𝑣16− 𝑣15− 𝑣21− 𝑣22− 𝑣24− 𝑣23− 𝑣20− 𝑣19 − 𝑣1 diperoleh panjang perjalanan (𝐿𝑘) sebagai berikut.
𝐿𝑘 = 0,124 + 0,396 + 0,494 + 0,509 + 1,083 + 1,03 + 0.966 + 0,449 +0,406 + 0,509 + 0,6824 + 0,2064 + 0,77 + 1,313 + 1,779 + 0,435 +0,6 + 0,645 + 0,0,4 + 0,626 + 0,218 + 0,318 + 0,053 + 0,351 = 14,3628
Demikian juga untuk tabu yang lainnya. Hasil selengkapnya tersaji pada Tabel 3.14
Tabel 3. 14 Tabel Rute
99
4. Memperbarui Feromon
Proses memperbarui feromon dilakukan dengan rumus
𝜏𝑖𝑗′ = (1 − 𝜌)𝜏𝑖𝑗 + ∑ ∆𝜏𝑖𝑗𝑘 𝑛
𝑘=1 dengan
Pada pasangan node 𝑣1, 𝑣9 𝜏𝑣′1,𝑣9 = (1 − 𝜌)𝜏 𝑣1,𝑣9+ ∑ ∆𝜏𝑣1,𝑣9 𝑘 23 𝑘=1 𝜏𝑣1,𝑣9 ′ = (1 − 0,05)0,682 + ( 1 13,1588+ 1 13,7948+ 1 13,7948+ 1 13,7948+ 1 13,3238+ 1 13,3788 + 1 12,9938+ 1 12,9938+ 1 12,9938+ 1 12,9938+ 1 12,9938+ 1 13,0297) 𝜏𝑣1,𝑣9 ′ = 0,998.
Proses perhitungan dilakukan untuk semua pasangan node sehingga diperoleh tabel feromon baru seperti pada Tabel 3.15, hasil selengkapnya terdapat pada Lampiran 11.
Tabel 3. 15 Feromon Baru
100
Matriks peromon di atas akan digunakan pada iterasi berikutnya. Nilai pada matriks feromon yang lebih besar menandakan bahwa lebih banyak semut yang memilih jalur tersebut. Dari serangkaian proses di atas diperoleh nilai lama waktu tempuh minimal adalah 12.7428. Dengan rute 𝑣1− 𝑣13− 𝑣11− 𝑣10− 𝑣12− 𝑣17− 𝑣18− 𝑣19− 𝑣22− 𝑣23− 𝑣21− 𝑣20− 𝑣16− 𝑣14− 𝑣4− 𝑣3− 𝑣2− 𝑣5 − 𝑣8− 𝑣7− 𝑣6− 𝑣9− 𝑣15− 𝑣1− 𝑣13− 𝑣11− 𝑣1 .
5. Perhitungan dengan Program
Perhitungan rute tercepat dengan algoritma semut dilakukan dengan software Matlab R2013a. List program terdapat pada Lampiran 12. Parameter-parameter yang digunakan adalah sebagai berikut.
a. Banyak simpul (𝑛) = 23
b. Tetapan siklus semut (𝑄) = 1
c. Tetapan pengendali intensitas jejak semut (𝛼) = 1 d. Tetapan pengendalian visibilitas (β) = 1
e. Banyak semut (𝑚) = 23
f. Tetapan penguapan jejak semut (𝜌) = 0,05
g. Banyaknya iterasi (NCmax) = 100
101
Gambar 3. 9 Grafik Rute Optimal
102
103
Rusuk dengan warna merah pada Gambar 3.10 menunjukkan graf rute optimum dari PT. Sri Aneka Pangan Nusantara ke 22 outlet dengan bobot nilai lama waktu tempuh. Hal ini berarti rute tercepat berdasarkan nilai lama waktu tempuh yang paling minimum dari PT. Sri Aneka Pangan Nusantara ke 22 outlet telah berhasil ditemukan.
E. Perbandingan Rute Distribusi Saat Ini dengan Hasil Penelitian