• Tidak ada hasil yang ditemukan

Pencarian rute distribusi barang menggunakan algoritma semut (studi kasus PT.Circleka Indonesia Utama Region Yogyakarta).

N/A
N/A
Protected

Academic year: 2017

Membagikan "Pencarian rute distribusi barang menggunakan algoritma semut (studi kasus PT.Circleka Indonesia Utama Region Yogyakarta)."

Copied!
108
0
0

Teks penuh

(1)

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.

(2)

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.

(3)

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

(4)

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

(5)

iii

(6)

iv

(7)

v

(8)

vi

(9)

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.

(10)

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.

(11)

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

(12)
(13)

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

(14)

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

(15)

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

(16)

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

(17)

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

(18)

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

Tabel 5. 15 Hasil pencarian Konvensional Kelimabelas ... 70

(19)

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.

(20)

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:

(21)

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.

(22)

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

(23)

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

(24)

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

(25)

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

(26)

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 TSP

Traveling 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:

(27)

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.

(28)

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.

(29)

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

(30)

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:

(31)

Gambar diatas adalah graph dari peta lokasi yang harus dikunjungi oleh supir travel

Tabel 2. 1 Tabel Matrix antar titik Langkah 1:

Tabel 2. 2 Visibilitas

A B C D E

A 0 0.01 0.01 0.01 0.01

(32)

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 ] [� ] :

(33)

[Ʈ 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

(34)

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

(35)

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

(36)

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

(37)

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.

(38)

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.

(39)

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

YOG1101 YOG 1101 - CK 1101 Bandara Adi Sucipto Franchise 1

YOG1102 YOG 1102 - CK 1102 Bandara Adi Sucipto Franchise 2

YOG1103 YOG 1103 - CK 1103 Bandara Adi Sucipto Franchise 3

(40)

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

(41)

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.

(42)

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

(43)

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:

(44)

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:

(45)

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

(46)

Langkah 3:

Admin memilih toko - toko yang akan dicari rutenya

Menampilkan pesan eror jika terdapat kesalahan.

(47)

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

(48)

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

(49)

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

(50)

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.

(51)

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

(52)

Gambar 3. 10 Tampilan Tambahan Data

f) Hapus Data

(53)
(54)

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.

(55)

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 maka rumus menjadi 1000/jarak. Dimana nilai jarak adalah jarak antar toko circle k.

(56)

Data 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 ++){

(57)

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.

(58)

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++) {

(59)

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]);

(60)

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");

(61)

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

(62)

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 =

(63)

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); }

(64)

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:

(65)

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 "

(66)

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();

(67)

Gambar 4. 6 antar muka tambah data Berikut ini adalah kode untuk menambahkan data toko baru:

