TA : Rancang Bangun Aplikasi Pencarian Lokasi Terdekat via Short Message Service (SMS) Menggunakan Algoritma Ant Colony Optimization.

(1)

PENCARIAN LOKASI TERDEKAT

VIA SHORT MESSAGE SERVICE (SMS) MENGGUNAKAN

ALGORITMA ANT COLONY OPTIMIZATION

Oleh :

Nama : SAMSUL

NIM : 00.41010.0296 Program : SI (Strata Satu) Jurusan : Sistem Informasi

SEKOLAH TINGGI

MANAJEMEN INFORMATIKA & TEKNIK KOMPUTER

SURABAYA


(2)

Halaman

ABSTRAKSI ... i

KATA PENGANTAR ... ii

DAFTAR ISI ... iv

DAFTAR TABEL ... vi

DAFTAR GAMBAR ... vii

DAFTAR LAMPIRAN ... ix

BAB I : PENDAHULUAN ... 1

1.1 Latar Belakang Masalah ... 1

1.2 Perumusan Masalah ... 2

1.3 Pembatasan Masalah ... 2

1.4 Tujuan ... 2

1.5 Sistematika Penulisan ... 3

BAB II : LANDASAN TEORI ... 3

2.1 Ant Colony Optimization ... 3

2.2 Global System for Mobile Communication (GSM) ... 11

2.3 Short Message Service (SMS) ... 11

2.4 Travelling Salesman Problem ... 14

BAB III : PERANCANGAN SISTEM ... 16

3.1 Model Pengembangan ... 16

3.2 Prosedur Pengembangan ... 18

BAB IV : IMPLEMENTASI DAN EVALUASI ... 38

4.1 Kebutuhan Sistem ... 38


(3)

4.3 Implementasi Proses ... 49

4.4 Desain Uji Coba Aplikasi ... 50

BAB V : PENUTUP ... 58

5.1 Kesimpulan ... 58

5.2 Saran ... 59

DAFTAR PUSTAKA ... 60

LAMPIRAN ... 61


(4)

METODE PENELITIAN

Dalam menyelesaikan masalah diatas digunakan metode dalam meneliti masalah yang dihadapi. Adapun metode penelitian yang digunakan adalah :

3.1 Model Pengembangan

Model yang digunakan dalam pembuatan aplikasi pencarian lokasi terdekat ini adalah perancangan proyek. Dengan cara mengumpulkan informasi, pencarian data yang dilakuakan dengan cara merancang database dan membuat sistem. Informasi yang dikumpulkan berupa peraturan lalu-lintas jalan yang berlaku. Data yang dicari adalah data jalan protokol dan data hotel atau penginapan yang ada di Surabaya Pusat.

Algoritma ACO yang digunakan dalam pencarian lokasi terdekat adalah Ant System(AS). AS adalah salah satu dari kumpulan algoritma ACO yang digunakan untuk memecahkan masalah optimasi kombinasi khususnya pada kasus pencarian rute terdekat. Prinsip kerja dari algoritma ini meniru prinsip kerja semut yang sesungguhnya. Algoritma ini berusaha untuk mendapatkan hasil yang paling optimal dengan efisiensi waktu. Media yang digunakan dalam aplikasi ini adalah SMS, dengan demikian para pengguna jalan dapat mengirimkan request dari mana saja. Setiap SMS yang masuk merupakan data inputan bagi sistem dan akan disimpan dalam database, sehingga apabila ada pesan lain yang masuk dengan perminataan yang sama dapat dipanggilkan langsung dari database. Dengan demikian dapat mempersingkat waktu proses pencarian lokasi. Output dari sistem


(5)

berupa informasi nama lokasi, alamat, rute jalan, dan jarak tempuh yang dikirimkan melalui SMS.

Gambar 3.1 Bagan Alur Sistem.

Pada gambar diatas merupakan bagan alur sistem yang akan dibangun. Didalam sistem terdapat tiga proses utama yaitu proses manajemen SMS yang digunakan untuk mengambil pesan yang masuk dan mengirimkan pesan dengan menggunakan software SMS Toolkit, proses validasi SMS yaitu memeriksa kevalidan SMS, dan proses pencarian rute terdekat yang digunakan untuk memproses lebih lanjut pesan yang telah masuk.

Dalam aplikasi yang akan dibangun ini, pencarian lokasi didisain lebih fleksibel. Setiap lokasi memiliki kata kunci tersendiri dan setiap lokasi dapat terdiri dari nol atau lebih kata kunci. Hal ini dilakukan untuk memudahkan para pengguna jasa dalam mencari lokasi tujuannya dan juga untuk mengatasi masalah penamaan suatu lokasi oleh masyarakat, sebagai contoh Hotel Radisson Plaza Suite yang kebanyakan oleh masyarakat hanya disebut dengan Hotel Radisson dan juga Hotel The Westin yang sekarang menjadi Hotel JW Marriot. Aplikasi yang

1

4

3

2 GSM

Network

SMS Request

SMS Diterima

SISTEM SMS Result

SMS Diterima


(6)

akan dibangun ini diharapkan dapat membantu memberikan solusi dalam pencarian lokasi terdekat.

3.2 Prosedur Pengembangan

Pada bagian ini prosedur yang dilakukan yaitu menganalisis dan merancang sistem. Menganalisis terhadap semua masalah, dan merancang sistem serta basis data. Perancangan basis data disusun dengan membuat Data Flow Diagram (DFD) yang berfungsi untuk menggambarkan aliran data yang terjadi di dalam sistem. Kemudian membuat Entity Relational Diagram (ERD) yang memberikan gambaran mengenai struktur basis data secara keseluruhan sebagai relasi atau hubungan setiap entitas. Dan yang terakhir membuat mapping, yang merupakan penulisan struktur dari tabel yang sudah dirancang pada ERD. Disini semua tabel ditulis secara terperinci.

3.2.1 Identifikasi Permasalahan

Tahap identifikasi masalah merupakan tahap paling awal untuk melakukan perancangan dan pembuatan aplikasi. Tahapan ini digunakan untuk melakukan observasi atau penelusuran permasalahan untuk mendapatkan gambaran umum dari permasalahan yang dihadapi. Didalam tahap ini juga dilakukannya perumusan permasalahan yaitu untuk merumuskan atau menetapkan permasalahan yang dihadapi, sehingga penelitian dapat lebih terfokus untuk mencari dan memecahkan permasalahan yang ada.

Pada tugas akhir ini, fokus usaha penyelesaian masalah terdapat pada perancangan dan pembuatan aplikasi pencarian lokasi terdekat menggunakan algoritma Ant Colony Optimization.


(7)

3.2.2 Perancangan dan Pemodelan Sistem

Ada beberapa bagian penting dalam melakukan perancangan dan pemodelan suatu sistem, yaitu melakukan perancangan dan pembuatan alur sistem, data alur diagram (DFD) dan penyusunan struktur database. Pada bagian selanjutnya, dilakukan pembuatan rancangan entitas-entitas yang saling berhubungan yang membentuk suatu database relasional.

A. Alur Proses Aplikasi

Untuk lebih memperjelas alur dari sistem, maka alur proses aplikasi dapat digambarkan pada flowchart tersebut dibawah. Flowchart alur proses tersebut menjelaskan rancangan urutan proses yang terjadi pada aplikasi. Dimulai dari proses mengambil SMS yang masuk ke terminal dan menyimpannya dalam daftar waiting list. SMS tersebut merupakan inputan data awal yang berisi informasi nama jalan dan tempat yang akan dikirimkan ke sistem oleh pengirim dengan format [nama lokasi asal] -> [nama lokasi tujuan]. Nama lokasi asal dapat berupa nama jalan atau berupa nama tempat semisal nama hotel, mall atau tempat umum, sedangkan nama lokasi tujuan dapat berupa nama jalan, nama tempat atau tempat tertentu. Sebagai contoh suatu SMS berisi “Kertajaya->RSU”, maksudnya “Kertajaya” adalah nama jalan dimana pengirim tersebut berada dan “RSU” menunjukan tempat Rumah Sakit Umum artinya pengirim meminta informasi lokasi RSU terdekat dari jalan Kertajaya.

Pesan yang masuk sebelum diproses lebih lanjut, sebelumnya harus melewati beberapa tahapan proses pemeriksaan Pesan. Setelah lolos dari proses pemeriksaan, maka akan diproses dengan algorima ant colony untuk mendapatkan lokasi atau rute yang terdekat. Setelah didapatkan solusi, sistem akan menyimpan


(8)

dalam database untuk keperluan dalam pencarian berikutnya, kemudian mengirim balik melalui SMS dan pengirim akan mendapatkan balasan berupa data nama lokasi terdekat, alamat lokasi tujuan (bila perlu), panjang perjalanan beserta rute perjalanan dalam mencapai lokasi tujuan.


(9)

Start

Cek pesan yang masuk dalam

Database

Ada pesan

Ambil pesan dalam Database

Cek format pesan

Format sesuai Mengirim pesan kesalahan format Mencari semua kemungkinan solusi Membangun rute perjalanan Mencari rute perjalanan terpendek Simpan solusi yang ditemukan dalam Database Mengirim Solusi End Y N Y N

Cek lokasi asal dan tujuan Ada dalam database? Y Mengirim pesan Kesalahan Lokasi N Mencari pesan yang sama

Ada pesan yang sama >10 N Mengambil Pesan Dari Terminal Ambil Solusi Sebelumnya Y


(10)

Alur proses aplikasi diatas dapat dijelaskan sebagai berikut : a. Pengirim megirimkan request ke sistem.

b. Pesan yang dikirim diterima oleh terminal dan akan diambil oleh sistem. Pesan yang masuk akan disimpan dalam database dan diolah dalam sistem. Proses ini akan berhenti apabila pesan yang berada dalam database telah diolah semuanya. Tahap-tahap proses pencarian rute terdekat antara lain sebagai berikut :

i. Melakukan pencocokan pesan dengan pesan sebelumnya yang telah diproses. Apabila sudah terhitung sepuluh kali pesan yang sama maka solusi diambilkan langsung dari solusi pada proses sebelumnya.

ii. Melakukan pengecekan format pesan yang masuk. Pesan dengan format yang salah tidak akan diproses, hanya akan dibalas dengan pemberitahuan bahwa format penulisan salah.

iii. Melakukan Pengecekan lokasi awal dan lokasi tujuan. Apabila lokasi tidak berada dalam database, pesan juga tidak akan diproses, hanya akan dibalas dengan pemberitahuan bahwa lokasi awal atau lokasi tujuan tidak diketahui.

