Penerapan algoritma Ants Colony System (ACS) untuk menentukan rute terpendek pengiriman barang pada P.T. Pos Indonesia.

(1)

i

Penerapan Algoritma Ants Colony System(ACS) Untuk Menentukan Rute Terpendek Pengiriman Barang pada P.T. Pos Indonesia

Skripsi

Diajukan untuk Memenuhi Salah Satu Syarat

Memperoleh Gelar Sarjana Komputer

Program Studi Teknik Informatika

Oleh

:

F.X. Alfa Suryo Utomo

NIM : 075314035

PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA YOGYAKARTA


(2)

ii

Ants Colony Algorithm (ACS) Implementation System Shortest

Route To Determine Shipping on PT Pos Indonesia

A Thesis

Presented as Partial Fullfillment of the Requirements

To Obtain the Sarjana Komputer Degree

In Informatics Engineering Study Program

By:

F.X. Alfa Suryo Utomo

NIM : 075314035

INFORMATICS ENGINEERING STUDY PROGRAM DEPARTMENTS OF SCIENCE AND TECHNOLOGY

SANATA DHARMA UNIVERSITY YOGYAKARTA


(3)

(4)

(5)

v

Life's full of ups and downs.

That's why we need inspirations

from time to time, to remind us about

how blessed we are,

how much God loves us and

how beautiful this life can be.

Karya ini kupersembahkan untuk ....

Tuhan Yesus Kristus dan Bunda Maria , atas limpahan cinta kasihNya

Kedua Orang Tua, atas dukungan moril dan materiil yang diberikan

Semua Keluargaku , Sahabat , dan Teman-teman, atas dukungan dan doa yang telah mereka berikan kepadaku.


(6)

vi

PERNYATAAN KEASLIAN KARYA

Saya menyatakan dengan sesungguhnya bahwa skripsi yang saya tulis ini tidak memuat karya atau bagian karya orang lain, kecuali yang telah saya sebutkan dalam kutipan dan daftar pustaka, sebagaimana layaknya karya ilmiah.

Yogyakarta, Januari 2013 Penulis

F.X. Alfa Suryo Utomo


(7)

vii

ABSTRAK

Algoritma Ants Colony System(ACS) adalah salah satu algoritma optimasi yang dapat digunakan untuk memecahkan berbagai masalah optimasi. Salah satu masalah yang dapat dipecahkan oleh algoritma ACS adalah Travelling Salesman Problem (TSP). TSP adalah masalah pencarian rute optimal tanpa mengunjungi tempat yang sama lebih dari satu kali, seperti menentukan rute terpendek pengiriman barang.

Tujuan dari penelitian ini adalah menerapkan algoritma ACS untuk menentukan rute terpendek pada studi kasus pengiriman barang P.T. Pos Indonesia untuk domisili Yogyakarta. Aplikasi yang dibangun adalah untuk penentuan rute terpendek. Hal-hal yang menjadi pertimbangan dalam mencari rute terpendek adalah kecepatan rata-rata atau bobot waktu, kondisi jalan yang digunakan, parameter algoritma ACS yaitu parameter probabilitas semut (q0),

pheromone awal (t0), parameter koefisien penguapan pheromone (p), parameter

yang mempertimbangkan kepentingan relatif dari informasi heuristic (b), tingkat kepentingan relatif dari pheromone (a), dan banyak iterasi atau banyak semut (m).

Penelitian ini akan menguji berbagai kemungkinan perubahan parameter dan iterasi. Dari hasil pengujian ternyata semakin besar nilai parameter t0 dan p serta

iterasi rute (m) maka rute semakin pendek. Di lain sisi semakin besar nilai parameter b akan maka rute jauh dari pendek.

Hasil pengujian dari 4 titik yang berbeda yaitu tglu3, wch2, kb35, gkan5 adalah 25 menit dengan jarak 70 km dengan penggunaan parameter q0 adalah 0.1,

t0 adalah 0.01, p adalah 0.1, b adalah 2 dan a adalah 0.1.

Kata kunci : Ants Colony System, Travelling Salesman Problem, Pengiriman Barang, Rute Terpendek.


(8)

viii

ABSTRACT

Ants Colony System Algorithm (ACS) is one of many algorithm optimalization can be solving all kinds problem optimalization. One of many problem can be solving by ACS Algorithm is Travelling Salesman Problem (TSP). TSP is problem searching optimal route without visit same place over than one time, as determine shortest route packet transporting.

Goal of this research is applying ACS algorithm to determine shortest route packet transporting at study case P.T. Pos Indonesia for domicile Yogyakarta. Application will building for determine shortest route. The condition will be consideration in searching shortest route is speed average or weight time, street condition, parameter of ACS algorithm is parameter ant probability (q0), initial

pheromone (t0), parameter coefficient pheromone evaporation (p), parameter that

considers the relative importance of the heuristic information (b), the relative importance of the pheromone (a), and many iteration or many ants (m).

This research will be test with varied kinds possibility change of parameter and iteration. From result of testing obviously more large value of parameter t0 and p

including route iteration (m) more and more short. other side more large value of parameter b will be more and more far from short.

Test results from four different points, namely tglu3, wch2, kb35, gkan5 is 25 minutes with a distance of 70 km with the use of this parameter q0 is 0.1, t0 is 0.01, p

is 0.1, B is 2 and a is 0.1.

Keywords : Ants Colony System, Travelling Salesman Problem, Packet Transporting, Shortest Route.


(9)

ix

LEMBAR PERNYATAAN PERSETUJUAN

PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS

Yang bertanda tangan di bawah ini, saya mahasiswa Universitas Sanata Dharma

Nama : F.X. Alfa Suryo Utomo Nomor Mahasiswa : 075314035

Demi pengembangan ilmu pengetahuan, saya memberikan Kepada Perpustakaan Universitas Sanata Dharma karya ilmiah saya yang berjudul :

Penerapan Algoritma Ants Colony System(ACS) Untuk

Menentukan Rute Terpendek Pengiriman Barang pada

P.T. Pos Indonesia

beserta perangkat yang diperlukan (bila ada). Dengan demikian saya memberikan Kepada Perpustakaan Universitas Sanata Dharma hak untuk menyimpan, mengalihkan dalam bentuk media lain, mengelolanya di internet atau media lain untuk kepentingan akademis tanpa perlu meminta ijin dari saya maupun memberikan royalti kepada saya selama tetap mencantumkan nama saya sebagai penulis.

Demikian pernyataan ini yang saya buat dengan sebenarnya.

Dibuat di Yogyakarta

Pada tanggal : Januari 2013

Yang menyatakan,

(F.X. Alfa Suryo Utomo)


(10)

x

KATA PENGANTAR

Puji dan syukur kehadirat Tuhan Yang Maha Esa, karena pada akhirnya

penulis dapat menyelesaikan penelitian tugas akhir ini yang berjudul “Penerapan Algoritma Ants Colony System(ACS) Untuk Menentukan Rute Terpendek Pengiriman Barang pada P.T. Pos Indonesia”.

Penelitian ini tidak akan selesai dengan baik tanpa adanya dukungan, semangat, dan motivasi yang telah diberikan oleh banyak pihak. Untuk itu, penulis ingin mengucapkan terima kasih kepada:

1. Bapak Eko Hari Parmadi, S.Si., M.Kom. selaku dosen pembimbing serta dekan Fakultas Sains dan Teknologi yang telah membantu dan membimbing dalam penulisan tugas akhir.

2. Puspaningtyas Sanjoyo Adi S.T., M.T. selaku ketua program studi Teknik Informatika yang bertindak sebagai dosen penguji yang telah berkenan memberikan motivasi, kritik, dan saran yang telah diberikan kepada penulis.

3. Drs. J. Eka Priyatma, M.Sc., Ph.D. selaku dosen penguji atas motivasi, kritik dan saran yang telah diberikan kepada penulis.

4. Kedua orang tua, bapak Antonius Slamet dan ibu Sunarti atas perhatian, kasih sayang, semangat dan dukungan yang tak henti-hentinya diberikan kepada penulis.

5. Kekasih, Apriyanti Putri Lestari yang telah memberikan doa, semangat dan dukungan sehingga penulis dapat menyelesaikan tugas akhir ini. 6. Para sahabat Atanasius Tendy, Fendi Dwi Fauzi, Thomas Tri Ardianto,

Yudy Pratama, Dionisius Wahyu, Hariyo Koco, Yohanes Christian Aji, Iip Yulianto, Guido Mukti, Yosep P. Nugroho, Juventus Robing, Ignatius Adhitya, Ryan Herdianto, Dominikus Adi, Ricky Andrianto, Sigit Adi Susila, dan seluruh teman-teman TI angkatan 2007. Terima kasih atas segala bantuan, semangat, dan kesedianaan untuk berbagi solusi dalam penyelesaian tugas akhir ini.


(11)

7. Para sahabat Febri Arif Saputra dan seluruh teman-teman. Terimakasih atas semangat dan doa yang telah diberikan.

8. Serta semua pihak yang tidak dapat disebutkan satu persatu yang telah membantu penulis dalam menyelesaikan tugas akhir ini.

Penelitian tugas akhir ini masih memiliki banyak kekurangan. Untuk itu, penulis sangat membutuhkan saran dan kritik untuk perbaikan di masa yang akan datang. Semoga penelitian tugas akhir ini dapat membawa manfaat bagi semua pihak.

Yogyakarta, Januari 2013

Penulis

F.X. Alfa Suryo Utomo


(12)

xii

DAFTAR ISI

Halaman Judul ...i

Halaman Judul (Inggris)... ii

Halaman Persetujuan ... iii

Halaman Pengesahan ... iv

Halaman Persembahan ... v

Pernyataan Keaslian Karya ... vi

Abstrak ...vii

Abstract ... viii

Lembar Persetujuan Publikasi ... ix

Kata Pengantar... x

Daftar Isi...xii

Daftar Tabel ... xvi

Daftar Gambar ... xvii

Daftar Simbol ... xx

Bab1 Pendahuluan ... 1

1.1Latar Belakang Masalah ... 1

1.2 Rumusan Masalah ... 3

1.3 Batasan Masalah ... 3

1.4 Tujuan Masalah... 3

1.5 Manfaat Penelitian ... 3

1.6 Metodologi Penelitian ... 4


(13)

Bab II Landasan Teori ... 7

2.1Graf ... 7

2.1.1 Definisi Graf ... 7

2.1.2 Definisi Walk, Trail, Path dan Cycle ... 8

2.1.3 Graf Eulerian dan Graf Hamiltonian ... 9

2.1.4 Macam-macam Graf Menurut Arah dan Bobotnya ... 9

2.2 Optimasi ... 11

2.2.1 Definisi Optimasi ... 11

2.2.2 Definisi Nilai Optimal ... 12

2.2.3 Macam-macam Permasalahan Optimisasi ... 12

2.2.4 Permasalahan Rute Terpendek... 12

2.2.5 Penyelesaian Masalah Optimisasi ... 13

2.3 Travelling Salesman Problem (TSP)... 13

2.4 Algoritma Semut ... 16

2.4.1 Sejarah Algoritma Semut ... 16

2.4.2 Cara Kerja Algoritma Semut Mencari Jalur Optimal ... 16

2.4.3 Definisi Ants Colony System ... 17

2.4.4 Tahapan Ants Colony System (ACS) ... 17

2.5 Cara Kerja Algoritma Ants Colony System ... 20

2.6 Analisis Algoritma Semut untuk Mencari Nilai Optimal ... 22

2.7 Analisis Parameter Pada Algoritma ACS ... 25

