Implementasi Dan Analisis Algoritma Pencarian Rute Terpendek

July 17, 2017 | Author: Andri Cepa | Category: N/A
Share Embed Donate


Short Description

Download Implementasi Dan Analisis Algoritma Pencarian Rute Terpendek...

Description

94

IMPLEMENTASI DAN ANALISIS ALGORITMA PENCARIAN RUTE TERPENDEK DI KOTA SURABAYA Yudhi Purwananto1, Diana Purwitasari2, Agung Wahyu Wibowo Jurusan Teknik Informatika, Institut Teknologi Sepuluh Nopember (ITS) 1 [email protected], [email protected] 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. 1.

Pendahuluan

Pencarian rute terpendek merupakan suatu masalah yang paling banyak dibahas dan dipelajari sejak akhir tahun 1950. Pencarian rute terpendek ini telah diterapkan di berbagai bidang untuk mengoptimasi kinerja suatu sistem, baik untuk meminimalkan biaya atau mempercepat jalannya suatu proses. Salah satu aplikasi pencarian rute terpendek yang paling menarik untuk dibahas adalah pada masalah transportasi. Dalam pencarian rute terpendek, penghitungan dapat dilakukan dengan beberapa macam algoritma. Secara garis besar algoritma penghitungan rute terpendek dibagi menjadi dua kelas berdasarkan metode pemberian labelnya, yaitu algoritma label setting dan algoritma label correcting[3]. Metode label setting menentukan label jarak sebagai jarak

permanen pada setiap iterasinya, sedangkan metode label correcting menentukan label jarak sebagai temporal pada setiap iterasi sampai langkah akhir ketika semua node telah melewati proses pemeriksaan, maka labelnya akan ditentukan sebagai permanen. algoritma dijkstra adalah salah satu algoritma penghitungan rute terpendek kelas label Setting, sedangkan pada kelas label correcting terdapat algoritma floyd dan algoritma two-queues. Ketiga algoritma ini akan dibandingkan performanya, dan juga akan dievaluasi untuk mengetahui faktor-faktor yang mempengaruhi performa dari masing-masing algoritma. Jaringan jalan yang akan digunakan sebagai bahan penghitungan adalah jaringan jalan yang ada di kota Surabaya. Algoritma yang paling cepat dalam melakukan penghitungan akan dipakai dalam aplikasi berbasis teknologi Wireless Application

Jurnal Penelitian dan Pengembangan TELEKOMUNIKASI, Desember 2005, Vol. 10, No. 2

95

Protocol (WAP) untuk mendukung faktor mobilitas dan kemudahan mengakses dari aplikasi. WAP adalah sebuah fasilitas yang memungkinkan mengakses internet melalui alat-alat komunikasi elektronik tanpa kabel (mobile device). Fasilitas WAP biasa terdapat pada handphone atau PDA (Personal Digital Assistance). Diharapkan dengan digunakannya fasilitas WAP, pengguna bisa mendapatkan segala macam dan bentuk informasi yang dibutuhkan dengan mudah dan cepat, termasuk informasi tentang transportasi. 2.

label yaitu : label jarak d(i), parent node p(I,) dan status node S(i). Proses pemberian label berjalan seiring dengan proses scanning (pemeriksaan). Proses pemeriksaan node adalah proses membandingkan jarak antara node awal s dengan node i melalui node j sebagai node lain dalam suatu jaringan.

Teori Dasar Graph dan Pencarian Rute Terpendek

Graph terdiri dari sekumpulan node yang dihubungkan dengan sekumpulan arc. Notasi untuk mendeskripsikan suatu graph adalah ( , ), dimana adalah sekumpulan node (vertex) dan adalah sekumpulan dari arc (edge) dengan nilai-nilai yang berasosiasi pada setiap node. Nilai-nilai yang berasosiasi itu adalah jumlah node, jumlah arc, dan panjang dari arc yang menghubungkan antara node i dan j yang dinotasikan sebagai d(i,j). Suatu jaringan dapat direpresentasikan sebagai graph. Beberapa contoh model jaringan dalam dunia nyata yang dapat direpresentasikan sebagai graph adalah desain jaringan pipa minyak, jaringan fisik seperti jalan, rel kereta api, atau rute pesawat terbang, jaringan kabel listrik, dan sebagainya. Gambar 1 menunjukkan sebuah jaringan fisik jalan di kota Surabaya yang sebagian dimodelkan dengan graph G terdiri dari delapan node = {A,B,C,D,E,F,G,H}.