iv. Mencari semua kemungkinan lokasi yang diminta yang ditemukan dalam database. Apabila lokasi tujuan hanya berupa nama jalan atau nama tempat maka kemungkinan lokasi tujuannya hanya satu, tetapi apabila lokasi tujuannya berupa kategori tertentu semisal “Mall” atau “Rumah Sakit” maka kemungkinan lokasinya ada banyak mengingat jumlah Mall atau Rumah Sakit di Surabaya lebih dari satu.


(11)

v. Membangun rute perjalanan dari posisi awal ke semua kemungkinan lokasi yang ditemukan, proses ini merupakan inti dari aplikasi dimana proses simulasi semut dijalankan untuk mencari rute atau lokasi terdekat. vi. Menghitung panjang perjalanan dari posisi awal ke semua lokasi tujuan.

Setiap semut yang telah menyelesaikan perjalanannya, memiliki solusi yang beragam. Dari semua kemungkinan solusi yang ditemukan, solusi dengan panjang perjalanan terpendek yang akan diambil dan disimpan. vii. Menyimpan data hasil pencarian ke dalam database.

c. Setelah menemukan lokasi, sistem membalas dengan mengirimkan informasi nama jalan lokasi tujuan terdekat yang ditemukan beserta info panjang jalan dan rute jalan yang dilewati.

d. Pengirim mendapatkan balasan dari sistem.

B. Penerapan Algoritma Ant Colony Optimization

Setelah melakukan proses pemeriksaan validasi pesan, proses selanjutnya yang dilakukan adalah pencarian lokasi dan rute terdekat dengan menggunakan algoritma Ant Colony Optimization. Pencarian lokasi terdekat ini didasarkan pada jarak tempuh untuk menujuh lokasi tersebut. Pada sub bab ini akan dijelaskan secara praktis tahap-tahap proses pencarian lokasi terdekat yang dilakukan aplikasi menggunakan algoritma Ant Colony.

Proses Membangun Rute Perjalanan

Pada proses ini merupakan gambaran secara garis besar untuk mencari rute terpendek dan lokasi terdekat dari tempat asal ke tempat tujuan. Dimulai dari proses generate map yaitu proses untuk membangun peta secara virtual yang


(12)

digunakan oleh artificial ant dalam membangun perjalanannya. Kemudian menginisialisasi semut yaitu menginisialisasi tempat asal dan tujuan dan jumlah iterasi(NTmax).

Proses selanjutnya yaitu proses simulate ant yaitu mensimulasikan semut sampai semua semut telah sampai pada tujuan. Kemudian dilanjutkan dengan proses mengupdate pheromone, menyimpan result yang terbaik dari hasil yang didapatkan oleh semua semut dan me-reset ulang semut dengan menginisialisasi ulang semut seperti kondisi awal.

Start

Init Ant Init NTmax Generate Map

Repeat

Simulate Ant

Update pheromone

Reset Ant Y N

End Saving result Until all ant has

build it tour For I = 1 to NTmax

Next i


(13)

Proses Simulate ant

Proses ini menunjukan bagaimana artificial ant membangun rute perjalanannya untuk menemukan tujuan yang telah ditentukan. Dimulai dari proses inisialisasi source yang menunjukan posisi awal dimana pengirim pesan berada dan inisialisasi dest yang menunjukan lokasi tujuan. Proses ini menjalankan semua semut satu-persatu menuju jalan berikutnya. Apabila suatu semut sudah sampai tujuan, maka semut tersebut akan di terminasi.

Start

Init source init dest

Arrived

Moving to next

road Remove ant(i)

Y

End N For i=1 to max_ant

Next i

Gambar 3.4 Flowchart Proses simulate artificial ant.

Proses Moving to Next Road

Proses ini menunjukan bagaimana setiap artificial ant melakukan perhitungan probabilitas dan explorasi memori untuk memilih jalur yang harus ditempuh dalam membangun perjalanannya.


(14)

Start

Init Tabu

If Cur_Pos.Node(i) not in Tabu then

NextNode.add Cur_Pos.Node(i)

If NextNode.count

= 0 then

Back track If

NextNode.count = 1 then

Hitung Probabilitas Tiap Jalan

Set Cur_Pos = NextNode(n) Tabu.add NextNode(n)

Set Cur_Pos = Source Tabu.add Source

Y

Y N

Set Cur_Pos = NextNode(1) Tabu.add NextNode(1)

Y N

End If Cur_Pos in

Dest then

Set arrived = true Y

N For I = 1 to

Cur_Pos.nodeConnected.count

Next i

N


(15)

Probabilitas pemilihan jalan dihitung dengan formula Random Propotional Rule. Parameter yang berpengaruh dalam perhitungan probabilitas adalah tingkat intensitas pheromone dan panjang jalan itu sendiri. Proses dimulai dari initialisasi Tabu yang digunakan sebagai memori semut untuk menyimpan data jalan yang pernah dilalui oleh semut. Hal ini dilakukan agar semut tidak melawati jalan yang sama. Ketika semut menemui percabangan jalan, maka akan dilakukan perhitungan probabilitas Random Propotional Rule, jika tidak ada percabangan maka langsung menuju jalan berikutnya, tetapi bila tidak ditemukan jalan selanjutnya (Dead End/Jalan Buntu), maka semut akan kembali ke jalan sebelumnya (Back Track).

Proses Back Track

Proses ini dgunakan untuk menangani masalah ketika suatu semut menemui jalan buntu yaitu dengan memindahkan semut ke langkah sebelumnya dan memilih jalur lain yang belum pernah dilalui. Apabila sampai kembali ke tempat semula maka semut akan diset ulang dari awal.

Start

End Tabu.remove(Tabu.count)

If Tabu.count > 0 then

Set Cur_pos = tabu(tabu.count) Tabu = new Tabu

Set Cur_Pos = Source

Y N


(16)

Proses Update Pheromone

Proses ini menggambarkan bagaimana artificial ant menandai rute yang telah dilewati dengan menambahkan sejumlah pheromone ke jalur yang hanya dilewati ketika membangun perjalanannya. Pheromone ini digunakan sebagai petunjuk bagi semut yang lainnya dalam memilih jalan yang akan ditempuh dan juga terdapat proses evaporation atau penguapan pheromone yang membuat kadar

pheromone disuatu jalur semakin menipis. Proses penguapan terjadi disetiap jalan. Proses ini dijalankan setelah semua semut telah menyelesaikan perjalanannya.

Start

Accumulate pheromone

Evaporate Pheromoen Citi(j) on ant(i) tour Y

N

End For j=1 to max_cities

For k=1 to max_ant

Next k

Next j

Gambar 3.7 Flowchart Proses Update Pheromone.

C. Data Flow Diagram

DFD ( Data Flow Diagram ) adalah gambaran aliran informasi yang terlibat dalam suatu prosedur ( event ) yang terdapat dalam suatu sistem. Diagram ini akan menjelaskan lebih lanjut proses yang terdapat pada diagram berjenjang dengan alur data yang terjadi pada setiap proses. Adapun Data Flow Diagram


(17)

untuk sistem pencarian lokasi terdekat via SMS menggunakan algoritma Ant Colony Optimization dapat digambarkan sebagai berikut :

C.1 Context Diagram

Context diagram merupakan diagram pertama dalam rangkaian suatu DFD yang menggambarkan entitas-entitas yang berhubungan dengan suatu sistem.

Keyword Data Lokasi

SMS Result SMS Request

0

Sistem Pencarian Lokasi Terdekat Via

SMS

+

Pemilik Mobile Phone

Surabaya City Map

Gambar 3.8 Context Diagram

Pada context diagram terdapat hanya dua buah entitas yang berhubungan dengan sistem yaitu masyarakat luas pemilik Mobile Phone yang menggunakan jasa layanan ini. Para pemilik Mobile Phone akan berinteraksi dengan sistem dengan memberikan masukan kepada sistem berupa mengirimkan data permintaan / request melalui SMS. Entitas kedua adalah Surabaya City Map yang memberikan informasi lokasi-lokasi hotel yang berada dikota Surabaya Pusat.


(18)

C.2 DFD Level 0 Sistem Pencarian Lokasi Terdekat Via SMS

DFD level 0 adalah merupakan dekomposisi dari context diagram yang akan menggambarkan tiap-tiap proses yang terdapat dalam sistem pencarian lokasi terdekat via SMS menggunakan algoritma ant colony optimisation. Adapun DFD level 0 untuk aplikasi ini adalah sebagai berikut.

Keyword Data Lokasi Data Place Data Keyword Data Data Result SMS Result Result Data Data Data Data Data Data Request invalid Data Request Valid Data Data SMS Request Pemilik Mobile Phone 1 Penerimaan SMS Request 2 Pencarian Rute Terpendek 1 INBOX 3 Pengecekan Request + 2 OUTBOX

3 SEND ITEM

4 ROAD 5 PLACE 6 KEYWORD 4 Pengiriman Result 5 Maintenance + Surabaya City Map

Gambar 3.9 DFD Level 0 Sistem Pencarian Lokasi Terdekat Via SMS

Pada diagram yang ditampilkan pada gambar 3.10 dapat dilihat bahwa dalam aplikasi ini terdapat empat buah proses utama yang membangun keseluruhan aplikasi. Proses dimulai dari penerimaan SMS, proses ini dilakukan untuk menangani SMS yang diterima oleh terminal dan mengambilnya kemudian untuk disimpan dalam database.


(19)

Proses kedua yang terdapat dalam sistem adalah Pengecekan Data Request. Proses ini untuk memeriksa apakah request yang dikirim valid, sesuai dengan data dalam database, sudah atau belum pernah diproses dan apakah request yang diterima sudah ada sebelumnya atau belum.

Proses ketiga yaitu Maintenance Data. Proses ini digunakan untuk melakukan fungsi penyimpanan, penghapusan dan melakukan updating terhadap data peta seperti jalan dan tempat/lokasi yang ada di Surabaya Pusat.

Proses keempat yang terdapat dalam sistem adalah Proses Pencarian Rute Terpendek. Proses ini merupakan proses utama dalam aplikasi ini, yaitu mencari rute terdekat dari lokasi awal ke lokasi tujuan berdasarkan dari request yang telah diterima. Proses kelima berfungsi untuk mengirimkan result yang dihasilkan dari proses sebelumnya ke pengirim.

D. Conceptual Data Model

Sebuah CDM (Conceptual Data Model) akan menggambarkan secara keseluruhan konsep struktur basis data yang dirancang untuk suatu program aplikasi. Pada CDM belum tergambar dengan jelas bentukan tabel-tabel penyusun basis data beserta field-field yang terdapat pada setiap tabel. Adapun CDM yang dirancang untuk aplikasi pencarian lokasi terdekat via SMS menggunakan algoritma Ant Colony ini adalah sebagai berikut :


