• Tidak ada hasil yang ditemukan

Aplikasi Mobile Hybrid Pencarian Rute Optimum Taksi Menggunakan Algoritma Dijkstra A.A. Gde Ari Sudana 1, Made Agung Raharja 2, I Gede Santi Astawa 3

N/A
N/A
Protected

Academic year: 2021

Membagikan "Aplikasi Mobile Hybrid Pencarian Rute Optimum Taksi Menggunakan Algoritma Dijkstra A.A. Gde Ari Sudana 1, Made Agung Raharja 2, I Gede Santi Astawa 3"

Copied!
18
0
0

Teks penuh

(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)

Aplikasi Mobile Hybrid Pencarian Rute Optimum Taksi Menggunakan Algoritma Dijkstra

A.A. Gde Ari Sudana

1

, Made Agung Raharja

2

, I Gede Santi Astawa

3

1,3 Jurusan Ilmu Komputer, Fakultas Matematika dan Ilmu Pengetahuan Alam, Universitas Udayana Jl. Raya Kampus Unud, Bukit Jimbaran, Kuta Selatan 80361. Indonesia

1

[email protected],

2

[email protected]

3

[email protected]

Intisari

Salah satu solusi dari permasalahan kemacetan di Indonesia adalah meningkatkan penggunaan kendaraan umum, yang salah satunya adalah taksi. Untuk meningkatkan jumlah pengguna layanan taksi, pelayanan taksi perlu ditingkatkan, yang salah satunya adalah kemampuan taksi untuk menemukan jalur tercepat agar kendaraan taksi dapat mengantarkan pelanggan ke tujuan dengan waktu tempuh tersingkat. Algoritma Dijkstra merupakan salah satu algoritma yang digunakan untuk mencari jarak terpendek dalam suatu graf. Prinsip greedy (serakah) oleh Algoritma Dijkstra digunakan untuk memecahkan masalah jalur terpendek pada sebuah graf. Masalah pencarian rute akan diimplementasikan ke dalam bentuk graf berarah G(e,v) dimana node merupakan persimpangan yang berada di kota Denpasar Utara dan edge merupakan jalan yang menghubungkan antar persimpangan tersebut. Bobot dari edge yang digunakan merupakan waktu tempuh yang merupakan hasil observasi di lapangan dan merupakan waktu tempuh rata-rata kendaraan umum (taksi dan sejenisnya) yang ditinjau dari lebar jalan dan letak fasilitas umum yang berada di wilayah Denpasar Utara. Sistem akan diimplementasikan ke dalam bentuk aplikasi mobile hybrid dengan menggunakan Framework Ionic untuk sisi front end.

Berdasarkan penelitian yang dilakukan maka dapat disimpulkan bahwa Algoritma Dijktra dapat diimplementasikan ke dalam bentuk aplikasi mobile hybrid dengan framework Ionic untuk mencari rute optimum kendaraan taksi dengan waktu eksekusi program rata-rata sebesar 5.47488020831E-5 microsecond.

Kata Kunci: Aplikasi Mobile Hybrid, Algoritma Dijkstra, Venichle Routing Problem, Graph, Framework Ionic Abstract

One solution to the problem of congestion in Indonesia is to increase the use of public transport, one of them is the taxi. To increase the number of taxi users, taxi driver must know the fastest way to get customers to destinations with the shortest travel time. Dijkstra Algorithm is one of the algorithms used to find the shortest distance in a graph. The greedy principle by the Dijkstra Algorithm is used to solve the shortest path problem in a graph. The problem of route search will be implemented in the form of directed graph G (e, v) where the node is the intersection located in the city of North Denpasar and the edge which is the path between the intersection. The weight of the path used is the travel time which is the result of observation in the field and is the average travel time of public vehicles (taxis and the like) which is reviewed from the area of the road and the location of facilities located in the area of North Denpasar. The system will be implemented into a hybrid mobile application using the Ionic Framework for the front end side. Based on the research conducted it can be concluded that Dijktra algorithm can be implemented into the form of mobile hybrid application with Ionic framework to find the optimal route with the average program execution price of 5.47488020831E-5 microseconds.

Keyword: Mobile Hybrid Aplication, Dijkstra Algorithm, Venichle Routing Problem, Graph, Ionic Framework.