public void tambahToko(Toko tk) throws SQLException{ PreparedStatement pstmt;

try{

conn.setAutoCommit(false);

String sql = "insert into toko_ck values(?,?,?,?,?)"; pstmt = conn.prepareStatement(sql);

pstmt.setString(1, tk.getNo_toko()); pstmt.setString(2, tk.getKode_toko()); pstmt.setString(3, tk.getNama_toko()); pstmt.setString(4, tk.getAlamat_toko()); pstmt.setString(5, tk.getKoor_toko()); pstmt.executeQuery();

conn.commit();

}catch (SQLException ex){ conn.rollback();

(68)

Kode diatas adalah kode untuk menambahkan data toko baru, kemudian jika data toko baru berhasil ditambahkan maka sistem akan menampilkan kode berikut ini

Gambar 4. 7 Pemberitahuan berhasil menambah data toko

Gambar 4.7 menunjukan pesan bahwa sistem berhasil menyimpan data mealui kode yang dibahas sebelumnya. Selain itu sistem dapat menyimpan rute antar toko baru dan toko yang sudah ada sebelumnya. Berikut adalah kode untuk menyimpan data rute tersebut:

Selanjutnya jika data rute telah berhasil disimpan menggunakan kode diatas maka akan muncul psan berikut:

Gambar 4. 8 Pemberitauan rute berhasil ditambah public void tambahRute(Rute rt) throws SQLException{

PreparedStatement pstmt; try{

conn.setAutoCommit(false);

String sql = "insert into rute_ck values(?,?,?,?,?)"; pstmt = conn.prepareStatement(sql);

pstmt.setString(1, rt.getNo()); pstmt.setString(2, rt.getKodeAwal()); pstmt.setString(3, rt.getKodeTujuan()); pstmt.setDouble(4, rt.getJarak()); pstmt.setString(5, rt.getRute()); pstmt.executeQuery();

conn.commit();

}catch (SQLException ex){ conn.rollback();

(69)

4.2.5 Implementasi Antar Muka Perbarui Data

Antar muka ini menampilkan halaman perbarui data yang berfungsi untuk memperbarui data toko dan rute yang sudah ada. Hal ini bisa saja dikarenakan kesalahan penginputan data sebelumnya atau juga perpindahan toko ke tempat lain. Berikut ini merupakan gambar dari antar muka perbarui data:

Gambar 4. 9 Antar Muka Perbarui Data

Sebelum memperbari data maka pengguna harus memilih nama toko yang akan diperbarui dari combo box, berikut adalah kode untuk menampilkan toko yang dipilih dari combo box:

nama = (String) comboNamaToko.getSelectedItem();

System.out.println(nama); kode = nama.substring(0, 8).replace(" ", ""); System.out.println(kode);

try {

textKodeLama.setText(kode);

labelKodeNamaToko.setText(nama.substring(0, 19)); textNamaLama.setText(nama.substring(19));

(70)

Setelah toko dipilih dan data dari toko ditampilkan maka selanjutnya adalah memperbarui data dari toko tersebut. Berikut adalah kode untuk memperbarui data toko:

Selanjutnya jika kode untuk memperbarui data toko diatas berhasil maka akan muncul pesan seperti pada gambar 4.10 berikut:

Gambar 4. 10 Pemberitauan Data berhasil diperbarui

Selanjutnya setelah mengupdate data toko maka diperlukan juga untuk mengupdate data rute dari toko baru yang baru saja diupdate ke toko yang lainya. Berikut adalah kode untuk memperbarui data rute tersebut:

public void updateToko(Toko tk) throws SQLException{ Statement stmnt;

public void updateRute(Rute rt) throws SQLException{ Statement stmnt;

String kode_awal = rt.getKodeAwal(); String kode_Tujuan = rt.getKodeTujuan();

textKoorLama.setText(KontrolUpdate.getKoneksiKontrolUpdate().KoorToko(kode); } catch (Exception ex) {

(71)

Kode tersbut merupakan kode untuk memperbarui data rute, dimana jika kode tersebut berhasil dijalankan oleh sistem maka akan muncul pesan seperti pada gambar 4.11

Gambar 4. 11 Pemberitauan rute berhasil diperbarui

4.2.6 Implementasi Antar Muka Hapus Data

Antar muka hapus data adalah antar muka yang menampilkan halaman hapus data. Antar muka ini berfungsi untuk menghapus data toko yang sudah tidak digunakan. Hal ini bisa terjadi karena kesalahan penginputan ataupun toko yang sudah tutup. Berikut adalah gambar dari antar muka hapus data:

Gambar 4. 12 Antar muka hapus data double jarak = rt.getJarak();

String rute = rt.getRute();

String sql = "update rute_ck set jarak = "+jarak+" , rute_tujuan = '"+rute+"' where kode_toko_awal = '"+kode_awal+"'"

+ " and kode_tujuan = '"+kode_Tujuan+"'"; stmnt = conn.createStatement();

stmnt.executeUpdate(sql); conn.commit();

(72)

Gambar diatas adalah antar muka hapus data, dimana combo box digunakan untuk memilih toko yang akan dihapus. Kode untuk combo box dan menampilkan data yang dipilih adalah sebagai berikut

Setelah data ditampilkan maka pengguna akan menghapus data tersebut, berikut adalah kode untuk menghapus data

public void HapusRuteAwal(String kode) throws SQLException{ Statement stmnt;

String sql="delete from rute_ck where kode_toko_awal = '"+kode+"'"; stmnt = conn.createStatement();

stmnt.executeQuery(sql); conn.commit();

conn.close();}

public void HapusRuteTujuan(String kode) throws SQLException{ Statement stmnt;

String sql="delete from rute_ck where kode_tujuan = '"+kode+"'"; stmnt = conn.createStatement();

alamat=KontrolUpdate.getKoneksiKontrolUpdate().AlamatToko(kode); koor = KontrolUpdate.getKoneksiKontrolUpdate().KoorToko(kode); } catch (SQLException ex) {

Logger.getLogger(FormHapusToko.class.getName()).log(Level.SEVERE, null, ex); }

Gambar

Gambar 2.  6 Graph
Tabel 2.  1 Tabel Matrix antar titik
Tabel 2.  3 Tabel intensitas jejak semut awal
Tabel 2.  5 probabilitas
+7

Referensi

Dokumen terkait

Adapun metode yang digunakan dalam penulisan Tugas Akhir ini adalah metode observasi, wawancara, studi bibliografis (kepustakaan), dan dokumentasi. Dari hasil penulisan Tugas

Kavitasi akan terjadi bila tekanan statis suatu aliran zat cair turun di bawah tekanan uap jenuhnya, sehingga untuk mencegah kavitasi harus diusahakan agar tidak ada satu bagianpun

Hasil penelitian ini menunjukkan bahwa seorang waria dewasa madya dapat mencapai keenam tugas perkembangan yang dikemikakan oleh Havighurst (Monks dkk,1999) yaitu dapat menerima

c. membedakan dirinya dengan orang lain d. menempatkan diri dalam garis kekerabatan.. Pemberian hadiah karena perilaku baik pada diri anak yang dilakukan orang tua merupakan

Dari hasil analisis asam urat yang dilakukan dapat dilihat bahwa rataan nilai asam urat sebelum perlakuan (P0) adalah 2.20 mg/dL, setelah diberikan perlakuan

Bahasa jurnalistik --disebut juga bahasa pers, bahasa media, bahasa komunikasi massa (mass communication language), dan bahasa suratkabar (newspapers languange)--

Peran yang dilakukan oleh pasukan SWK 101 tidak hanya di dalam kota Yogyakarta saja, namun setelah berakhirnya Serangan Umum 1 Maret 1949 mereka membantu pasukan SWK 102

Dari hasil kesimpulan penelitian maka, rata-rata kekakuan dari balok dengan tulangan tanpa sambungan, lebih besar di bandingkan dengan rata-rata dari balok dengan tulangan