(20)

Gambar 3.10 Conceptual Data Model

Pada CDM tersebut diatas terlihat bahwa ada tujuh buah tabel yang membangun struktur basis data pada aplikasi ini. Penjelasan tentang fungsi dan

field-field yang berada pada tabel tersebut diatas akan dibahas pada sub bab berikutnya.

E. Physical Data Model

Sebuah PDM (Physical Data Model) akan menggambarkan secara detail rancangan struktur basis data dan merupakan hasil generate dari Conceptual Data Model. Model ini dapat menggambarkan struktur basis data secara detail sampai dengan field-field yang terdapat dalam suatu tabel serta tipe-tipe data yang menyertainya.

PUNYA NOMOR

PUNYA NOMOR PUNYA ID PUNYA NOMOR INBOX

NOMOR

NOMOR T ELEPON WAKT U MESSAGE OUT BOX NAMA LOKASI PAT H JARAK HIT UNG SEND IT EM

T ANGGAL ROAD ID JALAN JARAK DARI KE DIR PLACE NOMOR NAMA ALAMAT KEYWORD KAT A NODE NODE


(21)

ID = ID

NO = NO ID = ID

MESSAGE Memo PATH Memo

JARAK Integer HITUNG Integer TGLEksekusi timestamp Lama numeric ROAD ID Integer JALAN Memo JARAK Integer DARI Integer KE Integer DIR Integer PLACE ID Integer NO Integer NAMA Memo ALAMAT Memo KEYWORD ID Integer NO Integer KATA Memo NODE NODE Integer

Gambar 3.11 Physical Data Model

F. Struktur Basis Data

Struktur tabel merupakan uraian dari struktur fisik dari tabel-tabel yang terdapat pada database sistem yang berfungsi untuk menyimpan data-data yang saling berhubungan. Adapun tabel-tabel pada struktur basis data yang dibentuk untuk membangun aplikasi ini dapat dijelaskan sebagai berikut :

Tabel 3.1 Road

Nama Field Tipe Panjang Cons. Ref Desc.

ID Integer PK ID Jalan

Jalan Text 50 NN Nama Jalan

Jarak Integer Panjang Jalan

Dari Integer Node Dari

Ke Integer Node ke

Dir Integer Arah Jalan

Fungsi : Digunakan untuk menyimpan data-data Jalan di kota Surabaya Pusat. Tabel 3.2 Place

Nama Field Tipe Panjang Cons. Ref Desc.

Nomor Integer PK Nomor Urut

ID Integer PK, FK Road ID Jalan

Nama Text 50 Nama Lokasi

Alamat Text 255 Alamat Lokasi


(22)

Tabel 3.3 Keyword

Nama Field Tipe Panjang Cons. Ref Desc.

Nomor Integer FK Place Nomor Urut

ID Integer FK Place ID Jalan

Kata Text 255 Kata Kunci

Fungsi : Digunakan untuk menyimpan kata kunci suatu lokasi. Tabel 3.4 Inbox

Nama Field Tipe Panjang Cons. Ref Desc.

Nomor Integer FK Nomor Urut

Nomor Telepon Text 15 Nomor Telepon Pengirim

Waktu Date/Time Waktu Pesan Masuk

Message Text 255 Isi Pesan

Fungsi : Digunakan untuk menyimpan pesan yang masuk ke terminal. Tabel 3.5 Outbox

Nama Field Tipe Panjang Cons. Ref Desc.

Nomor Integer PK,FK Inbox Nomor Urut

Nama Text 50 Nama Lokasi

Lokasi Text 50 Alamat Lokasi

Path Memo Path Jalan

Jarak Text 10 Jarak Tempuh

Hitung Integer Counter

TGLEksekusi Date/time Waktu Dijalankan

Lama Number Lama Proses

Fungsi : Digunakan untuk menyimpan pesan yang sudah diolah dan siap untuk dikirim.

Tabel 3.6 Send Item

Nama Field Tipe Panjang Cons. Ref Desc.

Nomor Integer PK,FK Inbox Nomor Urut

Tanggal Date/Time Tanggal Dikirim SMS

Fungsi : Digunakan untuk menyimpan pesan yang telah terkirim. Tabel 3.7 Node

Nama Field Tipe Panjang Cons. Ref Desc.

Node Integer Node jalan

Fungsi : Merupakan tabel bantu yang digunakan untuk menyimpan node sementara.


(23)

G. Rancangan Masukan dan Keluaran

Untuk memberikan gambaran awal tentang antar muka pencarian lokasi terdekat menggunakan algoritma ant colony serta menjaga konsistensi dari desain aplikasi, maka perlu dibuat suatu rancangan masukan dan keluaran aplikasi sebagai berikut :

G.1 Rancangan Masukan Sistem

Rancangan masukan sistem dapat berupa form-form yang merupakan antar muka aplikasi dengan atau pengguna sistem. Format form masukan yang memerlukan interaksi langsung dengan pengguna sistem antara lain adalah form maintenance.

FORM MAINTENANCE

- x

Status / Keterangan Field-field Tabel basis

Command Button

Command Button

Gambar 3.12 Rancangan Form Maintenance

Pada desain form maintenance terdapat beberapa pembagian wilayah, yaitu : 1. Status / keterangan, bagian ini menunjukan status yang terjadi pada saat

proses maintenance dilakukan.

2. Field Basis Databagian ini akan berisi field-field yang bersesuaian dengan basis data sebagai alat untuk berinteraksi dengan basis data.


(24)

3. Kontrol (Button Control), bagian ini berisi tombol-tombol yang menjalankan fungsi-fungsi maintenance pada basis data.

G.2 Rancangan Keluaran Sistem

Rancangan keluaran sistem dibuat untuk menjaga konsistensi dari desain keluaran sistem. Keluaran sistem dapat merupakan tampilan pada layar monitor dan juga dapat berupa dokumen cetak (hard copy). Secara garis besar, rancangan keluaran untuk aplikasi adalah sebagai berikut :

Gambar 3.13 Rancangan Form Proses Pesan.

Form proses request dalam aplikasi digunakan sebagai pemrosesan data request yang masuk hingga dihasilkan result juga sebagai output yang akan dikirimkan melalui SMS. Pada desain form maintenance terdapat beberapa pembagian wilayah, yaitu :

1. Data Pesan Masuk, bagian ini menunjukan data request yang diminta oleh pengirim pesan.

FORM PROSES - x

Data pesan masuk

Data Hasil Pemrosesan

Status


(25)

2. Data Hasil Pemrosesan, bagian ini menunjukan data yang dihasilkan dari proses pencarian lokasi terdekat.

3. Status, bagian ini menunjukan status yang terjadi pada saat pemrosesan pesan berlangsung.

4. Daftar Pesan Masuk, bagian ini menunjukan daftar pesan yang masuk dan siap untuk diproses.

5. Status Searching, bagian ini juga menunjukan status yang terjadi pada saat pemrosesan pesan berlangsung.


(26)

LANDASAN TEORI

Untuk melakukan perancangan dan pembuatan aplikasi pencarian lokasi terdekat diperlukan pemahaman terhadap teori dan konsep yang mendasarinya, antara lain konsep mengenai Short Message Service (SMS), Global System for Mobile Communication (GSM), dan khususnya dalam pembahasan algoritma Ant System dalam menemukan rute terdekat.

2.1 Ant Colony Optimization (ACO)

Algoritma Ant Colony terinspirasi oleh kebiasaan semut. Semut yang sesungguhnya mampu untuk menemukan jalur yang terpendek dari makanan ke sarangnya. Selama dalam perjalanannya, setiap semut menaburkan pheromone ke tanah sebagai jejak atau petunjuk untuk semut lainnya. Pheromone adalah semacam zat kimia yang dikeluarkan oleh semut dari dalam tubuhnya. Semut mengikuti jalan berdasarkan jumlah pheromone yang sebelumnya telah disebarkan oleh semut lainnya. Cara semut dalam mengeksploitasi pheromone untuk menemukan jalur antara dua titik ditunjukan pada gambar 2.1.

Pada gambar 2.1A menunjukan semut berada dalam titik keputusan dimana mereka akan memutuskan untuk belok ke kiri atau kekanan. Selama semut tersebut belum mempunyai petunjuk untuk memilih pilihan yg terbaik, mereka memilih secara acak. Dalam rata-rata, separuh semut memutuskan untuk belok kekanan dan separuh lagi memilih ke kiri. Hal ini terjadi pada semut baik itu yang bergerak dari kiri ke kanan (yang diberi label L) dan sebaliknya (yang diberi label R). Gambar 2.1B dan 2.1C menunjukan semut melalui percabangan secara acak.


(27)

Jumlah dari garis putus-putus kasarannya sebanding dengan jumlah pheromone

yang telah disebarkan oleh semut di tanah. Selama jalur bawah lebih pendek dari jalur atas, rata-rata lebih banyak semut akan melewatinya, dan maka dari itu

pheromone terakumulasi dengan cepat. Setelah beberapa periode transisi yang pendek, perbedaan jumlah pheromone dalam kedua jalur cukup besar untuk mempengaruhi keputusan semut yang baru datang ke dalam sistem (ditunjukan pada gambar 2.1D). Mulai dari sekarang, semut yang baru akan lebih memilih ke jalur bawah. Tidak lama lagi semua semut akan menggunakan jalur yang terpendek.

Gambar 2.1. Menunjukan semut yang sesungguhnya menemukan jalur terpendek. A. Semut dihadapkan pada titik keputusan, B. Beberapa semut memilih jalan atas dan sebagian memilih jalan bawah secara acak, C. Selama semut berjalan dengan kecepatan yang rata-rata sama, semut akan bereaksi memilih jalan bawah yang lebih pendek, lebih cepat daripada jalur atas yang lebih panjang, D. Jumlah pheromone rata-rata lebih tinggi pada jalur terpendek.


(28)

2.1.1 Ant System (AS)

Ant System (AS) merupakan algoritma pertama kali dari kumpulan algoritma Ant Colony Optimization (ACO) yang dikembangkan oleh Dorigo, Maniezzo, dan Colorni pada tahun 1991. AS banyak diterapkan untuk mengoptimalkan kombinasi pada permasalahan Travelling Salesman Problem dan

Quadratic Assigment Problem. Dimana dalam AS terdapat sejumlah artificial ant

yang bekerja sama untuk menemukan solusi dari suatu masalah dengan menukarkan informasi melalui pheromone yang disebarkan di garis dalam grafik.