2.8 Contoh Penyelesaian Masalah TSP dengan Metode Ants Colony System ... 27

Bab III Analisis & Desian ... 33

3.1Identifikasi Sistem ... 33

3.2 Analisis Sistem ... 34

3.2.1 Analisis Data Awal ... 34


(14)

3.3.1 Diagram Use Case ... 36

3.3.2 Narasi Use Case ... 37

3.4 Perancangan Umum Sistem ... 45

3.4.1 Masukan Sistem ... 45

3.4.2 Proses Sistem ... 46

3.4.3 Keluaran Sistem ... 61

3.4.4 Diagram Aktifitas ... 62

3.4.4.1 Diagram Aktifitas Update Data Kondisi Jalan ... 62

3.4.4.2 Diagram Aktifitas Ubah Data Kecepatan ... 63

3.4.4.3 Diagram Aktifitas Ubah Data Account ... 63

3.4.4.4 Diagram Aktifitas Update Dara Pengirim Penerima ... 64

3.4.4.5 Diagram Aktifitas Input Data Pengirim Penerima ... 65

3.4.4.6 Diagram Aktifitas Hapus Data Pengirim Penerima ... 66

3.4.4.7 Diagram Aktifitas Ubah Kondisi Pengiriman ... 67

3.4.4.8 Diagram Aktifitas Perhitungan Pencarian Rute ... 68

3.5 Perancangan Basis Data ... 68

3.5.1 Entity Relationship Diagram ... 68

3.5.2 Perancangan Fisikal ... 70

3.6 Diagram Kelas Analisis & Diagram Sekuen ... 74

3.6.1 Diagram Kelas Analisis & Diagram Sekuen Use Case Login ... 74

3.6.2 Diagram Kelas Analisis & Diagram Sekuen Use Case Logout ... 75

3.6.3 Diagram Kelas Analisis & Diagram Sekuen Use Case Mengubah Account ... 77

3.6.4 Diagram Kelas Analisis & Diagram Sekuen Use Case Mengisi Data Pengirim Penerima ... 78

3.6.5 Diagram Kelas Analisis & Diagram Sekuen Use Case Mengubah Data Pengirim Penerima... 80

3.6.6 Diagram Kelas Analisis & Diagram Sekuen Use Case Menghapus Data Pengirim Penerima... 82


(15)

3.6.7 Diagram Kelas Analisis & Diagram Sekuen Use Case Melihat Daftar

Pengiriman ... 84

3.6.8 Diagram Kelas Analisis & Diagram Sekuen Use Case Mengupdate Kondisi Jalan ... 86

3.6.9 Diagram Kelas Analisis & Diagram Sekuen Use Case Mengubah Kecepatan Jalan ... 87

3.7 Diagram Kelas Desain... 89

3.8 Perancangan Struktur Data ... 93

3.9 Perancangan Antar Muka Sistem ... 94

Bab IV Implementasi Program ... 97

4.1 Perangkat Kebutuhan Sistem ... 97

4.2 Uji Validasi Sistem ... 97

4.3 Implementasi Antar Muka Pengguna ... 97

4.4 Implementasi Diagram Kelas ... 113

Bab V Analisis Hasil Implementasi ... 120

Bab VI Penutup ... 126

6.1 Kesimpulan ... 126

6.2 Saran ... 127

Daftar Pustaka ... 128


(16)

xvi

Tabel 1.1 Perbandingan Algoritma ACS………...2

Tabel 2.1Rute Pilihan Kota A ke Kota G………...12

Tabel 2.2 Matriks Jarak...28

Tabel 2.3 Matriks Pheromone Awal ...28

Tabel 2.4 Matriks Invers…...29

Tabel 2.5 Hasil Persamaan Probabilitas...29

Tabel 2.6 Matriks Hasil Update Pheromone Lokal A ke E...30

Tabel 2.7 Matriks Hasil Update Pheromone Lokal A, E, F,D,B,C...30

Tabel 2.8 Matriks Hasil Update Pheromone Lokal A,E, F,D,B,C,A...31

Tabel 2.9 Matriks Hasil Update Pheromone Global...31

Tabel 3.1 Data jarak peta...34


(17)

xvii

Gambar 2.1 Contoh Graf G……….;……...7

Gambar 2.2 Sisi Ganda dan Loop………...8

Gambar 2.3 Contoh Graf G & Sub Graf G... 8

Gambar 2.4 Graf Hamilton & Graf Eulerian…………...9

Gambar 2.5 Graf Berarah dan Berbobot...10

Gambar 2.6 Graf Tidak Berarah dan Berbobot………...10

Gambar 2.7 Graf Berarah dan Tidak Berbobot...11

Gambar 2.8 Graf Tidak Berarah dan Tidak Berbobot...11

Gambar 2.9 Ilustrasi Masalah TSP…………...14

Gambar 2.10 Graf ABCD………...15

Gambar 2.11 Sirkuit Hamilton...15

Gambar 2.12 Algoritma ACS...21

Gambar 2.13 Lintasan Awal Semut menuju tempat makanan……...22

Gambar 2.14 Lintasan Semut menuju sarang………...23

Gambar 2.15 Lintasan Awal Semut menuju makanan iterasi ke 2...23

Gambar 2.16 Lintasan Semut menuju sarang iterasi ke 2...24

Gambar 2.17 Lintasan Optimal semut menuju tempat makanan...24

Gambar 2.18 ACS dengan beragam nilai β...25

Gambar 2.19 ACS dengan beragam parameter semut…………...26

Gambar 2.20ACS dengan beragam parameter ρ...26

Gambar 2.21 ACS dengan beragam parameter q0...27

Gambar 2.22 Contoh Graf lengkap……...27

Gambar 2.23 Hasil Rute Algoritma ACS 1 semut………...32

Gambar 3.1 Diagram Use Case...36

Gambar 3.2 Peta Per Cluster………..………...46

Gambar 3.3 Set Node Awal…………...47

Gambar 3.4 Set Wilayah Pengiriman...48

Gambar 3.5 Set Node Pengiriman...49


(18)

Gambar 3.8 Pencarian Rute Cluster ke i...52

Gambar 3.9 Pencarian Rute Cluster Akhir...53

Gambar 3.10 Set Destinasi Ulang dan Pencarian rute semut ke n...54

Gambar 3.11 Pencarian Rute Terbaik...55

Gambar 3.12 Proses Inisialisasi Status1...56

Gambar 3.13 Proses Inisialisasi Status2...57

Gambar 3.14 Proses Update Pheromone Lokal...58

Gambar 3.15 Proses Menentukan pheromone yang akan di update di pheromone global………...59

Gambar 3.16 Proses Update Pheromone Global....60

Gambar 3.17 Diagram Konteks...61

Gambar 3.18 Diagram Aktifitas Update Kondisi Jalan...62

Gambar 3.19 Diagram Aktifitas Update Kecepatan...63

Gambar 3.20 Diagram Aktifitas Update Data Account...63

Gambar 3.21 Diagram Aktifitas Update Data Pengirim Penerima...64

Gambar 3.22 Diagram Aktifitas Insert Data Pengirim Penerima...65

Gambar 3.23 Diagram Aktifitas Hapus Data Pengirim Penerima...66

Gambar 3.24 Diagram Aktifitas Ubah Status Pengiriman...67

Gambar 3.25 Diagram Aktifitas Perhitungan Pengiriman Rute...67

Gambar 3.26 ERD Database System...69

Gambar 3.27 Diagram Kelas Analisis Use Case Login...75

Gambar 3.28 Diagram Sekuen Use Case Login……….……...75

Gambar 3.29 Diagram Kelas Analisis Use Case Logout...76

Gambar 3.30 Diagram Sekuen Use Case Logout...76

Gambar 3.31 Diagram Kelas Analisis Use Case Mengubah Account……...78

Gambar 3.32 Diagram Sekuen Use Case Mengubah Account...78

Gambar 3.33 Diagram Kelas Analisis Use Case Mengisi Data Pengirim Penerima ……….……...80

Gambar 3.34 Diagram Sekuen Use Case Mengisi Data Pengirim Penerima...80

Gambar 3.35 Diagram Kelas Analisis Use Case Mengubah Data Pengirim Penerima……….82


(19)

Penerima...82

Gambar 3.37 Diagram Kelas Analisis Use Case Menghapus Data Pengirim Penerima ……...84

Gambar 3.38 Diagram Sekuen Use Case Menghapus Data Pengirim Penerima..84

Gambar 3.39 Diagram Kelas Analisis Use Case Melihat Daftar Pengiriman …..85

Gambar 3.40 Diagram Sekuen Use Case Melihat Daftar Pengiriman...86

Gambar 3.41 Diagram Kelas Analisis Use Case Mengupdate Kondisi Jalan …..87 Gambar 3.42 Diagram Sekuen Use Case Mengupdate Kondisi Jalan...87

Gambar 3.43 Diagram Kelas Analisis Use Case Mengubah Kecepatan Jalan …88 Gambar 3.44 Diagram Sekuen Use Case Mengubah Kecepatan Jalan...88

Gambar 3.45 Diagram Kelas Keseluruhan...89

Gambar 3.46 Halaman Utama Staff Bagian Distribusi...94

Gambar 3.47 Halaman Daftar Pengiriman...94

Gambar 3.48 Halaman Hasil Rute pengiriman...95

Gambar 3.49 Halaman Utama Administrator...95

Gambar 3.50 Halaman Ubah Kondisi Jalan...96

Gambar 4.1 Halaman Login...98

Gambar 4.2 Tampilan Login Jika salah...99

Gambar 4.3 Halaman Utama Staff Bagian Distribusi...100

Gambar 4.4 Halaman Pengirim Penerima...101

Gambar 4.5 Halaman Daftar Pengiriman...104

Gambar 4.6 Halaman Ubah Account...105

Gambar 4.7 Halaman Utama Administrator...107

Gambar 4.8 Halaman Ubah Bobot...108

Gambar 4.9 Halaman Ubah Kondisi Jalan...111


(20)

xx

DAFTAR SIMBOL

q = bilangan pecahan acak

q0 = probabilitas semut melakukan eksplorasi pada setiap tahapan

τ (t,u) = nilai dari jejak pheromone pada jarak (t,u) η (t,u) = invers jarak antara titik t dan u

β = parameter yang mempertimbangkan kepentingan relative dari informasi

heuristic

Lnn = panjang tur yang diperoleh

C = jumlah lokasi

ρ = koefisien penguapan pheromone

∆τ = perubahan pheromone

Lgb = panjang jalur terpendek pada akhir siklus


(21)

1

BAB I PENDAHULUAN

1.1Latar Belakang Masalah

P.T. Pos Indonesia adalah perusahaan pelayanan jasa terbesar yang

dimiliki Negara Indonesia. Seperti di ketahui selain Pos Indonesia, perusahaan

asing yang memiliki bisnis jasa pelayanan yang sama antara lain DHL, FEDEX,

TIKI, JNE, dll. Maka untuk membangkitkan cinta tanah air sebaiknya kita

menggunakan jasa dalam negeri. P.T. Pos Indonesia untuk melakukan jasa

pelayanan komunikasi, logistik, transaksi keuangan, dan layanan pos lainnya. Dari

beberapa jasa pelayanan, pelayanan logistic khususnya jasa pengiriman barang

memiliki potensi paling besar bisnisnya, P.T. Pos Indonesia menggarapnya

dengan maksimal untuk meningkatkan kualitas serta mutu pelayanan masyarakat

sehingga dapat bersaing dengan perusahaan lainnya melalui pelayanan on time

every time. Pelayanan on time every time ini adalah pelayanan kilat pengiriman

