net/publication/260302626
Article
CITATIONS READS
8 11,414
3 authors, including:
Diana Purwitasari
Institut Teknologi Sepuluh Nopember
24 PUBLICATIONS 31 CITATIONS
SEE PROFILE
All content following this page was uploaded by Diana Purwitasari on 13 August 2014.
Abstrak
Pencarian rute terpendek merupakan satu masalah yang paling banyak dibahas dengan transportasi
sebagai salah satu contoh menarik. Pada beberapa masalah transportasi, penghitungan rute terpendek
memegang peranan penting karena harus dilakukan dalam waktu yang sangat singkat dan pada saat itu
juga. Tiga algoritma penghitungan rute terpendek, yaitu algoritma dijkstra, algoritma floyd, dan
algoritma two queues, akan diujicoba dan dievaluasi untuk mengetahui algoritma yang paling cepat
eksekusinya dengan memperhitungkan faktor-faktor tertentu. Ujicoba dilakukan dengan menggunakan
data jaringan jalan kota Surabaya yang disimpan dalam basis data MySQL. Algoritma penghitungan
diimplementasikan dalam bentuk aplikasi berbasis WEB dan WAP, yang akan memudahkan pengguna
untuk mendapatkan informasi rute terpendek. Berdasarkan uji coba yang telah dilakukan, lama waktu
eksekusi algoritma penghitungan rute terpendek dipengaruhi oleh jumlah node dalam suatu jaringan dan
jumlah node yang diperiksa. Untuk kasus yang jumlah node-nya kurang dari 1000, algoritma dijkstra
mampu menghasilkan waktu eksekusi lebih cepat, yaitu kurang dari 1 detik, sedangkan untuk kasus yang
jumlah node-nya lebih dari 1000, lebih tepat menggunakan algoritma two queues.
Kata kunci : algoritma pencarian rute terpendek, algoritma dijkstra, algoritma floyd, algoritma two
queues, WAP.
Abstract
Shortest path problem is a frequent illustration in optimazion with transportation domain as one of
exciting model. For some transportation cases, finding a shortest path takes important role because the
process is a real time problem. The used algorithms to solve shortest path problem are dijkstra algorithm,
floyd algorithm and two queues algorithm. Those three algorithms will be evaluated for finding the fastest
in execution time considered with some issues. The street network of Surabaya is used as data in MySQL
database for evaluating algorithms. Calculation process for finding shortest path is implemented into web
based and WAP based application to make user get the solution easily. Execution time of shortest path
algorithm is influenced by the amount of nodes being existed in street network and nodes being checked.
For some cases, the amount of nodes under 1000 have dijkstra algorithm as the fastest algorithm with
execution time no more than one second. While other cases two queues algorithm is proved better.
Keywords : shortest path algorithm, dijkstra algorithm, floyd algorithm, two queues algorithm, WAP.
Jurnal Penelitian dan Pengembangan TELEKOMUNIKASI, Desember 2005, Vol. 10, No. 2
95
Protocol (WAP) untuk mendukung faktor mobilitas label yaitu : label jarak d(i), parent node p(I,) dan
dan kemudahan mengakses dari aplikasi. WAP status node S(i).
adalah sebuah fasilitas yang memungkinkan Proses pemberian label berjalan seiring dengan
mengakses internet melalui alat-alat komunikasi proses scanning (pemeriksaan). Proses pemeriksaan
elektronik tanpa kabel (mobile device). Fasilitas node adalah proses membandingkan jarak antara
WAP biasa terdapat pada handphone atau PDA node awal s dengan node i melalui node j sebagai
(Personal Digital Assistance). Diharapkan dengan node lain dalam suatu jaringan.
digunakannya fasilitas WAP, pengguna bisa
mendapatkan segala macam dan bentuk informasi
yang dibutuhkan dengan mudah dan cepat, termasuk
informasi tentang transportasi.
3. Algoritma Dijkstra
Implementasi dan Analisa Algoritma Pencarian Rute Terpendek di Kota Surabaya (Yudhi Purwananto)
96
memerlukan waktu (| |2) dengan jumlah memori dalam suatu jaringan, kemudian rute-rute ini akan
yang dibutuhkan sebanyak (| |2). Penggunaan dibandingkan, dan rute dengan jarak yang paling
matriks ini cocok untuk merepresentasikan dense pendek akan dipilih sebagai rute terpendek. Proses
graph (lihat Gambar 3), sedangkan untuk sparse ini akan terus berlangsung secara iterasi dan akan
graph representasi yang cocok adalah menggunakan berhenti ketika mencapai node tujuan.
adjacent list (lihat Gambar 4), dimana suatu graph Pada algoritma dijkstra, node-node dibagi
akan direpresentasikan secara linier, sehingga menjadi dua set. Set pertama berisi node yang telah
memori yang dibutuhkan untuk merepresentasikan diperiksa, sedangkan set kedua berisi node yang
sparse graph menggunakan adjacent list adalah belum diperiksa. Untuk menyimpan node-node itu
(|E|). dapat digunakan struktur data array dan priority
queue dengan elemen yang mempunyai urutan
tertentu, yaitu ascending atau descending.
Dengan priority queue, pemilihan node yang
akan diperiksa dilakukan dengan menghapus bobot
paling kecil sampai node tujuan tercapai. Ukuran
dari priority queue dapat mencapai |E|. Terdapat
sejumlah |E| proses memasukkan node serta
menghapus node, maka waktu eksekusinya menjadi
(|E|log|E|), dimana |E| | |2, sehingga akan
mempengaruhi waktu eksekusi menjadi
log|E| 2log| |.
4. Algoritma Floyd
Gambar 3. Representasi Graph dengan Matriks Algoritma floyd adalah algoritma penghitungan
rute terpendek yang dapat mencari semua jarak node
(all pairs shortest path) pada suatu jaringan.
Algoritma floyd menggunakan matriks dua
dimensi sebagai representasi dari sebuah jaringan.
Jika suatu jaringan terdiri dari n buah arc maka
matriks yang akan dibentuk oleh algoritma floyd
untuk proses penghitungan adalah sebesar n x n.
Matriks ini merepresentasikan bobot w dari
keseluruhan arc yang ada pada graph ( , ,) dengan
w(i,j) dimana i adalah node awal dan j adalah node
tujuan.
Bobot dari node i ke node j atau w(i,j)
mempunyai tiga kemungkinan nilai yaitu :
w(i,j) = 0 jika i = j (dari node i ke node i itu
sendiri)
w(i,j) = bobot arc jika i ≠ j dan node i terhubung
dengan node j
w(i,j) = jika i ≠ j dan node i tidak terhubung
dengan node j.
Gambar 4. Representasi Graph dengan Adjacent List Algoritma floyd mampu menghitung bobot
terkecil dari jaringan dengan bobot negatif. Pada
Algoritma dijkstra di sini menggunakan kasus tertentu seperti proses penghitungan biaya
adjacent list untuk merepresentasikan sebuah dengan kemungkinan mengandung bobot negatif,
jaringan. Secara garis besar algortima dijkstra algoritma floyd mempunyai kelebihan dalam
membagi semua node menjadi dua, kemudian memecahkan proses penghitungannya.
dimasukkan ke dalam tabel yang berbeda, yaitu tabel Algoritma floyd akan memeriksa setiap arc dan
permanen dan tabel temporal. Tabel permanen berisi membandingkan setiap “jalur tengah” untuk
node awal dan node-node yang telah melalui proses mendapatkan rute terpendek. Jalur tengah adalah
pemeriksaan dan labelnya telah diubah dari temporal rute yang dilalui dari node c ke node g dengan
menjadi permanen. Tabel temporal berisi node-node melewati node perantara h. Jalur tengah pada
yang berhubungan dengan node pada tabel Gambar 5 akan dipilih sebagai rute terpendek dari
permanen. node c ke node g jika jarak dari node c ke node h
Pemilihan rute algoritma dijkstra dilakukan ditambah jarak dari node h ke node g lebih kecil dari
dengan Best First Search (BFS), dimana sebuah rute jarak dari node c ke node g , d(c, h)+d(h, g)<d(c, g).
akan dihitung jaraknya dari node awal ke node lain
Jurnal Penelitian dan Pengembangan TELEKOMUNIKASI, Desember 2005, Vol. 10, No. 2
97
Implementasi dan Analisa Algoritma Pencarian Rute Terpendek di Kota Surabaya (Yudhi Purwananto)
98
Node A akan diperiksa pertama kali sebagai Gambar 8 adalah contoh interseksi model
node ke-1 maka jarak node A, d(A) = 0 dan node B kedua. Jalan Blauran berinterseksi dengan Jalan
serta F sebagai successor. Node B dan node F akan Bubutan, Jalan Kranggan, Jalan Baliwerti, dan Jalan
dimasukkan ke Q2 untuk diperiksa selanjutnya. Pada Praban. Tetapi dari arah jalan Blauran hanya boleh
saat pemeriksaan, algoritma two queues juga mengarah ke jalan Praban atau jalan Bubutan, hal ini
melakukan pemberian label terhadap node-node dikarenakan ada peraturan jalan yang melarang dari
yang nilai jaraknya berubah. Jika node yang nilai arah jalan Blauran belok ke arah jalan Kranggan.
jaraknya berubah pernah diperiksa sebelumnya
setidaknya satu kali maka node ini akan 7. Uji Coba dan Evaluasi
dimasukkan ke Q2 dan diberi label temporal, jika
belum pernah diperiksa akan dimasukkan ke Q1 dan Penggunaan perangkat pendukung yang
diberi label unreached. Proses ini akan terus membentuk purwarupa sistem layanan informasi
berlangsung sampai Q1 dan Q2 kosong sehingga pencarian rute terpendek untuk kota Surabaya
hasil akhir yang diperoleh merupakan rute terpendek dilakukan pada komputer dengan prosesor AMD
dari node awal A ke node tujuan G, seperti Athlon 850MHz, memori 320 MB, hard disk 20 GB
ditunjukkan pada Gambar 7. dan memori video 64 MB. Sedangkan lingkungan
perangkat lunaknya adalah sistem operasi Microsoft
6. Sumber Data XP Professional, Linux Mandrake 9.1, web server
Apache, DBMS server MySQL Server Ver 11.15
Data input yang diperlukan berupa data Distrib 3.23.42-nt, dengan bahasa web scripting PHP
jaringan jalan yang direpresentasikan sebagai graph. v4.2.1, kompiler GCC dan web browser Internet
Suatu pemodelan jalan memerlukan aturan-aturan Explorer 6.0. serta WAP browser M3Gate.
tertentu agar sesuai dengan kondisi jalan yang Pada pengujian digunakan jaringan jalan kota
direpresentasikannya. Ketika suatu segmen garis Surabaya yang diperoleh dari Instansi Pemerintah
bertemu dengan segmen garis yang lain dan saling Surabaya pada tahun 2000. Data jaringan jalan
berinterseksi, maka terdapat tiga kemungkinan dari tersebut akan dibagi menjadi 6(enam) bagian yang
interseksi tersebut : berbeda jumlah total node dalam jaringan, jumlah
a. Segmen-segmen garis tersebut benar-benar arc, dan panjang arc, ditunjukkan pada Tabel 1.
saling berinterseksi dan diperbolehkan untuk Uji coba dilakukan untuk mengetahui
melakukan sembarang belokan dari segmen- kecepatan eksekusi dari masing-masing algoritma
segmen garis yang berinterseksi tersebut. penghitungan rute terpendek. Pada uji coba ini akan
b. Segmen-segmen garis tersebut benar-benar dipilih variabel-variabel yang mempunyai korelasi
saling berinterseksi, namun tidak diperbolehkan dengan algoritma penghitungan rute terpendek
antar segmen garis tersebut untuk saling sehingga dapat diketahui variabel yang bisa
berhubungan, misalnya, melakukan belokan dari mempengaruhi kecepatan eksekusi dari algoritma.
segmen garis yang saling berinterseksi. Hal ini Variabel-variabel ini antara lain : panjang jarak antar
dapat terjadi karena adanya aturan-aturan lalu node, jumlah node yang diperiksa, dan jumlah node
lintas yang harus dipatuhi. total dalam jaringan.
c. Segmen-segmen garis tersebut tidak benar-benar Pada algoritma dijkstra akan diujicobakan
saling berinterseksi. Hal ini karena suatu menggunakan struktur data yang berbeda yaitu array
segmen garis dalam kondisi riil berada di atas dan priority queue. Hal ini bertujuan untuk
segmen garis yang saling berinterseksi tersebut mengetahui struktur data yang paling tepat untuk
(misalnya, dalam memodelkan jalan tol yang digunakan pada algoritma dijkstra. Pada algoritma
berada di atas jalan yang lain). floyd dan two queues struktur data yang digunakan
adalah array karena input dan output dari
perhitungan algoritma floyd dan two queues
berbentuk array.
Jurnal Penelitian dan Pengembangan TELEKOMUNIKASI, Desember 2005, Vol. 10, No. 2
99
Uji coba dilakukan untuk mengetahui, apakah Sedangkan untuk algoritma two queues pada
faktor jumlah node yang diperiksa dapat beberapa kasus mungkin terjadi peningkatan cukup
mempengaruhi waktu eksekusi program dengan tajam, seperti saat menghitung node 29 dengan data
membuat skenario jumlah node sama dalam Surabaya 5, tapi hanya terjadi sesekali.
jaringannya. Data yang digunakan hanya data Peningkatan waktu eksekusi dari node yang
Surabaya 4 – Surabaya 6. Data Surabaya 1 – sedikit ke node yang banyak relatif kecil sehingga
Surabaya 3 tidak dapat digunakan karena sebagian terlihat stabil.
besar node tidak terhubung antara satu dengan yang
lainnya. Waktu eksekusi yang dicatat merupakan b. Percobaan 2: Uji Coba Berdasarkan Jarak
waktu eksekusi rata-rata dari 10 kali percobaan. Antar Node yang Berbeda
Tabel 2 menampilkan hasil uji coba dengan
data Surabaya 5, algoritma dijkstra memerlukan Skenario ini hanya mengubah jarak antar node
waktu eksekusi yang lebih lama ketika jumlah node- yang diperiksa, sedangkan jumlah node yang
nya banyak diperiksa dan jumlah node dalam jaringan yang
diperiksa adalah sama.
Tabel 2. Hasil Uji Coba Berdasarkan waktu eksekusi Uji coba dilakukan untuk mengetahui apakah
SBY 4 SBY 5 SBY 6 Node yang
faktor jarak yang dihitung dapat mempengaruhi
(detik) (detik) (detik) Dilewati waktu eksekusi program.
Lontar ke Indragiri 13 Pada data Surabaya 2 akan melewati jumlah
DJIKS + arr 0,09931 0,11666 0,13537 node yang sama sedangkan jarak yang diperiksa
DJIKS + PQ 0,06108 0,07566 0,08293 akan semakin panjang dibanding Surabaya 1. Untuk
FLOYD 4,31942 4,35703 4,40016
algoritma dijkstra dengan priority queue dan
2-QUEUE 0,34336 0,61585 1,30520
Blauran ke Gajahmada
algoritma two queues waktu eksekusinya kurang
29
dari 1 detik. Selisih waktu tercepat dengan
DJIKS + arr 0,10946 0,13056 0,13999
DJIKS + PQ 0,06119 0,07628 0,08334
terlamanya adalah 0,01 detik untuk algoritma
FLOYD 4,31898 4,35515 4,39555
dijkstra array ; 0,003 detik untuk algoritma dijkstra
2-QUEUE 0,34071 0,59309 1,31564 priority queue; dan 0,004 detik untuk algoritma two
Hangtuah ke Kandangan Jaya 55 queues , sedangkan untuk algoritma floyd waktu
DJIKS + arr 0,12835 0,16135 0,16377 eksekusinya berkisar 4 detik dengan selisih waktu
DJIKS + PQ 0,06815 0,07864 0,08733 0,01 detik.
FLOYD 4,32769 4,35708 4,41861
2-QUEUE 0,34733 0,64217 1,32175 Tabel 3. Hasil Uji Coba Berdasarkan Jarak
SBY 1 SBY 2 SBY 3 SBY 4 SBY 5 SBY 6
Algoritma dijkstra dengan priority queue lebih (detik) (detik) (detik) (detik) (detik) (detik)
cepat waktu eksekusinya dibandingkan dengan Tandes Utara ke Raya Tandes 130 m
array. Waktu eksekusi algoritma floyd dan two DJIKS + arr 0,08254 0,08602 0,09068 0,09092 0,10201 0,11447
queues tidak terpengaruh oleh penambahan jumlah DJIKS + PQ 0,04116 0,04743 0,05216 0,06102 0,07300 0,08246
FLOYD 4,20292 4,21615 4,29923 4,32750 4,35703 4,39690
node. Selisih waktu tercepat dan terlama pada
2-QUEUE 0,03954 0,08442 0,16910 0,28363 0,70662 1,31700
algoritma floyd dan two queues adalah 0,03 detik, Praban ke Kranggan 342 m
sedangkan pada algoritma dijkstra selisihnya adalah DJIKS + arr 0,08263 0,09436 0,09261 0,09960 0,10167 0,12041
0,07 detik. DJIKS + PQ 0,03870 0,05112 0,05278 0,06139 0,07373 0,08226
Pada data hasil uji coba Surabaya 6, FLOYD 4,20434 4,22942 4,29424 4,32264 4,35515 4,40105
peningkatan waktu eksekusi algoritma dijkstra dan 2-QUEUE 0,03561 0,08511 0,16801 0,32173 0,59188 1,30071
Ketintang Selatan ke Ketintang Madya 779 m
floyd tidak terlalu signifikan dibandingkan dengan
DJIKS + arr 0,08122 0,09671 0,08863 0,09899 0,09893 0,11220
data Surabaya 5. Waktu eksekusi yang diperlukan
DJIKS + PQ 0,03766 0,04840 0,05130 0,06101 0,07309 0,08226
algoritma two queues pada Surabaya 6 adalah dua
FLOYD 4,15336 4,21766 4,29112 4,32836 4,36208 4,40874
kali waktu eksekusi pada Surabaya 5. Selisih waktu 2-QUEUE 0,04344 0,08754 0,16393 0,32121 0,62777 1,31900
eksekusi tercepat dan terlama untuk algoritma Semolowaru Tengah ke Klampis Harapan 1325 m
dijkstra =0,05 detik, two queues= 0,1 detik ,dan DJIKS + arr 0,07625 0,08442 0,09628 0,09109 0,09547 0,11354
untuk floyd = 0,01 detik. DJIKS + PQ 0,03836 0,04819 0,05251 0,05872 0,07334 0,08273
Hasil uji coba menggunakan Surabaya 5 dan FLOYD 4,20021 4,22633 4,28872 4,32617 4,35232 4,40495
2-QUEUE 0,03411 0,08371 0,16445 0,34290 0,68356 1,36430
Surabaya 6 pada algoritma dijkstra menunjukkan
Lidah Kulon ke Raya Menganti 2203 m
kecenderungan naik. Hal ini menggambarkan bahwa
DJIKS + arr 0,07917 0,08558 0,09144 0,09301 0,10100 0,11270
perbedaan jumlah node yang diperiksa berpengaruh DJIKS + PQ 0,04241 0,04752 0,05121 0,05954 0,07327 0,08169
terhadap waktu eksekusi. FLOYD 4,20533 4,22142 4,29262 4,33026 4,36538 4,39595
Pada algoritma floyd hasilnya cenderung stabil 2-QUEUE 0,03614 0,08517 0,16713 0,34733 0,63216 1,38570
yang menggambarkan bahwa perbedaan jumlah
node yang diperiksa tidak terlalu berpengaruh Uji coba menggunakan data Surabaya 3, waktu
terhadap waktu eksekusi. eksekusi algoritma dijkstra dan two queues tetap
kurang dari 1 detik dengan selisih waktu 0,01 detik
untuk algoritma dijkstra array; 0,0018 untuk
Implementasi dan Analisa Algoritma Pencarian Rute Terpendek di Kota Surabaya (Yudhi Purwananto)
100
algoritma dijkstra priority queue; dan 0,004 detik Berikutnya akan diamati hasil rute terpendek
untuk algoritma two queues . Jika dibandingkan yang diperoleh dari masing-masing algoritma
waktu eksekusi algoritma two queues menggunakan penghitungan dengan data jaringan jalan Surabaya 4
data Surabaya 2 dengan data Surabaya 3 terdapat – Surabaya 6, sehingga dapat diketahui algoritma
peningkatan yang cukup signifikan, sekitar 2 kali yang dapat menghasilkan rute terpendek dibanding
lipat untuk penambahan jumlah node dalam algoritma lain. Pada Tabel 4 panjang rute yang
jaringan. Waktu eksekusi yang diperlukan floyd dihasilkan tidak sama antara algoritma yang satu
tetap sekitar 4 detik, dengan selisih waktu terlama dengan yang lain.
dan tercepatnya 0,01 detik. Jarak yang dihasilkan masing-masing algoritma
Waktu eksekusi yang diperlukan algoritma two penghitungan rute terpendek menggunakan data
queues pada Surabaya 5 adalah 2 kali waktu Surabaya 4 adalah sama, sedangkan dengan data
eksekusi pada Surabaya 4. Pada data Surabaya 6 Surabaya 5, kemampuan setiap algoritma
waktu eksekusi algoritma dijkstra masih berkisar menemukan rute terpendek berbeda-beda. Pada
kurang dari satu detik, yaitu 0,12 detik, dengan semua kasus menggunakan data Surabaya 5, dijkstra
selisih waktu tercepat dan terlamanya adalah 0,01 menemukan rute paling pendek. Dijkstra dan two
detik. Waktu eksekusi dari algoritma two queues queues memberikan jarak rute terpendek yang sama
sekitar 2 kali lipat dari Surabaya 5, yaitu berkisar pada semua kasus uji coba menggunakan data
pada 1,3 detik dengan selisih antara waktu tercepat Surabaya 6. Hasil penghitungan menggunakan
dan waktu terlamanya adalah 0,08 detik. Pada algoritma dijkstra array tidak berbeda dengan
algoritma floyd waktu eksekusinya sekitar 4,4 detik algoritma dijkstra priority queue.
dengan selisih antara waktu tercepat dan waktu
terlamanya adalah 0,03 detik. d. Percobaan 4: Uji Coba Kemampuan
Hasil uji coba pada Tabel 3 menunjukkan
kecenderungan bergerak stabil. Sehingga faktor Uji coba kemampuan bertujuan untuk
jarak antar node yang dihitung dapat diabaikan mengetahui batasan kemampuan dari masing-masing
karena tidak berpengaruh signifikan terhadap waktu algoritma untuk melakukan penghitungan rute
eksekusi. terpendek. Dari hasil uji coba yang telah dilakukan
terhadap masing-masing algoritma penghitungan
c. Percobaan 3: Uji Coba Kebenaran Hasil rute terpendek menggunakan data jaringan jalan
utama Indonesia dengan jumlah node mencapai
Tabel 4. Hasil Uji Coba Kebenaran 4200 dan jumlah arc lebih dari 6000, algoritma floyd
SBY 4 (meter) SBY 5 (meter) SBY 6 (meter)
sama sekali tidak mampu melakukan penghitungan
rute terpendek. Algoritma dijkstra hanya mampu
Blauran ke Mayjen Sungkono
Jurnal Penelitian dan Pengembangan TELEKOMUNIKASI, Desember 2005, Vol. 10, No. 2
101
8. Kesimpulan
Daftar Pustaka
[1] Benjamin Zhan, F., 2000, Three Fastest
Shortest Path Algorithms on Real Road
Networks: Data Structures and Procedures,
Journal of Geographic Information and
Decision Analysis, vol.1, no.1, pp. 69-82
[2] Purba, Jan Waren, 2003, Sistem Informasi
Geografis Berbasis Web Dengan Menggunakan
Teknologi Scalable Vector Graphic (SVG) Studi
Kasus Pencarian Lokasi Pelayanan Kesehatan
Terdekat, Tugas Akhir : Jurusan Teknik
Informatika Fakultas Teknologi Informasi
Institut Teknologi Sepuluh Nopember, Surabaya
[3] Zhan, F.B., Noon, C.E, 2000, A Comparison
Between Label-Setting and Label Correcting
Algorithms for Computing One-to-One Shortest
Path, Journal of Geographic Information and
Decision Analysis, Vol. 4 No. 2.
Implementasi dan Analisa Algoritma Pencarian Rute Terpendek di Kota Surabaya (Yudhi Purwananto)