Artificial ant adalah semut buatan yang bekerja seperti layaknya semut yang sesungguhnya sedangkan pheromone adalah semacam zat kimia yang dikeluarkan oleh semut sesungguhnya yang digunakan untuk menandai atau memberikan jejak jalan yang telah dilewati untuk memberitahukan kepada semut yang lainnya.

Secara formal kerja dari AS adalah sebagai berikut :

1. Artificial ant lebih memilih berpindah dari kota yang memiliki probabilitas state transition yang tinggi yaitu kota yang terhubungkan oleh jalan yang pendek dengan jumlah pheromone yang tinggi. Probabilitas sebuah semut k

pergi dari kota i ke kota j ketika sedang membangun perjalanannya pada iterasi ke-t dirumuskan sebagai berikut :

Dimana adalah kota tetangga kota i yang belum pernah dikunjungi, aij(t) adalah tabel ant-decision Ai=[aij]|Ni| dari node i didapat dari

komposisi antara local pheromone trail value dengan local heuristic value


(29)

Dimana τij(t) adalah jumlah jejak pheromone pada jalur(i,j) pada waktu t, ηij

= 1/δij adalah nilai heuristic value perpindahan dari kota i ke kota j, Ni adalah

kota tetangga kota i, dengan α dan β adalah dua parameter yang mengontrol

pembobotan nilai jejak pheromone dan nilai heuristik. Peranan dari parameter α dan β adalah jika α = 0, maka kota yang terdekat lebih dipilih untuk dikunjungi dan kebalikannya jika β = 0, maka kota dengan jejak pheromone

yang terbanyak yang akan dipilih Setiap artificial ant yang telah menyelesaikan perjalanannya, maka pheromone intensity dari setiap jalur akan diupdate. Ada 3 cara dalam mengupdate pheromone intensity :

a. Ant-cycle

Pada ant-cycle, pheromone diupdate ketika semua semut telah membangun solusi dalam perjalanan ke kota tujuan. Formula yang digunakan adalah sebagai berikut :

Dimana , m adalah jumlah semut pada setiap iterasi t dan ρ adalah besar koefisien kebusukan jejak pheromone yang bernilai 1< p>0, adalah pheromone evaporation yang dihitung untuk setiap semut k pada jalur i,j dan pada iterasi ke t dengan formula :


(30)

Dimana Tk(t) adalah jalur perjalanan yang ditempuh oleh semut k pada iterasi ke t dan Lk(t) adalah panjangnya jarak perjalanan yang ditempuh oleh semut k.

Secara garis besar algoritma AS adalah sebagai beirkut: 1. Inisialisasi

Set t:= 0 {iterasi}

Set NC:=0 {cycle iterasi}

Untuk setiap jalur, set nilai initial τ := c untuk intensitas pheromone

dan Δτ := 0

Tempatkan m semut pada kota n yang dikehendaki. 2. Set s:=1 {s adalah tabu list index}

For k := 1 to m do

Tempatkan kota asal pada semut ke k pada tabuk(s).

3. Ulangi sampai semua semut menemukan solusi Set s :=s+1

For k := 1 to m do

Pilih kota j sebagai kota tujuan dengan probabilitas Pindahkan semut ke k kedalam kota j

Masukan kota j ke dalam tabuk(s)

4. For k := 1 to m do

Pindahkan semut ke k dari tabuk(n) ke tabuk(1) (kembali ke asal)

Hitung panjang Lk perjalanan yang telah dilakukan oleh semut k


(31)

5. Update intensitas pheromone pada setiap jalur Set t := t+n

Set NC := NC+1

6. If(NC<NCmax) and (not stagnation behavior) then Kosongkan semua tabu list

Ulangi langkah ke-2 Else

Cetak perjalanan terpendek Hentikan iterasi

b. Ant-density

Formula untuk mengupdate intensitas pheromone pada ant-density hampir sama dengan ant-cycle, perbedaannya terletak pada waktu mengupdate intensitas pheromone yaitu semut akan langsung mengupdate setiap jalur yang dilewatinya tanpa menunggu sampai menyelesaikan perjalanannya. Perbedaan berikutnya adalah pada formula perhitungan pheromone evaporation. = 1 apabila semut ke-k pergi dari kota i ke kota j, jika tidak = 0.

c. Ant-quantity

Pada dasarnya ant-quantity hampir sama dengan ant-density perbedaannya terletak pada cara mengupdate intensitas pheromone, dimana pada ant-quantity kuantitas pheromone yang ditaburkan oleh artificial ant dari kota i ke kota j sebanyak 1/dij dimana dij adalah jarak dari kota i ke kota j.

Formula untuk mengupdate pheromone intensiti adalah = 1/dij apabila


(32)

Setelah membangun solusi perjalanan, semua artificial ant akan ‘mati’ dengan kata lain artificial ant akan di hapus dari sistem.

2. Agar artificial ant membangun perjalanan secara legal, perpindahan ke kota yang sudah pernah disinggahi tidak diperbolehkan sampai menyelesaikan perjalanan. Setiap kota yang disinggahi oleh artificial ant akan disimpan dalam ingatannya yang disebut dengan tabu list. Dengan mengeksplorasi memori yang dimiliki oleh setiap semut maka setiap semut dapat membangun solusi yang mungkin.

3. Setiap artificial ant menyebarkan sejumlah pheromone pada jalur dalam perjalanannya yang menerangkan seberapa dekat perjalanannya (dalam kata lain, jalur yang menjadi jalur perjalanan yang dekat adalah jalur yang memiliki jumlah pheromone yang lebih banyak). Pada gambar 2.2 menunjukan prinsip kerja AS.

Gambar 2.2. Prinsip kerja Ant System.

Pada gambar 2.2a menunjukan inisial graph beserta jarak antar kota. Pada gambar 2.2b pada waktu t=0 masih belum ada terdapat jejak pada semua jalur maka dari itu artificial ant memilih ntuk jalur kiri dan kanan dengan probabilitas yang sama. Pada gambar 2.2.c pada t=1 jalur dengan jarak yang


(33)

pendek memiliki intensitas pheromone yang lebih besar sehingga sebagian besar semut melewatinya.

2.2 Global System for Mobile Communication (GSM)

GSM adalah teknologi seluler digital yang dikembangkan pertamakali oleh Group Spatial Mobile di Eropa pada tahun 1982. GSM merupakan teknologi komunikasi seluler berbasis digital dan bersifat global dengan SIM (Subsciber Identification Module) sebagai kartu identitas pengguna yang mencerminkan nomor pelanggan. GSM menyediakan banyak fungsi antara lain : kotak suara (voice mail), fasilitas call divert (mengalihkan panggilan ke nomor telepon lain), CLI (Calling Line Identification), SMS (Short Message Service), MMS (Multimedia Message Service), dan fasilitas-fasilitas lainnya.

2.3 Short Message Service (SMS)

Short Message Service (SMS) adalah fasilitas yang dimiliki oleh GSM yang memungkinkan pengguna mobil phone yang menggunakan kartu GSM dapat mengirim dan menerima pesan-pesan singkat sebanyak maksimal 160 karakter. Prinsip kerja dari SMS ini adalah setiap provider GSM mempunyai satu atau lebih SMS Centeryang berfungsi untuk menerima dan meneruskan pesan dari pengirim ke pelanggan tujuan. Dengan adanya SMS Center ini, pelanggan dapat mengetahui status dari pesan SMS yang telah dikirim, apakah telah sampai atau gagal diterima oleh nomor tujuan. Pesan yang gagal dikirim akan disimpan dalam SMS Center sampai period-validity terpenuhi. Gambar 2.3 menunjukan proses pengiriman dan penerimaan SMS.


(34)

Gambar 2.3. Diagram Blok pengiriman dan penerimaan SMS

Untuk dapat menerima dan mengirim pesan, sebelumnya harus melakukan koneksi ke SMSC (Short Message Service Center). Ada beberapa cara untuk melakukan koneksi ke SMSC antara lain :

a. Menggunakan sebuah terminal baik berupa GSM modem atau handphone. Cara ini adalah yang paling mudah tetapi memiliki kekurangan antara lain jumlah pesan yang dikirim permenit sangat terbatas (sekiar 6-10 pesan per menit). Untuk mengantisipasi hal ini biasanya digunakan lebih dari satu terminal.

b. Koneksi langsung ke SMSC.

Untuk melakukan koneksi ke SMSC diperlukan protokol penghubung. Protokol yang umum digunakan adalah UCP, SMPP, CIMD2, OIS, dan TAP. Masing-masing operator GSM menyediakan tipe protokol yang berbeda-beda. Dengan koneksi langsung ke SMSC, pesan dapat dikirim dengan jumlah banyak, dapat mencapai sekitar 600 pesan per menit bergantung pada kapasitas dari SMSC itu sendiri.

c. Menggunakan Software Bantu.

Mengirim / Menerima SMS

Mengirim / Menerima SMS

GSM Gateway

GSM Selluler

GSM Selluler Base Transmition Station

GSM Network


(35)

Berikut adalah daftar SMS Center pada beberapa operator GSM di Indonesia :

Tabel 2.1 Daftar SMS Center

Operator GSM Nomor SMSC

Satelindo 62816124

Excelcomindo 62818445009

Telkomsel 6281100000

IM3 62855000000

Terdapat dua mode untuk mengirim dan menerima SMS, yaitu mode text dan mode PDU (Protokol Data Unit). Tetapi sistem mode text tidak didukung oleh semua operator GSM di Indonesia dan kebanyakan dari terminal atau handphone juga tidak mendukungnya.

Application like Dispatcher Software WWW server with MMI to transmit and receive SMS

Database or batch job

API to send and receive SMS (Windows 2000, Windows NT, Windows 9x, Linux, Unix, OS/2)

1-32 COM port to GSM modems X.25, X.31, ISDN terminal adapter,

Analog modem, TCP/IP …

SMSC Direct (TAP) SMS MO/MT GSM modem (AT commands) SMSC Direct (UCP) SMSC Direct (OIS) SMSC Direct (CIMD2) SMSC Direct (SMPP)

Server that has Multi access Different SMSC 7 bit ASCII Text 8 bit ASCII Text 7 bit binary PDU 8 bit binary PDU 16 bit UC S2 Text Ring tones

Pictures Opratos logos

Flashing SMS

Long SMS up to 255


(36)

a. Mode Text

Mode ini adalah cara termudah untuk mengirim pesan. Pada mode text pesan yang dikirim tidak dilakukan konversi. Teks yang dikirim tetap dalam bentuk aslinya dengan panjang mencapai 160 (7 bit default alphabet) atau 140 (8 bit) karakter. Mode teks sebenarnya adalah hasil encode yang direpresentasikan dalam format PDU. Kekurangannya mode ini adalah tidak dapat menyisipkan gambar atau nada dering ke dalam pesan yang akan dikirim.