paket sampai dalam 1 hari. Masalah yang muncul ketika akan meningkatkan

pelayanan pengiriman barang on time every time ini adalah rute yang dilalui

pengiriman barang ini tidak efisien dari sisi jarak dan waktu, misalnya suatu

ketika kendaraan pengiriman barang melalui jalur yang sama lebih dari sekali. Hal

ini membuat waktu dan jarak menjadi membengkak yang berakibat menjadi

tingginya biaya transportasi dan kualitas pelayanan yang kurang memuaskan

masyarakat. Permasalahan ini dapat dikategorikan menjadi Travelling Salesman


(22)

menuju semua titik lokasi barang yang akan dikirim dan kembali lagi ke lokasi

tersebut, tetapi tidak melalui jalur yang sama.

Ants Colony System (ACS) adalah algoritma optimasi untuk mendapatkan

hasil yang optimal. ACS merupakan penelitian yang dilakukan oleh M. Dorigo

dan L.M. Gambardella (1997) dalam penyelesaian TSP, terbukti bahwa algoritma

ACS mampu mendapatkan tur terbaik dibandingkan dengan algoritma genetic

(GA), evolutioning Programming (EP), Simulated Anneling (SA), dan

Anneling-Genetic Algorithm (AG). Perbandingan dari berbagai macam algoritma tercantum

dalam tabel 1.1 dibawah ini.

Tabel 1.1 Perbandingan Algoritma ACS

Kasus ACS GA EP SA AG Optimum

Oliver30 (30-city problem) 420 (423.74) [830] 421 (N/A) [3,200] 420 (423.74) [40,000] 424 (N/A) [24,617] 420 (N/A) [12,620] 420 (423.74) Eil50 (50-city problem) 425 (427.96) [1,830] 428 (N/A) [25,000] 426 (427.86) [100,000] 443 (N/A) [68,512] 436 (N/A) [28,111] 425 (N/A) Eil75 (75-city problem) 535 (542.31) [3,480] 545 (N/A) [80,000] 542 (549.18) [325,000] 580 (N/A) [173,250] 561 (N/A) [95,506] 535 (N/A) KroA100 (100-city problem) 21,282 (21,285.44) [4,820] 21,761 (N/A) [103,000] N/A (N/A) [N/A] N/A (N/A) [N/A] N/A (N/A) [N/A] 21,282 (N/A)

Pada tabel 1.1 akan dibandingkan beberapa algoritma dengan kasus yang

sama akan masing-masing menghasilkan panjang tur terbaik dalam bentuk

bilangan integer, panjang tur terbaik dalam bentuk bilangan real (yang ada pada

bilangan dalam kurung) dan jumlah tur yang diperlukan untuk menghasilkan tur

terbaik pada bilangan integer (yang ada pada bilangan dalam kurung kurawal).

Nama kasus adalah Oliver30, Eil50, Eil75, KroA100. Oliver30 adalah kasus yang


(23)

ditemukan oleh (Eilon, Watson-Gandy, Christofides, 1969). Dari Table 1.1

bilangan yang paling optimum adalah yang di cetak tebal tiap kasus-nya.

Akhirnya yang paling optimal adalah ACS dan EP melebihi GA, SA, AG.

Untuk itu penelitian tugas akhir ini menerapkan algoritma Ant Colony System (ACS) sebagai system usulan dalam pemilihan untuk mendapatkan rute terpendek pada pengiriman barang PT. Pos Indonesia Yogyakarta.

1.2 Rumusan Masalah

Rumusan masalah untuk tugas akhir ini adalah menetukan rute terpendek pengiriman barang pada P.T. Pos Indonesia menggunakan algoritma ACS.

1.3 Batasan Masalah

Pembatasan masalah untuk tugas akhir ini antara lain:  Titik awal (vertex awal) pencarian adalah kantor pos.  Tiap jalur/rute dibangun dengan 1 kali dilewati.  Peta hanya terbatas di kota Yogyakarta.

 Perangkat lunak menggunakan pemrograman java dan database mysql. 1.4 Tujuan Penelitian

Adapun tujuan dari penulisan tugas akhir ini adalah untuk menentukan rute pengiriman barang menggunakan algoritma Ant Colony System (ACS) dalam pengiriman barang di PT. Pos Indonesia, Yogyakarta.

1.5 Manfaat Penelitian

Sedangkan manfaat dari penelitian ini adalah:

1. Mendapatkan rute pengiriman barang pada PT. Pos Indonesia Yogyakarta. 2. Mengimplementasikan Ant Colony System pada masalah menentukan rute


(24)

1.6 Metodologi Penelitian

Penelitian ini dilakukan menggunakan metode Waterfall, tahap-tahap nya antara lain:

1. Studi literatur

Menggunakan berbagai macam literatur yang berhubungan dengan

Graph, Ant Colony System, Optimasi dan Travelling Salesman Problem.

2. Analisis

Pada tahap ini dilakukan analisis terhadap ant colony system dan

Travelling Salesman Problem.

3. Perancangan Sistem

Pada tahap ini dirancang suatu system dengan algoritma ant colony system yang dapat memecahkan Travelling Salesman Problem pada rute pengiriman barang.

4. Implementasi Perangkat Lunak

Pada tahap ini algoritma diimplementasikan ke bahasa pemrograman java.

5. Pengujian

Setelah proses pengkodean selesai maka akan dilakukan proses pengujian terhadap program yang dibuat untuk mengetahui apakah program sudah sesuai dengan maksud dan tujuan algoritma.

1.7 Sistematika Penulisan

Sistematika penulisan yang akan diuraikan dalam skripsi ini terbagi dalam beberapa bab yang akan dibahas sebagai berikut:


(25)

BAB 1: Pendahuluan

Bab ini berisi pembahasan masalah umum yang meliputi latar belakang masalah, rumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metodologi penelitian dan sistematika penulisan.

BAB 2: Landasan Teori

Bagian ini memuat landasan teori yang berfungsi sebagai sumber atau alat dalam memahami permasalahan yang berkaitan dengan teori

graph, optimasi, Travelling Salesman Problem (TSP) dan teori mengenai

ant colony system (ACS).

BAB 3: Rancangan Perangkat Lunak

Bagian ini memuat desain rancangan perangkat lunak dengan metode waterfall. Desain disini dalam bentuk kasar sebagai dasar untuk penyelesaian masalah.

BAB 4: Implementasi Perangkat Lunak

Bagian ini memuat implementasi dari perangkat lunak sesungguhnya. Berisi dengan data-data yang disiapkan atau yang akan diolah.

BAB 5: Analisa

Bab ini membahas tentang analisis kinerja dari perangkat lunak. Pada bagian ini mengulas analisis hasil pengujian terhadap sistem yang dibandingkan dengan kebenaran dan kesesuaiannya dengan hasil yang didapat.


(26)

BAB 6: Penutup

Bab ini meliputi kesimpulan dan saran dari tugas akhir yang dibuat.


(27)

7 BAB II LANDASAN TEORI

Untuk mendukung penelitian ini diperlukan beberapa landasan teori dan konsep-konsep yang relevan. Landasan teori dalam penelitian ini meliputi pengertian graf, travelling salesman problem (TSP) dan ants colony system

(ACS).

2.1 Graf

2.1.1 Definisi Graf

Definisi graf menurut Wilson, R. J dan Watkhins, J. J, (1990) adalah

Suatu Graf G terdiri atas himpunan yang tidak kosong dari elemen – elemen yang disebut titik (vertek), dan suatu daftar pasangan vertek yang tidak terurut disebut sisi (edge). Himpunan vertek dari suatu Graf G dinotasikan dengan V, dan daftar himpunan edge dari Graf tersebut dinotasikan dengan E. Untuk selanjutnya suatu Graf G dapat dinotasikan dengan G = (V, E).”(Gambar2.1).

Gambar 2.1 Contoh Graf G

Sedangkan “Dua edge atau lebih yang menghubungkan pasangan vertek yang sama disebut sisi ganda, dan sebuah edge yang mengubungkan sebuah vertek ke dirinya sendiri disebut loop.”(Gambar 2.2).


(28)

Gambar 2.2 Sisi ganda dan loop

Selanjutnya “Suatu subGraf G’ adalah suatu himpunan pasangan

berurutan (V’, E’) dimana V’ merupakan himpunan bagian dari V dan E’ adalah

himpunan bagian dari E. Dengan kata lain, subGraf dari G adalah suatu Graf yang semua verteknya anggota V dan semua edgenya anggota E. Jika G suatu Graf terhubung seperti pada gambar 2.2, dengan V = {1, 2, 3, 4} dan E = {(1,3), (1,4), (2,4), (3,3), (3,4), (4,2)}.”(Gambar 2.3).

Gambar 2.3 Contoh Graf G dan subGraf G’

2.1.2 Definisi Walk, Trail, Pathdan Cycle

Definisi walk menurut Evans, J. R dan Edward, M (1992) adalah Suatu walk (jalan) dalam Graf G adalah barisan vertek – vertek dan edge – edge yang dimulai dan diakhiri oleh suatu vertek. Panjang suatu walk dihitung berdasarkan jumlah edge dalam walk tersebut”.

Definisi trail menurut Wilson, R. J dan Watkhins, J. J (1990) adalah“Trail adalah semua edge (tetapi tidak perlu semua vertek) adalah suatu walk berbeda”. Definisi path menurut Wilson, R. J dan Watkhins, J. J (1990) adalah “Path


(29)

Definisi cycle menurut Wilson, R. J dan Watkhins, J. J (1990) adalah

semua edgenya berbeda, maka walk itu disebut trail tertutup (close trail). Kemudian close trail dengan semua vertek berbeda disebut cycle.”

2.1.3 Graf Eulerian dan Graf Hamiltonian

Definisi graf Eulerian dan Hamilton menurut Wilson, R. J dan Watkhins, J. J (1990)adalah “Graf terhubung G merupakan graf Euler (Eulerian) jika ada close trail yang memuat setiap edge dari G. Trail semacam ini disebut trail Euler. Graf terhubung G merupakan Graf Hamilton (Hamiltonian)jika ada cycle yang memuat setiap vertek dari G. Cycle semacam ini disebut cycle Hamilton”.

Gambar 2.4 Graf Hamilton dan Graf Euler

Graf (i) merupakan Graf Euler dan Graf Hamilton,

Graf (ii) merupakan Graf Euler dan trail Eulernya bcgfeb,

Graf (iii) merupakan Graf Hamilton dengan cycle Hamiltonnya bcgefb.

2.1.4 Macam – macam Graf Menurut arah dan Bobotnya

Menurut arah dan bobotnya, Graf dibagi menjadi empat bagian,yaitu : 1. Graf berarah dan berbobot : setiap edge mempunyai arah (yang

ditunjukkan dengan anak panah) dan bobot. Gambar 2.5 adalah contoh Graf berarah dan berbobot yang terdiri dari tujuh vertek yaitu vertek A, B, C, D, E, F, G. Vertek A mempunyai dua edge yang masing – masing menuju ke vertek B dan vertek C, vertek B mempunyai tiga edge yang


(30)

masing – masing menuju ke vertek C, vertek D dan vertek E. Bobot antara vertek A dan vertek B pun telah di ketahui.

Gambar 2.5 Graf berarah dan berbobot

2. Graf tidak berarah dan berbobot : setiap edge tidak mempunyai arah tetapi mempunyai bobot. Gambar 2.6 adalah contoh Graf tidak berarah dan berbobot. Graf terdiri dari tujuh vertek yaitu vertek A, B, C, D, E, F, G. Vertek A mempunyai dua edge yang masing – masing berhubungan dengan vertek B dan vertek C, tetapi dari masing – masing edge tersebut tidak mempunyai arah. Edge yang menghubungkan vertek A dan vertek B mempunyai bobot yang telah diketahui begitu pula dengan edge – edge yang lain.

Gambar 2.6 Graf tidak berarah dan berbobot

3. Graf berarah dan tidak berbobot : setiap edge mempunyai arah tetapi tidak mempunyai bobot. Gambar 2.7 adalah contoh Graf berarah dan tidak berbobot.


(31)

Gambar 2.7 Graf berarah dan tidak berbobot

4. Graf tidak berarah dan tidak berbobot : setiap edge tidak mempunyai arah dan tidak terbobot. Gambar 2.8 adalah contoh Graf tidak berarah dan tidak berbobot.

Gambar 2.8 Graf tidak berarah dan tidak berbobot

2.2 Optimisasi

2.2.1 Definisi Optimisasi

Definisi Optimisasi menurut Wardy (2007) adalah “suatu proses untuk mencapai hasil yang optimal (nilai efektif yang dapat dicapai). Dalam disiplin matematika optimisasi merujuk pada studi permasalahan yang mencoba untuk mencari nilai minimal atau maksimal dari suatu fungsi riil. Untuk dapat mencapai nilai optimal baik minimal atau maksimal tersebut, secara sistematis dilakukan pemilihan nilai variabel integer atau riil yang akan memberikan solusi optimal”.


(32)

2.2.2 Definisi Nilai Optimal

Definisi Nilai optimal menurut Wardy (2007) adalah “nilai yang didapat melalui suatu proses dan dianggap menjadi solusi jawaban yang paling baik dari semua solusi yang ada”. Nilai optimal yang didapat dalam optimisasi dapat berupa besaran panjang, waktu, jarak, dan lain-lain.

2.2.3 Macam – macam Permasalahan Optimisasi

Permasalahan optimisasi adalah permasalahan yang sangat kompleks. Berikut ini adalah termasuk beberapa persoalan optimisasi :

1. Menentukan rute terpendek dari suatu tempat ke tempat yang lain.

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

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

4. Mengatur routing jaringan kabel telepon agar biaya pemasangan kabel tidak terlalu besar dan penggunaannya tidak boros.

2.2.4 Permasalahan Rute Terpendek

Masalah rute terpendek merupakan masalah yang berkaitan dengan penentuan edge-edge dalam sebuah jaringan yang membentuk rute terdekat antara sumber dan tujuan. Tujuan dari permasalahan rute terpendek adalah mencari rute yang memiliki jarak terdekat antara titik asal dan titik tujuan.

Dari contoh gambar 2.8 diatas, jika kita dari kota A ingin menuju Kota G. Untuk menuju kota G, dapat dipilih beberapa rute yang tersedia :

Tabel 2.1 Rute Pilihan Kota A ke Kota G

A B C D E G , A B C D F G A B C D G A B C F G A B D E G A B D F G

A B D F G A B D G A B E G

A C D E G A C D F G A C D G


(33)

Berdasarkan data diatas, dapat dihitung rute terpendek dengan mencari jarak antara rute-rute tersebut. Apabila jarak antar rute belum diketahui, jarak dapat dihitung berdasarkan koordinat kota-kota tersebut, kemudian menghitung jarak terpendek yang dapat dilalui.

2.2.5 Penyelesaian Masalah Optimisasi

Masalah pencarian rute terpendek terdapat dua metode penyelesaian, yaitu metode konvensional dan metode heuristik. Metode konvensional dihitung dengan perhitungan matematis biasa, sedangkan metode heuristik dihitung dengan menggunakan system pendekatan.

Definisi metode konvensional menurut Mutakhiroh (2007) adalah “metode yang menggunakan perhitungan matematika eksak. Ada beberapa metode konvensional yang biasa digunakan untuk melakukan pencarian rute terpendek, diantaranya algoritma Djikstra, algoritma Floyd-Warshall, dan algoritma Bellman- Ford”.

Definisi metode heuristik menurut Mutakhiroh (2007) adalah “suatu metode yang menggunakan system pendekatan dalam melakukan pencarian dalam optimasi. Adabeberapa algoritma pada metode heuristik yang biasa digunakan dalampermasalahan optimasi, diantaranya Algoritma Genetika, Ant Colony Optimization, logika Fuzzy, jaringan syaraf tiruan, Tabu Search,Simulated Annealing, dan lain-lain”

2.3 Traveling Salesman Problem (TSP)

Definisi permasalahan TSP adalah permasalahan dalam mencari jarak minimal sebuah tour tertutup terhadap sejumlah n kota dimana kota-kota yang ada hanya dikunjungi sekali.

Masalah Travelling Salesman Problem (TSP) adalah salah satu contoh yang paling banyak dipelajari dalam combinatorial optimization. Masalah ini mudah untuk dinyatakan tetapi sangat sulit untuk diselesaikan. TSP termasuk kelas NP-Hard problem dan tidak dapat diselesaikan secara optimal dalam


(34)

eksak waktu komputasi yang diperlukan akan meningkat secara eksponensial seiring bertambah besarnya masalah.

Inti dari permasalahan Travelling Salesmen Problem (TSP) adalah menemukan atau mencari jarak dan rute terpendek. Travelling Salesmen Problem (TSP) juga merupakan masalah yang terkenal dalam teori graf yang mana graf itu sendiri terdiri dari berbagai jenis, diantaranya graf sederhana, graf tak sederhana, selain itu juga ada graf berarah dan tidak berarah. Graf sederhana adalah graf yang tidak memiliki sisi ganda dan juga gelang. Sisi ganda merupakan kondisi ketika dua buah simpul memiliki lebih dari satu sisi. Sisi gelang adalah ketika ada sisi yang berasal dari satu simpul dan kembali pada simpul tersebut. Sedangkan graf tak sederhana adalah graf yang memiliki sisi ganda dan/atau gelang. Graf berarah merupakan graf yang setiap sisinya memiliki orientasi arah dari suatu simpul ke simpul lainnya. Sedangkan graf tidak berarah merupakan graf yang setiap sisinya tidak memiliki orientasi arah dari suatu simpul ke simpul lainnya.

Dalam sebuah Graf, TSP digambarkan seperti gambar 2.9 dibawah ini :

Gambar 2.9 Ilustrasi masalah TSP

Berikut adalah contoh kasus TSP: “Diberikan sejumlah kota dan jarak antar kota. Tentukan sirkuit terpendek yang harus dilalui oleh seorang pedagang bila pedagang itu berangkat dari sebuah kota asal dan menyinggahi setiap kota tepat satu kali dan kembali lagi ke kota asal keberangkatan.”


(35)

Apabila kita mengubah contoh kasus tersebut menjadi persoalan pada Graf, maka dapat dilihat bahwa kasus tersebut adalah bagaimana menentukan sirkuit Hamilton yang memiliki bobot minimum pada Graf tersebut.

Seperti di ketahui, bahwa untuk mencari jumlah sirkuit Hamilton didalam Graf lengkap dengan n vertek adalah : (n - 1)!/2.

Gambar 2.10 Graf ABCD

Pada gambar 2.10 diatas, Graf memiliki 4− ! = 3 sirkuit Hamilton, yaitu: L1 = (A,B,C,D,A) atau (A,B,C,D,A) => panjang = 10 + 12 + 8 + 15 = 45

L2 = (A,C,D,B,A) atau (A,B,D,C,A) => panjang = 12 + 5 + 9 + 15 = 41 L3 = (A,C,B,D,A) atau (A,D,B,C,A) => panjang = 10 + 5 + 9 + 8 = 32

Gambar 2.11 Sirkuit Hamilton

Pada gambar 2.11 diatas terlihat jelas bahwa sirkuit Hamilton terpendek adalah L3 = (A, C, B, D, A) atau (A, D, B, C, A) dengan panjang sirkuit = 10 + 5 + 9 + 8 = 32. Jika jumlah vertek n = 20 akan terdapat (19!)/2 sirkuit Hamilton atau sekitar 6 × 1016 penyelesaian.


(36)

2.4 Algoritma Semut

2.4.1 Sejarah Algoritma Semut

Algoritma semut diperkenalkan oleh Moyson dan Manderick dan secara meluas dikembangkan oleh Marco Dorigo, merupakan teknik probabilistik untuk menyelesaikan masalah komputasi dengan menemukan jalur terbaik melalui grafik. Algoritma ini terinspirasi oleh perilaku semut dalam menemukan jalur dari koloninya menuju makanan.

2.4.2 Cara Kerja Algoritma Semut Mencari Jalur Optimal

Pada dunia nyata, semut berkeliling secara acak, dan ketika menemukan makanan mereka kembali ke koloninya sambil memberikan tanda dengan jejak feromon. Jika semut-semut lain menemukan jalur tersebut, mereka tidak akan bepergian dengan acak lagi, melainkan akan mengikuti jejak tersebut, kembali dan menguatkannya jika pada akhirnya merekapun menemukan makanan.

Seiring waktu, bagaimanapun juga jejak feromon akan menguap dan akan mengurangi kekuatan daya tariknya. Lebih lama seekor semut pulang pergi melalui jalur tersebut, lebih lama jugalah feromon menguap. Sebagai perbandingan, sebuah jalur yang pendek akan berbaris lebih cepat, dan dengan demikian kerapatan feromon akan tetap tinggi karena terletak pada jalur secepat penguapannya. Penguapan feromon juga mempunyai keuntungan untuk mencegah konvergensi pada penyelesaian optimal secara lokal. Jika tidak ada penguapan sama sekali, jalur yang dipilih semut pertama akan cenderung menarik secara berlebihan terhadap semut-semut yang mengikutinya. Pada kasus yang demikian, eksplorasi ruang penyelesaian akan terbatasi.

Oleh karena itu, ketika seekor semut menemukan jalur yang bagus (jalur yang pendek) dari koloni ke sumber makanan, semut lainnya akan mengikuti jalur tersebut, dan akhirnya semua semut akan mengikuti sebuah jalur tunggal. Ide algoritma koloni semut adalah untuk meniru perilaku ini melalui 'semut tiruan' berjalan seputar grafik yang menunjukkan masalah yang harus diselesaikan.


(37)

2.4.3 Definisi Ant Colony System (ACS)

Ant Colony System (ACS) adalah salah satu turunan dari algoritma semut. Pada algoritma ACS, semut berfungsi sebagai agen yang ditugaskan untuk mencari solusi terhadap suatu masalah optimisasi. ACS telah diterapkan dalam berbagai bidang, salah satunya adalah untuk mencari solusi optimal pada Traveling Salesman Problem (TSP). Dengan memberikan sejumlah n titik, TSP dapat didefinisikan sebagai suatu permasalahan dalam menemukan jalur terpendek dengan mengunjungi setiap titik yang ada hanya sekali.

2.4.4 Tahapan Ants Colony System (ACS)

Terdapat tiga tahapan utama dari ACS, yaitu : Aturan transisi status, Aturan pembaruan pheromone lokal, Aturan pembaruan pheromone global.

1. Aturan transisi status

Aturan transisi status yang berlaku pada ACS adalah sebagai berikut: seekor semut yang ditempatkan pada titik t memilih untuk menuju ke titik v, kemudian diberikan bilangan pecahan acak q dimana 0≤q≤1, q0

adalah sebuah parameter yaitu Probabilitas semut melakukan eksplorasi

pada setiap tahapan, dimana (0≤ q0≤1) dan pk (t,v) adalah probabilitas dimana semut k memilih untuk bergerak dari titik t ke titik v.

