i
PENCARIAN RUTE DISTRIBUSI BARANG MENGGUNAKAN
ALGORITMA SEMUT
(Studi Kasus PT.Circleka Indonesia Utama Region Yogyakarta)
Halaman Utama
SKRIPSI
Diajukan untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Komputer
Program Studi Teknik Informatika
Disusun oleh
R ALEXANDER PURBO WIDYANTO
125314069
PROGRAM STUDI TEKNIK INFORMATIKA JURUSAN TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA YOGYAKARTA
ii
SEARCH DISTRIBUTION ROUTE USING ANT
ALGORITHM
(Case Study PT.Circleka Indonesia Utama Region Yogyakarta)
Halaman Utama
THESIS
Presented as Partial Fullfillment of the Requirments
To Obtain Sarjana Komputer Degree
In Department of Informatics Engineering
By
R. ALEXANDER PURBO WIDYANTO
125314069
INFORMATICS ENGINEERING STUDY PROGRAM DEPARTMENT OF INFORMATICS ENGINEERING
FACULTY OF SCIENCE AND TECHNOLOGY SANATA DHARMA UNIVERSITY
iii
iv
v
vi
vii
INTISARI
Distribusi adalah kegiatan penyaluran barang dan jasa yang dibuat dari
produsen ke konsumen agar tersebar luas. Kegiatan distribusi merupakan
penghubung antara kegiatan produksi dan konsumsi. Begitu pula yang dilakukan
oleh PT.Circleka Indonesia Utama, perusahaan ini bertanggung jawab untuk
mendistribusikan barang ke toko – toko Circle K yang ada. Hal tersebut bertujuan agar para konsumen lebih mudah untuk menjangkau produk – produk yang dijual oleh produsen. Dalam prosesnya, PT.Circleka Indonesia Utama memerlukan kurir
yang mengantarkan barang dari gudang ke toko – toko yang ada. Dalam tugas tersebut seorang kurir akan mencari rute pendistribusian secara manual, tentu saja
hal tersebut kurang efektif.
Pada tugas akhir ini akan dibuat sistem yang dapat membantu kurir dalam memilih rute
pendistribusian barang. Dimana sistem tersebut akan menerapkan algoritma semut yang akan
membantu pencarian rute. Algoritma semut merupakan salah satu metode yang dapat membantu
memecahkan masalah pencarian rute.
Hasil dari sistem ini tentu saja sistem dapat menampilkan rute terpendek yang dilalui oleh
kurir untuk mengantarkan barang – barang ke toko cricle k. Dimana hasil tersebut diharapkan dapat membantu kerja kurir dan juga PT.Circleka Indonesia Utama region Yogyakarta menjadi
lebih efektif.
viii
ABSTRAK
Distribution is activities that link of goods and services that are made from
producers to consumers. Distribution activities is a link between production and
consumption. Similarly, conducted by PT.Circleka Utama Indonesia, the company
responsible for distributing the goods to the store - the existing Circle K stores. It is
intended that consumers are more likely to reach a product - a product that is sold
by the manufacturer. In the process, PT.Circleka Indonesia Utama require a courier
delivering goods from the warehouse to the store - the existing store. In the task
will be looking for a courier service distribution manually, of course it is less
effective.
In this final project will created a system that can help in choosing the
courier service distribution of goods. Where the system would apply ant algorithms
that will help the search route. Ant is one method that can help solve the problem
of route search.
The results of this system of course the system can display the shortest
route traversed by courier to deliver the goods to store cricle k. Where the results
are expected to help work courier and also PT.Circleka Utama Indonesia
Yogyakarta region becomes more effective.
ix
Kata Pengantar
Puji dan Syukur kepada Tuhan Yang Maha Esa yang telah senantiasa memberikan berkat
dan rahmat yang tak berkesudahan serta kesempatan yang sangat berharga sehingga penulis dapat
menyelesaikan skripsi dengan judul “Pencarian Rute Distibusi Barang Menggunakan Algoritma Semut (Studi Kasus PT.Circleka Indonesia Utama Region Yogyakarta)”.
Dalam kesempatan ini, penulis ingin mengucapkan terima kasih yang sebesar besarnya
kepada seluruh pihak yang telah memberi dukungan dan semangat sehingga skripsi ini dapat
selesai:
1. Bapak Sudi Mungkasi, S.Si.,M.Math.Sc.,Ph.D selaku Dekan Fakultas Sains
dan Teknologi Universitas Sanata Dharma Yogyakarta.
2. Ibu Dr. Anastasia Rita Widiarti, S.Si.,M.Kom selaku Kaprodi Teknik
Informatika Universitas Sanata Dharma Yogyakarta dan juga Selaku Panitia
Penguji yang telah memberikan kritik dan saran dalam penulisan tugas
akhir.
3. Bapak Albertus Agung Hadhiatma, S.T.,M.T selaku Dosen Pembimbing,
yang telah sabar dalam memberikan bimbingan dan segala masukan
sehingga penulis dapat menyelesaikan tugas akhir ini.
4. Bapak JB. Budi Darmawan S.T., M.Sc. selaku panitia penguji yang telah
memberikan kritik dan saran dalam penulisan tugas akhir.
5. Seluruh dosen dan staff karyawan Program Studi Teknik Informatika
Universitas Sanata Dharma yang telah memberikan bekal ilmu, bimbingan
xi
Daftar Isi
Halaman Utama ... i
Halaman Utama ... ii
HALAMAN PERSETUJUAN ... iii
HALAMAN PERSEMBAHAN SKRIPSI ... iv
PERNYATAAN KEASLIAN KARYA... v
LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI... vi
INTISARI ... vii
1.3 Tujuan Penelitian... 3
1.4 Batasan Masalah ... 3
1.5 Metodologi Penelitian ... 3
1.6 Sistematika penulisan ... 4
Bab II ... 6
2.1 Distribusi ... 6
2.2 Graph... 6
2.3 Traveling Salesman Problem ... 7
2.3.1 Aplikasi TSP ... 8
2.4. Algoritma Semut ... 9
2.4.1. Tentang Algorima Semut... 9
2.4.2. Konsep Dasar ... 10
xii
2.4.4 Contoh Penerapan Algoritma Semut ... 12
BAB III ... 19
3.1 Analisis Sistem ... 19
3.1.1 Analisis Masalah ... 19
3.1.2 Aturan Pencarian Rute ... 20
3.1.3 Sumber Data ... 21
3.2 Permodelan Algoritma Semut untuk Pencarian Rute ... 24
3.2.1 Inisialisasi Parameter ... 24
3.2.2 Mencari Urutan Node ... 25
3.2.3 Update Solusi ... 26
3.3 Perancangan Sistem ... 26
3.3.1 Diagram Use case ... 26
3.3.2 Ringkasan Use Case ... 27
3.3.3 Narasi Use Case... 27
3.3.4 Diagram Aktivitas ... 29
3.4 Perancangan Basisdata ... 29
3.4.1 ER Diagram ... 29
3.4.2 Model Fisikal... 30
3.5 Design Interface ... 31
BAB IV ... 36
4.1 Implementasi Proses ... 36
4.1.1 Implementasi Algoritma Semut ... 36
4.2 Implementasi Tampilan Antar Muka ... 43
4.2.1 Implementasi Antar Muka Awal (Home) ... 43
4.2.2 Implementasi Antar Muka Cari Rute ... 43
4.2.3 Implementasi Antar Muka Lihat Data ... 47
4.2.4 Implementasi Antar Muka Tambah Data ... 48
4.2.5 Implementasi Antar Muka Perbarui Data ... 51
4.2.6 Implementasi Antar Muka Hapus Data ... 53
BAB V ... 56
xiii
5.1.1 Analisa Hasil untuk Pencarian Rute dengan Tujuan 3 Toko ... 56
5.1.2 Analisa Hasil untuk Pencarian Rute dengan Tujuan 4 Toko ... 61
5.1.3 Analisa Hasil untuk Pencarian Rute dengan Tujuan 5 Toko ... 66
5.2 Analisis Perbandingan Jumlah Semut... 71
5.2.1 Perbandingan Jumlah Semut... 71
5.2.2 Kesimpulan Perbandingan ... 78
BAB VI ... 79
6.1 KESIMPULAN ... 79
6.2 SARAN ... 79
DAFTAR PUSTAKA ... 80
xiv
Daftar Gambar
Gambar 2. 1 Graph antar Kota ... 7
Gambar 2. 2 Rumus Intensitas Jejak ... 11
Gambar 2. 3 Rumus Penguapan Jejak ... 11
Gambar 2. 4 Rumus mencari jejak yang ditinggalkan ... 11
Gambar 2. 5 Rumus Probabilitas ... 11
Gambar 2. 6 Graph ... 12
Gambar 3. 1 Peta Persebaran Toko Circle K di Yogyakarta... 20
Gambar 3. 2 Pencarian rute dengan google maps ... 24
Gambar 3. 3 Diagram Usecase ... 26
Gambar 3. 9 Tampilan Tambahan Data... 33
Gambar 3. 10 Tampilan Tambahan Data... 34
Gambar 3. 11 Tampilan Hapus Data ... 35
Gambar 4. 7 Pemberitahuan berhasil menambah data toko ... 50
Gambar 4. 8 Pemberitauan rute berhasil ditambah ... 50
Gambar 4. 9 Antar Muka Perbarui Data ... 51
Gambar 4. 10 Pemberitauan Data berhasil diperbarui ... 52
Gambar 4. 11 Pemberitauan rute berhasil diperbarui ... 53
Gambar 4. 12 Antar muka hapus data ... 53
Gambar 4. 13 Persetujuan menghapus data ... 55
Gambar 4. 14 Pemberitahuan data berhasil dihapus ... 55
Gambar 5. 1 Hasil Pencarian Pertama oleh Sistem ... 56
Gambar 5. 2 Rute yang dilalui oleh pencarian pertama ... 56
Gambar 5. 3 Hasil Pencarian Kedua oleh Sistem ... 57
Gambar 5. 4 Rute yang dilalui oleh pencarian kedua ... 57
Gambar 5. 5 Hasil Pencarian Ketiga Oleh Sistem ... 58
Gambar 5. 6 Rute yang dilalui oleh pencarian Ketiga ... 58
Gambar 5. 7 Hasil Pencarian Keempat oleh Sistem ... 59
xv
Gambar 5. 9 Hasil Pencarian Kelima oleh Sistem ... 60
Gambar 5. 10 Rute yang dilalui oleh pencarian Kelima ... 60
Gambar 5. 11 Hasil Pencarian Rute Keenam Menggunakan Sistem ... 61
Gambar 5. 12 Rute yang didapat dalam pencarian Keenam ... 61
Gambar 5. 13 Hasil Pencarian Ketujuh oleh Sistem ... 62
Gambar 5. 14 Rute yang didapat dalam pencarian Ketujuh... 63
Gambar 5. 15 Hasil Pencarian Kedelapan oleh Sistem ... 63
Gambar 5. 16 Rute yang didapat dalam pencarian Kedelapan ... 64
Gambar 5. 17 Hasil Pencarian Kesembilan oleh Sistem ... 65
Gambar 5. 18 Rute yang didapat dalam pencarian Kesembilan ... 65
Gambar 5. 19 Hasil Pencarian Sistem Kesepuluh ... 66
Gambar 5. 20 Rute yang didapat pada pencarian kesepuluh ... 66
Gambar 5. 21 Hasil Pencarian Kesebelas oleh Sistem... 67
Gambar 5. 22 Rute yang didapat pada pencarian Kesebelas ... 67
Gambar 5. 23 Hasil Pencarian Keduabelas oleh Sistem ... 68
Gambar 5. 24 Rute yang didapat pada pencarian Keduabelas ... 68
Gambar 5. 25 Hasil Pencarian Ketigabelas Oleh Sistem ... 69
Gambar 5. 26 Rute yang didapat pada pencarian Ketigabelas ... 69
Gambar 5. 27 Hasil Pencarian Keempatbelas Oleh Sistem ... 70
Gambar 5. 28 Rute yang didapat pada pencarian Keempatbelas ... 70
Gambar 5. 29 Hasil Pencarian Kelimabelas oleh Sistem ... 71
Gambar 5. 30 Rute yang didapat pada pencarian Kelimabelas ... 71
Gambar 5. 31 Hasil Percobaan Pertama dengan 2 semut ... 72
Gambar 5. 32 Hasil Percobaan Pertama dengan 3 semut ... 72
Gambar 5. 33 Hasil Percobaan Pertama dengan 5 semut ... 72
Gambar 5. 34 Hasil Percobaan Kedua dengan 2 semut ... 73
Gambar 5. 35 Hasil Percobaan Kedua dengan 3 semut ... 73
Gambar 5. 36 Hasil Percobaan Kedua dengan 5 semut ... 73
Gambar 5. 37 Hasil Percobaan Ketiga dengan 2 semut ... 74
Gambar 5. 38 Hasil Percobaan Ketiga dengan 3 semut ... 74
Gambar 5. 39 Hasil Percobaan Ketiga dengan 5 semut ... 74
Gambar 5. 40 Hasil Percobaan Keempat dengan 2 semut ... 75
Gambar 5. 41 Hasil Percobaan Keempat dengan 3 semut ... 75
Gambar 5. 42 Hasil Percobaan Keempat dengan 5 semut ... 76
Gambar 5. 43 Hasil Percobaan Kelima dengan 2 semut ... 76
Gambar 5. 44 Hasil Percobaan Kelima dengan 3 semut ... 76
Gambar 5. 45 Hasil Percobaan Kelima dengan 5 semut ... 77
Gambar 5. 46 Hasil Percobaan Keenam dengan 2 semut ... 77
Gambar 5. 47 Hasil Percobaan Keenam dengan 3 semut ... 77
xvi
Tabel 3. 4 Inisialisasi Parameter... 24
Tabel 3. 5 Ringkasan Usecase ... 27
Tabel 5. 1 Tabel Hasil Pencarian Konvensional Pertama ... 56
Tabel 5. 2 Hasil Pencarian konvensional kedua ... 57
Tabel 5. 3 Hasil pencarian Konvensional Ketiga ... 58
Tabel 5. 4 Hasil Pencarian konvensional Keempat ... 59
Tabel 5. 5 Hasil Pencarian Konvensional Kelima ... 60
Tabel 5. 6 Tabel Hasil Pencarian Rute Secara Konvensional Keenam ... 61
Tabel 5. 7 Hasil Pencarian Secara Konvensional Ketujuh ... 62
Tabel 5. 8 Hasil Pencarian Rute Secara Konvensional Kedelapan ... 63
Tabel 5. 9 Hasil Pencarian Secara Konvensional Kesembilan ... 64
Tabel 5. 10 Hasil Pencarian Secara Konvensional Kesepuluh ... 65
Tabel 5. 11 Hasil Pencarian Konvensional Kesebelas ... 66
Tabel 5. 12 Hasil pencarian Konvensional Keduabelas ... 67
Tabel 5. 13 Tabel hasil pencarian Konvensional Ketigabelas ... 68
Tabel 5. 14 Tabel hasil pencarian Konvensional Keempatbelas ... 70
1
BAB I
PENDAHULUAN
1.1 Latar Belakang
PT.CIRCLELKA INDONESIA UTAMA adalah badan usaha yang
membawahi toko ritel modern Circle K yang berada di Indonesia. PT
CIRCLEKA INDONESIA UTAMA sendiri memiliki kantor pusat yang
terletak di Jakarta Timur, lebih tepatnya berada di Jalan Jatinegara Barat No.
124. Sedangkan untuk di Yogyakarta sendiri memiliki kantor di Jl.
Magelang km.7 No.09 Mlatijati, Sendangadi, Mlati, Sleman. Perusahaan ini
memiliki beberapa tugas, dan salah satunya adalah mengatur
pendistribusian barang dari gudang ke toko - toko circle K yang tersebar di
berbagai tempat di Yogyakarta. Untuk kantor regional Yogyakarta sendiri
terdapat 34 toko di yogyakarta dan 2 lainya masing masing berada di kota
solo dan semarang.
Pendistribusian barang pada umumnya merupakan hal yang sangat
penting bagi setiap perusahaan, terlebih bagi toko seperti Circle K. Hal ini
tentu saja dikarenakan Circle K merupakan sebuah convension store yang
menjual berbagai produk makanan dan minuman kemasan dan keperluan
sehari – hari. Pendistibusian barang ke toko – toko circle K tersebut di atur oleh PT.CIRCLEKA INDONESIA UTAMA melalui tiap regionalnya. Dan
dalam pendistribusiannya dibutuhkan kurir untuk mengantarkan stock
barang – barang tersebut. Dalam sekali jalan seorang kurir biasanya akan mengantar barang – barang tersebut kurang lebih ke 3 hingga 4 toko Circle K. Dan tentu saja dalam mengantar barang tersebut seorang kurir akan
memiliki banyak opsi rute. Sedangkan, dalam pendistribusian barang tentu
Melihat hal tersebut, muncul sebuah gagasan untuk membuat suatu
aplikasi yang dapat membantu dalam hal pendistibusian barang, khususnya
dalam pencarian rute pendistribusian barang. Dimana aplikasi tersebut
diharapkan dapat membantu dalam mencari jalur terpendek dalam
pendistribusian barang. Sehingga dalam pendistribusian barang ke gerai – gerai Circle K dapat lebih efisien dan juga membantu kurir dalam mencari
rute.
Permasalahan pendistribusian barang tersebut termasuk dalam
sebuah Traveling Salesman Problem (TSP), dimana terdapat banyak macam
cara untuk menyelsaikan masalah ini. Terdapat dua macam dalam
penyelsaiannya, yaiutu dengan penghitungan secara konvensional (Manual,
mencari semua kemungkinan) ataupun dengan metode heuristik
(algoritma). Dalam kasus ini sistem akan menggunakan Algoritma Semut.
Algoritma Semut sendiri merupakan salah satu pendekatan dalam
penyelesaian masalah TSP. Algoritma semut merupakan salah satu
algoritma dalam metode heuristic. Dengan demikian diharapkan
permasalahan tersebut dapat diselsaikan dengan hasil yang maksimal. Dan
diharapkan aplikasi yang dibuat dapat membantu PT Circelka Indonesia
Utama khususnya regional Yogyakarta dalam melakukan kegiatan
pendistribusian barang.
1.2 Rumusan Masalah
Berdasarkan latar belakang yang telah di jabarkan pada bagian
sebelumnya, maka di dapatlah rumusan permasalahan berikut:
1. Bagaimana menerapkan algoritma semut dalam sistem yang akan
membantu dalam mencari jalur terpendek untuk pendistribusian
1.3 Tujuan Penelitian
Tujuan penelitian yang ingin dicapai melalui penulisan Tugas Akhir
ini adalah sebagai berikut:
1. Mengimplementasikan algoritma semut dalam sistem yang berguna
untuk mencari jalur terpendek untuk melakukan pendistribusian
barang.
1.4 Batasan Masalah
Batasan Masalah pada sistem ini adalah sebagai berikut:
1. Data yang digunakan hanya mencakup circle k regional yogyakarta saja.
2. Penentuan jalur terpendek dari sistem ini berdasarkan dari letak gerai
Circle k yang ada.
3. Sistem ini hanya mampu menampilkan urutan – urutan tempat yang
akan dituju saja
4. Data Circle K yang dimasukan kedalam Sistem adalah data yang telah
di Update pada bulan April 2016.
1.5 Metodologi Penelitian
Metode yang digunakan dalam menyelsaikan traveling salesman problem
ini adalah metode System Development Life Cycle (paradigma Waterfall). Tahap
dari metode ini adalah sebagai berikut:
1. Analisa kebutuhan
Tahap ini akan menidentifikasi dan menganalisa kebutuhan dari
sistem. Selain itu pada tahap ini juga akan dilakukan pengumpulan
data yang diperlukan dalam pencarian jalur terpendek.
Pada tahap ini akan dilakukan perancangan dari sistem yang akan
dibuat. Proses perancangan tersebut meliputi: Perancangan sistem,
design user interface dan implementasi program.
3. Penulisan Program
Pada tahap ini, akan dilakukan implementasi rancangan yang sudah
dibuat kedalam bahasa pemrograman yang akan digunakan.
4. Pengujian
Tahap ini merupakan tahap dimana sistem akan diujicoba untuk
mengetahui tingkat keberhasilan Sistem dan juga kesalahan – kesalahan yang ada. Tujuannya agar diketahui tingkat keberhasilan
dari aplikasi yang dibuat.
1.6 Sistematika penulisan
Secara umum, dalam menyelesaikan laporan Tugas Akhir ini, sistematika
penulisan yang akan digunakan adalah sebagai berikut :
BAB I : PENDAHULUAN
Berisi tentang latar belakang masalah, rumusan
masalah, tujuan penelitian, batasan masalah, metodologi
penelitian, dan sistematika penulisan.
BAB II : LANDASAN TEORI
Pada bab ini, akan dibahas tentang berbagai landasan
teori yang mendasari pembuatan Aplikasi pencari jalur
terpendek ini
BAB III : ANALISA DAN PERANCANGAN SISTEM
Pada bab ini, penulis akan menjelaskan tentang
analisa permasalahan yang ada dan menjelaskan tentang
BAB IV : IMPLEMENTASI SISTEM
Bab ini berisi implementasi dari rancangan yang
sudah dibuat pada bab sebelumnya.
BAB V : PENGUJIAN SISTEM
Bab ini berisi penjelasan tentang pengujian sistem
yang telah dibuat.
BAB VI : PENUTUP
Merupakan bab yang berisi kesimpulan dari penulis,
kemudian juga memberikan beberapa saran yang mungkin
dapat bermanfaat untuk pengembangan aplikasi yang telah
6
Bab II
LANDASAN TEORI
Bab ini berisikan landasan dari penelitian ini, Seperti tentang Distribusi, Algoritma
Semut, Traveling Salesman Problem, maupun Grap. Setiap hal tesebut menjadi
Landasan dari penelitian yang dilakukan. Berikut adalah uraian dari landasan – landasan tersebut:
2.1 Distribusi
Menurut para ahli, pengertian distribusi adalah kegiatan penyaluran barang
dan jasa yang dibuat dari produsen ke konsumen agar tersebar luas. Kegiatan
distribusi merupakan penghubung antara kegiatan produksi dan konsumsi.
Sedangkan untuk pelaku kegiatan distribusi sendiri dinamakan distributor.
1.1.1 Jenis – Jenis Distribusi:
a. Distribusi Langsung:
Adalah Distribusi yang dilakukan secara langsung oleh prosdusen
ke konsumen yang dilakukan tanpa perantara.
b. Distribusi Tak Langsung:
Adalah penyaluran atau penjualan barang dari produsen kepada
konsumen melalui perantara. Perantara tersebut diantaranya adalah
pedagang, agen, makelar dan juga toko – toko.
(http://www.artikelsiana.com/2014/11/pengertian-distribusi-fungsi-fungsi-kegiatan.html)
2.2 Graph
Graph merupakan sebuah struktur data yang terdiri dari vertex(titik) dan
edge(garis atau juga busur/arc). Dimana setiap vertex akan dihubungkan oleh edge
sehingga membentuk suatu kesatuan yang disebut sebagai graf. Untuk lebih
jelasnya coba perhatikan gambar graph dibawah ini yang menggambarkan sebuah
Gambar 2. 1 Graph antar Kota
Gambar diatas merupakan senuah peta kota yang di gambarkan dalam bentuk
graph, diman kota merupakan titik(vertex) sedangkan garis yang menghubunhkan
kota adalah jalan(edge).
Terdapat beberapa graph yang dapat digunakan, diantaranya adalah sebagai
berikut:
• Graf berarah: adalah graf yang edgenya memiliki arah, misalnya vertex A dan B dihubungkan oleh edge AB, namun untuk hubungan
vertex b ke A harus ada edge lain yaitu edge BA jika tidak ada maka
B ke A tidak memiliki hubungan, walaupun A ke B erdapat
hubungan.
• Graf tak berarah: berbeda dengan graf berarah, pada graf tidak berarah jika terdapat edge AB maka edge tersebut menghubungkan
A ke B dan juga B ke A.
• Graf Berbobot : adalah sebuah graf yang memiliki edge yang bernilai atau memiliki nilai tertentu.
• Graf tidak berbobot: adalah kebalikan dari graf berbobot.
2.3 Traveling Salesman Problem
Traveling Salesman Problem atau TSP sebenarnya adalah masalah klasik
dalam pencarian jalur terpendek. Masalah ini mungkin terdengar sederhana, namun
dalam pemecahanya sangatlah tidak sederhana. Banyak macam algoritma yang
permasalahanya. Terkadang suatu algoritma bisa sangat optimal dalam kasus A
namun menjadi tidak optimal dalam kasus B. Biasanya TSP akan digambarkan
dalam sebuah Graph.
Permasalahan matematika tentang Traveling Salesman Problem atau TSP
sendiri dikemukakan pada tshun 1800 oleh Wiliam Rowan Hamilton dan Thomas
Penyngton. Wiliam Rowan Hamilton adalah seorang maematikawan dari Irlandia
sedangkan Thomas Penyngton adalah seorang matematikawan dari Inggris.
Kemudian bentuk umum dari TSP mulai dipelajari oleh matematikawan pada tahun
1930 dimana Karl Menger di Vienna dan Harvad mengawalinya. Lalu TSP
dipublikasikan oleh Hassler Whitney dan Merrill Flood di princeton.
Permasalahan TSP memiliki banyak teknik yang dapat digunakan dalam
menanganinya. Salah satunya adalah teknik Heuristik, dimana teknik ini adalah
teknik yang akan memberikan hasil yang mendekati optimal. Beberapa metode
heuristik seperti algoritma genetika, simulated annealing dan algoritma semut
sendiri merupakan suatu cara untuk mencari hasil traveling salesman problem yang
baik namun belum bisa dikatakan yang terbaik.
2.3.1
Aplikasi TSPTraveling Salesman Problem yang awalnya merupakan sebuah masalah
pada akhirnya telah berkembang dan dapat dimanfaatkan dalam beberapa sektor.
Berikut adalah beberapa contohnya:
a. Logistik dan Supply Chain:
Logistik dan supply Chain secara umum mengandung pengertian
bahwa sistem tersebut dapat mengatur atau mengelola orang, suberdaya,
aktifitas, teknologi dan lain – lain guna kepentingan untuk mengantar barang dari titik asal(suplier) kepada titik tujuan(pelanggan). Sehingga
diharapkan pemasokan tersebut dapat berjalan secara tepat waktu, tepat
jumlah, tepat lokasi, tepat sumber daya dan lain lain.
b. Transportasi:
Dalam bidang ini salah satu pionir yang memanfaatkan TSP adalah
Rute bus sekolah di New Jersy pada tahun 1940an. Dalam hal transportasi
memang TSP sangatlah berguna seperti untuk mencari jalur terpendek untuk
perjalanan.
c. Manufaktur:
Dalam bidang manufaktur TSP dapat dimanfaatkan dalam pencarian
jalur terpendek sehingga meningkatkan kecepatan produksi dan dapat
menekan biaya produksi.
d. Bidang lainnya:
Pada bidang lain TSP juga dapat dimanfaatkan dalam pendjadwalan
pengiriman koran, pengiriman surat oleh pos pemasangan jaringan
telekomunikasi dan lain lain.
2.4. Algoritma Semut
Membahas tentang Algoritma semut, dasar algoritma semut dan
algoritma semut itu sendiri.
2.4.1. Tentang Algorima Semut
Algoritma Semut merupakan simulasi multi agen yang menggunakan
metafora alami semut untuk menyelesaikan problem ruang fisik. Algoritma ini
merupakan algoritma yang diperkenalkan oleh Moyson dan Manderick dan secara
meluas dikembangkan oleh Marco Dorigo. Algoritma semut merupakan teknik
probabilistik untuk menyelesaikan masalah komputasi dengan menemukan jalur
terbaik melalui grafik. Sesuai dengan namanya, algoritma ini adalah algoritma yang
terinspirasi dari semut. Dimana perilaku semut yang meninspirasi algoritma ini
adalah saat semut menemukan jalur dari koloninya menuju makanan.
Semut mampu mengindra lingkunganya yang kompleks untuk mencari
makanan. Saat menemukan makanan semut akan kembali ke koloni atau sarangnya
dengan meninggalkan zat feromon pada jalur – jalur yang mereka lewati. Zat Feromon adalah zat yang berasal dari kelenjar endokrim yang digunakan oleh
makhluk hidup untuk mengenali sesama jenis, individu lain, klompok bahkan
membantu untuk proses reproduksi. Berbeda dengan hormon, feromon meyebar
yang sejenis (satu spesies). Peninggalan fermon merupakan cara dari semut untuk
mengingat jalan pulang, selain itu hal tersebut juga berfungsi untuk berkomunikasi
dengan koloninya.
Dalam kejadian sehari – hari, algoritma semut biasa diterapkan dalam
beberapa persoalan seperti berikut:
1. Traveling Salesman Problem (TSP)
Merupakan sebuah permasalahan dalam pencarian jalur terpendek.
Dimana dalam pencarian jalur terpendek semua titik harus dilewati.
Contoh: pengantar surat yang harus mengantar semua surat pada
alamat tujuan.
2. Quadratic Assigment Problem (QAP)
Merupakan masalah dalam meng-asign sejumlah n resources untuk
ditempatkan pada sejumlah m lokasi dengan meminimalisir biaya
assignment.
3. Job-shop Scheduling Problem (JSP)
Merupakan sebuah permasalahan dalam penjadwalan sejumlah
j pekerjaan menggunakan sejumlah m mesin sedemikian rupa
agar seluruh pekerjaan dapat diselesaikan dalam waktu yang
minimal.
2.4.2. Konsep Dasar
Pada siklus semut, setiap semut akan berperan sebagai agen yang :
• Akan berpindah dari kota i ke kota j, pada interval antara t dan (t+1). Kota j dipilih atas dasar probabilitas terhadap jarak d(Ci , Cj) dan
jumlah jejak pada edge(jalur) yang menghubungkan antara Ci dan Cj • Akan mengunjungi kota yang belum pernah dikunjungi sebelumnya. Hal ini diimplementasikan dengan cara menyimpan semua kota yang
telah dikunjungi semut hingga semut tersebut menyelesaikan
perjalanannya, dan akan mereset kembali setelah semut itu
menyelesaikan satu siklus.
Misalkan Ʈ adalah intensitas jejak semut pada edge(i,j) pada saat t, maka
setelah suatu semut menyelsaikan perjalanan dalam suatu siklus, intensitas jejak
akan berubah menjadi:
Dengan ρ adalah koefisien dengan nilai 0 sampai 1, sedemikian hingga (1-ρ) menunjukan penguapan jejak, dan
∑� ΔƮ
− (t,t+N) adalah jejak yag ditingkalkan oleh semut k pada edge (i,j)
pada saat antara t sampai(t+1), yang dihitung sebagai berikut:
Q = Konstanta
� = panjang jalur untuk perjalanan semut k
Tabu List digunakan untuk menyimpan nama kota yang telah dikunjungi
oleh semut. Tabu (s) adalah kota ke s yang dikunjngi oleh semut k. Sehingga jika
kota sudah dilewati maka akan disimpan di Tabu (s) dan tidak boleh dipilih lagi.
Sehingga Tabu (k= 1, 2,..,m) dikosongkan.
Probabilitas transisi dari kota i ke kota j diberikan dengan formula sebagai
berikut:
Parameter dan digunakan untuk mengendalikan tingkat kepentingan
relatif dari jejak dan visibilitas.
Ʈ (t+N) = ρƮ (t) + ΔƮ (t,t+N) Gambar 2. 2 Rumus Intensitas Jejak
Gambar 2. 3 Rumus Penguapan Jejak
Gambar 2. 4 Rumus mencari jejak yang ditinggalkan
2.4.3 Cara Kerja Aloritma Semut
Urutan pengerjaan dalam algorima semut adalah sebagai berikut:
1. Inisialisasi Parameter α(tetapan intensitas jejak semut), β (tetapan
visibilitas),
τ, m
(jumlah semut), iterasi, dan Q (konstanta).2. Letakan semut ke salah satu node secara acak.
3. Selama dalam iterasi lakukan langkah 4- 6
4. Untuk setiap semut, lakukan :
• Memilih probabilitas (berdasarkan persamaan sebelumnya) untuk bergerak ke node berikutnya
• Tambahkan node yang sudah dilalui kedalam List • Ulangi hingga semut menyelesaikan solusi
5. Untuk setiap semut yang telah menyelesaikan solusi lakukan: Update feromon τ untuk tiap node yang dilalui semut. 6. Jika solusi lokal terbaik lebih baik daripada solusi global
Simpan solusi lokal terbaik sebagai solusi global
7. Selesai.
2.4.4 Contoh Penerapan Algoritma Semut
Terdapat Sebuah travel yang harus mengantarkan penumpang ke kota A, B,
C, D, E. Supir tersebut diminta untuk menemukan jalur terpendek yang harus
dilaluinya. Sedangkan kota yang pertama dimasuki adalah kota A sehingga supir
diminta menentukan tujuan selanjutnya agar dapat menjadi jalur terpendek. Berikut
ini adalah graf dari kota tujuannya:
Gambar diatas adalah graph dari peta lokasi yang harus dikunjungi oleh supir travel
tersebut. Kemudian jarak antar kota di gambarkan dalam bentuk tabel seperti
berikut ini:
A B C D E
A 0 8 10 4 5
B 8 0 6 11 10
C 10 6 0 4 12
D 4 11 4 0 6
E 5 10 12 6 0
Tabel 2. 1 Tabel Matrix antar titik
Langkah 1:
Inisialisasi parameter :
• α (intensitas jejak semut) = 1.00 • β (visibilitas) = 1.00
• ρ = 0.5
• Ʈ awal = 0.01
• m (jumlah siklus/semut) = 4 • Q = 1
Visibilitas antar kota (� = Q/jarak) :
A B C D E
A 0 0.125 0.100 0.250 0.200
B 0.125 0 0.167 0.091 0.100
C 0.100 0.167 0 0.250 0.083
D 0.250 0.091 0.250 0 0.167
E 0.200 0.100 0.083 0.167 0
Tabel 2. 2 Visibilitas
A B C D E
A 0 0.01 0.01 0.01 0.01
C 0.01 0.01 0 0.01 0.01
D 0.01 0.01 0.01 0 0.01
E 0.01 0.01 0.01 0.01 0
Tabel 2. 3 Tabel intensitas jejak semut awal
Langkah 2:
Memasukan semut ke salah satu node secara acak, dalam kasus ini dimasukan
kedalam kota A sebagai titik awal semua semut.
m1(semut1) Kota A
m2(semut2) Kota B
m3(semut3) Kota C
m4(semut4) Kota D
Tabel 2. 4 pengisian node awal
Langkah 3:
Melakukan Langkah 4 sampai 5
Langkah 4
Mencari probabilitas tertinggi
[Ʈ t ] [� ] ∑[Ʈ t ] [� ]
Menghitung [Ʈ t ] [� ] :
Kota A – Kota B = [Ʈ t ] [� ] = ( . . ( . . = 0.00125
Kota A – Kota C = [Ʈ t ] [� ] = ( . . ( . . = 0.001
Kota A – Kota D = [Ʈ t ] [� ] = ( . . ( . . = 0.0025
Kota A – Kota E = [Ʈ t ] [� ] = ( . . ( . . = 0.002
Menghitung ∑[Ʈ t ] [� ] :
[Ʈ t ] [� ] ∑[Ʈ t ] [� ] :
Kota A – Kota B = [Ʈ t ] [� ]
∑[Ʈ t ] [� ] = 0.00125/0.00675 = 0.185185
Kota A – Kota C = [Ʈ t ] [� ]
∑[Ʈ t ] [� ] = 0.001/0.00675 = 0.148148
Kota A – Kota D = [Ʈ t ] [� ]
∑[Ʈ t ] [� ] = 0.0025/0.00675 = 0.37037
Kota A – Kota E = [Ʈ t ] [� ]
∑[Ʈ t ] [� ] = 0.002/0.00675 = 0.296296
Kota B Kota C Kota D Kota E
0.185185 0.148148 0.37037 0.296296
Tabel 2. 5 probabilitas
Probabilitas terbesar adalah kota D maka :
A D
Lakukan hal yang sama untuk mendapat tujuan selanjutnya, dimana titik dimulai
dari kota D:
Kota D – Kota A = [Ʈ t ] [� ] = ( . . ( . . = 0.0025
Kota D – Kota B = [Ʈ t ] [� ] = ( . . ( . . = 0.00091
Kota D – Kota C = [Ʈ t ] [� ] = ( . . ( . . = 0.0025
Kota D – Kota E = [Ʈ t ] [� ] = ( . . ( . . = 0.001667
Menghitung ∑[Ʈ t ] [� ] = 0.0025 + 0.00091 + 0.0025 + 0.001667
=0.007577
Kota D – Kota B = [Ʈ t ] [� ]
∑[Ʈ t ] [� ] = 0.00091/0.007577= 0.120106
Kota D – Kota C = [Ʈ t ] [� ]
∑[Ʈ t ] [� ] = 0.0025/0.007577= 0.32996
Kota D – Kota E = [Ʈ t ] [� ]
∑[Ʈ t ] [� ] = 0.001667/0.007577= 0.219974
Kota B Kota C Kota E
0.120106 0.32996 0.219974
Tabel 2. 6 Probabilitas (2)
Probabilitas tertinggi pada kota C
A D C
Lakukan hal yang sama untuk mendapat tujuan selanjutnya, dimana titik dimulai
dari kota C :
Kota C – Kota A = [Ʈ t ] [� ] = ( . . ( . . = 0.001
Kota C – Kota B = [Ʈ t ] [� ] = ( . . ( . . = 0.00167
Kota C – Kota D = [Ʈ t ] [� ] = ( . . ( . . = 0.0025
Kota C – Kota E = [Ʈ t ] [� ] = ( . . ( . . = 0.000833
Menghitung ∑[Ʈ t ] [� ] = 0.001 + 0.00167+ 0.0025+ 0.000833 = 0.006
Probabilitas :
Kota C – Kota B = [Ʈ t ] [� ]
∑[Ʈ t ] [� ] = 0.00167/0.006= 0.278179
Kota C – Kota E = [Ʈ t ] [� ]
Kota B Kota E
0.278179 0.138812
Tabel 2. 7 Probabilitas (3)
Probabilitas tertinggi pada kota B
A D C B
Karena yang belum terpilih adalah E maka tujuan terakhir adalah kota E
A D C B E
Langkah 5
Update intensitas jejak semut:
Ʈ (t+N) = ρƮ (t) + ΔƮ (t,t+N)
Kota A ke Kota D:
Ʈ = ρƮ + ΔƮ = (0.5*001)+(1/4)= 0.255
Kota E ke Kota C:
Ʈ = ρƮ + ΔƮ = (0.5*001)+(1/4)= 0.255
Kota C ke Kota B:
Ʈ = ρƮ + ΔƮ = (0.5*001)+(1/6)= 0.167167
Kota B ke Kota E:
Ʈ = ρƮ + ΔƮ = (0.5*001)+(1/10)= 0.105
A B C D E
A 0 0.01 0.01 0.255 0.01
C 0.01 0.167167 0 0.255 0.01
D 0.255 0.01 0.255 0 0.01
E 0.01 0.105 0.01 0.01 0
Tabel 2. 8 Tabel intensitas jejak semut untuk semut ke 1
Rute yang dilewati m1(semut1):
A D C B E
Selanjutnya ulangi Langkah 4 dan 5 untuk semut 2 sampai 4, selanjutnya
19
BAB III
ANALISIS DAN PERANCANGAN
3.1 Analisis Sistem
Sistem ini bertujuan untuk mencari rute terpendek untuk mendistribusikan
barang dari gudang PT CIRCLEKA Indonesia Utama cabang Yogyakarta ke gerai – gerai Circle K yang ada di kota Yogyakarta. Dimana system ini akan menerapkan algoritma semut dalam pencarian rute tersebut. Dan diharapkan algoritma ini dapat
membantu untuk mendapat hasil yang maksimal.
Dalam system ini akan terdapat data dari lokasi gudang dan gerai – gerai Circle K yang ada di kota Yogyakarta. Dimana data tersebut menunjukan jarak
antara gerai dengan gudang dan juga jarak antara gerai satu dengan yang lainnya.
Lalu pengguna system ini dapat memilih gerai – gerai yang akan di tuju untuk mendistribusikan barang. Lalu system akan mencari rute terpendek dalam
menjangkau gerai – gerai yang dipilih.
3.1.1 Analisis Masalah
Pendistribusian stock barang oleh PT.Circleka Indonesia Utama region
Yogyakarta meliputi 36 toko yang terdapat di wilayah Daerah Istimewa Yogyakarta
dan beberapa oko yang terdapat di luar daerah. Dalam melakukan pendistribusian
barang ke toko – toko Circle K tersebut digunakan sebuah mobil container berukuran sedang. Dimana dalam sekali tempuh mobil tersebut dapat
mendistribusikan stock barang hingga mencakup 3 sampai 5 toko di
Yogyakarta.dalam melakukan pendistribusian barang tersebut perjalanan akan
dimulai dari Gudang milik PT Circleka Indonesia Utama region Yogyakarta.
Gudang tersebut terletak di Jl. Raya Magelang KM 7 No. 9 Sendangadi Mlati
Sleman yang mana juga merupakan alamat dari kantor region Yogyakarta.
Dalam pendistribusian barang biasanya akan membawa stock untuk 3
hingga 5 toko. Dimana untuk mengantar barang tersebut dilakukan dalam satu kali
perjalanan. Dan dalam menempuh perjalanan tersebut seorang supir akan
selanjutnya sehingga seluruh toko berhasil dituju dan seluruh barang
terdistribusikan.
Gambar 3. 1 Peta Persebaran Toko Circle K di Yogyakarta
3.1.2 Aturan Pencarian Rute
Dalam pembuatan sistem pencari rute ini memiliki beberapa aturan yang
harus dipenuhi agar sistem ini dapat dikatakan optimal. Aturan – aturan tersebut merupakan beberapa kendala yang mungkin terjadi dalam sistem. Dan kendala
tersebut tentusaja harus dihindari uleh sistem. Kendala – kendala tersebut adalah sebagai berikut:
1. Dalam sekali perjalanan tidak boleh ada toko yang sama
2. Dalam sekali perjalanan Tidak boleh mengunjungi toko yang sudah
dikunjungi.
3. Titik awal keberangkatan pendistribusian barang adalah Gudang
yang terletak di tempat yang sama dengan kantor pusat cabang
3.1.3 Sumber Data
Sumber data yang diperoleh merupakan data dari PT.Circleka Indonesia
Utama region Yogyakarta. Data tersebut merupakan data yang sudah diperbarui per
April 2016. Data yang digunakan untuk sistem ini adalah Toko dan Data Rute. Data
Toko meliputi 36 toko yang termasuk dalam region yogyakarta. Dimana data tiap
toko adalah data nama toko, kode toko, alamat toko dan koordinat lokasi dari toko.
Sedangkan untuk data rute merupakan data yang menyimpan data jalur antar toko
yang ada. Dimana data tersebut mencakup jarak toko dan rute yang ditempuh antar
toko. Berikut ini adalah data toko yang berada dibawah kantor region Yogyakarta:
Kode Nama Toko
YOG0101 YOG 0101 - CK 0101 Sosrowijayan YOG0102 YOG 0102 - CK 0102 Parangtritis YOG0104 YOG 0104 - CK 0104 Sudirman YOG0109 YOG 0109 - CK 0109 Sudirman Tugu YOG0111 YOG 0111 - CK 0111 Sosrowijayan II YOG0112 YOG 0112 - CK 0112 Timoho
YOG0113 YOG 0113 - CK 0113 Taman Siswa 136 YOG0114 YOG 0114 - CK 0114 Kusumanegara 46 YOG0116 YOG 0116 - CK 0116 Kota Baru
YOG0117 YOG 0117 - CK 0117 AM Sangaji YOG0209 YOG 0209 - CK 0209 Magelang KM.5 YOG0213 YOG 0213 - CK 0213 Ring Road
YOG0215 YOG 0215 - CK 0215 Magelang KM.7 No.9 (Gudang) YOG0216 YOG 0216 - CK 0216 Monjali 86 B 230
YOG0301 YOG 0301 - CK 0301 Godean YOG0201 YOG 0201 - CK 0201 Kaliurang YOG0205 YOG 0205 - CK 0205 Babarsari
YOG0207 YOG 0207 - CK 0207 Kaliurang Bawah YOG0210 YOG 0210 - CK 0210 Jl. Solo KM.8 YOG0211 YOG 0211 - CK 0211 Demangan YOG0214 YOG 0214 - CK 0214 Seturan Atas YOG0217 YOG 0217 - CK 0217 Kaliurang KM.8 YOG0221 YOG 0221 - CK 0221 Sorogenen I
YOG0222 YOG 0222 - CK 0222 Nologaten (Wahid Hasyim) YOG0223 YOG 0223 - CK 0223 Anggajaya
YOG0224 YOG 0224 - CK 0224 Nusa Indah YOG0227 YOG 0227 - CK 0227 Seturan YOG0228 YOG 0228 - CK 0228 Affandi
YOG0229 YOG 0229 - CK 0229 Gatic Condong Sari
YOG1106 YOG 1105 - CK 1105 Bandara Adi Sucipto Drop Zone Parkir Utara
YOG1107 YOG 1107 - CK 1107 Bandara Adi Sucipto/ Terminal B YOG1108 YOG 1108 - CK 1108 Bandara Adi Sumarmo SOLO
Tabel 3. 1 Data Toko
Data diatas adalah seluruh toko yang ada di regional Yogyakarta, namun tidak semua toko diatas masuk kedalam sistem ini. Terdapat 2 toko yang terletak di luar provinsi yogyakarta, yaitu CK 1108 Bandara Adi Sumarmo Solo dan CK 1104 Bandara Ahmad yani Semarang. 2 toko itu tidak dimasukan kedalam sistem karena dalam pengiriman stock biasanya hanya dilakukan sekali jalan. Dimana mobil yang mengantar stock barang tidak mengantar stock ke toko lain selain toko circle k yang berada diluar provinsi tersebut. Sehingga kedua toko tersebut tidak perlu dimasukan kedalam sistem ini. Selanjutnya terdapat 5 toko dalam ruang lingkup yang sama, yaitu CK 1101, CK 1102, CK 1103, CK1105 dan Ck1107. Kelima toko itu terdapat pada area yang sama, yaitu area Bandara Adisucipto. Sehingga dalam sistem kelima toko Circle K tersebut dijadikan 1 nama saja.dan setelah itu hanya terdapat 30 data toko saja yang digunakan dalam sistem ini. Namun data toko ini dapat diperbarui sesuai dengan apa yang terjadi. Berikut ini adalah data toko CK yang digunakan dalam sistem yang akan dibuat
kode Nama Toko
YOG0101 YOG 0101 - CK 0101 Sosrowijayan YOG0102 YOG 0102 - CK 0102 Parangtritis YOG0104 YOG 0104 - CK 0104 Sudirman YOG0109 YOG 0109 - CK 0109 Sudirman Tugu YOG0111 YOG 0111 - CK 0111 Sosrowijayan II YOG0112 YOG 0112 - CK 0112 Timoho
YOG0113 YOG 0113 - CK 0113 Taman Siswa 136 YOG0114 YOG 0114 - CK 0114 Kusumanegara 46 YOG0116 YOG 0116 - CK 0116 Kota Baru
YOG0117 YOG 0117 - CK 0117 AM Sangaji YOG0209 YOG 0209 - CK 0209 Magelang KM.5 YOG0213 YOG 0213 - CK 0213 Ring Road
YOG0215 YOG 0215 - CK 0215 Magelang KM.7 No.9 YOG0216 YOG 0216 - CK 0216 Monjali 86 B 230 YOG0301 YOG 0301 - CK 0301 Godean
YOG0201 YOG 0201 - CK 0201 Kaliurang YOG0205 YOG 0205 - CK 0205 Babarsari
YOG0221 YOG 0221 - CK 0221 Sorogenen I
YOG0222 YOG 0222 - CK 0222 Nologaten (Wahid Hasyim) YOG0223 YOG 0223 - CK 0223 Anggajaya
YOG0224 YOG 0224 - CK 0224 Nusa Indah YOG0227 YOG 0227 - CK 0227 Seturan YOG0228 YOG 0228 - CK 0228 Affandi
YOG0229 YOG 0229 - CK 0229 Gatic Condong Sari YOG1101 YOG 1101 - CK 1101 Bandara Adi Sucipto
Tabel 3. 2 Data Toko yang Digunakan
Sedangkan untuk data Rute dari toko memiliki data sebagai berikut
Kode Toko Awal Kode Toko Tujuan Jarak Rute
Data diatas merupakan data rute yang digunakan sistem untuk mencari jarak dan
jalur yang harus dilalui. Dimana data tersebut terdiri dari 4 entitas yaitu kode toko
awal, kode toko tujuan, jarak dan rute. Kode toko awal merupakan titik awal dari
semut, sedangkan kode toko tujuan adalah toko yang dituju selanjutnya. Lalu untuk
data jarak adalah jarak antara toko awal dan toko tujuan. Sedangkan rute merupakan
jalur yang dilalui oleh semut untuk mencapai tujuan dari toko awal menuju ke toko
tujuan.
Untuk mendapatkan data diatas, diguanakan aplikasi google maps untuk
mendapatkan data jarak dan jalur yang dilewati. Untuk mencarinya diperlukan data
koordinat antar toko. Data koordinat tersebut dimasukan pada google maps maka
akan muncul hasil jarak antar toko beserta jalur yang dilewati. Data yang didapat
tersebut selanjutnya disimpan kedalam tabel data rute diatas. Berikut ini adalah
Gambar 3. 2 Pencarian rute dengan google maps
3.2 Permodelan Algoritma Semut untuk Pencarian Rute
Pada proses penerapan algoritma semut untuk pencarian rute distribusi
barang, terdapat beberapa komponen yang harus diperhatikan
3.2.1 Inisialisasi Parameter
Inisialisasi parameter merupakan proses awal dalam penerapan algoritma semut. Beberapa parameter yang digunakan dalam algoritma semut adalah α(alfa), β(Beta),ρ(Rho), m(jumlah semut) dan Iterasi.
Parameter Nilai
α(alfa) 5
β(Beta) 2
ρ(Rho) 0.3
m(jumlah semut) 5
Iterasi 2
Tij 0.01
Tabel 3. 4 Inisialisasi Parameter
Data parameter diatas adalah data yang disesuaikan dengan buku refrensi dari Sri
Kusumadewi dkk (2003) dan Skripsi dari Roy Wiranta(2015). Selain parameter
dengan rumus η =1/Jarak. Sedangkan untuk mendapatkan nilai jarak digunakan method cariJarak() untuk mendapat nilai jarak antar toko. Data jarak antar toko
sendiri disimpan didalam database.
Selanjutnya sebagai proses awal semut akn menuju ke node pertama secara
random. Dari node pertama ini semut akan mencari node – node selanjutnya untuk dituju, sehingga membentuk senuah rute. Untuk menentukan node selanjutnya
diperlukan nilai probabilitas, dimana titik yang memiliki nilai probabilitas tertinggi
merupakan node selanjutnya. Untuk mendapat nilai probabilitas diperlukan nilai – nilai dari parameter diatas.setelah mendapat semua node yang dituju pencarian
probabilitas akan dilakukan sesuai dengan banyaknya nilai iterasi.
3.2.2 Mencari Urutan Node
Proses Selanjutnya merupakan pencarian urutan node. Untuk mencari node
diperlukan pencarian probabilitas, dimana nilai probabilitas adalah nilai yang
digunakan untuk mencari titik node(toko) selanjutnya dalam pencarian rute.
Langkah untuk mendapatkan nilai probabilitas tertinggi adalah sebagai berikut:
1) Cari visibilitas antar toko i ketoko j sebanyak jumlah toko yang dipilih,
i merupakan toko yang disinggahi oleh semut sedangkan j adalah toko
yang belum dikunjungi oleh semut
2) Setelah seluruh visibilitas ditemukan maka jumlahkan nilai seluruh
visibilitas yang ada.
3) Langkah terakhir adalah membagi nilai visibilitas awal dengan nilai
dari jumlah visibilitas.
4) Hasil dari pembagian merupakan nilai probabilitas.
Setelah mendapat nilai probabilitas maka akan dicari nilai probabilitas tertinggi.
Nilai probabilitas tertinggi merupakan node selanjutnya yang akan dituju oleh
semut. Setelah mendapat node selanjutnya maka dilakukan lagi langkah diatas
hingga seluruh toko berhasil dikunjungi oleh semut. Disetiap kunjungan semut
maka jejak dari semut(fromon) harus diupdate, dimana langkah untuk mengupdate
feromon semut adalah:
Setelah semut berhasil mengunjungi seluruh toko maka lakukan langkah
tersebut sebanyak iterasi, namun dengan nilai feromon yang telah diupdate. Setelah
dilakukan pencarian node sebanyak iterasi maka hasil akhir dari pencarian rute
tersebut akan disimpan sebagai data dari semut ke-m. Iterasi tersebut biasanya akan
memiliki hasil yang konsisten antara ireasi terakhir dan iterasi sebelumnya.
Kemudian Langkah tersebut akan dilakukan sebanyak jumlah semut yang di
masukan. Proses yang dilakukan setiap semut untuk mendapat rute sama seperti
cara diatas, hanya saja nilai dari node pertama setiap semut berbeda karena node
pertama setiap semut didapat secara random. Setelah semua semut mendapatkan
rutenya maka akan dilakukan update solusi sebagai berikut.
3.2.3 Update Solusi
Langkah terakhir adalah update solusi, dimana langkah ini menentukan jalur
semut yang dipakai. Untuk melakukan update solusi maka langkah langkah
sebelumnya haruslah sudah terpenuhi. Setelah seluruh semut mengunjungi seluruh
node(toko) maka pada bagian ini akan ditentukan solusi terbaik.
3.3
Perancangan Sistem
3.3.1 Diagram Use case
Gambar 3. 3 Diagram Usecase
1) Selama cek lebih kecil dari jumlah semut maka lakukan langkah 2 dan 3 2) Bandingkan nilai jarak solusi akhir dengan nilai jarak semut ke-m 3) Jika nilai jarak semut ke-m tidak sama dengan 0 dan nilai jarak semut ke
m lebih kecil dari nilai solusi akhir maka: a. Solusi akhir = nilai jarak semut ke-m Jika tidak, maka:
3.3.2 Ringkasan Use Case
Nama Use Case Keterangan Pelaku
Cari Rute Use case ini merupakan fungsi utama dari
sistem dimana pada bagian ini sistem akan
melakukan pencarian rute sesuai dengan
tujuan yang diilih oleh pengguna, dimana
sebelumya data sudah disimpan pada database
Admin
Cetak Hasil Use case ini merupakan proses pencetakan
hasil dari pencarian rute terpendek. Dimana
rute terpendek akan dicetak dan dijadikan surat
pengantar untuk pendistribusian
Tambah Data Toko Use case ini merupakan proses penambahan
data baru kedalam sistem.
Admin
Hapus Data Toko Use Case ini merupakan proses penghapusan
data pada sistem yang dirasa sudah tidak
diperlukan lagi.
Admin
Tabel 3. 5 Ringkasan Usecase
3.3.3 Narasi Use Case
Nama Use Case Cari Rute
Aktor Admin
Diskripsi Pengguna mencari rute terpendek
Prakondisi Sistem sudah dibukan dan dalam menu Home
Langkah Aksi Aktor Reaksi Sistem
Kerja Langkah 1:
Admin memilih tombol Cari
Langkah 3:
Admin memilih toko - toko yang akan dicari rutenya
Menampilkan pesan eror jika
terdapat kesalahan.
3.3.4 Diagram Aktivitas
a. Cari Rute
Admin memilih tombol Cari Rute
Sistem menampilkan menu Cari Rute.
Admin memilih toko - toko yang akan dicari rutenya
Sistem memasukan toko – toko yang dipilih kedalam tabel Setelah semua toko yang diinginkan
masuk tabel, admin klik tombol Mulai cari Rute
Sisem menampilkan pesan persetujuan/konfirmasi Admin menyetujui dengan memilih
OK.
Sistem mencari rute terpendek berdasarkan data yang ada
Menampilkan pesan rute terpendek berhasil didapat disertai urutan rutenya Mulai
Selesai Gambar 3. 4 Diagram Aktifitas Cari Rute
3.4
Perancangan Basisdata
3.4.1 ER Diagram
3.4.2 Model Fisikal
a) Tabel Toko
Field Name Type Size Key
Kode_Toko Varchar2 10 *
Nama_Toko Varchar2 100
Nomer Number
Alamat Varchar2 100
Koordinat Varchar2 100
Tabel 3. 7 Design Tabel toko
b) Tabel Rute
Field Name Type Size Key
No_Rute Number *
Kode_Toko_Awal Varchar2 10
Kode_Tujuan Varchar2 10
Jarak Number 10
Rute_Tujuan Varchar2 4000
Tabel 3. 8 Design Tabel Rute
c) Tabel Hasil
Field Name Type Size Key
Nomer Number *
Tanggal Date
Rute Varchar2 4000
Jarak_Tempuh Varchar2 100
Urutan_Toko Varchar2 100
3.5 Design Interface
a) Home
Gambar dibawah adalah menu Home dimana akan tampil saat pertama kali
sistem dijalankan. Dalam menu tersebut terdapat tombol utama yaitu, Tombol
tombol Cari Rute. Pada tombol Cari Rute sistem akan mengantarkan kedalam menu
Cari Rute. Menu ini adalah fungsi utama dari sistem pencari jalur terpendek travel.
Dimana sistem akan mencari jalur terpendek tersebut. Setelah itu terdapat juga
pilihan keluar disudut kanan bawah. Pilihan tersebut berfungsi untuk menutup
sistem atau keluar dari sistem pencari rute terpendek distribusi ini.
Gambar 3. 6 Tampilan Home
b) Cari Rute
Menu Cari Rute merupakan menu yang menampilkan fungsi utama dari sistem,
yaitu mencari rute terpendek untuk perjalanan travel. Menu ini akan muncul setelah
Admin memilih tombol Cari Rute pada Menu Home. Dalam menu ini terdapat
combo box yang digunakan untuk memilih toko – toko yang akan dituju. Selanjutnya nama – nama toko yang sudah terpilih akan muncul di tabel yang ada di bawah. Lalu terdapat tulisan home di bagian atas yang berguna untuk kembali ke
dalam Menu Home dan Opsi keluar untuk langsung keluar dari sistem.sedangkan
tombol cari rute akan membuat sistem mencari rute sesuai toko toko yang ada dalam
Gambar 3. 7 Tampilan Cari Rute
c) Lihat Data
Menu Lihat data adalah salah satu pilihan menu dari sistem ini. Menu ini dapat
diakses dengan menekan tombol lihat data pada menu Home. Didalam menu ini
akan ditampilkan data toko yang ada dalam sistem. Di menu ini juga terdapat
pilihan tambah data, ubah data dan juga hapus data. Dengan memilih salah satu dari
pilihan tersebut maka akan ditampilkan menu sesuai dengan yang dipilih.
d) Tambah Data
Menu ini juga merupakan menu tambahan dari sistem pencari rute distribusi
barang. Dimana menu ini berfungsi untuk menambahkan data rute sekaligus data
rute dari toko tersebut. Hal ini tentusaja mengantisipasi jika terdapat toko Circle K
baru yang akan dibangun di kota Yogyakarta. Dalam sistem ini ada textfield untuk
mengisi kode toko baru tersebut, lalu nama toko, alamat toko dan koordimat lokasi
dari toko tersebut. Setelah data – data tersebut diisi maka selanjutnya akan mengisi data rute dari toko baru tersebut menuju toko lainyang sudah ada. Atribut yang
dimasukan adalah jarak antar toko dan rute yang dilewati.
Gambar 3. 9 Tampilan Tambahan Data
e) Perbarui Data
Menu ini juga merupakan menu tambahan dari sistem pencari rute distribusu
barang. Dimana menu ini berfungsi untuk mengubah data dari toko jikalau terjadi
perpindahan lokasi ataupun data lain dari toko yang sudah ada didalam sistem.
Hampir sama dengan tambah data hanya saja terdapat combo box yang digunakan
untuk memilih nama toko yang akan di ubah. Selanjutnya proses pengubahan data
toko yang dilanjut dengan pengubahan rute yang ditempuh dari toko yang ada
Gambar 3. 10 Tampilan Tambahan Data
f) Hapus Data
Menu Hapus data merupakan menu tambahan dalam sistem ini, dimana sistem
ini berguna untuk menghapus data toko yang sudah tidak digunakan lagi. Dimana
menu ini memiliki combo box untuk memilih toko yang akan dihapus. Lalu
textfield akan terisi data dari toko yang terpilih. Lalu terdapat button hapus untuk
36
BAB IV
IMPLEMENTASI
Dalam bab ini akan dibahas mengenai implementasi dari sistem
berdasarkan dari rancangan yang dibuat pada bab sebelumnya.
4.1 Implementasi Proses
4.1.1 Implementasi Algoritma Semut
Bagian ini menjelaskan pengimplementasian Algoritma semut kedalam
program, dimana cara kerja dari algoritma semut sudah dijelaskan pada Bagian
sebelumnya. Langkah pertama dari algoritma Semut adalah penentuan nilai dari
Alpa, Beta, Iterasi, Pheronom, banyak Semut(m) dan beberapa atribut lainya.
Berikut adalah penentuan nilai nilai atribut tersebut,
Nilai – nilai yang dimaskan kedalam atribut diatas adalah nilai yang dimasukan secara random.
Selanjutnya dalam melakukan Inisialisasi Parameter adalah menentukan nilai
pheronome awal. Pheronome merupakan jejak yang dilalui oleh semut, sehingga
nilai dari pheronome awal adalah nilai yang kecil, dan pada kasus ini dipilih 0,01
sebagai nilai pheronome awal. Pheronome tersebut akan dibentuk kedalam sebuah
matrix dengan ukuran yang menyesuaikan dengan jumlah checklist(jumlah toko
yang dipilih).
Bagian ini merupakan pencarian jarak antar toko yang dipilih, dimana jarak
antar toko tersebut akan digunakan dalam pencarian Visibilitas yang juga
merupakan salah satu parameter yang harus diidentifikasi pada langkah pertama.
Selanjutnya adalah identifikasi visibilitas antar toko, dimana rumus yang
digunakan adalah (
�
= 1/jarak). Karena jarak menggunakan satuan meter makaData tersebut akan terbentuk kedalam matriks dengan ukuran yang disesuaikan
dengan jumlah toko yang dipilih.
Bagian ini merupakan langkah selanjutnya dari algoritma semut, yaitu
meletakan semut secara random. Semut diletakan berdasarkan atribut sem.
Selanjutnya bagian ini adalah langkah untuk menentukan nilai probabilitas,
dimana rumus untuk mencari nilai probabilitas adalah sebagai berikut:
� = {
[Ʈ t ] [� ]
∑[Ʈ t ] [� ] ; � � � ; � ∉ �
Dimana langkah pertama adalah mencari nilai pheronom awal di pankat nilai alfa
kemudian nilai visibilitas awal dipangkat nilai beta. Lalu nilai visibilitas tersebut di
total kedalam variabel nextprob. Kemudian nilai nilai yang sudah didapat tersebut
dimasukan kedalam rumus seperti diatas hingga didapat nilai probabilitas dari
setiap titik yang dituju semut m.
for(j = 0; j< jumChecklist; j++){ if(x==0){
nextProb = nextProb + visibilitasAkhir[nextI][j]; }
System.out.println("Prob = " + nextProb); for (j = 0; j < jumChecklist; j++) {
probabilitas[nextI][j] = visibilitasAkhir[nextI][j] / nextProb;} For (int sem = 1; sem <= msemut; sem ++){
Langkah selanjutnya setelah nilai probabilitas didapat adalah mencari nilai
probabilitas tertinggi. Nilai probabilitas tertinggi menentukan tujuan selanjutnya
dalam perjalanan semut. Pada langkah tersebut akan memeriksa apakah nilai max
lebih kecil dari probabilitas[i][j]. Jika iya nilai max akan diisi dengan nilai dari
probabilitas[i][j] dan nextIsementara diisi oleh nilai j dengan syarat nilai j tidak
sama dengan nilai yang sudah disimpan didalam tabulist.
Setelah didapat nilai probabilitas tertinggi maka nilai yang disimpan
kedalam nextIsementara akan disimpan kedalam tabulist. Langkah diatas adalah
langkah dari penyimpanan nilai nextIsementara kedalam tabulist.nilai yang didapat
tersebut merupakan node selanjutnya dalam perjalanan semut. Dan setiap node
yang didapat akan disimpan kedalam tabu list secara urut berdasakan node pertama
yang terpilih.
Selain menyimpan node selanjutnya yang didapat dari pencarian
menupdate feronome atau jejak yang dilalui semut maka nilai Rho dikalikan dengan
nilai feronom awal kemudian ditambahkan dengan nilai visibilitas.
Setelah mengupdate nilai feronom sesuai dengan rute yang dilalui oleh
semut ke m, maka data feronom akan diupdate. Dimana nilai feronom yang dilewati
oleh semut nilainya akn disesuaikan dengan nilai feronom yang sudah diupdate
sebelumnya, sedangkan yang tidak dilewati maka nilai akan tetap 0.01.
Langkah – langkah tersebut dilakukan berulang hingga semua node berhasil dikunjungi oleh semut ke m. Lalu semut yang lain juga akan mulai melakukan
pencarian rute dengan cara yang sama namun dengan node awal yang berbeda.
Setiap selesai mencari seluruh node dan sudah melakukan pencarian
sebanyak iterasi, maka hasil ddari pencarian tersebut akan disimpan. Bagian ini
merupakan penyimpanan urutan node yang disimpan dalam variabel urutan. Data
node yang disimpan kedalam urutan adalah data dari simpanTitik yang merupakan
sebuah kode toko.
for (int iupdt = 0; iupdt < jumChecklist; iupdt++) {
Selanjunya adalah menyimpan data rute yang akan digunakan untuk
mencapai node atau toko toko yang didapat oleh semut. Untuk mendapatkan data
rute yang dilalui dibutuhkan kode toko awal dan kode toko tujuan. Dimana dua
atribut tersebut digunakan untuk mendapat data rute dari database. Selanjutnya data
rute akan dirangkai kedalam ruteFix. Dimana ruteFix merupakan rangkaian ryte
dari gudang hingga toko terakhir yang akan dikunjungi.
Selanjutnya data nama toko juga disimpan kedalam variabel nama toko,
dimana data nama toko didapat dari database. Untuk mendapat nama toko
diperlukan kode toko untuk mencari nama toko dalam database. Selanjutnya nama
toko yang didapat dimasukan kedalam variabel namaToko.
Setelah data dari jarakTotal, urutanToko, ruteFix dan nama Toko diperoleh
maka data tersebut dimasukan kedalam array. Dimana array tersebut disesuaikan
dengan data semut. Sehingga data yang disimpan adalah data milik semut 1 hingga
semut ke 5. Oleh karena itu proses yang dilakukan dari Gambar 4.5 meletakkan
semut hingga proses pada Gambar 4.15 data fix akan dilakukan sebanyak jumlah
semut yang sudah ditentukan pada gambar 4.1 Inisialisasi. Maka proses ini akan
dilakukan dari semut ke 1 hingga semut ke 5. Sehingga setiap semut akan memiliki
hasil rute, jarak, nama toko dan urutan yang berbeda beda. for(int tk=0; tk<jumChecklist; tk++){
toko[tk]=CariJarak.getJarakKoneksi().get_Toko(simpanTitik[tabu[tk]]); int no = tk+1;
simpanTitik[tabu[r]] +" melewati : "+rute[r]);
Setelah seluruh semut melakukan perjalanan dan menemukan rutenya
masing masing dalam mengelilingi node, maka akan ditentukan nilai yang terkecil.
Dimana nilai jarak menjadi acuan untuk dipilihnya rute untuk dilalui. Hal ini
merupakan Langkah selanjutnya dari algoritma semut dalam menentukan rute.
Program akan mencari jarak terpendek dari kelima semut yang disebar, dan jarak
yang paling pendek akan digunakan sebagai rute yang dipilih. Sehingga data semut
ke m akan menjadi hasil akhir dari pencarian rute dalam pendistribusian barang.
Langak terakhir adalah mencetak hasil dari pencarian rute, dan dengan
demikian pencarian rute distribusi barang dengan pengopimalisasian algoritma
semut berakhir. Data yang telah diperoleh tersebut kemudian disimpan kedalam
database. Diana data tersebut dapat digunakan sebagai lampiran dan acuan dalam
melakukan pendistribusian barang.
System.out.println("Hasil akhir");
System.out.println("Jarak: "+jaraktotalFix);
System.out.println("uruan:");
System.out.println(urutanFix);
System.out.println("nama Toko: ");
System.out.println(namaTokoFix);
System.out.println("Rute: ");
System.out.println(ruteFinal); jaraktotalFix=JarakTotalAkhir[s]; urutanFix=urutanakhir[s];
namaTokoFix=namaTokoAkhir[s]; ruteFinal = ruteAkhir[s];
}else{
jaraktotalFix=jaraktotalFix;
urutanFix=urutanFix;
namaTokoFix=namaTokoFix;
4.2 Implementasi Tampilan Antar Muka 4.2.1 Implementasi Antar Muka Awal (Home)
Antar muka awal (Home) merupakan halaman pertama yang akan muncul
saat pertama kali program dijalankan. Halaman tersebut menampilkan nama sistem
dan juga logo dari Circle K dibagian atas. Selain itu terdapat juga 2 tombol cari rute
dan juga lihat data toko. Tombol cari ute akan mengantar kedalam antar muka cari
rute dan lihat data toko akan menampilkan antar muka lihat data toko.terdapat juga
ikon keluar yang akan menutup sistem jika ikon tersebut dipilih.
Gambar 4. 1 Tampilan Home
4.2.2 Implementasi Antar Muka Cari Rute
Antar Muka cari rute adalah halaman yang ditampilkan jika dari antar muka
awal dipilih tombol cari rute. Antar muka ini adalah antar muka yang disediakan
untuk mencari rute pendistribusian barang. Antar muka ini dapat dilihat pada
Gambar 4. 2 Antar Muka Cari Data
Pada antar muka ini erdapat combobox yang berisikan nama toko circle k
yang terdapat di region yogyakarta. Untuk mencari rute toko maka pengguna akan
memilih toko yang terdapat pada combo box dan kemudian nama-nama toko yang
dipilih akan masuk kedalam tabel. Berikut adalah kode untuk memasukan nama -
nama toko yang dipilih kedalam tabel.
if(comboNamaToko.getSelectedItem().toString().equals("pilih toko")){
//Nothing to do
}else{
simpanTitik[0]="YOG0215";
nama = (String) comboNamaToko.getSelectedItem();
try {
System.out.println(nama);
List<DataRute> ListData =
CariJarak.getJarakKoneksi().cariToko(nama);
Kode ini akan memerintahkan sistem untuk memasukan data dari toko yang dipilih
dari combo box untuk masuk kedalam tableToko. Setelah semua toko yang akan
dituju dimasukan kedalam tabel maka akan digunakan perintah cari rute untuk
mencari rute yang akan menuju ke toko – toko yang sudah dipilih. Kode untuk mencari rute sudah dijelaskan pada bagian 4.1.1 Implementasi Algoritma semut.
Jika dalam sstem belum ada toko yang dipilih maka sistem akan menampilkan
pemberitahuan seperti berikut
Gambar 4. 3 Pemberitahuan
Dan jika sudah ada toko yang dipilih, namun baru 1 toko maka akan muncul
pemberitahuan seperti berikut ini
Gambar 4. 4 Pemberitahuan(2) DefaultTableModel model = (DefaultTableModel)
tableToko.getModel();
tableToko.setModel(model);
model.addRow(new Object[]{ListData.get(0).getKodeToko(),
ListData.get(0).getNamaToko()});
} catch (Exception ex)
{Logger.getLogger(FormCariRute.class.getName()).log(Level.SEVERE,
null, ex); }
jumChecklist=jumChecklist+1; }
Selanjutnya jika sistem telah berhasil mendapatkan rute maka data tersebut
akan disimpan kedalam database. Berikut adalah kode untuk menyimpan data hasil
tersebut.
Perintah tersebut akan menyimpan data hasil dari pencarian rute kedalam database
hasil. Selain menyimpan hasil tersebut pada bagian ini juga dapat mencetak hasil
dari pencarian tersebut dengan perintah berikut: PreparedStatement pstmt = null;
4.2.3 Implementasi Antar Muka Lihat Data
Antar muka Lihat Data adalah halaman yang akan menunjukan data toko
yang terdapat pada sisem ini. Selain menampilkan datatoko yang dimiliki, sistem
ini juga merupakan halaman yang dapat mengarahkan ke antar muka lain, yaitu
Tambah Data, Perbarui Data dan Hapus Data. Antar muka Lihat Data dapat dilihat
pada gambar 4.5
Gambar 4. 5 Antar Muka Lihat Data
Kode program untuk menampilkan data toko yang terdapat dalam sistem ini
adalah sebagai berikut:
public List<DataRute> tampilToko() throws SQLException, Exception { PreparedStatement statement = null;
ResultSet result = null; try {
conn.setAutoCommit(false);
statement = conn.prepareStatement("select kode_toko," + "nama_toko "
Diatas merupakan kode untuk menampilkan data toko kedalam antar muka Lihat
Data. Selain melihat data toko pada antar muka ini terdapat tombol Tambah data
yang akan mengantar pada antar muka tambah data. Lalu terdapat tombol Perbarui
data yang akan mengantar pada antarmuka perbarui data. Terdapat juga tombol
hapus data yang akan mengantar pada antar muka hapus data. Selain itu juga
terdapat tombol kembali yang akan mengantar kembali ke antar muka Lihat Data.
4.2.4 Implementasi Antar Muka Tambah Data
Antar muka ini merupakan antar muka yang menampilkan halaman tambah
data, dimana tambah data berfungsi untuk menambahkan data toko jika terdapat
toko circle k baru di region Yogyakarta. Selain menambahkan data toko baru pada
halaman ini juga akan menambahkan data rute antara toko baru menuju ke toko
yang sudah ada sebelumnya. Berikut adalah gambar dari antar muka tambah data List<DataRute> datarute = new ArrayList<DataRute>();
while (result.next()) {
DataRute rute = new DataRute();