I. P ENDAHULUAN

Permasalahan kemacetan yang terjadi di Wilayah Denpasar Utara salah satu faktor penyebabnya adalah masih tingginya penggunaan kendaraan pribadi. Terhitung pada tahub 2013 jumlah kendaraan yang terdiri dari jenis sedan, jeep, minibus, truk, pick up, bis dan sepeda motor berjumlah 1 260.286 unit pada wilayah Denpasar dan merupakan jumlah terbanyak diantara 8 kota lainya di Provinsi Bali [6]. Salah satu solusi untuk memecahkan permasalahan ini adalah dengan meningkatkan penggunaan kendaraan umum [7] yang

salah satunya adalah taksi. Peningkatan pengguna taksi harus diikuti dengan peningkatan layanan yang diberikan oleh taksi yang salah satunya adalah kemampuan taksi untuk mencari rute optimum sehingga waktu tempuh perjalanan dapat dikurangi.

Permasalahan diatas dapat digambarkan sebagai sebuah

permasalahan Venichle Routing Problem (VRP) dimana solusi

yang diharapkan adalah rangkaian rute dengan waktu tempuh

tersingkat. Salah satu Algoritma yang dapat digunakan untuk

menyelesaikan permasalahan Venicle Routing Problem adalah

Algoritma Dijkstra.

(14)

Beberapa penelitian yang pernah dilakukan terkait permasalahan pencarian rute optimum menggunakan Algoritma Dijkstra antara lain:

1) Ferdifiansyah, Finsa. [1] melakukan penelitian masalah pencarian rute dengan membandingkan penggunaan memori serta analisis komplesitas algoritma membuktikan bahwa Algoritma Dijkstra menggunakan lebih sedikit memori dibandingkan dengan Ant Colony. Serta kompleksitas waktu Dijsktra f(n) = O(2n + 13) lebih rendah dibandingkan dengan Ant Colony f(n) O(5n + 3)

2) Shivani, Jaswinder Singh [4] melakukan penelitian dengan membandingkan hasil pencarian rute optimum menggunakan Algoritma Dijkstra dengan Bellman Ford. Jarak yang dihasilkan serta waktu tempuh masalah routing problem membuktikan bahwa Algoritma Dijkstra menghasilkan hasil yang lebih optimum dibandingkan dengan Bellman Ford.

Tujuan dari penelitian ini adalah untuk mengembangkan suatu sistem pencarian rute optimum kendaaraan taksi dengan mengimplementasikan Algoritma Dijkstra, sehingga pelayanan dari taksi dapat ditingkatkan dalam hal pencarian rute dengan waktu tempuh tercepat. Dengan adanya aplikasi ini, diharapkan pemilik kendaraan pribadi dapat memilih kendaraan taksi sebagai alternatif transportasi dengan layanan berupa pencarian rute optimum, sehingga waktu tempuh perjalanan pengguna kendaraan taksi dapat dioptimalkan.

Pengembangan aplikasi menggunakan Framework Ionic memungkinkan dikembangkannya aplikasi web yang dapat berfungsi juga sebagaimana aplikasi mobile (android dan iOs).

Data yang akan digunakan berupa data kecepatan kendaraan berjenis taksi dari Dinas Perhubungan Kota Denpasar.

II. M ETODOLOGI P ENELITIAN

A. Graph

Graf merupakan struktur diskrit yang memiliki vertek dan edge yang menghubungkanya [2]. Graph G = (V, E) mengandung V, nonempty set yang terdiri dari vertex (atau node) dan E, set dari edge. Setiap edge mengandung satu atau lebih vertek yang berhubungan, disebut dengan endpoints.

Setiap edge dikatakan menghubungkan endpoint-endpoint tersebut. Suatu graph dengan jumlah vertex dan jumlah edge yang berhingga disebut finite graph (graph berhingga), sebaliknya jika jumlah vertex dan edge tak berhingga disebut infinite graph ( graph tak berhingga ). Vertex v

i

dalam graph disebut insident terhadap edge e

k

jika dan hanya jika edge tersebut merupakan penghubung dari vertex v

i.

Dua buah vertex v

i

dan v

j

disebut saling adjacent jika kedua vertex tersebut dihubungkan oleh suatu edge yang sama. Dua buah edge e