Jika q ≤ q0 maka pemilihan titik yang akan dituju menerapkan aturan yang ditunjukkan oleh persamaan (1)

Temporary (t,u) = [(t,ui)] . [(t,ui)]i = 1,2,3,…,n

V = max{[(t,ui)] . [(t,ui)}……….(1) Dengan v = titik yang akan dituju

Sedangkan jika q >q0 digunakan persamaan (2)

v = pk(t,v) = [τ , ] .[η , β]

[τ , ] .[η , β] �

�=1 ...(2)

Dengan η , =


(38)

Dimana (t,u) adalah nilai dari jejak pheromone pada titik (t,u) ,

(t,u)adalah fungsi heuristik dimana dipilih sebagai invers jarak antara titik t dan u, merupakan sebuah parameter yang mempertimbangkan kepentingan relatif dari informasi heuristik, yaitu besarnya bobot yang diberikan terhadap parameter informasi heuristik, sehingga solusi yang dihasilkan cenderung berdasarkan nilai fungsi matematis. Nilai untuk

parameter β adalah ≥ 0. Pheromon adalah zat kimia yang berasal dari kelenjar endokrin dan digunakan oleh makhluk hidup untuk mengenali sesama jenis, individu lain, kelompok, dan untuk membantu proses reproduksi. Berbeda dengan hormon, pheromon menyebar ke luar tubuh dapat mempengaruhi dan dikenali oleh individu lain yang sejenis (satu spesies). Proses peninggalan pheromon ini dikenal sebagai stigmergy, sebuah proses memodifikasi lingkungan yang tidak hanya bertujuan untuk mengingat jalan pulang ke sarang, tetapi juga memungkinkan para semut berkomunikas dengan koloninya. Seiring waktu, bagaimanapun juga jejak pheromon akan menguap dan akan mengurangi kekuatan daya tariknya, sehingga jejak pheromon harus diperbaharui.

2. Aturan pembaruan pheromon lokal

Selagi melakukan tur untuk mencari solusi dari TSP, semut

mengunjungi ruas-ruas dan mengubah tingkat pheromon pada ruas-ruas tersebut dengan menerapkan aturan pembaruan pheromon lokal yang ditunjukkan oleh persamaan (3)

τ , (1-ρ). τ , +ρ.∆ τ , ………(3)

∆ τ , =

���. �

dimana :

Lnn = panjang tur yang diperoleh

c = jumlah lokasi


(39)

Δτ = perubahan pheromon

adalah sebuah parameter (koefisien evaporasi), yaitu besarnya koefisien penguapan pheromon . Adanya penguapan pheromone

menyebabkan tidak semua semut mengikuti jalur yang sama dengan semut sebelumnya. Hal ini memungkinkan dihasilka solusi alternatif yang lebih banyak. Peranan dari aturan pembaruan pheromone lokal ini adalah untuk mengacak arah lintasan yang sedang dibangun, sehingga titik-titik yang telah dilewati sebelumnya oleh tur seekor semut mungkin akan dilewati kemudian oleh tur semut yang lain. Dengan kata lain, pengaruh dari pembaruan lokal ini adalah untuk membuat tingkat ketertarikan ruas-ruas yang ada berubah secara dinamis: setiap kali seekor semut menggunakan sebuah ruas maka ruas ini dengan segera akan berkurang tingkat ketertarikannya (karena ruas tersebut kehilangan sejumlah pheromon-nya), secara tidak langsung semut yang lain akan memilih ruas-ruas lain yang belum dikunjungi. Konsekuensinya, semut tidak akan memiliki kecenderungan untuk berkumpul pada jalur yang sama. Fakta ini, yang telah diamati dengan melakukan percobaan [Dorigo dan Gambardella, 1997]. Merupakan sifat yang diharapkan bahwa jika semut membuat tur-tur yang berbeda maka akan terdapat kemungkinan yang lebih tinggi dimana salah satu dari mereka akan menemukan solusi yang lebih baik daripada mereka semua berkumpul dalam tur yang sama. Dengan cara ini,

semut akan membuat penggunaan informasi pheromon menjadi lebih baik tanpa pembaruanlokal, semua semut akan mencari pada lingkungan yang sempit dari tur terbaik yang telah ditemukan sebelumnya.

3. Aturan pembaruan pheromon global

Pada sistem ini, pembaruan pheromon secara global hanya dilakukan oleh semut yang membuat tur terpendek sejak permulaan percobaan. Pada akhir sebuah iterasi, setelah semua semut menyelesaikan tur mereka, sejumlah pheromon ditaruh pada ruas-ruas yang dilewati oleh


(40)

seekor semut yang telah menemukan tur terbaik (ruas-ruas yang lain tidak diubah). Tingkat pheromon itu diperbarui dengan menerapkan aturan pembaruan pheromon global yang ditunjukkan oleh persamaan (4).

(t,v) (1-α).(t,v)α.∆ τ , ………..(4)

∆ τ , = {�� − , ∈ �_ ��

0

Dimana :

(t,v)= nilai pheromone akhir setelah mengalami pembaharuan lokal

Lgb = panjang jalur terpendek pada akhir siklus

= parameter dengan nilai antara 0 sampai 1

Δτ = perubahan pheromone

∆ τ , bernilai

���jika ruas (t,v) merupakan bagian dari rute

terbaik namun jika sebaliknya ∆ τ , = 0, α adalah tingkat kepentingan relatif dari pheromon atau besarnya bobot yang diberikan terhadap

pheromon, sehingga solusi yang dihasilkan cenderung mengikuti sejarah masa lalu dari semut dari perjalanan sebelumnya, dimana nilai parameter α

adalah ≥ 0, dan Lgb adalah panjang dari tur terbaik secara global sejak permulaan percobaan. Pembaruan pheromon global dimaksudkan untuk memberikan pheromon yang lebih banyak pada tur-tur yang lebih pendek. Persamaan (3) menjelaskan bahwa hanya ruas-ruas yang merupakan bagian dari tur terbaik secara global yang akan menerima penambahan

pheromone.

2.5 Cara kerja algoritma Ants Colony System (ACS)

Sama halnya dengan cara kerja semut dalam mencari jalur yang optimal, untuk mencari jalur terpendek dalam penyelesaian masalah Traveling Salesman Problem (TSP) diperlukan beberapa langkah untuk mendapatkan jalur yang optimal, ditunjukkan dengan bagan sebagai berikut :


(41)

(42)

2.6 Analisis Algoritma ACS untuk Mencari Nilai Optimal

Untuk mendiskusikan algoritma semut, Setiap edge memiliki bobot yang menunjukkan jarak antara dua buah nodes yang dihubungkan oleh busur tersebut. Algoritma ini menggunakan sistem agen, yang berarti kita akan mengerahkan semut yang bergerak sebagai agen tunggal. Setiap semut menyimpan daftar yang memuat nodes yang sudah pernah ia lalui, dimana ia tidak diijinkan untuk melalui

node yang sama dua kali dalam satu kali perjalanan (daftar ini disebut juga sebagai jalur Hamilton, yaitu jalur pada graf dimana setiap node hanya dikunjungi satu kali). Sebuah koloni semut diciptakan, dan setiap semut ditempatkan pada masing-masing node secara merata untuk menjamin bahwa tiap node memiliki peluang untuk menjadi titik awal dari jalur optimal yang dicari. Setiap semut selanjutnya harus melakukan tur semut, yaitu perjalanan mengunjungi semua

nodes pada graf tersebut.

Berikut adalah tahapan-tahapan algoritma semut menggunakan graf:

1. Dari sarang, semut berkeliling secara acak mencari makanan kemudian dicatat jarak antara node yang semut lalui.

2. Ketika sampai ke makanan, Total jarak dari tiap node yang semut tempuh dijumlahkan untuk mendapatkan jarak dari sarang ke makanan.

Gambar 2.13. Lintasan Awal Semut Menuju Tempat Makanan Keterangan Gambar 2.13:

A : Tempat awal koloni (sarang) B : Tujuan koloni semut (makanan)

Jalur 1 (biru): Lintasan yang ditempuh oleh semut 1 Jalur 2 (hitam): Lintasan yang ditempuh oleh semut 2

3. Ketika kembali ke sarang, sejumlah konsentrasi pheromon ditambahkan pada jalur yang telah ditempuh berdasarkan total jarak jalur tersebut.


(43)

Makin kecil total jarak (atau makin optimal), maka makin banyak kadar

pheromon yang dibubuhkan pada masing-masing busur pada jalur tersebut.

Gambar 2.14. Lintasan Semut Menuju Sarang Keterangan Gambar 2.14:

A : Sarang semut B : Tempat ditemukannya makanan

Jalur 1 (biru) : Jalur yang ditempuh oleh semut 1 dengan pemberian kadar

pheromon yang tinggi

Jalur 2 (hitam) : Jalur yang ditempuh oleh semut 2 dengan pemberian kadar pheromon yang rendah

4. Untuk memilih busur mana yang harus dilalui berikutnya, digunakan sebuah rumus yang pada intinya menerapkan suatu fungsi heuristic untuk menghitung intensitas pheromon yang ditinggalkan pada suatu busur.

Gambar 2.15. Lintasan Semut Menuju Makanan pada Iterasi ke-2 Keterangan Gambar 2.15:

A : Sarang semut B : Tempat ditemukannya makanan

Jalur 1 : Jalur yang ditempuh oleh semut 1 karena kadar pheromon yang tinggi

Jalur 2 : Jalur yang tidak ditempuh oleh semut karena kadar pheromon


(44)

Jalur 3 : Jalur yang ditemukan oleh semut 2

5. Pada iterasi berikutnya, busur-busur yang mengandung pheromon lebih tinggi ini akan cenderung dipilih sebagai busur yang harus ditempuh berikutnya berdasarkan rumus pemilihan busur. Akibatnya, lama-kelamaan akan terlihat jalur optimal pada graf, yaitu jalur yang dibentuk oleh busur-busur dengan kadar pheromon yang tinggi, yang pada akhirnya akan dipilih oleh semua multi agen semut.

Gambar 2.16. Lintasan Semut Menuju Sarang pada Iterasi ke-2 Keterangan Gambar 2.16:

A : Sarang semut

B : Tempat ditemukannya makanan

Jalur 1 (hitam) : Jalur yang ditempuh oleh semut 2 dengan pemberian kadar pheromon yang rendah

Jalur 2 : Jalur yang tidak ditempuh

Jalur 3 (biru) : Jalur yang ditempuh oleh semut 2 dengan pemberian kadar

pheromon yang tinggi.


(45)

Keterangan Gambar 2.17: A : Sarang semut

B : Tempat ditemukannya makanan

Jalur 1 : : Jalur yang tidak ditempuh karena kadar feromon yang rendah Jalur 2 : Jalur yang tidak ditempuh karena kadar feromon yang sangat rendah

Jalur 3 : Jalur optimal yang ditempuh oleh semut karena kadar feromon yang tinggi

2.7 Analisis Parameter pada Algoritma Ants Colony System

Pada kasus-kasus dari ACS, pengaruh dari β (besar pengaruh informasi

heuristic), m (banyak semut), ρ (faktor penguapan), q0 (probabilitas pemilihan

deterministic) kadang berbeda-beda. Gambar 2.18, Gambar 2.19, Gambar 2.20, Gambar 2.21 merupakan hasil perbandingan parameter β, m, ρ, dan q0, secara

berturut-turut dengan kasus TSP 3000 titik.(Stutzle, 2010)

Parameter β (gambar 2.18): nilai β berkisar antara 2 sampai 5

menghasilkan waktu komputasi dan rute yang lebih baik. Jika nilai β lebih kecil

akan menghasilkan waktu komputasi yang baik tetapi rute tidak ditemukan yang

baik. Kemudian jika nilai β lebih besar maka akan menghasikan waktu komputasi

yang buruk.


(46)

Parameter m (gambar 2.19): nilai m dengan 10 semut menghasilkan waktu komputasi yang baik. Jika lebih kecil (misalnya m=1) maka akan menghasilkan waktu komputasi yang buruk. Jika lebih besar (misalnya m=100) maka akan menghasilkan waktu komputasi yang buruk juga.

Gambar 2.19. ACS dengan beragam parameter semut (m)

Parameter ρ (gambar 2.20): perbedaan nilai ρ tidak banyak berpengaruh dalam waktu komputasi ACS.

Gambar 2.20. ACS dengan beragam parameter ρ

Parameter q0 (gambar 2.21): nilai q0 menghasilkan waktu yang lebih baik


(47)

Gambar 2.21. ACS dengan beragam parameter q0

2.8 Contoh Penyelesaian Masalah Travelling Salesman Problem (TSP) Dengan Menggunakan Metode Ants Colony System (ACS)

Gambar 2.22. Contoh Graf Lengkap

Tahap-tahap penghitungan jarak terpendek dengan menggunakan algoritma ACS, yaitu:

7

10

13 A

B

C

D

F E

5

6

16

9

17

8 19

18

12

14

15 11


(48)

Langkah 1 : Buat matriks jaraknya berdasarkan graf diatas.

Tabel 2.2 Matriks Jarak

A B C D E F

A 0 16 18 19 5 10

B 16 0 9 7 12 14

C 18 9 0 17 13 15

D 19 7 17 0 11 8

E 5 12 13 11 0 6

F 10 14 15 8 6 0

Langkah 2 : Tentukan banyak semut untuk menentukan berapa banyak iterasi rute yang akan dihasilkan. Setiap satu semut satu rute. Di contoh penyelesaian ini akan ditentukan 1 semut.

Langkah 3 : Tentukan vertek awal semut. Dimana akan ditentukan sebagai sarang semut. Sehingga semut akan berjalan dari vertek tersebut dan akan kembali ke vertek tersebut. Di contoh penyelesaian ini akan ditentukan vertex awal nya adalah A.

Langkah 4 : Tentukan nilai pheromone awal semut tiap busur yang tersedia. Di contoh penyelesaian ini akan ditentukan 0.0001 sebagai nilai awalnya.

Tabel 2.3 Matriks Pheromone Awal

A B C D E F

A 0.0001 0.0001 0.0001 0.0001 0.0001 0.0001 B 0.0001 0.0001 0.0001 0.0001 0.0001 0.0001 C 0.0001 0.0001 0.0001 0.0001 0.0001 0.0001 D 0.0001 0.0001 0.0001 0.0001 0.0001 0.0001 E 0.0001 0.0001 0.0001 0.0001 0.0001 0.0001


(49)

F 0.0001 0.0001 0.0001 0.0001 0.0001 0.0001

Langkah 5 : Tentukan invers η , sebagai dasar perhitungan probabilitas dengan rumus η , =

� , . Kemudian buatlah matriks invers

nya.

Tabel 2.4 Matriks Invers

A B C D E F

A 0.0000 0.0625 0.0555 0.0552 0.2000 0.1000 B 0.0625 0.0000 0.1111 0.1420 0.0833 0.0710

C 0.0555 0.1111 0.0000 0.0588 0.0769 0.0666 D 0.0552 0.1420 0.0588 0.0000 0.0909 0.1250 E 0.2000 0.0833 0.0769 0.0909 0.0000 0.1666 F 0.100 0.0710 0.0666 0.1250 0.1666 0.0000

Langkah 6 : Tentukan parameter perhitungan probabilitas. Di contoh penyelesaian ini akan ditentukan nilai q(pecahan acak) 0.9 sedangkan q0(probabilitas semut) 0.1. β (tingkat informasi heuristic) 2.

Langkah 7 : Karena nilai q(pecahan acak) > q0(probabilitas semut). Maka

akan dipakai persamaan ke-2 yaitu persamaan probabilitas = [τ , ] .[η , β] ∑� [τ , ] .[η , β]

�=1 .

Tabel 2.5 Hasil persamaan probabilitas

A B C D E F

Probabilitas pk(t,v) 0 0.0561 0.0500 0.0500 0.6677 0.1669

Langkah 8 : Dari Tabel 2.26 probabilitas terbesar adalah vertek A ke E. Maka rute yang terbentuk adalah A  E. Dan semut sekarang berada pada vertek E.


(50)

Langkah 9 : Melakukan perhitungan perubahan pheromone lokal dengan menggunakan persamaan ∆ τ , =

���. �dan τ , = (1-ρ). τ , +ρ.∆ τ ,

dengan ρ (koefisien penguapan) antara 0 ≤ρ≤ 1. Di contoh penyelesaian ini akan ditentukan nilai ρ (koefisien penguapan) adalah 0.1.

Tabel 2.6. Matriks Hasil Update pheromone lokal A ke E

A B C D E F

A 0.0001 0.0001 0.0001 0.0001 0.0001 0.0001 B 0.0001 0.0001 0.0001 0.0001 0.0001 0.0001 C 0.0001 0.0001 0.0001 0.0001 0.0001 0.0001 D 0.0001 0.0001 0.0001 0.0001 0.0001 0.0001 E 0.00342 0.0001 0.0001 0.0001 0.0001 0.0001 F 0.0001 0.0001 0.0001 0.0001 0.0001 0.0001

Langkah 10 : Ulangi langkah 7-11. Sampai semua vertek terlewati. Hasil rute yang terbentuk adalah A  E  F  D  B C. Dibawah ini merupakan matriks pheromone yang telah di-update.

Tabel 2.7 Matriks Hasil Update pheromone lokal A, E, F, D, B, C.

A B C D E F

A 0.0001 0.0001 0.0001 0.0001 0.01564 0.0001 B 0.0001 0.0001 0.00762 0.0001 0.0001 0.0001 C 0.0001 0.0001 0.0001 0.0001 0.0001 0.0001 D 0.0001 0.00979 0.0001 0.0001 0.0001 0.0001 E 0.01564 0.0001 0.0001 0.0001 0.0001 0.01139 F 0.0001 0.0001 0.0001 0.00721 0.0001 0.0001


(51)

Langkah 11 : Setelah melewati semua vertek maka semut kembali ke vertek awal A dengan menggunakan persamaan update pheromone lokal. Dibawah ini merupakan matriks hasil update pheromone lokal.

Tabel 2.8 Matriks Hasil Update pheromone lokal A, E, F, D, B, C,A.

A B C D E F

A 0.0001 0.0001 0.0001 0.0001 0.01564 0.0001 B 0.0001 0.0001 0.0087 0.0001 0.0001 0.0001 C 0.00434 0.0001 0.0001 0.0001 0.0001 0.0001 D 0.0001 0.00979 0.0001 0.0001 0.0001 0.0001 E 0.0001 0.0001 0.0001 0.0001 0.0001 0.01302 F 0.0001 0.0001 0.0001 0.00908 0.0001 0.0001

Langkah 12 : Hitung jarak dari rute yang terbentuk oleh perjalanan semut. Di contoh penyelesaian ini didapat jarak nya adalah 53.

Langkah 13 : Melakukan penghitungan perubahan pheromone global dengan menggunakan persamaan (t,v)= (1-α).(t,v)α.∆ τ , . Sedangkan sebelum nya tentukan nilai ∆ τ , = {�� − , ∈ �_ �� .

0 dan

nilai α (tingkat pheromone),≥ 0, 0.1 Di contoh penyelesaian ini ditentukan nilai α (tingkat pheromone) adalah 0.1. Pada tabel dibawah ini merupakan hasil update pheromone global.

Tabel 2.9 Matriks Hasil Update Pheromone Global

A B C D E F

A 0.00009 0.00009 0.00009 0.00009 0.01587 0.00009 B 0.00009 0.00009 0.00963 0.00009 0.00009 0.00009 C 0.00570 0.00009 0.00009 0.00009 0.00009 0.00009 D 0.00009 0.01061 0.00009 0.00009 0.00009 0.00009


(52)

E 0.00009 0.00009 0.00009 0.00009 0.00009 0.01351

F 0.00009 0.00009 0.00009 0.00997 0.00009 0.00009

Langkah 14 : Maka di dapat rute dengan panjang minimal 53 dengan susunan vertek A-E-F-D-B-C-A. Di bawah ini merupakan ilustrasi hasil perjalanan semut paling optimal dalam satu iterasi.

Gambar 2.23. Hasil Rute Algoritma Ants Colony System 1 semut.

7

10

13 A

B

C

D

F E

5

6

16

9

17

8 19

18

12

14

15 11


(53)

33

BAB III

ANALISIS & DESAIN

3.1 Identifikasi Sistem

P.T. Pos Indonesia wilayah Yogyakarta mempunyai sistem lama dalam pelayanannya terhadap pengiriman paket ke pelanggan. Sistem pengiriman paket antara lain adalah sebagai berikut:

1. Paket dari luar maupun dalam wilayah Yogyakarta di drop ke kantor pos kemudian dipilah berdasarkan kecamatannya dan beratnya, jika beratnya dibawah 2 kg diantar dengan menggunakan motor beserta surat standar dan surat kilat. Sedangkan jika diatas 2 kg paket diantar menggunakan mobil atau diambil sendiri oleh pelanggan.

2. Setelah dipilah, setiap petugas mendapatkan sekitar 2 atau 3 kecamatan. Dan di wilayah Yogyakarta terdapat sekitar 58 petugas yang akan mengantar paket ke tiap tujuan diseluruh wilayah Yogyakarta.

3. Paket siap diantarkan oleh petugas pos.

Dari sistem lama diatas terdapat permasalahan yaitu jalur yang dilalui oleh petugas pos tidak optimal seperti melewati jalur yang telah dilewati sehingga dilewati 2 kali sehingga waktu dan biaya transpotasi menjadi membengkak. Dari permasalahan sistem yang lama ini maka akan dibuatkan sistem yang baru sebagai solusi dari permasalahan tersebut.

Sebelum membangun system baru, kami melakukan penelitian terlebih dahulu untuk mengetahui strategi apa yang paling tepat untuk system baru yang akan digunakan. Algoritma yang dipilih dari penelitian tersebut adalah algoritma ACS. Dengan algoritma ini diharapkan terdapat peningkatan terhadap jalur yang lebih singkat sehingga meningkatkan waktu dan biaya yang lebih optimal.


(54)

3.2. Analisis Sistem 3.2.1. Analisis Data Awal

Dalam penelitian ini data yang dibutuhkan adalah data jarak jalan dan data volume kendaraan. Data jarak dibutuhkan untuk proses penghitungan rute terpendek. Pemerolehan data jarak adalah hasil pengcapturean peta dari google earth yang kemudian dilakukan proses penghitungan jarak dengan menggunakan corel draw sehingga diperoleh panjang jalan dalam bentuk centimeter. Tabel dibawah ini merupakan hasil penghitungan jarak dengan corel draw.

Tabel 3.1 Data jarak peta Sumber:[Catur P, 2010]

Nama Jalan Jarak dipeta (cm) Jarak sebenarnya (m)

Laksda Adisucipto 8.5 395

Laksda Adisucipto 5.8 270

Laksda Adisucipto 8.4 391

Janti 14 651

Janti 17.4 809

Janti 7.5 349

Babarsari 9.5 442

Babarsari 12.9 600

Babarsari 16.2 753

Laksda Adisucipto 16.4 763

Karena data sesungguhnya adalah dalam satuan meter. Maka diperlukan skala peta supaya sesuai dengan hasil riil. Penghitungan skala dengan rumus

n ny

p p . Maka skala yang didapat adalah 1: 46.51163.

Sedangkan untuk data volume adalah data yang didapat dari dinas perhubungan DIY tahun 2008. Data volume ini nanti akan diolah menjadi data


(55)

kecepatan dengan metode greenshield. Untuk proses data volume menjadi data kecepatan adalah sebagai berikut:

1. Tentukan kepadatan jalan dengan menggunakan rumus

v = ��− . D - [

− �� ��] D

2……… (3.1)

Dimana,

V= volume, (smp/jam)

�� = kecepatan rata-rata arus bebas (km/jam) D = kepadatan (smp/km)

Dj = jam density (kepadatan saat macet) (smp/km)

Telah diketahui dari data dinas perhubungan untuk volume, sedangkan kecepatan rata-rata arus bebas adalah kecepatan rata-rata yang diperbolehkan. Data yang didapat adalah sebagai berikut:

V = 3049 smp/jam Dj = 602 smp/jam

�� = 70 km/jam

Maka untuk mencari nilai D adalah, 3049 = 70 D - 0

02 D

2 , maka

didapat D min = 554,73 smp/jam. Dmax = 47.26 smp/jam.

Kemudian cari kecepatan rata-rata (��−) dengan menggunakan rumus 3.2

�� = �� − [− − ��

��].D………(3.2)

Maka didapat nilai ��− dengan D min adalah 5.4965 km/jam, sedangkan nilai ��− dengan D max adalah 64.5047 km/jam. Sehingga didapat nilai kecepatan rata-rata �� − terkecil adalah 5.4965 km/jam. Dibawah ini merupakan tabel data volume jumlah kendaraan yang merupakan data dinas perhubungan DIY.


(56)

Tabel 3.2 Data Volume Kendaraan Sumber: Dinas Perhubungan DIY (2008)

No Nama Pagi (smp/jam)

Siang-pagi (smp/jam)

Siang (smp/jam)

Siang– sore (smp/jam) Sore (smp/jam) Dj (smp/km) Vs (km/jam) 1 Amplas

arah solo

3,049 2895.1 3,267 1300 3200 602 70 2 Amplas

arah jogja

3,600 1179.3 3,802 1240 2986 602 70

3 Bantul Niten arah jogja

3044 1300 1222.6 1135 1653 522 40

4 Bantul Niten arah bantul

1389 1365 1356 1239 2863 522 40

3.3 Analisis Kebutuhan Sistem 3.3.1 Diagram Use Case

Gambar 3.1 Diagram Use Case Adminisitator

Staff Bagian Distribusi

ubah data kondisi jalan

ubah data kecepatan

ubah data account

update data pengirim penerima

input data pengirim penerima hapus data pengirim penerima ubah kondisi pengiriman perhitungan pencarian rute


(57)

3.3.2 Narasi Use Case

Nama Use Case Update Data Kondisi Jalan

Aktor Administatror

Keterangan

Administrator dapat meng-update data kondisi jalan

Kondisi awal

Administator sudah login dan berada pada “kelola data Kondisi Jalan”

Kondisi akhir

Data kondisi jalan berhasi di-update

Skenario

Aksi Aktor Reaksi Sistem

Kondisi Normal Normal

1. Administator memilih menu data kondisi jalan

2. Sistem menampilkan data kondisi jalan yang di ambil dari tabel jalan. 3. Administator melakukan klik

update” pada data yang akan di

pilih

4. Sistem menampilkan form isian yang telah terisi data dari lokasi yang di pilih.

5. Administator melakukan perubahan data

6.Bagian Distribusi memilih tombol

Pengarang : Alfa


(58)

simpan

7.Konfirmasi ubah

8.Jika[ya], system mengubah data lokasi. Jika [tidak] maka system tidak akan melakukan pengubahan.

9. system memberikan konfirmasi bahwa data telah berhasil diubah.

Nama Use Case Update Data Kecepatan

Aktor Administator

Keterangan

Administator dapat meng-update data kecepatan

Kondisi awal

Administator sudah login dan berada pada “kelola data kecepatan”

Kondisi akhir

Data kecepatan berhasil di-update

Skenario

Aksi Aktor Reaksi Sistem

Kondisi Normal Normal

1.Administator memilih menu data Ubah Keceptan

2. Sistem menampilkan data ubah kecepatan yang di ambil dari tabel hitungKecepatan.

3. Administator melakukan klik ”update” pada data yang akan di Pengarang : Alfa


(59)

pilih

4. Sistem menampilkan form isian yang telah terisi data dari jarak yang dipilih. 5. Administator melakukan perubahan

data

6.Administator memilih tombol simpan

7.Konfirmasi ubah

8.Jika[ya], system mengubah data jarak. Jika [tidak] maka system tidak akan melakukan pengubahan.

9. system memberikan konfirmasi bahwa data telah berhasil di ubah.

Nama Use Case Ubah Account

Aktor Adminstator dan Staff Bagian Distribusi

Keterangan

Adminstator dan Staff Bagian Distribusi dapat mengubah data account Kondisi awal

Adminstator dan Staff Bagian Distribusi sudah login dan berada pada “ubah account”

Kondisi akhir

Data account berhasil di-input dan disimpan ke tabel (data lokasi)

Skenario

Aksi Aktor Reaksi Sistem

Kondisi Normal Normal Pengarang : Alfa


(60)

1. Adminstator dan Staff Bagian Distribusi memilih menu “ubah account”

2. Sistem menampilkan form isian ubah account

3.Bagian Distribusi mengsisi data account baru dan mengklik tombol simpan.

4. Sistem menyimpan data account dalam database pada table user.

Skenario alternatif (jika kosong) .

1. Menampilkan konfirmasi bahwa isian belum lengkap atau ada yang belum isi.

Nama Use Case Update Data Pengirim Penerima

Aktor Staff Bagian Distribusi

Keterangan

Bagian Distribusi dapat meng-update Data Pengirim Penerima

Kondisi awal

Bagian Distribusi sudah login dan tabel data pengirim penerima sudah terisi

Kondisi akhir

Data Pengirim Penerima di-update

Skenario

Aksi Aktor Reaksi Sistem

Pengarang : Alfa


(61)

Kondisi Normal

1. Sistem menampilkan tabel data pengirim penerima.

2. Bagian Distribusi mengklik tabel yang akan di-update

3. Sistem menampilkan form isian data pengirim penerima

4. Bagian Distribusi mengisi form isian data pengirim penerima yang akan di-update. Dan mengklik simpan perubahan

5.Sistem menyimpan data pengirim penerima pada tabel pengirim penerima, dan menampilkan konfirmasi bahwa data pengirim penerima telah di-update

Skenario alternatif (jika kosong)

1. Menampilkan konfirmasi bahwa isian belum lengkap atau ada yang belum isi.

Nama Use Case Input Data Pengirim Penerima

Aktor Bagian Distribusi

Keterangan

Bagian Distribusi dapat melakukan input data pengirim penerima

Kondisi awal Pengarang : Alfa


(62)

Bagian Distribusi sudah login

Kondisi akhir

Input data pengirim penerima berhasil

Skenario

Aksi Aktor Reaksi Sistem

Kondisi Normal Normal

1. Sistem menampilkan form isian data pengirim penerima.

2. Bagian Distribusi memasukkan data pengirim penerima pada form dan memproses dengan mengklik tombol “simpan”.

3. Sistem menyimpan data pengirim penerima pada tabel pengirim penerima dan menampilkan konfirmasi bahwa data telah disimpan

Skenario alternatif (jika kosong)

1. Menampilkan konfirmasi bahwa isian belum di-isi.

Nama Use Case Hapus data pengirim penerima

Aktor Bagian Distribusi

Keterangan

Bagian Distribusi dapat menghapus data pengirim penerima

Kondisi awal

Bagian Distribusi sudah login dan tabel pengirim penerima sudah terisi

Pengarang : Alfa


(63)

Kondisi akhir

Data tabel pengirim penerima telah terhapus

Skenario

Aksi Aktor Reaksi Sistem

Kondisi Normal Normal

1. Sistem menampilkan tabel data pengirim penerima

2. Bagian Distribusi mengklik data tabel pengirim penerima yang akan dihapus

3. Sistem menampilkan form data tabel pengirim penerima

4. Bagian Distribusi menekan tombol hapus

5. Sistem menghapus data pengirim penerima

Nama Use Case Ubah data kondisi pengiriman

Aktor Bagian Distribusi

Keterangan

Bagian Distribusi dapat mengubah data kondisi pengiriman

Kondisi awal

Bagian Distribusi sudah login dan tabel pengirim penerima kondisi belum terkirim

Kondisi akhir Pengarang : Alfa


(64)

Data tabel pengirim penerima telah telah dikirim

Skenario

Aksi Aktor Reaksi Sistem

Kondisi Normal Normal

1. Sistem menampilkan tabel data pengirim penerima

2. Bagian Distribusi mengklik data tabel pengirim penerima yang akan dikirim

3. Sistem menampilkan form data tabel pengirim penerima

4. Bagian Distribusi memilih kirim dan menekan tombol simpan

5. Sistem mengubah data pengirim penerima sudah dikirim pada tabel pengirim penerima

Nama Use Case Perhitungan pencarian rute

Aktor Bagian Distribusi

Keterangan

Bagian Distribusi dapat melakukan perhitungan pencarian rute

Kondisi awal

Bagian Distribusi sudah login dan tabel pengirim penerima dalam kondisi kirim

Kondisi akhir Pengarang : Alfa


(65)

Tampil rute pengiriman

Skenario

Aksi Aktor Reaksi Sistem

Kondisi Normal Normal

1. Sistem menampilkan tabel data pengirim penerima dalam kondisi kirim 2. Bagian Distribusi mengisi form

parameter pada algoritma semut dan menekan tombol tampil rute pengiriman

3. Sistem menampilkan rute pengiriman alternate dan terbaik

3.4 Perancangan Umum Sistem

Secara umum system aplikasi ditujukan untuk mencari rute pengiriman barang secara optimal pada P.T. Pos Indonesia dengan algoritma Ants Colony System.

3.4.1 Masukan Sistem

Data yang menjadi masukan sistem dalam penelitian ini adalah data peta dan inputan parameter user . Data peta akan tersimpan di file .dmp terdiri dari data koordinat x dan koordinat y serta nama titik. Karena data peta terlalu besar untuk ditempatkan dalam satu array maka data peta perlu dibagi dalam 10 wilayah. Pembagian wilayah ini juga di atur pada file vertexlist.dmp dan mapingbesar.dmp. Gambar 3.2 merupakan gambar pembagian peta per cluster.


(66)

Gambar 3.2 Peta per Cluster

Sedangkan untuk inputan parameter terdiri dari nilai q0, nilai β, nilai α, nilai ρ dan banyak semut.

3.4.2 Proses Sistem

Didalam sistem yang akan dibangun terdapat beberapa proses untuk mencapai tujuan utama yaitu mencari rute terpendek. Tahap-tahap nya adalah men-set tujuan pengiriman, mencari urutan cluster, mencari rute tercepat.

Tahap-tahap proses sistem yang akan dibangun: 1. Men-set tujuan pengiriman

Pada langkah awal ini sistem akan mengambil data daftar pengirim&penerima, dari tabel pada frame DaftarPengirimanInternalFrame. Kemudian data tesebut dicocokan dengan data peta yang ada diprogram. Ketika nama node pada data peta mempunyai nama yang sama dengan node pengirim&penerima, maka atribut destinasi pada node,wilayah pada peta, akan di set true . Gambar 3.3, 3.4, 3.5 adalah diagram alir dari tahap 1.


(67)

Gambar 3.3 Set node Awal Daftar pengirim&penerima ditampilkan

ditabel daftarpengirimanTabel, waktu berangkat dipilih dari comboBox wktbrgkt, parameter dan banyak semut

terima daftar node pengirim&penerima dari tabel

terima daftar peta dari kelas load peta

set riut18 mjd node awal

set variabel string Dest=riut18


(68)

Gambar 3.4 Set wilayah Pengiriman For j=0 to jml

wilayah true

set array vertexList = array nama node ke j

For k = 0 to jml vertexList

true Jika nama vertexList

ke k = Dest

true set tujuan pada

wilayah ke j menjadi true

k++

j++ A

B

falsefalse false


(69)

Gambar 3.5 Set node Pengiriman

2. Mencari urutan cluster pengiriman

Setelah menentukan node dan cluster pengiriman maka langkah selanjutnya adalah mencari urutan cluster. Ditujukan untuk mengetahui cluster mana yang akan dikunjungi lebih dahulu. Hal ini ditujukan untuk mempersingkat waktu pencarian rute pengiriman. Gambar 3.6 adalah diagram alir untuk mencari urutan cluster pengiriman.

For j=0 to jml wilayah

true

set array vertexList = array nama node ke j

For k = 0 to jml vertexList

true

Jika nama vertexList ke k = Dest

true

set tujuan pada wilayah ke j menjadi true

k++

j++ A

B

falsefalse false


(70)

Gambar 3.6 Mencari urutan Cluster 3. Mencari rute pengiriman tercepat

Setelah mendapatkan urutan cluster. Maka selanjutnya adalah mencari rute pengiriman tercepat. Gambar 3.7, 3.8, 3.9, 3.10, 3.11 adalah diagram alir untuk mencari rute pengiriman tercepat.

A

mencari urutan waktu pengiriman

mencari jalur urutan cluster

mulai dari vertexList 3

mengubah urutan cluster ke angka

mencari rute pengiriman kembali set cluster awal =

cluster akhir rute

set cluster vertexList 3 menjadi Dest

mengubah urutan cluster

ke angka


(71)

Gambar 3.7 Pencarian rute cluster ke 0

D

For i to bnyk semut

set array vr= array nama node dengan cluster urutan pengiriman pertama set array amNew=array bobot waktu dengan urutan

cluster pengiriman pertama mengubah susunan matrik amNew dan array vr dengan titik 0 sebagai node awal set array vrTmp= susunan node baru yang telah diubah, set matriks amNewTmp =susunan matriks yang telah diubah, set matriks amBobot =susunan

matriks invers

semut =0 true set matriks tMatAwal = matriks

pheromone awal mencari rute terpendek untuk urutan cluster ke 0

get list finalPath = array susunan jalan terpendek, get finalBobot = matriks bobot jalan, get finalTau = matriks

pheromone baru

E

set list gabungFT = tampung list finalTau, gabungFP = tampung list

finalPath, gabungVertUrut = tampung vrTmp

set matriks tMatAwal = matriks

finalTau false

for i=0 to finalPath -1 set list gabungPath = tampung finalPath-1, set gabungbobot =


(72)

Gambar 3.8 Pencarian rute cluster ke-i

E

for i=1 to urutanCluster-1

set array vrIn= array nama node dengan cluster urutan pengiriman ke i set array amIn=array bobot

waktu dengan urutan cluster pengiriman ke i

semut = 0 true set matriks tMatAwal2 = matriks

pheromone awal

set matriks tMatAwal2 = matriks

tauTemp false

mencari rute terpendek untuk urutan cluster ke i

memasukkan rute terpilih ke

tmpInCluster

set finalPath tmpInCluster ke 0, set finalBobot tmpInCluster ke 1, setfinalTau tmpInCluster ke 2,

set testVertexBaru tmpInCluster ke 3

set list tauTemp = tampung finalTau, gabungFT = tampung finalTau, gabungFP =

tampung finalPath, gabungVertUrut =tampung testVertexBaru

for d=0 to ukuran finalPath-1

set gabungPath =tampung finalPath, set gabungBobot = gabungBobot

sebelum + finalBobot, i++


(1)

Atribut

 vertex vertexList[];

 double adjMat[][];

 List nextAwal;

 double bobotBefore;

 int next;

 double[][] tMatriks;

 double nilaiQ;

 double nilaiQ0;

 double nilaiB;

 double nilaiP; Method

cariPath() Input:

- Output:

List Algoritma:

1. List gabunganPath = new ArrayList();

2. List correctAwal = new ArrayList();

3. List bbtAwal = new ArrayList();

4. List pathPilihan = new ArrayList(); 5. double bobotPilihan = 0;

6. double[][] tauPilihan;

7. for (int i = 0; i < nextAwal.size(); i++)

if (CariNode(nextAwal.get(nextAwal.size()-1).toString())) correctAwal.add(nextAwal.get(i));


(2)

163

bbtAwal.add(bobotBefore); end if

end for

8. List awalBaru2 = ubahMatrik(nextAwal.get(nextAwal.size()-1).toString(), adjMat, vertexList);

9. vertex[] vListBaru2 = (vertex[]) awalBaru2.get(0); 10. double[][] adMatBaru2 = (double[][]) awalBaru2.get(1); 11. double[][] amBobot = (double[][]) awalBaru2.get(2); 12. graph grpIncluster2 = new graph(vListBaru2, adMatBaru2,

vListBaru2.length, vListBaru2.length, tMatriks, nilaiQ, nilaiQ0, nilaiB, nilaiP, next, amBobot);

13. List clsterlanjut = grpIncluster2.ssnJalan(); 14. pathPilihan = new ArrayList();

15. pathPilihan = (List) clsterlanjut.get(0); 16. bobotPilihan = (Double) clsterlanjut.get(1); 17. tauPilihan = (double[][]) clsterlanjut.get(2); 18. for (int i = 0; i < vListBaru2.length; i++) { for (int j = 0; j < pathPilihan.size(); j++) {

if (vListBaru2[i].getLabel().equals(pathPilihan.get(j).toString())) break;

end if end for end for

19. awalBaru2 = null; 20. adMatBaru2 = null;

21. gabunganPath.add(pathPilihan); 22. gabunganPath.add(bobotPilihan); 23. gabunganPath.add(tauPilihan);


(3)

25. vListBaru2 = null; 26. return gabunganPath;

pathAkhir() Input:

- Output:

List Algoritma:

1 List gabunganPath = new ArrayList();

2 List correctAwal = new ArrayList();

3 List bbtAwal = new ArrayList();

4 List pathPilihan = new ArrayList();

5 double bobotPilihan = 0;

6 double[][] tauPilihan;

7 for (int i = 0; i < nextAwal.size(); i++) if (CariNode(nextAwal.get(i).toString())) correctAwal.add(nextAwal.get(i)); bbtAwal.add(bobotBefore); end if

end for

8 List awalBaru2 = ubahMatrik((String) correctAwal.get(0), adjMat, vertexList);

9 vertex[] vListBaru2 = (vertex[]) awalBaru2.get(0); 10 double[][] adMatBaru2 = (double[][]) awalBaru2.get(1); 11 double[][] amBobot2 = (double[][]) awalBaru2.get(2);

12 graph grpIncluster2 = new graph(vListBaru2, adMatBaru2,

vListBaru2.length, vListBaru2.length, tMatriks, nilaiQ, nilaiQ0, nilaiB, nilaiP, amBobot2);


(4)

165

13 List clusterAkhir = grpIncluster2.ssnJalan(); 14 pathPilihan = new ArrayList();

15 pathPilihan = (List) clusterAkhir.get(0); 16 bobotPilihan = (Double) clusterAkhir.get(1); 17 tauPilihan = (double[][]) clusterAkhir.get(2);

18 awalBaru2 = null;

19 adMatBaru2 = null;

20 gabunganPath.add(pathPilihan);

21 gabunganPath.add(bobotPilihan);

22 gabunganPath.add(tauPilihan);

23 gabunganPath.add(vListBaru2);

24 vListBaru2 = null;


(5)

ABSTRAK

Algoritma Ants Colony System(ACS) adalah salah satu algoritma optimasi yang dapat digunakan untuk memecahkan berbagai masalah optimasi. Salah satu masalah yang dapat dipecahkan oleh algoritma ACS adalah Travelling Salesman Problem (TSP). TSP adalah masalah pencarian rute optimal tanpa mengunjungi tempat yang sama lebih dari satu kali, seperti menentukan rute terpendek pengiriman barang.

Tujuan dari penelitian ini adalah menerapkan algoritma ACS untuk menentukan rute terpendek pada studi kasus pengiriman barang P.T. Pos Indonesia untuk domisili Yogyakarta. Aplikasi yang dibangun adalah untuk penentuan rute terpendek. Hal-hal yang menjadi pertimbangan dalam mencari rute terpendek adalah kecepatan rata-rata atau bobot waktu, kondisi jalan yang digunakan, parameter algoritma ACS yaitu parameter probabilitas semut (q0), pheromone awal (t0), parameter koefisien penguapan pheromone (p), parameter

yang mempertimbangkan kepentingan relatif dari informasi heuristic (b), tingkat kepentingan relatif dari pheromone (a), dan banyak iterasi atau banyak semut (m).

Penelitian ini akan menguji berbagai kemungkinan perubahan parameter dan iterasi. Dari hasil pengujian ternyata semakin besar nilai parameter t0 dan p serta

iterasi rute (m) maka rute semakin pendek. Di lain sisi semakin besar nilai parameter b akan maka rute jauh dari pendek.

Hasil pengujian dari 4 titik yang berbeda yaitu tglu3, wch2, kb35, gkan5 adalah 25 menit dengan jarak 70 km dengan penggunaan parameter q0 adalah 0.1,

t0 adalah 0.01, p adalah 0.1, b adalah 2 dan a adalah 0.1.

Kata kunci : Ants Colony System, Travelling Salesman Problem, Pengiriman Barang, Rute Terpendek.


(6)

ABSTRACT

Ants Colony System Algorithm (ACS) is one of many algorithm optimalization can be solving all kinds problem optimalization. One of many problem can be solving by ACS Algorithm is Travelling Salesman Problem (TSP). TSP is problem searching optimal route without visit same place over than one time, as determine shortest route packet transporting.

Goal of this research is applying ACS algorithm to determine shortest route packet transporting at study case P.T. Pos Indonesia for domicile Yogyakarta. Application will building for determine shortest route. The condition will be consideration in searching shortest route is speed average or weight time, street condition, parameter of ACS algorithm is parameter ant probability (q0), initial

pheromone (t0), parameter coefficient pheromone evaporation (p), parameter that

considers the relative importance of the heuristic information (b), the relative importance of the pheromone (a), and many iteration or many ants (m).

This research will be test with varied kinds possibility change of parameter and iteration. From result of testing obviously more large value of parameter t0 and p

including route iteration (m) more and more short. other side more large value of parameter b will be more and more far from short.

Test results from four different points, namely tglu3, wch2, kb35, gkan5 is 25 minutes with a distance of 70 km with the use of this parameter q0 is 0.1, t0 is 0.01, p

is 0.1, B is 2 and a is 0.1.

Keywords : Ants Colony System, Travelling Salesman Problem, Packet Transporting, Shortest Route.