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
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
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
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
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
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
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
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
Start
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
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
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
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
Start
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
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
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
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
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
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
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
ID = ID
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
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
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
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
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
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
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.
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
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
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
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
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
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
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
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.
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
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
Hamiltonian dalam graph G adalah perjalanan terpendek dengan mengunjungi
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.
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.
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
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
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
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
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
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
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
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.
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.
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()
4.3.2 Implementasi Back Track
Mengacu pada rancangan pada bab 3 gambar 3.7, proses ini untuk
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
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
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 :
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
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
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
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
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 4.4 Lama Waktu Tunggu
No Pesan Waiting Time(s) Lama Proses(s)
1 Dupak->Hotel 0 19
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
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
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
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.
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
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 .