k

dan e

l

yang non paralel disebut adjacent jika kedua edge tersebut insident pada suatu vertex persekutuan.

Suatu simple graph yang mana setiap dua vertex yang berlainan dihubungkan oleh suatu edge maka graph itu disebut graph lengkap. Graph lengkap dengan n vertex dinotasikan dengan K

n

.

Gbr 1 Graph Lengkap dengan 4 vertex

B. Algoritma Dijkstra

Algoritma Dijkstra merupakan salah satu yang popular digunakan dalam pencarian rute. Algoritma Dijkstra merupakan salah satu Algoritma Greedy yang dalam menemukan rute optimum mencari seluruh kemungkinan yang ada. Algoritma Dijkstra dapat dgunakan untuk menyelesaikan permasalahan venichle routing problem [2].

Beberapa penelitian membuktikan bahwa algoritma Dijkstra adalah cara yang lebih baik untuk memecahkan masalah pencarian rute optimum dalam bentuk grafik.

Algoritma Dijkstra lebih cepat, menjamin optimalitas dan memiliki kompleksitas komputasi yang rendah dibandingkan dengan Algoritma Simplified Ant Colony Optimization [5].

Jika dibandingkan dari segi skalabilitas (penurunan kinerja bila ukuran jaringan jalan semakin besar), Algoritma Dijkstra lebih baik dari pada Bellman Ford [4]. Algoritma Dijkstra dapat menjamin keoptimalanan dari solusi yang diberikan pada permasalahan shortest path routing problem pada graf [5].

Berikut adalah contoh perhitungan menggunakan Algoritma Dijkstra:

Gbr 3 Menggunakan Algoritma Dijkstra dalam menemukan jalur terpendek dari a ke z

TABEL 1. PROSES PERHITUNGAN ALGORITMA DIJKSTRA

a b C d e z

0 inf Inf inf inf inf

0

Min(inf, 0+4)

4

Min(inf, 0+2)

2

inf inf inf

0

Min(4, 2+1)

3

2

Min(inf, 2+8)

10

Min(inf, 2+10)

12

inf

0 3 2

Min(10, 3+5)

8

12 inf

(15)

0 3 2 8

Min(12, 8+2)

10

Min(i nf, 8+6)

14

0 3 2 8 10

Min(1 4, 10+3)

13 Short

est = 13 Untuk mendapatkan jalur terpendek dari a ke z, pada baris pertama kolom a, set nilai menjadi 0 karena a merupakan vertek awal. Dan seluruh vertek pada baris A set menjadi tak hingga (inf). Pada tabel, dapat dikatakan bahwa nilai 0 merupakan nilai terkecil dan belum ditandai pada baris pertama. Jadi nilai 0 diberikan tanda. Pada baris selanjutnya, cari vertek yang terhubung dengan a. Jika ditinjau bahwa dua vertek x (vertek awal) dan y (vertek tujuan) dan edge yang langsung menghubungkan mereka. Didapatkan fungsi:

Min (DestValue, MarkedValue + EdgeWeight) (1) Dimana:

DestValue = nilai di kolom vertex tujuan.

MarkedValue = nilai dari kolom vertek sumber

EdgeWeight = berat dari edge yang menghubungkan sumbr dengan tujuan.

Misalkan edge A dan B, pada graph kita memliki edge dengan bobot 5 yang menhubungkan a dan b. Jadi dapt dituliskan bahwa Min(inf, 0+5) adalah 5 jadi dapat dituliskan 5. Setelah menggunakan rumus 1 ke seluruh vertex yang terhubung dengan Marked Value, didapakan jarak dari a ke c merupakah jalur terpedek selanjutnya, dan kemudian nilai 2 ditandai. Ulangi proses sampai terdapat jalur optimum yaitu 13.

C. Framework Ionic

Ionic merupakan framework berlisensi open source yang memungkinkan penggunanya untuk mengembangkan aplikasi mobile menggunakan teknologi web. Ionic menggunakan teknologi API dari Apache Cordova/ Phonegap.

Apache Cordova atau cukup disebut Cordova, adalah satu set Application Programming Interface (API) perangkat yang memungkinkan pengembang aplikasi mobile untuk mengakses fungsi perangkat asli seperti kamera atau accelerometer dengan menggunakan bahasa JavaScript.

Aplikasi yang dibangun menggunakan Cordova tetap perlu dikemas sebagai paket aplikasi menggunakan Software Development Kit (SDK) dari platform masing-masing. Jika aplikasi tersebut akan dijalankan pada Android maka pengemasannya tetap harus menggunakan SDK Android, demikian pula untuk platform lainnya. Aplikasi yang dihasilkan merupakan aplikasi hibrid, yang berarti bahwa aplikasi mobile tidak benar-benar murni (karena semua render

tata letak dilakukan melalui tampilan Web bukannya kerangka UI asli platform) atau murni berbasis web (karena tidak merupakan aplikasi Web, namun dikemas sebagai aplikasi untuk distribusi dan memiliki akses ke API perangkat asli).

Ionic dilengkapi dengan engine Node.js yang memungkinkan aplikasi dengan bahasa pemrograman Javasricpt dapat berjalan pada sisi server (pada umumnya program JavaScript berjalan pada sisi client). Untuk Implementasi logic dari Ionic menggunakan Angular.Js yang merupakan framework MVC (Model View Controller) berbasis Javascript

.

D. Perancangan Sistem

Akan dibuat dua buah aplikasi yaitu pada sisi client menggunakan Framework Ionic sedangankan pada sisi server menggunakan bahasa pemrograman PHP pada server local dimana proses perhitungan jalur optimum menggunakan Algoritma Dijkstra dilakukan. Data graf akan disimpan dalam bentuk dokumen JSON, yang akan di-request oleh server untuk diproses dan selanjutnya akan dikirimkan ke aplikasi client.

Gbr 4. Alur Proses Aplikasi Pencarian Rute

Rute kendaraan di Denpasar Utara akan direpresentasikan ke dalam bentuk graph sederhana G(e,v) tidak berarah dengan bobot graph merupakan waktu tempuh kendaraan taksi ditinjau dari jumlah fasilitas umum serta lebar jalan.

Graph Roadmaps dapat digunakan untuk memodelkan peta jalan. Setiap simpul dari graph merupakan persimpangan dari jalan dan jalan yang menghubungkan persimpangan merupakan edge . Label node dari graph merupakan id dari persimpangan yang berada di Kota Denpasar dan bersifat unik.

Bobot dari graph merupakan waktu tempuh yang dihasilkan dari rumus:

t = (2)

Dimana:

t = Waktu tempuh s = Jarak

v = Kecepatan

Dengan menggunakan Rumus 2 tersebut maka akan

didapatkan data waktu tempuh dari setiap jalan yang dilalui

(16)

oleh kendaraan umum. Data tersebut kemudian akan dijadikan sebagai bobot (edge) dalam graf yang kemudian dilakukan perhitungan menggunakan Algoritma Dijkstra untuk mencari jalur optimal.

D. Diagram Use Case

Pada desain use case terdapat dua entitas yang berhubungan dengan sistem yaitu User dan Admin. Pengguna atau user yang akan menggunakan aplikasi ini adalah pengemudi Taksi.

User dapat memiliki beberapa akses yaitu Mencari Jalur Optimal, Melihat Daftar Persimpangan, dan Melihat Panduan. Dan Amin dapat untuk melakukan read, update, view dan delete data, tetapi diperlukan proses login untuk melakukan fitur-fitur yang disebutkan sebelumnya.

Gbr 6. Use Case Aplikasi Pencarian Rute

E. Skenario Uji Coba

Pengujian dilakukan dengan cara menguji waktu eksekusi dari Algoritma Dijkstra. Percobaan dilakukan sebanyak 5 kali, dengan merandom titik awal dan titik akhir yang berbeda.

Dari 5 kali percobaan akan didapatkan rata-rata waktu eksekusi dari Algoritma Dijkstra dalam menemukan jalur paling optimal dari kendaraan taksi.

Data pengujian yang digunakan adalah data Jaringan Jalan di Wilayah Denpasar Utara yang akan direpresentasikan ke dalam bentuk graf dengan node merupakan persimpangan, serta jalan merupakan edge. Waktu tempuh kendaraan taksi akan menjadi bobot dari graf yang didapatkan dari Dinas Perhubungan Kota Denpasar.

Pengujian yang juga akan dilakukan adalah pengujian black box untuk menguji fungsionalitas dari sistem.

III. H ASIL DAN P EMBAHASAN

F. Flowchart Sistem

Flowchart atau diagram alur pada program pencarian rute optimum ini ditunjukkan pada Gbr 7.

Gbr 7. Flowchart Algoritma Dijkstra

Pada Pada Sistem Pencarian Rute Optimum Taksi Menggunakan Algoritma Dijkstra, cara kerja dari Algoritma Dijkstra dimulai dari inisialisasi titik awal dan akhir dari perjalanan taksi yang dikehendaki user. Kemudian proses selanjutnya dari Algoritma Dijsktra melakukan proses pencarian rute dengan nilai fitness terkecil. Nilai fitness yang digunakan merupakan bobot dari graph yang merupakan waktu tempuh dari taksi. Akan dibentuk sebuah array yang menetapkan nilai dari sementara dari setiap rute dengan nilai tak hingga (INF) kecuali untuk bobot titik awal diset dengan nilai 0. Kemudian akan dicari bobot terkecil dari setiap node.

Nilai awal yang bernilai 0 menjadi nilai terkecil yang kemudian diberi tanda atau label. Selanjutnya dicari setiap node yang terhubung dengan node yang diberi label.

Kemudian bobot baru ditentukan dengan Rumus 2. Kemudian lakukan kembali langkah mencari bobot terkecil sampai bobot tujuan ditemukan.

G. Implementasi Antarmuka

Terdapat 3 tampilan utama/form dari sistem ini yaitu, Tabs Tampilan Rute, Tabs All Node,dan Tabs home.

1) Tabs Tampilan Rute: Pada form ini user dapat memilih

titik awal dan akhir untuk selanjutnya diproses oleh Algoritma

Dijkstra untuk mendapatkan kemungkian jalur terbaik. User

memilih titik awal dan akhir pada form select yang berada di

atas menu tab. Kemudian setelah user menekan tombol ,

rute akan ditampilakan berupa titik-titik yang dihubungkan

menggunakan garis yang merepresentasikan jalur optimum

dari kendaraan taksi.

(17)

Gbr 8. Form Tampilan Rute

2) Tabs Home: Pada tabs ini user merupakan tampilan awal saat masuk ke sistem yang berisi deskripsi singkat serta nama dari sistem tersebut

Gbr 9. Form Home

3) Tabs All Node: Pada tabs ini akan ditampilan seluruh node yang merupakan persimpangan di wilayah Denpasar Utara. Pada bagian bawah terdapat form search yang dapat digunakan untuk mencari node atau persimpangan yang diinginkan.

Gbr 10. Form View All Node

Gbr 10 merupakan hasil dari pencarian rute yang ditampilkan dengan marker yang merupakan persimpangan- persimpangan dan dihubungkan dengan oleh garis (direction line) yang merupakan jalan. Untuk menampilkan peta, menggunakan API dari Google Maps yaitu Marker sebagai node dan Direction Line sebagai jalan.

Gbr 11. Form Hasil Rute pada Google Maps

H. Pengujian Running Time Aplikasi

Untuk melakukan pengujian lakukan sampel 5 kali percobaan dengan pemilihan titik awal dan akhir secara acak, kemudian waktu eksekusi merupakan rata-rata dari waktu eksekusi 5 percobaan.

Dari percobaan yang dilakukan, diperoleh hasil seperti berikut.

TABEL 2. PENGUJIAN WAKTU EKSEKUSI PROGRAM

No Node Awal

Node Akhir

Rute Waktu

Tempuh

Waktu Eksekusi 1. 5 34 5 - 7 - 10 -15

- 16 -20 - 63-66 - 43- 32 - 30-34

13.72 menit

1.081625 6205241 E-5

2. 6 56 6 - 10 - 15 -

16 - 20 - 63 - 66 - 67 - 68 - 72 - 74 - 76 - 75 - 57 - 56

11.77 menit

1.126527 7862549 E-5

3. 23 83 23 - 26 - 28 - 30 - 32 - 43 - 42 - 41 - 40 - 105 - 101 - 100 - 108 - 109 - 84 - 83

13.66 1.203219 0958659 E-5

4. 56 39 56 - 58 - 60 - 102 - 105 - 106 - 97 - 93 - 37 - 38 - 39

4.49 1.796483 9935303 E-5 5. 94 45 94 - 93 - 97 -

90 - 52 - 51 -

9.96 1.335144

0429688

(18)

48 - 47 - 46 - 45

E-5

Rute yang dihasilkan merupakan urutan Id dari persimpangan yang merupakan representasi node/simpul pada graf jaringan jalan di Wilayah Denpasar Utara. Dari percobaan diatas didapatkan waktu eksekusi rata-rata sebesar 5.47488020831E-5 microsecond

I. Pengujian Black Box

Pengujian Black Box digunakan untuk menguji fungsionalitas dari sistem

TABEL 3. PENGUJIAN BLACK BOX

Kasus: Melakukan pengujian pencarian rute dan melihat persimpangan.

No Scenario Hasil yang diharapakan

Hasil pengujian 1. User

Memilih Tabs Pencarian Rute pada aplikasi

Sistem menampikan Tabs Pencarian Rute

Sistem telah berhasil menghasilkan hasil pengujian yang diharapkan 2. User

memilih titik awal dan akhir pada form select kemudiam menekan tombol

Sistem menampilkan hasil jalur optimal yang dapat dilalui oleh user, dalam bentuk marker yang

dihubungkan oleh direction line pada google mpas

Sistem telah berhasil menghasilkan hasil pengujian yang diharapkan

3. User menekan tombol dengan logo mobil, untuk mendapatka n informasi rute dengan tampilan direction list

Sistem menampilkan hasil jalur optimal pada Google Map menjadi tampilan direction list

Sistem telah berhasil menghasilkan hasil pengujian yang diharapkan

4. User mengklik tombol pada

Sistem mengarahkan user ke halaman awal

Sistem telah berhasil menghasilkan hasil pengujian yang diharapkan

tampilan halaman Pencarian Rute.

5. User mengklik tombol kembali (<) pada mode tampilan direction list

Sistem mengarahkan user ke halaman hasil pencarian mode direction list

Sistem telah berhasil menghasilkan hasil pengujian yang diharapkan

6. User melihat daftar persimpanga n pada Tabs All Node

User melihat nama

persimpangan yang

sebelumnya dimasukan admin pada sistem

administrator

Sistem telah berhasil menghasilkan hasil pengujian yang diharapkan

IV. K ESIMPULAN

Berdasarkan penelitian yang dilakukan maka dapat disimpulkan bahwa Algoritma Dijktra dapat diimplementasikan ke dalam bentuk aplikasi mobile hybrid dengan framework Ionic untuk mencari rute optimum kendaraan taksi dengan waktu eksekusi program rata-rata sebesar 5.47488020831E-5 microsecond.

R EFERENSI

[1] Ferdifiansyah, Finsa. Perbandingan Algoritma Dijkstra dan Algortima Ant Colony dalam Penentuan Jalur Terpendek.2011

[2] Kenneth H. Rosen, Discete Mathematics and Its Applications, 6

th

edition. McGraw-Hill Higher Education, 2007.

[3] Naukowe, Zeszyty. A Comparison Between Dijkstra Algorithm and Simplified Ant Colony Optimization in Navigation Scientific Journals of Maritime University of Szczecin.2012

[4] Shivani, Jaswinder Singh. Route Planning in Vanet By Comparitive Study of Algorithm. International Journal of Advanced Research in Computer Science and Software Enginerring. 2013

[5] Dramski, Mariusz. A Comparison Between Dijkstra Algorithm and Simplified Ant Colony Optimization. Scientific Journals Maritime University of Szczecin. 2012

[6] Badan Pusat Statistik Provinsi Bali. Banyaknya Kendaraan Bermotor Menurut Jenis Kendaraan dan Kabupaten/Kota di Bali Tahun 2013.

https://bali.bps.go.id/ diakses pada: 15-6-2017

[7] Sjafruddin, Ade. Angkutan Umum, Solusi Kunci Kemacetan Jakarta.

2013. https://www.itb.ac.id/news/3899.xhtml. Diakses pada: 15-6-2017

Referensi

Dokumen terkait