b. Mode PDU.

Mode PDU adalah pesan dalam format hexadesimal octet dan semi-desimal octet dengan panjang mencapai 160 (7 bit default alphabet) atau 140 (8 bit) karakter. Kelebihan menggunakan format PDU adalah dapat melakukan enkoding sendiri, tetapi tentunya harus didukung oleh hardware dan operator GSM, melakukan kompresi data, menambahkan nada dering dan gambar pada pesan yang akan dikirim, menambahkan header kedalam pesan seperti timestamp, nomor SMSC, dan meta-informasi lainnya. Beberapa enkoding yang umum digunakan adalah PCCP437, PCDN, 8859-1, IRA, dan GSM.

2.4 Travelling Salesman Problem

Travelling Salesman Problem (TSP) merupakan salah satu permasalahan optimasi kombinasi dalam hal ini TSP dikhususkan dalam permasalahan pencarian jarak terdekat. Secara umum TSP dapat didefinisikan sebagai berikut : terdapat beberapa N titik dan sejumlah E jalur yang menghubungkan antar titik. Dengan dij adalah panjang jalur(i,j) E yang merupakan jarak antara titik i

dengan titik j, dengan i, j N. TSP adalah suatu permasalahan dalam menemukan jarak terpendek dari sirkuit Hamiltonian dalam graph G = (N,E), dimana sirkuit


(37)

Hamiltonian dalam graph G adalah perjalanan terpendek dengan mengunjungi sekali dan hanya sekali titik n |N| dalam grafik G dan panjang perjalanannya diperoleh dari menjumlahkan panjang dari setiap jalur yang dilewatinya.


(38)

IMPLEMENTASI DAN EVALUASI

Pada bab ini akan dijelaskan mengenai implementasi dan uji coba dari Aplikasi pencarian lokasi terdekat via SMS menggunakan algoritma Ant Colony Optimization.

4.1 Kebutuhan Sistem

Sebelum menjalankan program atau aplikasi, ada beberapa hal yang perlu diperhatikan, antara lain kebutuhan sistem akan perangkat keras (hardware) dan perangkat lunak (software), serta langkah-langkah yang harus dilakukan untuk dapat melakukan instalasi aplikasi agar dapat berfungsi sebagaimana mestinya. Dalam perancangan dan pembuatan aplikasi ini ada beberapa perangkat keras dan lunak komputer yang dibutuhkan antara lain :

A. Perangkat Keras

Perangkat keras komputer adalah komponen-komponen fisik peralatan yang membentuk suatu sistem komputer, serta peralatan-peralatan lain yang mendukung komputer dalam menjalankan tugasnya. Adapun perangkat kerasyang diperlukan dalam aplikasi ini adalah :

1. CPU dengan processor 1200 Mhz atau lebih 2. Monitor XGA

3. Memory 256 MB atau lebih.

4. VGA Card dengan memory 8 MB atau lebih.


(39)

5. Printer

6. Mouse, Keyboard dan CDROM. 7. Mobile Phone beserta Kabel data.

B. Perangkat Lunak

Perangkat lunak yang diperlukan adalah program komputer yang diperlukan untuk mengoperasikan fungsi dari perangkat keras. Adapun perangkat lunakyang diperlukan dalam perancangan dan pembuatan aplikasi ini adalah : 1. Sistem Operasi minimal Windows 9x.

2. Microsoft Visual Basic 6.0 dengan SP 5 3. Microsoft Access 2000

4. Microsoft Visio 2002 5. Power Designer 6.0

6. ActiveXperts SMS and Pager Toolkit

4.2 Penggunaan Aplikasi

Pada sub bab akan dijelaskan tentang penggunaan aplikasi per sistem menu, mulai dari tampilan aplikasi, fungsi dan cara penggunaannya.

A. Tampilan Form Utama

Setelah menjalankan program, maka akan muncul tampilan aplikasi seperti pada gambar. Pada tampilan utama aplikasi tersebut terdapat dua bagian yang perlu diperhatikan adalah :

a. Main Menu, bagian ini merupakan kumpulan menu yang akan berfungsi untuk mengoperasikan aplikasi.


(40)

Gambar 4.1 Tampilan Menu Utama.

B. Setting Connection Parameter.

Form ini digunakan untuk mengatur koneksi dengan terminal. Terdapat 3 pilihan setting parameter yaitu Port Name, menunjukan nama port dimana terjadi koneksi antara terminal dengan komputer yang dihubungkan dengan sebuah kabel data, dalam hal ini terkoneksi dengan port com. Jumlah port com umumnya pada PC hanya terdiri dari 2 buah, tetapi ada juga yang sampai 4 atau 8 port. Parameter berikutnya adalah baud rate yaitu parameter kecepatan transfer data yang didukung oleh terminal. Terdapat beberapa pilihan kecepatan yang umumnya didukung oleh terminal, diantaranya 200, 300, 1200, 2400, 4800, 9600, 19200,


(41)

28800, 57600 bps. Kecepatan yang dipilih tergantung dari terminal yang digunakan, apakah kecepatan tersebut didukung atau tidak. Umumnya dewasa ini, sebuah mobile phone memilliki transfer data sebesar 19200 atau lebih. Aplikasi ini tidak dapat mendukung kecepatan transfer diatas 57600 bps. Parameter terakhir yaitu data bits, parity dan stop bits. Pada aplikasi ini hanya mendukung 2 pilihan yaitu untuk tiap-tiap parameter bernilai 8, none, 1 atau 7, even, 1.

Gambar 4.2 Form Setting Connection Parameter.

Dibagian kanan form terdapat beberapa tombol perintah diantaranya tombol OK yang digunakan untuk menyimpan connection parameter yang digunakan dalam mengirim dan menerima pesan, tombol berikutnya adalah tombol TEST yang digunakan untuk mengetes apakah setting parameter yang telah dipilih didukung oleh terminal atau tidak, tombol DEFAULT digunakan untuk mengembalikan nilai setting parameter kesetting default. Setting defaultnya


(42)

adalah COM1, 19200, 8, none, 1 yaitu nilai yang didukung kebanyakan dari mobile phone. Tombol terakhir adalah tombol EXIT yang digunakan untuk keluar form. Pada bagian bawah terdapat label keterangan yang digunakan untuk menjelaskan tiap-tiap parameter yang ada dan juga untuk menampilkan informasi dari hasil test yang dilakukan.parameter.

C. Form Maintenance.

Form ini selain digunakan untuk menampilkan data lengkap tentang jalan yang ada di Surabaya Pusat beserta data Hotel ataupun penginapan yang berada dijalan tersebut, Form ini juga digunakan untuk menambahkan data lokasi yang terdapat pada surabaya pusat. Pada form ini terdapat empat bagian utama diantaranya :

1. Peta Surabaya.

Bagian ini terdapat pada bagian atas form, bagian ini berisi peta surabaya pusat dimana masih menggunakan peta secara manual tetapi dengan sedikit penambahan angka-angka yang menunjukan node-node jalan. Node jalan diletakan pada setiap percabangan yang ada. Selain itu juga node ini digunakan untuk memudahkan dalam melakukan maintenance lokasi.

2. Daftar Lokasi

Bagian ini terdapat dibawah peta yang menunjukan daftar lokasi yang terdapat pada suatu jalan.


(43)

Gambar 4.3 Form Maintenance Jalan. 3. Tombol Perintah 1.

Bagian ketiga yang terdapat pada bagian tepi kanan bawah form terdapat beberapa tombol perintah diantaranya tombol Road dengan gambar folder yang digunakan untuk menampilkan daftar jalan se-surabaya pusat. Bila tombol ini dijalankan maka tampilan form akan berganti menjadi seperti berikut ini.


(44)

Gambar 4.4 Form Daftar Jalan.

Form ini menampilkan semua data jalan diantaranya panjang jalan, node dari, node ke, dan arah jalan. Form ini digunakan untuk memilih jalan yang ingin ditambahi data lokasi dan terdapat dua tombol perintah yaitu EXIT yang digunakan untuk kembali ke form sebelumnya dan tombol SEARCH yang digunakan untuk mencari nama jalan berdasarkan kata kuncinya.

Tombol berikutnya adalah tombol PLACE yaitu untuk menampilkan semua data lokasi yang telah disimpan. Bila tombol ini dijalankan maka tampilan form akan berubah menjadi seperti berikut. Form ini menampilakan data semua lokasi yang sudah disimpan diantaranya id jalan, nama jalan, nama


(45)

lokasi, dan alamat lokasi. Form ini digunakan untuk memilih lokasi yang ingin diubah ataupun dihapus.

Gambar 4.5 Form daftar Hotel dan Penginapan.

Terdapat dua tombol perintah yaitu EXIT yang digunakan untuk kembali ke form sebelumnya dan juga tombol SEARCH yang digunakan untuk mencari nama lokasi berdasarkan kata kuncinya. Tombol berikutnya yaitu tombol CLEAR yang digunakan untuk mengosongkan field-field yang ada dan tombol terakhir adalah tombol EXIT untuk keluar dari form.

4. Tombol perintah 2.

Bagian keempat yang terdapat pada bagian bawah form terdapat beberapa tombol perintah diantaranya tombol ADD dengan digunakan untuk


(46)

menambahkan data lokasi disuatu jalan. Bila tombol ini dijalankan maka akan membuka form baru yaitu form maintenance lokasi.

Gambar 4.6 Form Maintenance Lokasi dan Keyword.

Pada form ini terdapat beberapa field yang dapat diisi diantaranya field nama jalan, lokasi atau alamat dan keyword. Satu lokasi dapat terdiri dari banyak keyword. Terdapat tiga tombol perintah diantaranya tombol + digunakan untuk menambahkan keyword kedalam daftar, tombol SAVE untuk menyimpan data dan tombol KELUAR untuk keluar dari form.

D. Form Request

Form ini digunakan untuk mengolah pesan yang masuk serta untuk mengambil pesan yang masuk dan masih didalam terminal serta untuk


(47)

mengirimkan result yang dihasilkan ke pengirim. Proses mengambil pesan dan mengirim pesan ini dilakukan terus-menerus dalam periode waktu tertentu.

Gambar 4.7 Form Pemrosesan Pesan.

Dalam form ini terdapat beberapa informasi yang ditampilkan diantaranya adalah data request yaitu berisi informasi tentang data pesan yang diterima diantaranya nomor telepon pengirim, posisi awal dan lokasi tujuan. Informasi berikutnya adalah tentang solusi terbaik yang telah ditemukan diantaranya nama lokasi terdekat yang telah ditemukan, alamat lokasi, panjang perjalanan, dan jalur-jalur yang ditempuh untuk menuju kelokasi. Label status digunakan untuk menampikan status dari proses yang terjadi. Daftar tabel pesan yang digunaan untuk menampung semua pesan yang masuk dan belum terproses. Tabel tersebut berisi nomor urut pesan, nomor telepon pengirim, tanggal pesan


(48)

dikirim, dan isi dari pesan. Disamping daftar pesan terdapat beberapa informasi tentang pemrosesan pesan diantaranya banyak iterasi yang telah ditempuh, jumlah solusi yang telah diketemukan, jumlah pesan dalam daftar, jumlah pesan yang belum dikirim, dan lama waktu pada saat pengolahan pesan.

E. Form Statistik

Form terakhir adalah form statistik yang digunakan untuk menampilkan data semua pesan yang masuk dan data pengolahan pesan.


(49)

4.3 Implementasi Proses

4.3.1 Implementasi Moving to Next Road

Mengacu pada rancangan pada bab 3 gambar 3.5, proses ini menggambarkan perjalanan semut menuju lokasi selanjutnya.

Public Sub move()

If Not rest Then ‘jika belum sampai If cur_pos.jmlNode <> 0 Then

Neighbour = cur_pos.NodeConnected '// untuk mencari node yang berhubungan For i = 1 To UBound(Neighbour) ‘ //dengan posisi semut sekarang

Set edge = findEdge(cur_pos.Nama, Neighbour(i).Nama) If Not findInTabu(edge.ID) Then

nextNode.Add Neighbour(i) '//masukan node yang belum pernah dikunjungi penyebut = penyebut + (edge.pheromone ^ alpha) * ((1 / edge.length) ^ betha) End If

Next

If nextNode.Count = 0 Then ' //apabila nextnode() kosong, ini tandanya semut menemui Back_Track ‘ //jalan buntu maka akan menjalankan backtrack

Else

If nextNode.Count = 1 Then '// jika tidak ada percabangan maka Set edge = findEdge(cur_pos.Nama, nextNode.Item(1).Nama) path.Add edge : tabu.Add edge.ID

idJalan = edge.ID

Set cur_pos = nextNode.Item(1) '// langsung aja ketempat tujuan add_Tabu cur_pos : length = length + edge.length

Else ' //jika tidak lakukan perhitungan peluang

For i = 1 To temp.Count

Set edge = findEdge(cur_pos.Nama,NextNode.Item(i).Nama) pembilang = (edge.pheromone ^ alpha) * ((1 / edge.length) ^ betha) accPel = (pembilang / penyebut) + accPel ‘ <- perhitungan probablilitas If acak <= accPel Then

Set cur_pos = temp.Item(i) : add_Tabu cur_pos path.Add edge : tabu.Add edge.ID

idJalan = edge.ID : length = length + edge.length Exit For End If Next End If End If Else

BackTrack ‘Menemui jalan buntu End If

For i = 1 To des_node.Count

If idJalan = des_node.Item(i) Then ' //jika sudah sampai tempat tujuan id_jalan = idJalan : rest = True : Exit For

End If Next End If End Sub

4.3.2 Implementasi Back Track

Mengacu pada rancangan pada bab 3 gambar 3.7, proses ini untuk mengatasi terjebaknya semut dalam kondisi jalan buntu.


(50)

Public Sub reset() If path.Count > 0 Then

length = length - path(path.Count).length path.Remove path.Count

End If

trueTabu.Remove (trueTabu.Count) If trueTabu.Count > 0 Then

Set cur_pos = trueTabu(trueTabu.Count) Else

Set tabu = New Collection Set trueTabu = New Collection SourceNode = source_node 'dead_end = True

End If End Sub

4.3.3 Implementasi Update Pheromone

Mengacu pada rancangan pada bab 3 gambar 3.8, proses ini untuk mengupdate jejak pheromone.

for i = 1 To Edges.Count For j = 1 To comAnt.Count

If ada(comAnt.Item(j).path, Edges.Item(i)) Then ‘jika jalan i dilalui oleh semut j deltaIP = deltaIP + (D / comAnt.Item(j).length)

End If Next

Edges.Item(i).pheromone = (rho * Edges.Item(i).pheromone) + deltaIP deltaIP = 0

Next

4.4 Desain Uji Coba Aplikasi

4.4.1 Uji Coba Pencarian Lokasi Terdekat.

Pada uji coba yang dilakukan, mobile phone yang digunakan adalah dari vendor Siemens seri C45. Aplikasi diujicobakan dengan mengirimkan beberapa pesan dengan isi yang beragam. Semua pesan diproses dalam data yang sama dan dengan nilai parameter yang sama yaitu :

Jumlah node : 51 node Jumlah Edge(Jalan) : 72 jalan Nilai alpha : 1

Nilai beta : 1

Nilai rho : 0.9

Nilai Q : 1

Jumlah Semut : 4 Jumlah Iterasi : 100 InitialPheromone : 1


(51)

Berikut ini adalah tabel daftar hotel dan penginapan yang berada di daerah Surabaya Pusat.

Tabel 4.1 Daftar Hotel dan Penginapan.

Nama Alamat

Hotel Asia Jl. Tembaan No 55

Hotel Centrum Jl. Bubutan 16-22

Hotel Sheraton Surabaya Jl. Embong Malang 20-21

The Westin Jl. Embong Malang 85-89

Tunjungan Plaza Jl. Embong Malang 2

Tunjungan Center Jl. Tunjungan No.1 Hotel Mojopahit Jl. Tunjungan 65 Hotel Tunjungan Jl. Tunjungan No 102 Hotel Hyatt Regency Jl. Basuki Rachmat Tunjungan Plaza Jl. Basuki Rachmat 8-12 Hotel Garden Palace Jl. Yos Sudarso 11

Hotel ELMI Jl. Panglima Sudirman 42-44

Hotel Tanjung Jl. Panglima Sudirman 43-45 Hotel Lesti Asri Jl. Pasar Kembang 76

Hasma Jaya 1 Jl. Pasar Kembang 18-20

Hasma Jaya 2 Jl Pasar Kembang 16

Kembang Jl. Pasar Kembang 30

Hotel Mirama Jl. Raya Darmo 68-76

Hotel Weta Internasional Jl. Genteng Kali 3-7

Pavilyun Jl. Genteng Besar 94-98

Hotel Pasar Besar Jl. Pasar Besar 25-27

Jagalan Raya Jl. Jagalan 64

Genafo Jl. Kapasan 169-171

Hotel Natour Simpang Jl. Pemuda 1-3 Hotel Radison Plaza Suite Jl. Pemuda 33-37

Hotel Cendana Jl. Kombes Duryat 6

Jane's House Hotel Jl. Dinoyo 100-102

Pinang Inn Jl. Dinoyo 7-9

Pesan pertama beisi “Dupak->Hotel Bintang 5” yaitu untuk mencari hotel berbintang lima yang berada di wilayah Surabaya Pusat dengan lokasi awal di jalan Dupak. Lokasi tujuan pesan ini tidaklah pasti, karena Hotel Bintang Lima jumlahnya lebih dari satu. Berikut adalah daftar tabel yang berisi 10 dari 68 data


(52)

solusi yang dihasilkan setelah eksekusi program yang diurutkan berdasarkan panjang jarak yang ditempuh.

Tabel 4.2 Daftar Solusi.

No Jalur Panjang(m) Lokasi

1

Tembaan-Tembaan-Pahlawan-Gemblongan-Tunjungan-Tunjungan 2012 Hotel Mojopahit

2 Tembaan-Tembaan-Pahlawan-Gemblongan-Tunjungan-Genteng

Besar-Embong Sawo-Basuki Rachmat 2832 Hotel Hyatt Regency

3 Semarang-Kranggan-Praban-Tunjungan-Tunjungan 2940 Hotel Mojopahit

4

Tembaan-Tembaan-Pahlawan-Gemblongan-Tunjungan-Genteng Besar-Panglima Sudirman-Basuki Basuki Rachmat-Basuki Rachmat

3808 Hotel Hyatt Regency

5

Tembaan-Tembaan-Pahlawan-Gemblongan-Genteng Kali-Jembatan-Undaan Kulon-Undaan Wetan-Ambengan-Jaksa Agung Suprapto-Walikota Mustajab-Embong Sawo-Basuki Rachmat

5350 Hotel Hyatt Regency

6

Tembaan-Tembaan-Pahlawan-Gemblongan-Genteng Kali-Jembatan-Undaan Kulon-Undaan Wetan-Ambengan-Ambengan-Kusuma Bangsa-Pemuda-Yos Sudarso

6228 Hotel Garden Palace

7

Tembaan-Tembaan-Pahlawan-Gemblongan-Genteng Kali-Jembatan-Undaan Kulon-Kalianyar-Kusuma Bangsa-Ambengan-Jaksa Agung Suprapto-Walikota Mustajab-Gubeng Pojok-Pemuda-Yos Sudarso

6372 Hotel Garden Palace

8

Semarang-Kranggan-Praban-Genteng Kali-Jembatan-Undaan Kulon-Jagalan-Pasar Besar-Pahlawan-Gemblongan-Tunjungan-Genteng Besar-Embong Sawo-Basuki Rachmat

6804 Hotel Hyatt Regency

9

Semarang-Kranggan-Bubutan-Tembaan-Pahlawan-Gemblongan-Genteng Kali-Jembatan-Undaan Kulon-Kalianyar-Kusuma Bangsa-Kusuma Bangsa-Pemuda-Panglima Sudirman-Embong Sawo-Basuki Rachmat

9504 Hotel Hyatt Regency

10

Tembaan-Tembaan-Pahlawan-Gemblongan-Genteng Kali-Jembatan-Undaan Kulon-Kalianyar-Kapasari-Kapasan-Gembong-Pecindilan-Undaan Wetan-Ambengan-Ambengan-Kusuma Bangsa-Pemuda-Panglima Sudirman-Embong Sawo-Basuki Rachmat

9974 Hotel Hyatt Regency

Dari daftar tabel solusi yang dihasilkan, didapatkan Hotel Bintang Lima terdekat dari jalan Dupak adalah Hotel Mojopahit dengan jarak tempuh sepanjang 2,012km dengan jalur tempuh Tembaan-Tembaan-Pahlawan-Gemblongan-Tunjungan-Tunjungan dan lama waktu eksekusi adalah 15,97detik.


(53)

Setiap jalan yang dilewati oleh semut, semut tersebut akan menambahkan

pheromone ke jalan tersebut. Penyebaran pheromone tidaklah merata disetiap jalan, maka akan diperoleh jumlah pheromone yang berjumlah besar dan kecil. Tingkat pheromone disetiap jalan dijadikan perhitungan probabilias untuk menentukan jalur mana yang akan diambil. Jalur dengan tingkat pheromone yang besar memiliki peluang yang besar pula untuk dilewati. Berikut adalah daftar intensitas pheromone disetiap jalan setelah eksekusi program.

Tabel 4.3 Daftar Intensitas Pheromone Disetiap Edge(Jalan).

No Edge Jalan Pheromone

1 Edge(1,2 ) Dupak 2,65613988875875E-05

2 Edge(2,5 ) Tembaan 1,96037642260069E-02

3 Edge(2,3 ) Semarang 5,21283507075678E-05

4 Edge(3,4 ) Kranggan 5,21283507075678E-05

5 Edge(4,5 ) Bubutan 2,93904884569351E-05

6 Edge(4,9 ) Praban 5,80757573973459E-05

7 Edge(22,4 ) Blauran 3,53378951467131E-05

8 Edge(23,22 ) Embong Malang 2,65613988875875E-05

9 Edge(9,10 ) Tunjungan 0,019578734228682

10 Edge(10,23 ) Tunjungan 1,94667467435967E-02

11 Edge(23,11 ) Tunjungan 2,65613988875875E-05

12 Edge(11,23 ) Tunjungan 2,65613988875875E-05

13 Edge(11,12 ) Gubernur Suryo 2,65613988875875E-05

14 Edge(17,11 ) Basuki Rachmat 1,65493127133028E-04

15 Edge(18,17 ) Basuki Rachmat 3,94789777291105E-05

16 Edge(16,17 ) Embong Sawo 1,52575548291505E-04

17 Edge(12,13 ) Yos Sudarso 5,0214104872281E-05

18 Edge(12,16 ) Panglima Sudirman 4,21492308270798E-05

19 Edge(16,19 ) Panglima Sudirman 4,8255473988236E-05

20 Edge(21,22 ) KedungDoro 3,53378951467131E-05

21 Edge(24,25 ) Pasar Kembang 4,29895303327689E-05

22 Edge(25,26 ) Raya Diponegoro 4,29895303327689E-05

23 Edge(26,27 ) Raya Diponegoro 3,82639033363896E-05

24 Edge(26,29 ) DR Sutomo 3,12870258839668E-05

25 Edge(27,28 ) Begawan 3,82639033363896E-05

26 Edge(28,29 ) Raya Darmo 3,82639033363896E-05

27 Edge(29,19 ) Urip Sumoharjo 4,29895303327689E-05

28 Edge(29,30 ) Polisi Istimewa 2,65613988875875E-05

29 Edge(9,15 ) Genteng Kali 8,60395533069486E-05

30 Edge(16,15 ) Genteng Kali 2,74047934150333E-05

31 Edge(10,16 ) Genteng Besar 1,38548883972896E-04

32 Edge(7,8 ) Pahlawan 1,96066980245916E-02

33 Edge(7,8 ) Kramat Gantung 2,65613988875875E-05

34 Edge(8,9 ) Gemblongan 1,96066980245916E-02

35 Edge(7,36 ) Pasar Besar 2,66661079029983E-05


(54)

No Edge Jalan Pheromone

37 Edge(33,34 ) Undaan Kulon 8,85558344852107E-05

38 Edge(34,35 ) Undaan Wetan 5,62666324493512E-05

39 Edge(15,33 ) Jembatan 8,68829478343945E-05

40 Edge(35,33 ) Ext 2,82342855384038E-05

41 Edge(35,32 ) Ambengan 5,79395191001675E-05

42 Edge(13,32 ) Jaksa Agung Suprapto 6,16068520328083E-05

43 Edge(16,13 ) Walikota Mustajab 5,55112582364253E-05

44 Edge(13,31 ) Walikota Mustajab 3,62867334958671E-05

45 Edge(32,38 ) Ambengan 8,22092340114336E-05

46 Edge(34,37 ) Kalianyar 7,83879708556457E-05

47 Edge(37,38 ) Kusuma Bangsa 5,87458919080363E-05

48 Edge(37,39 ) Kapasari 4,62034778351969E-05

49 Edge(39,40 ) Kapasan 4,62034778351969E-05

50 Edge(41,34 ) Pecindilan 4,62034778351969E-05

51 Edge(40,41 ) Gembong 4,62034778351969E-05

52 Edge(14,12) Pemuda 6,58019368117734E-05

53 Edge(31,14 ) Gubeng Pojok 3,62867334958671E-05

54 Edge(14,38 ) Kusuma Bangsa 5,60766022034939E-05

55 Edge(5,7 ) Tembaan 1,96065933155762E-02

56 Edge(39,43 ) Kenjeren 2,65613988875875E-05

57 Edge(39,45 ) Simokerto 2,65613988875875E-05

58 Edge(19,18 ) Basuki Rachmat 3,18273425430547E-05

59 Edge(18,20 ) Kombes Duryat 3,75997744287875E-05

60 Edge(20,21 ) Kedung Sari 3,75997744287875E-05

61 Edge(21,24 ) Kedung Doro 4,29895303327689E-05

Pesan kedua berisi “Panglima Sudirman->Hotel Mojopahit” yaitu mencari rute menuju hotel Mojopahit dengan lokasi awal di jalan Panglima Sudirman. Dari hasil eksekusi program didapatkan jalur yang ditempuh adalah Embong Sawo-Basuki Rachmat-Tunjungan-Embong Malang-Blauran-Praban - Tunjungan-Tunjungan dengan jarak tempuh 2.83km, lama eksekusi 59,59 detik.

4.4.2 Uji Coba Pemrosesan Banyak Pesan.

Uji coba berikut ini untuk mengukur lamanya pesan dari waktu masuk sampai pesan diproses. Uji coba dilakukan dengan mengirim 10 pesan dengan isi yang beragam dan waktu pengiriman yang hampir bersamaan. Berikut ini adalah tabel hasil uji coba.


(55)

Tabel 4.4 Lama Waktu Tunggu

No Pesan Waiting Time(s) Lama Proses(s)

1 Dupak->Hotel 0 19

2 Dupak->Hotel Bintang 5 14 26

3 Dupak->Hotel Bintang 4 39 45

4 Dupak->Hotel Bintang 3 82 29

5 Dupak->Hotel Bintang 2 107 69

6 Dupak->Hotel Bintang 5 163 45

7 Begawan->Hotel Bintang 2 205 69

8 Begawan->Hotel Bintang 2 257 30

9 Begawan->Mall 251 10

10 Embong Malang->Penginapan 254 40

Dari tabel diatas, dapat disimpulkan bahwa aplikasi ini memiliki kelemahan dalam mengolah pesan yang datang dalam jumlah yang banyak dan dalam waktu yang hampir bersamaan. Semakin banyak pesan yang masuk, semakin banyak pula waktu tunggu sampai pesan tersebut diproses. Hal ini dikarenakan aplikasi hanya memproses pesan satu-persatu sedangkan pesan yang lainnya menunggu sampai proses sebelumnya selesai.

4.4.3 Uji Coba Pengaruh Jumlah Semut Terhadap Waktu dan Hasil

Pada uji coba kali ini untuk mengetahui pengaruh banyaknya semut terhadap lamanya waktu eksekusi dan hasil yang didapatkan. Nilai parameter lainnya masih tetap menggunakan parameter pada uji coba sebelumnya. Uji coba dilakukan sebanyak tiga kali untuk mencari lokasi dengan jarak tempuh yang berbeda yaitu lokasi yang jaraknya dekat, menegah, dan jauh.

Isi pesan pertama adalah “Dupak->Embong Malang” yaitu dari jalan Dupak menuju ke jalan Embong Malang, isi pesan kedua adalah “Dupak->Raya Diponegoro” yaitu dari jalan Dupak menuju ke jalan Raya Diponegoro, dan isi pesan terakhir adalah “Kapasan->Hotel Mirama” yaitu dari jalan Kapasan menuju


(56)

ke Hotel Mirama yang berada di jalan Raya Darmo. Berikut adalah tabel hasil dari serangkaian uji coba yang telah dilakukan.

Tabel 4.5 Perbandingan Jumlah Semut Terhadap Waktu dan Hasil

Semut Uji Coba 1 Uji Coba 2 Uji Coba 3

Hasil (m) Waktu(s) Hasil (m) Waktu(s) Hasil (m) Waktu(s)

1 2.712 8.08 5.932 8.54 6.535 19.75

5 2.712 35.59 5.932 37.51 6.478 87.53

10 2.712 69.22 5.880 70.07 6.478 167.342

15 2.712 97.19 5.880 105.28 6.258 244.95

25 2.712 149.49 5.880 167.58 6.258 392.07

50 2.712 286.84 5.880 318.19 6.258 763.05

75 2.712 404.4 5.880 462.98 6.258 1123.75

100 2.712 512.28 5.880 606.59 6.258 1415.1

Uji Coba 1

0 500 1000 1500 2000 2500 3000

1 5 10 15 25 50 75 100

Banyak Semut Jar ak T em p u h ( m )

Uji Coba 1

Uji Coba 2

5850 5860 5870 5880 5890 5900 5910 5920 5930 5940

1 5 10 15 25 50 75 100

Banyak Semut Jar ak T em p u h ( m )


(57)

Uji Coba 3 6100 6150 6200 6250 6300 6350 6400 6450 6500 6550 6600

1 5 10 15 25 50 75 100

Banyak Semut Jar ak T em p u h ( m )

Uji Coba 3

Gambar 4.9 Pengaruh Jumlah Semut Terhadap Jarak Tempuh.

Dari hasil yang diperoleh, dapat disimpulkan bahwa semakin banyak semut yang digunakan, semakin banyak pula solusi yang dihasilkan. Dengan semakin banyak solusi yang dihasilkan, maka peluang untuk mendapatkan hasil yang optimal semakin besar, tetapi waktu yang dibutuhkan untuk memproses juga semakin berlipat sebanding dengan jumlah semut yang digunakan.

Dari uji coba 1 dengan jarak pendek didapatkan hasil yang sama untuk setiap semut. Dengan demikian menggunakan hanya satu semut saja sudah mendapatkan hasil yang optimal. Dari uji coba 2 dengan jarak menengah didapatkan jumlah semut sudah mempengaruhi hasil yang didapatkan. Untuk mendapatkan hasil yang optimal paling sedikit digunakan semut sebanyak 5-10 semut. Dari uji coba 3 dengan jarak yang panjang dan dengan kombinasi jalan yang banyak didapatkan untuk mencapai hasil yang optimal dibutuhkan sekitar 10-15 semut. Dengan demikian dari keterangan diatas dapat disimpulkan bahwa jumlah semut yang optimal untuk aplikasi ini adalah sebanyak 10-15 semut.


(58)

PENUTUP

5.1 Kesimpulan

Setelah melakukan perancangan dan pembuatan aplikasi pencarian lokasi terdekat dengan menggunakan algoritma ant colony serta pengujian aplikasi, maka kesimpulan yang dapat diambil adalah sebagai berikut :

1. Aplikasi ini dapat memberikan informasi lokasi terdekat beserta rute jalan, alamat lokasi dan panjang perjalanannya. Dengan demikian pemakai jalan dapat tahu langsung lokasi terdekat beserta jalan-jalan yang dapat ditempuh untuk menuju ke tempat tujuan tanpa harus berputar-putar untuk mencarinya. 2. Aplikasi ini tidak dapat mengirimkan pesan yang lebih dari 164 karakter

secara sekaligus. Pesan harus dipecah terlebih dahulu dalam beberapa pesan dan ini dapat mengurangi kenyamanan penerima.

3. Aplikasi yang dibangun ini memiliki kelemahan yaitu apabila semakin banyak pesan yang masuk secara bersamaan, semakin lama pula mendapatkan balasannya, karena pesan diproses satu-persatu sementara pesan yang lain menunggu.

4. Lamanya proses tergantung pada parameter (jumlah semut dan jumlah iterasi) yang digunakan dan penggunaan hardware.

5. Jumlah semut yang optimal pada aplikasi pencarian lokasi terdekat yang diterapkan dikota Surabaya ini adalah sebanyak 15 semut.


(59)

5.2 Saran

Adapun saran-saran yang dapat disampaikan oleh penulis berkaitan dengan penulisan Tugas Akhir ini adalah sebagai berikut :

a. Aplikasi ini dapat dikembangkan lagi dengan menambahkan beberapa parameter seperti parameter kemacetan lalu-lintas, kerusakan jalan, atau parameter keamanan jalan.

b. Atau dapat pula digunakannya sebagai bahan pembanding dengan menggunakan metode ACO yang lainnya untuk mencari rute terdekat yang lebih powerfull dibandingkan AS, atau menggunakan algoritma selain ACO seperti algoritma genetik, djikstra atau neural network.


(60)

Dorigo, Marco, 1996, The Ant System : By A Colony Of Cooperation Agents, Institute Of Electical and Electronic Engineers.

Dorigo, Marco. Gambardella, Luca, 1996, Ant Colony System : A Cooperation Learning Approach to the Travelling Salesman Problem, URL : http://www.cs.unibo.it/bison/publication/ACO.pdf

Fogel, D. 1993, Applying Evolutionary Programming to Selected Travelling Salesman Problem, Cybernetic and System : An International Journal.

Balena, Francesco, 1999, Programming Microsoft Visual Basic 6.0, Microsoft Press, Washington .

Gunawan, Ferry, 2003, Membuat Aplikasi SMS Gateway Server dan Client Dengan Java dan PHP, PT. Elex Media Computindo, Jakarta.


(1)

55

Tabel 4.4 Lama Waktu Tunggu

No Pesan Waiting Time(s) Lama Proses(s)

1 Dupak->Hotel 0 19

2 Dupak->Hotel Bintang 5 14 26

3 Dupak->Hotel Bintang 4 39 45

4 Dupak->Hotel Bintang 3 82 29

5 Dupak->Hotel Bintang 2 107 69

6 Dupak->Hotel Bintang 5 163 45

7 Begawan->Hotel Bintang 2 205 69

8 Begawan->Hotel Bintang 2 257 30

9 Begawan->Mall 251 10

10 Embong Malang->Penginapan 254 40

Dari tabel diatas, dapat disimpulkan bahwa aplikasi ini memiliki kelemahan dalam mengolah pesan yang datang dalam jumlah yang banyak dan dalam waktu yang hampir bersamaan. Semakin banyak pesan yang masuk, semakin banyak pula waktu tunggu sampai pesan tersebut diproses. Hal ini dikarenakan aplikasi hanya memproses pesan satu-persatu sedangkan pesan yang lainnya menunggu sampai proses sebelumnya selesai.

4.4.3 Uji Coba Pengaruh Jumlah Semut Terhadap Waktu dan Hasil

Pada uji coba kali ini untuk mengetahui pengaruh banyaknya semut terhadap lamanya waktu eksekusi dan hasil yang didapatkan. Nilai parameter lainnya masih tetap menggunakan parameter pada uji coba sebelumnya. Uji coba dilakukan sebanyak tiga kali untuk mencari lokasi dengan jarak tempuh yang berbeda yaitu lokasi yang jaraknya dekat, menegah, dan jauh.

Isi pesan pertama adalah “Dupak->Embong Malang” yaitu dari jalan Dupak menuju ke jalan Embong Malang, isi pesan kedua adalah “Dupak->Raya Diponegoro” yaitu dari jalan Dupak menuju ke jalan Raya Diponegoro, dan isi pesan terakhir adalah “Kapasan->Hotel Mirama” yaitu dari jalan Kapasan menuju


(2)

ke Hotel Mirama yang berada di jalan Raya Darmo. Berikut adalah tabel hasil dari serangkaian uji coba yang telah dilakukan.

Tabel 4.5 Perbandingan Jumlah Semut Terhadap Waktu dan Hasil

Semut Uji Coba 1 Uji Coba 2 Uji Coba 3

Hasil (m) Waktu(s) Hasil (m) Waktu(s) Hasil (m) Waktu(s)

1 2.712 8.08 5.932 8.54 6.535 19.75

5 2.712 35.59 5.932 37.51 6.478 87.53 10 2.712 69.22 5.880 70.07 6.478 167.342 15 2.712 97.19 5.880 105.28 6.258 244.95 25 2.712 149.49 5.880 167.58 6.258 392.07 50 2.712 286.84 5.880 318.19 6.258 763.05 75 2.712 404.4 5.880 462.98 6.258 1123.75 100 2.712 512.28 5.880 606.59 6.258 1415.1

Uji Coba 1

0 500 1000 1500 2000 2500 3000

1 5 10 15 25 50 75 100

Banyak Semut Jar ak T em p u h ( m )

Uji Coba 1

Uji Coba 2

5850 5860 5870 5880 5890 5900 5910 5920 5930 5940

1 5 10 15 25 50 75 100

Banyak Semut Jar ak T em p u h ( m )


(3)

57

Uji Coba 3

6100 6150 6200 6250 6300 6350 6400 6450 6500 6550 6600

1 5 10 15 25 50 75 100

Banyak Semut

Jar

ak T

em

p

u

h

(

m

)

Uji Coba 3

Gambar 4.9 Pengaruh Jumlah Semut Terhadap Jarak Tempuh.

Dari hasil yang diperoleh, dapat disimpulkan bahwa semakin banyak semut yang digunakan, semakin banyak pula solusi yang dihasilkan. Dengan semakin banyak solusi yang dihasilkan, maka peluang untuk mendapatkan hasil yang optimal semakin besar, tetapi waktu yang dibutuhkan untuk memproses juga semakin berlipat sebanding dengan jumlah semut yang digunakan.

Dari uji coba 1 dengan jarak pendek didapatkan hasil yang sama untuk setiap semut. Dengan demikian menggunakan hanya satu semut saja sudah mendapatkan hasil yang optimal. Dari uji coba 2 dengan jarak menengah didapatkan jumlah semut sudah mempengaruhi hasil yang didapatkan. Untuk mendapatkan hasil yang optimal paling sedikit digunakan semut sebanyak 5-10 semut. Dari uji coba 3 dengan jarak yang panjang dan dengan kombinasi jalan yang banyak didapatkan untuk mencapai hasil yang optimal dibutuhkan sekitar 10-15 semut. Dengan demikian dari keterangan diatas dapat disimpulkan bahwa jumlah semut yang optimal untuk aplikasi ini adalah sebanyak 10-15 semut.


(4)

5.1Kesimpulan

Setelah melakukan perancangan dan pembuatan aplikasi pencarian lokasi terdekat dengan menggunakan algoritma ant colony serta pengujian aplikasi, maka kesimpulan yang dapat diambil adalah sebagai berikut :

1. Aplikasi ini dapat memberikan informasi lokasi terdekat beserta rute jalan, alamat lokasi dan panjang perjalanannya. Dengan demikian pemakai jalan dapat tahu langsung lokasi terdekat beserta jalan-jalan yang dapat ditempuh untuk menuju ke tempat tujuan tanpa harus berputar-putar untuk mencarinya. 2. Aplikasi ini tidak dapat mengirimkan pesan yang lebih dari 164 karakter

secara sekaligus. Pesan harus dipecah terlebih dahulu dalam beberapa pesan dan ini dapat mengurangi kenyamanan penerima.

3. Aplikasi yang dibangun ini memiliki kelemahan yaitu apabila semakin banyak pesan yang masuk secara bersamaan, semakin lama pula mendapatkan balasannya, karena pesan diproses satu-persatu sementara pesan yang lain menunggu.

4. Lamanya proses tergantung pada parameter (jumlah semut dan jumlah iterasi) yang digunakan dan penggunaan hardware.

5. Jumlah semut yang optimal pada aplikasi pencarian lokasi terdekat yang diterapkan dikota Surabaya ini adalah sebanyak 15 semut.


(5)

59

5.2Saran

Adapun saran-saran yang dapat disampaikan oleh penulis berkaitan dengan penulisan Tugas Akhir ini adalah sebagai berikut :

a. Aplikasi ini dapat dikembangkan lagi dengan menambahkan beberapa parameter seperti parameter kemacetan lalu-lintas, kerusakan jalan, atau parameter keamanan jalan.

b. Atau dapat pula digunakannya sebagai bahan pembanding dengan menggunakan metode ACO yang lainnya untuk mencari rute terdekat yang lebih powerfull dibandingkan AS, atau menggunakan algoritma selain ACO seperti algoritma genetik, djikstra atau neural network.


(6)

Dorigo, Marco, 1996, The Ant System : By A Colony Of Cooperation Agents, Institute Of Electical and Electronic Engineers.

Dorigo, Marco. Gambardella, Luca, 1996, Ant Colony System : A Cooperation Learning

Approach to the Travelling Salesman Problem, URL :

http://www.cs.unibo.it/bison/publication/ACO.pdf

Fogel, D. 1993, Applying Evolutionary Programming to Selected Travelling Salesman Problem, Cybernetic and System : An International Journal.

Balena, Francesco, 1999, Programming Microsoft Visual Basic 6.0, Microsoft Press, Washington .

Gunawan, Ferry, 2003, Membuat Aplikasi SMS Gateway Server dan Client Dengan Java dan PHP, PT. Elex Media Computindo, Jakarta.