Gambar 2. Graph dari Diagram Data Jalan Kota Surabaya Pada Gambar 2, node A akan dianggap sebagai node awal dan node G dianggap sebagai node tujuan. Node A mempunyai label status r (permanen), label jarak d(s) = 0, dan label parent p(s) = 0, oleh karena itu node A dianggap sebagai node awal. Node B dan node F mempunyai label status t (temporal) yang berarti node tersebut telah melalui proses pemberian label tetapi belum melalui proses pemeriksaan. Node C, D, E dan G mempunyai label status u (unreached), label jaraknya d(i) = ~, dan label parent p(i) = null, karena node-node tersebut belum melalui proses pemberian label dan proses pemeriksaan. Pada proses pemeriksaan node B dan node F, akan dipilih node dengan nilai bobot yang terkecil yaitu node F, oleh karena itu, maka label status node F, s(b), akan berubah menjadi r, label parent, p(b), menjadi A, dan label jaraknya, d(b) menjadi 8. Proses ini akan terus berlangsung sampai node tujuan tercapai. 3.

Gambar 1. Diagram Data Jalan Kota Surabaya Proses penghitungan rute terpendek adalah proses mencari jarak terpendek atau biaya terkecil suatu rute dari node awal ke node tujuan dalam sebuah jaringan. Nilai d(i) merupakan nilai jarak atau bobot total terkecil dari suatu rute. Pada proses penghitungan rute terpendek terdapat dua macam proses yaitu proses pemberian label dan proses pemeriksaan node. Metode pemberian label adalah metode untuk memberikan identifikasi pada setiap node dalam jaringan. Pada sebagian besar algoritma penghitungan rute terpendek, terdapat 3(tiga) label informasi yang dikelola untuk setiap node i pada proses pemberian

Algoritma Dijkstra

Algoritma dijkstra pertama kali dikembangkan oleh E.W. Dijkstra. Pada perkembangannya, algoritma ini menggunakan struktur data yang berbeda-beda. Pada umumnya, graph setidaknya mempunyai satu arc penghubung dari satu node ke node yang lain, sehingga konsekuensinya |E|=| |2. Jika masingmasing node terhubung dengan semua node lainnya pada suatu jaringan, maka |E|= (| |2). Graph dengan (| |2) disebut dengan dense graph. Pada dunia nyata nilai =(| |) karena tidak semua node terhubung dengan masing-masing node lainnya. Keadaan ini disebut dengan sparse graph. Untuk merepresentasikan suatu graph dapat digunakan matriks dua dimensi. Untuk tiap node (i,j), nilai bobotnya dapat dimasukkan ke dalam aij. Untuk node yang tidak saling terhubung, nilai bobotnya dapat diisi dengan tak terhingga. Proses ini

Implementasi dan Analisa Algoritma Pencarian Rute Terpendek di Kota Surabaya (Yudhi Purwananto)

96

memerlukan waktu (| |2) dengan jumlah memori yang dibutuhkan sebanyak (| |2). Penggunaan matriks ini cocok untuk merepresentasikan dense graph (lihat Gambar 3), sedangkan untuk sparse graph representasi yang cocok adalah menggunakan adjacent list (lihat Gambar 4), dimana suatu graph akan direpresentasikan secara linier, sehingga memori yang dibutuhkan untuk merepresentasikan sparse graph menggunakan adjacent list adalah (|E|).

dalam suatu jaringan, kemudian rute-rute ini akan dibandingkan, dan rute dengan jarak yang paling pendek akan dipilih sebagai rute terpendek. Proses ini akan terus berlangsung secara iterasi dan akan berhenti ketika mencapai node tujuan. Pada algoritma dijkstra, node-node dibagi menjadi dua set. Set pertama berisi node yang telah diperiksa, sedangkan set kedua berisi node yang belum diperiksa. Untuk menyimpan node-node itu 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.

Gambar 3. Representasi Graph dengan Matriks

Gambar 4. Representasi Graph dengan Adjacent List Algoritma dijkstra di sini menggunakan adjacent list untuk merepresentasikan sebuah jaringan. Secara garis besar algortima dijkstra membagi semua node menjadi dua, kemudian dimasukkan ke dalam tabel yang berbeda, yaitu tabel permanen dan tabel temporal. Tabel permanen berisi node awal dan node-node yang telah melalui proses pemeriksaan dan labelnya telah diubah dari temporal menjadi permanen. Tabel temporal berisi node-node yang berhubungan dengan node pada tabel permanen. Pemilihan rute algoritma dijkstra dilakukan dengan Best First Search (BFS), dimana sebuah rute akan dihitung jaraknya dari node awal ke node lain

Algoritma Floyd

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. Algoritma floyd mampu menghitung bobot terkecil dari jaringan dengan bobot negatif. Pada kasus tertentu seperti proses penghitungan biaya dengan kemungkinan mengandung bobot negatif, algoritma floyd mempunyai kelebihan dalam memecahkan proses penghitungannya. Algoritma floyd akan memeriksa setiap arc dan membandingkan setiap “jalur tengah” untuk mendapatkan rute terpendek. Jalur tengah adalah rute yang dilalui dari node c ke node g dengan melewati node perantara h. Jalur tengah pada Gambar 5 akan dipilih sebagai rute terpendek dari node c ke node g jika jarak dari node c ke node h ditambah jarak dari node h ke node g lebih kecil dari jarak dari node c ke node g , d(c, h)+d(h, g)
View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF