1 PENERAPAN ALGORITME DIJKSTRA PADA RUTE ANGKOT BOGOR BERBASIS ANDROID MUHAMMAD IRAWAN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INS...
PENERAPAN ALGORITME DIJKSTRA PADA RUTE ANGKOT BOGOR BERBASIS ANDROID
MUHAMMAD IRAWAN
ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR BOGOR 2013
PERNYATAAN MENGENAI SKRIPSI DAN SUMBER INFORMASI SERTA PELIMPAHAN HAK CIPTA Dengan ini saya menyatakan bahwa skripsi berjudul Penerapan Algoritme Dijkstra pada Rute Angkot Bogor Berbasis Android adalah benar karya saya dengan arahan dari komisi pembimbing dan belum diajukan dalam bentuk apa pun kepada perguruan tinggi mana pun. Sumber informasi yang berasal atau dikutip dari karya yang diterbitkan maupun tidak diterbitkan dari penulis lain telah disebutkan dalam teks dan dicantumkan dalam Daftar Pustaka di bagian akhir disertasi ini. Dengan ini saya melimpahkan hak cipta dari karya tulis saya kepada Institut Pertanian Bogor. Bogor, Juli 2013 Muhammad Irawan NIM G64061092
ABSTRAK MUHAMMAD IRAWAN. Penerapan Algoritme Dijkstra pada Rute Angkot Bogor Berbasis Android. Dibimbing oleh ENDANG PURNAMA GIRI. Bogor mempunyai beberapa permasalahan angkot, yaitu jumlah yang banyak dan jalur yang membingungkan. Sistem informasi mengenai angkot dengan menggunakan algoritme Dijkstra di dalamnya dibutuhkan untuk membantu pengguna menentukan angkot yang tepat sehingga didapatkan rute terpendek untuk mencapai lokasi tujuan. Sistem ini dibangun dengan bahasa pemrograman Java dan XML. Sistem ini telah diuji dengan metode blackcox dan berhasil memberikan pengguna tentang informasi jalur terpendek dan informasi angkot sesuai dengan kebutuhan utama sistem. Kata kunci: Android, Angkot, Dijkstra
ABSTRACT MUHAMMAD IRAWAN. Dijkstra Algorithm Implementation on Angkot of Bogor Based on Android. Supervised by ENDANG PURNAMA GIRI. There are some problems dealing with angkot in Bogor. The problems are related to the complexity of route system and amount of angkot unit. In this research, information system was developed for guiding user in order to choose the most efficient route to reach the purpose location. The Dijkstra algorithme was employed to support the system in order to find the route that provide the shortest distance from the origin to the purpose location. The system was developed by using Java and XML programming language and evaluated by applying black box testing method. The evaluation results show that the system can succesfully meet all requirements, particularly providing the most efficient route of a certain location. Keywords: Android, Angkot, Dijkstra
PENERAPAN ALGORITME DIJKSTRA PADA RUTE ANGKOT BOGOR BERBASIS ANDROID
MUHAMMAD IRAWAN
Skripsi sebagai salah satu syarat untuk memperoleh gelar Sarjana Komputer pada Departemen Ilmu Komputer
ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR BOGOR 2013
Penguji: 1 Dr Eng Heru Sukoco, SSi, MT 2 Hendra Rahmawan, SKom, MT
Judul Skripsi : Penerapan Algoritme Dijkstra Pada Rute Angkot Bogor Berbasis Android Nama : Muhammad Irawan NIM : G64061092
Disetujui oleh
Endang Purnama Giri, S.Kom, M.Kom Pembimbing I
Diketahui oleh
Dr Ir Agus Buono, M.Si, M.kom Ketua Departemen
Tanggal Lulus:
PRAKATA Puji dan syukur penulis panjatkan kepada Allah subhanahu wa ta’ala atas segala karunia-Nya sehingga karya ilmiah ini berhasil diselesaikan. Pada kesempatan ini penulis ingin menyampaikan ucapan terima kasih kepada Orang tua dan adik satu-satunya atas dukungan yang telah diberikan. Penulis juga ingin menyampaikan terima kasih kepada pembimbing, yaitu Bapak Endang yang telah bersabar membantu dalam penulisan skripsi ini hingga selesai. Ucapan terima kasih juga penulis sampaikan untuk para penguji, yaitu Bapak Heru dan Bapak Hendra atas kritik dan saran untuk pengerjaan karya ilmiah ini. Penulis ingin menyampaikan terima kasih secara khusus kepada Windu, Dede, Rendi, Faizal, Antoni, Erri, dan Hamidah atas berbagai bantuan dalam pengerjaan skripsi ini. Secara umum penulis juga ingin berterima kasih kepada teman-teman yang rasanya tidak mungkin penulis sebutkan seluruhnya. Penulis juga tidak lupa ingin mengucapkan rasa terima kasih kepada para dosen dan para pegawai Departemen Ilmu Komputer, khususnya kepada Mbak Rahma, Okta, dan Mas Irfan yang telah banyak membantu dalam urusan administrasi. Penulis berharap dari karya ilmiah ini dapat memberi manfaat kepada pihak lain dan dapat dikembangkan lebih baik dari ini. Terakhir, penulis pun selalu berharap Allah ta’ala membalas dengan kebaikan bagi kita semua.
Bogor, Juli 2013 Muhammad Irawan
DAFTAR ISI DAFTAR TABEL
vi
DAFTAR GAMBAR
vi
DAFTAR LAMPIRAN
vi
PENDAHULUAN
1
Latar Belakang
1
Tujuan Penelitian
2
Manfaat Penelitian
3
Ruang Lingkup Penelitian
3
METODE
3
Requirement Definition
4
System and Software Design
4
Implementation and Unit Testing
4
Integration and System Testing
4
Operation and Maintenance
4
HASIL DAN PEMBAHASAN
5
Requirement Definition
5
System and Software Design
6
Implementation and Unit Testing
12
Integration and System Testing
19
SIMPULAN DAN SARAN
19
Simpulan
19
Saran
19
DAFTAR PUSTAKA
19
LAMPIRAN
21
RIWAYAT HIDUP
29
DAFTAR TABEL 1 Perbandingan Jumlah Angkot di Beberapa Kota 2 Daftar tabel dan penjelasan tabel pada database aplikasi angkot mobile
Pertumbuhan Android Dibandingkan dengan Sistem Operasi lain Waterfall model (Sommerville 2007) Use Case aplikasi angkot mobile Ilustrasi Algoritme Dijkstra (Cormen et al 2002) Activity mencari jalur terpendek Activity info perjalanan Activity pencarian angkot Activity mengubah tampilan peta Rancangan antarmuka pembuka aplikasi angkot mobile Rancangan antarmuka pencarian jalur aplikasi angkot mobile Gambar rancangan antarmuka hasil pencarian aplikasi angkot mobile Rancangan antarmuka pencarian angkot menurut lokasi Rancangan antarmuka informasi angkot Implementasi antarmuka halaman pembuka Implementasi antarmuka pencarian jalur Implementasi antarmuka hasil pencarian jalur dalam peta Implementasi antarmuka daftar angkot untuk bisa sampai tujuan Implementasi antarmuka informasi angkot Implementasi antarmuka menu pilihan peta Implementasi antarmuka perubahan jenis peta Implementasi antarmuka pencarian angkot berdasarkan lokasi Implementasi antarmuka daftar angkot yang lewat suatu lokasi
DAFTAR LAMPIRAN 1 Tabel skenario uji dan hasil pengujian sistem angkot mobile 2 ERD database aplikasi angkot mobile 3 Kode XML untuk menampilkan antarmuka pada Gambar 15 4 Kode XML untuk menampilkan antarmuka pada Gambar 16 5 Kode XML untuk menampilkan antarmuka pada Gambar 18 6 Kode XML untuk menampilkan antarmuka pada Gambar 21 7 Narasi penjelasan algoritme Dijkstra.
21 22 23 23 23 23 23
PENDAHULUAN Latar Belakang Bogor dikenal sebagai kota hujan dan kota sejuta angkot. Angkot (Angkutan Kota) merupakan moda transportasi darat di daerah perkotaan yang dipergunakan untuk umum (KBBI 2008). Jumlah angkot yang terdapat di kota Bogor memang sangat banyak jika dibandingkan dengan kota-kota lain di sekitarnya, disebutkan di dalam situs resmi kota Bogor terdapat 3412 unit angkutan kota, sedangkan luas wilayah kota Bogor sendiri sekitar 119 km2. Sebagai perbandingan, menurut data yang terdapat di situs pemerintah kota Bekasi, Bogor, Depok, dan Tangerang Selatan (Tangsel) didapatkan data luas kota Depok dengan wilayah yang lebih besar (201 km2) dari kota Bogor ‘hanya’ memiliki angkot sebanyak 2800-an unit. Memang kota Bekasi memiliki jumlah angkot yang lebih banyak daripada kota Bogor, yaitu 4487 unit tapi kota Bekasi memiliki luas wilayah yang lebih besar dari kota Bogor (211 km2). Jika dibandingkan secara singkat dengan menghitung jumlah angkot per 1 km2, didapatkan hasil seperti di dalam Tabel 1 di bawah ini: Tabel 1 Perbandingan Jumlah Angkot di Beberapa Kota Keterangan Luas Unit Unit/Luas
Tangsel 148 km2 2297 16
Depok 201 km2 2884 14
Bekasi 211 km2 4487 21
Bogor 119 km2 3412 29
Tabel di atas (Tabel 1) memberikan gambaran bahwa kota Bogor memiliki perbandingan antara luas wilayah dengan jumlah angkot yang terbesar dengan 29 unit per 1 km2. Belum lagi apabila ditambahkan dengan sebagian angkot dari daerah kabupaten yang juga melewati wilayah kota Bogor. Oleh karena itu, dapat disimpulkan bahwa Bogor memang sangat padat dengan angkot. Setiap jalan di kota Bogor hampir pasti dilalui oleh angkot, bahkan beberapa jalan kecil dan kompleks perumahan pun dilalui angkot. Jumlah angkot yang banyak ini tentu berpengaruh pada trayek atau jalur yang dilayani. Jumlah trayek yang banyak tentu akan membuat para pengguna jasa angkutan umum ini menjadi bingung, terutama para pendatang. Bahkan, sebagian mahasiswa yang sudah beberapa lama tinggal di Bogor saja terkadang masih bingung dalam menentukan angkot yang akan ditumpangi. Ditambah lagi dengan nama daerah yang tidak dikenal sehingga menambah kerumitan dalam memilih angkot yang akan dinaiki. Selain masalah jumlah angkot yang sangat banyak, ada persoalan rumit lain yang menghinggapi dunia angkutan perkotaan di kota Bogor dan sebagian daerah yang bertetanggaan. Perbedaan jalur yang ditempuh suatu angkot untuk mencapai suatu tujuan. Hal ini dimungkinkan terjadi karena terdapat beberapa jalur (jalan) yang bersifat satu arah sehingga membuat angkot akan melalui jalan yang berbeda setiap kali ‘pergi’ dan ‘pulang’. Di samping itu, pencirian trayek angkot yang berbeda di kota bogor hanya menggunakan pembedaan warna pada bagian bawah dari mobil angkot yang bersangkutan dan sebagian orang yang kurang memperhatikan hal ini akan menemukan kesulitan untuk membedakan angkot dengan trayek berbeda. Tidak sedikit orang yang menganggap angkot di kota
2 Bogor berwarna hijau semua. Hal-hal seperti inilah yang semakin memberikan kesan bahwa angkutan perkotaan di Bogor sangat membingungkan. Beberapa kenyataan merepotkan di atas menjadi latar belakang untuk mengembangkan suatu aplikasi yang dapat membantu warga Bogor dan para pendatang dalam menggunakan angkot yang ada di Bogor. Aplikasi yang dibuat akan berjalan di perangkat mobile dengan sistem operasi Android. Aplikasi ini menggunakan bahasa pemrograman Java dan memanfaatkan API dari GoogleMaps. Database yang digunakan dalam sistem ini adalah SQLite. Dalam operasinya sistem ini membutuhkan jaringan internet agar dapat mengakses peta dari GoogleMaps. Aplikasi ini berbasis Android karena Android merupakan salah satu sistem operasi perangkat mobile yang populer digunakan saat ini. Untuk mendukung pernyataan ini diberikan grafik pada Gambar 1 yang menampilkan jumlah pengguna Android bila dibandingkan dengan sistem operasi mobile lainnya hingga April 2013. Android sendiri dapat diartikan sebagai sistem operasi untuk perangkat bergerak berbasis linux yang mencakup sistem operasi, middleware, dan aplikasi. Android menyediakan platform terbuka bagi para pengembang untuk menciptakan aplikasi mereka (Safaat 2012). Selain karena kepopulerannya yang telah disebutkan di atas, Android juga dipilih karena bersifat open source sehingga lebih mudah untuk dikembangkan oleh siapa saja.
Gambar 1 Pertumbuhan Android dibandingkan dengan sistem operasi lain (gs.statcounter.com, Mei 2013) Tujuan Penelitian Penelitian ini memiliki tujuan, yaitu membuat sebuah aplikasi mobile berbasis Android yang dapat membantu pengguna untuk menentukan rute terpendek dan angkot yang dapat digunakan untuk menempuh rute tersebut ketika ingin berpindah lokasi dari satu tempat ke tempat lain di kota Bogor.
3 Manfaat Penelitian Penelitian ini diharapkan dapat mempermudah pengguna untuk bisa menentukan angkot yang tepat dengan pilihan jalur yang paling dekat berdasarkan jarak antar lokasi. Selain itu, sistem ini diharapkan dapat menjadi panduan bagi pengguna angkutan umum di Bogor untuk menemukan informasi dari suatu angkot di wilayah Bogor. Bahkan untuk pengguna kendaraan pribadi, sistem ini pun dapat memberi informasi jalur mana yang terpendek untuk mencapai suatu lokasi. Ruang Lingkup Penelitian Ruang lingkup dan batasan dari penelitian ini adalah sebagai berikut: 1 Implementasi dilakukan menggunakan bahasa pemrograman Java dan XML. 2 DBMS yang digunakan adalah SQLite Database Browser Portable. 3 Penelitian ini hanya dapat digunakan pada perangkat dengan sistem operasi Android. 4 Data yang digunakan dalam penelitian ini terbatas hanya pada beberapa titik atau daerah tertentu saja dan beberapa data yang dipakai bukan data aktual. 5 Algoritme yang digunakan adalah Dijkstra untuk mencari rute terpendek berdasarkan bobot jarak dalam satuan meter. 6 Pemilihan rute tidak mempertimbangkan kemungkinan macet, nilai tarif, ataupun kenyamanan. 7 Informasi yang ditampilkan meliputi rute jalan, informasi angkot yang digunakan, serta tarif dari masing-masing angkot yang ada di Kota Bogor.
METODE Penelitian ini dibagi ke dalam lima tahap, yaitu requirement definition, system and software design, implementation and unit testing, integration and system testing, operation and maintenance. Tahap yang dilakukan ini mengacu pada model waterfall yang diberikan pada Gambar 2. Requirement definition
System and software design
Implementation and unit testing
Integration and system testing
Operation and maintenance
Gambar 2 Waterfall model (Sommerville 2007)
4 Requirement Definition Pada tahap ini diperkirakan kebutuhan yang harus ada pada sebuah aplikasi transportasi. Melalui studi pustaka dan melihat aplikasi lain untuk perjalanan kereta api dan layanan bus Transjakarta. Melalui pendekatan terhadap aplikasi yang telah ada dan melihat tujuan pada bab pendahuluan, dapat mengetahui kebutuhan minimal yang harus disiapkan untuk membuat sebuah aplikasi angkot yang berjalan di dalam perangkat mobile (bergerak). Tahap ini penting untuk dilakukan agar dapat diketahui kebutuhan sistem dan data dalam pembuatan aplikasi ini. System and Software Design Tahap ini dilakukan setelah requirement definition (analisis kebutuhan) selesai dilakukan. Perancangan dimodelkan dengan Unified Modelling Language (UML). UML dipilih karena merupakan notasi standar untuk sistem berorientasi objek. Perancangan dilakukan agar dimiliki gambaran umum mengenai aplikasi meliputi tampilan dan cara kerja sistem. Tahap ini dilakukan agar tahap pengembangan menjadi lebih mudah dan terarah. Tahap ini dibagi menjadi tiga bagian, yaitu perancangan sistem, perancangan database, dan perancangan antarmuka. Implementation and Unit Testing Tahap implementasi dilakukan mengacu kepada tahap sebelumnya, yaitu system and software design (perancangan). Tahap ini dilakukan dengan menuangkan perancangan ke dalam kumpulan kode program atau beberapa unit program ke dalam bahasa pemrograman java. Dari beberapa bagian kode yang dibuat untuk merepresentasikan tata letak dari tampilan aplikasi digunakan dokumen berformat XML. Integration and System Testing Tahapan ini dilakukan apabila tiga tahap sebelumnya telah selesai dilaksanakan. Tahap ini dilakukan untuk melakukan penggabungan dari seluruh modul hasil implementasi, selanjutnya hasil penggabungan tersebut akan dievaluasi secara keseluruhan sehingga apabila terdapat kekurangan di dalam sistem dapat diketahui dan diperbaiki sebelum dipakai oleh pengguna. Operation and Maintenance Tahap terakhir dalam perancangan dengan menggunakan model waterfall ini adalah operation and maintenance (pemakaian dan perawatan). Pada tahap ini selain pemakaian aplikasi juga dilakukan perbaikan kesalahan yang mungkin belum ditemukan pada tahap sebelumnya. Jika ada, akan ditambahkan kebutuhan baru ke dalam aplikasi ini.
5
HASIL DAN PEMBAHASAN Telah disebutkan sebelumnya bahwa dalam pembuatan aplikasi ini digunakan metodologi Waterfall. Pada bab ini akan dipaparkan secara lebih rinci dari setiap tahapan yang dilakukan ketika aplikasi ini dibuat. Requirement Definition Sistem ini ditujukan untuk membantu pengguna agar dapat memilih angkot untuk mencapai suatu tujuan dengan jarak tempuh yang paling pendek dari beberapa jalur yang tersedia. Ada beberapa hal yang meliputi perjalanan dari sebuah angkot, yaitu: 1 Lokasi, meliputi tempat asal, tempat yang dilewati, dan tempat tujuan yang akan dicapai. 2 Jarak, jarak antara beberapa tempat yang dilalui sebelum sampai tujuan maupun jarak total dari rute yang dilalui. 3 Nomor angkot, digunakan untuk membedakan trayek yang dilalui setiap angkot. 4 Tarif, nilai uang yang harus dibayarkan ketika menggunakan angkot. Pada aplikasi ini digunakan nilai tarif termahal dari setiap trayek angkot. Empat hal ini merupakan data penting yang seharusnya ada untuk sebuah aplikasi angkot yang akan dibuat. Selain itu, untuk memudahkan pengguna membaca informasi pada aplikasi ini juga dibutuhkan peta agar dapat menampilkan jalur yang dilalui oleh suatu angkot. Jadi pengguna dapat melihat jalur untuk mencapai lokasi tujuan dari lokasi asal. Hasil dari analisis kebutuhan tersebut dituangkan ke dalam bentuk Use case diagram (Gambar 3) dengan 5 (lima) use case yaitu: 1 Mencari angkot merupakan use case untuk mendapatkan angkot melalui pencarian pada suatu lokasi. 2 Mengubah tampilan peta memberikan keleluasaan bagi pengguna untuk mengganti jenis peta tertampil (empat jenis peta). 3 Mencari jalur terpendek adalah use case untuk mendapatkan rute terpendek berdasarkan lokasi yang telah dipilih sebelumnya, yaitu lokasi asal dan lokasi tujuan. 4 Melihat info perjalanan memberikan daftar angkot yang harus dinaiki oleh pengguna agar bisa mencapai lokasi tujuan. 5 Melihat gambar angkot merupakan use case yang memberikan informasi mengenai suatu angkot berupa gambar, tarif, dan trayek dari sebuah angkot. Use case ini ditemukan setelah pengguna melalui use case mencari angkot dan melihat info perjalanan.
6 Mencari angkot Mengubah tampilan peta Mencari jalur terpendek
Melihat info perjalanan Pengguna
Melihat gambar angkot
Gambar 3 Use Case aplikasi angkot mobile System and Software Design Tahap perancangan terbagi ke dalam tiga bagian, yaitu perancangan sistem, perancangan database, dan perancangan antarmuka. 1 Perancangan Sistem Salah satu inti aplikasi ini adalah mencari jalur terpendek dengan menggunakan algoritme Dijkstra. Dijkstra dipilih karena memang dikembangkan sebagai sebuah algoritme yang efisien untuk menemukan jalur terpendek berdasarkan suatu bobot bernilai positif, dari sebuah verteks awal (Uo) ke semua verteks yang lain di dalam sebuah graf G yang terboboti (Chartrand dan Oellermann 1993). Penjelasan detail mengenai algoritme Dijkstra dapat dilihat pada Lampiran 7. Asumsi w(u, v) ≥ 0 untuk setiap edge (jalan) (u, v) ∈ E. Q merupakan urutan nilai minimum dari beberapa verteks, ditunjukkan oleh nilai d. S adalah himpunan yang berisi verteks yang telah dicek oleh Dijkstra. Q adalah himpunan verteks dalam suatu graf G. π adalah verteks yang harus dilalui sebelum sampai ke verteks tujuan. Di bawah ini terdapat algoritme Dijkstra (Cormen et al. 2002). DIJKSTRA(G,w, s) 1 INITIALIZE-SINGLE-SOURCE(G, s) 2S←∅ 3 Q ← V[G] 4 while Q ≠ ∅ 5 do u ← EXTRACT-MIN(Q) 6 S ← S ∪ {u} 7 for each vertex v ∈ Adj[u] 8 do RELAX(u, v,w) RELAX (u, v,w) 1 if d[v] > d[u] + w(u, v) 2 then d[v] ← d[u] + w(u, v) 3 π[v]← u
7 Di bawah ini, di Gambar 4 terdapat ilustrasi dari implementasi algoritme Dijkstra (Cormen et al 2002):
Gambar 4 Ilustrasi Algoritme Dijkstra (Cormen et al 2002) Aplikasi ini memiliki lima activity utama. Activity ini dibuat berdasarkan use case yang ada. Berikut adalah sebagian gambar dari activity yang dituangkan ke dalam activity diagram:
Pilih Lokasi
Cari Jalur
Lihat Jalur
Gambar 5 Activity mencari jalur terpendek Activity diagram pada Gambar 5 menggambarkan tiga tahap dalam mencari jalur terpendek. Pertama, pengguna memilih lokasi asal dan lokasi tujuan. Kedua, pengguna menekan tombol cari jalur setelah menentukan dua lokasi (asal dan tujuan). Ketiga, muncul peta beserta jalur yang terpendek yang disarankan oleh aplikasi.
8
Pilih lokasi
Lihat jalur
Lihat info perjalanan
Gambar 6 Activity info perjalanan Activity pada Gambar 6 dapat ditemui pengguna setelah melewati activity pada Gambar 5. Ketika peta telah muncul, pengguna menekan tombol pilihan pada perangkatnya dan memilih menu info perjalanan. Pada menu ini akan muncul daftar angkot yang harus dinaiki pengguna agar bisa sampai ke lokasi tujuan. Activity pada Gambar 7 dimulai dengan memasukkan nama lokasi pada tempat yang telah disediakan lalu menekan tombol cari angkot. Setelah tombol cari angkot ditekan akan muncul hasil pencarian berupa daftar angkot yang lewat pada suatu lokasi.
Masukkan lokasi
Tekan tombol cari
Lihat hasil pencarian
Gambar 7 Activity pencarian angkot
9 Activity melihat gambar angkot dapat ditemukan setelah activity info perjalanan dan activity pencarian angkot. Activity ini akan diaktifkan apabila pengguna memilih daftar angkot yang tampil pada activity info perjalanan dan activity pencarian angkot. Activity yang ada pada Gambar 8 hanya dapat dilakukan apabila pengguna telah melalui activity mencari jalur terpendek. Setelah peta standar muncul, pengguna dapat menekan tombol pilihan pada perangkatnya dan memilih menu mode peta untuk bisa memilih jenis peta yang diinginkan. Activity yang dibuat telah sesuai dengan tujuan, yaitu dapat membantu pengguna untuk menentukan angkot yang tepat berdasarkan jarak terpendek.
Pilih lokasi
Lihat jalur
Ubah tampilan peta
Gambar 8 Activity mengubah tampilan peta 2 Perancangan Database Aplikasi ini memiliki empat tabel pada database. Penjelasan mengenai data yang digunakan di dalam database dapat dilihat pada Tabel 2. Tabel 2 Daftar tabel dan penjelasan tabel pada database aplikasi angkot mobile Nama Tabel Angkot AngkotLokasi
Lokasi
VertexTetangga
Penjelasan Tabel ini berisi kolom idangkot, nomor pada angkot, lokasi satu(awal), lokasi dua(akhir), dan tarif(tertinggi) Tabel ini menyimpan kolom idangkotlokasi, idangkot, dan idlokasi. Tabel ini digunakan untuk memberi keterangan angkot yang lewat pada suatu lokasi. Tabel ini memiliki kolom idlokasi, lati, longi, namalokasi, dan status. Kolom lati berarti latitude dari lokasi tersebut, sedangkan longi berarti longitude. tabel ini punya 4 kolom, yaitu id, posisiawal, tetangga, jarak. Tabel ini berfungsi untuk menjelaskan lokasi yang bertetangga.
3 Perancangan Antarmuka
10 Aplikasi ini dirancang untuk penggunaan secara portrait, sehingga hasil tidak cocok untuk ditampilkan dalam bentuk landscape. Tampilan awal (Gambar 9) menampilkan dua tombol di tengah layar, yaitu pencarian jalur dan pencarian angkot. Rancangan antarmuka utama (Gambar 10), yaitu pencarian jalur diisi dengan dua list yang setiap list dipilih dengan dropdown. Setiap list berisi lokasilokasi yang dapat dipilih. Setelah pengguna menentukan lokasi asal dan tujuan, dibutuhkan tombol untuk eksekusi algoritme Dijkstra dan menampilkan peta.
Gambar 9 Rancangan antarmuka pembuka aplikasi angkot mobile Tombol pencarian jalur pada Gambar 9 akan mengarahkan pengguna ke rancangan pada Gambar 10. Pada Gambar 10 akan ditampilkan daftar lokasi asal dan lokasi tujuan dan tombol untuk melakukan pencarian dengan algoritme Dijkstra. Setelah menekan tombol pencarian pengguna akan diarahkan ke rancangan pada Gambar 11 yang menampilkan peta dan jalur terpendek yang telah ditemukan dengan algoritme dijsktra. Rancangan pada Gambar 11 menyediakan dua buah menu apabila pengguna menekan tombol pilihan pada perangkatnya. Menu yang tersedia ada dua, yaitu info perjalanan dan mode peta. Menu info perjalanan akan berisi daftar angkot yang harus dinaiki pengguna untuk bisa sampai ke lokasi tujuan, sedangkan mode peta memberikan pilihan bagi pengguna untuk mengubah tampilan peta dari peta standar yang muncul setiap kali ditekan tombol pencarian menjadi peta jenis lain yang telah tersedia.
11
Gambar 10 Rancangan antarmuka pencarian jalur aplikasi angkot mobile Tombol pencarian angkot pada Gambar 9 akan mengarahkan pengguna ke antarmuka seperti tampak pada Gambar 12. Pada Gambar 12 pengguna memasukkan nama lokasi yang diinginkan lalu menekan tombol cari angkot sehingga akan muncul daftar angkot yang dapat dipilih. Setelah dipilih salah satu angkot maka ditampilkan Gambar 13.
Gambar 11 Gambar rancangan antarmuka hasil pencarian aplikasi angkot mobile
12
Gambar 12 Rancangan antarmuka pencarian angkot menurut lokasi
Gambar 13 Rancangan antarmuka informasi angkot Gambar 13 memperlihatkan rancangan antarmuka yang dapat dilihat oleh pengguna berisi informasi mengenai suatu angkot, yaitu nomor trayek angkot, tarif angkot, rute angkot, dan gambar angkot. Implementation and Unit Testing 1 Implementasi Perangkat Keras Spesifikasi perangkat keras yang digunakan dalam penelitian ini, yaitu: • Harddisk 320 GB
13 • Memory RAM 2GB • Processor Intel(R) Core(TM) i3 M380 • Samsung Galaxy Mini • Vandroid S5 2 Implementasi Perangkat Lunak Perangkat lunak yang digunakan adalah sebagai berikut: • Android Developer Tools v21.0.1-543035 • Bahasa pemrograman Java • Framework Android SDK • Emulator Android Virtual Device • DBMS SQLite Database 1.3 • Library GoogleMaps API • Windows 7 Professional 3 Implementasi Database Aplikasi ini memiliki database dengan empat tabel mengikuti yang terdapat pada tahap perancangan tanpa ada perubahan. Database untuk aplikasi ini dibuat dengan bantuan aplikasi SQLite browser portable yang dapat digunakan untuk sistem operasi mobile berbasis Android. 4 Implementasi Antarmuka Antarmuka dari aplikasi yang dikembangakan ini dibuat dengan bantuan Android Developer Tools v21.0.1-543035. Antarmuka yang dibuat mengacu pada perancangan untuk setiap activity dengan menu info perjalanan dan perubahan tampilan peta terdapat pada rancangan antarmuka tampilan peta dan jalur pada Gambar 11. Berikut ini adalah gambar-gambar dari implementasi antarmuka pada perangkat mobile berbasis Android. Implementasi ini diujikan pada perangkat Samsung Galaxy Mini, Vandroid S5, dan emulator Android.
Gambar 14 Implementasi antarmuka halaman pembuka
14 Gambar 14 muncul setelah antarmuka yang berisi judul aplikasi (splash screen) tampil. Implementasi yang terdapat pada Gambar 14 mengacu pada rancangan antarmuka yang telah dibuat sebelumnya. Tampak pada Gambar 14 antarmuka diisi oleh dua tombol yang terletak di tengah.
Gambar 15 Implementasi antarmuka pencarian jalur Gambar 15 menunjukkan tampilan antarmuka untuk memilih lokasi asal dan tujuan. Di bagian bawah pada Gambar 15 terdapat tombol Cari Jalur yang akan melakukan eksekusi algoritme Dijkstra sekaligus menampilkan peta.
Gambar 16 Implementasi antarmuka hasil pencarian jalur dalam peta
15 Gambar 16 menunjukkan peta dengan jalur terpendek yang telah didapatkan dengan algoritme Dijkstra. Di peta ini terdapat titik-titik berwarna hijau berupa lokasi yang dilewati dan garis berwarna merah yang menunjukkan jalur untuk mencapai lokasi yang dituju, sedangkan dua balon berwarna merah menunjukkan lokasi asal dan tujuan yang telah dipilih sebelumnya oleh pengguna. Antarmuka peta yang digunakan adalah peta yang disediakan oleh GoogleMaps. Peta diakses dengan menggunakan Google API. Peta yang ditampilkan berdasarkan nilai tengah dari titik-titik koordinat yang ada pada database lalu dihitung nilai tengahnya. Sehingga didapatkan ukuran peta yang sesuai untuk menampilkan semua titik dari sebuah rute. Penentuan titik lokasi (titik hijau dan balon merah) dilakukan setelah perhitungan untuk menemukan jalur terpendek dilakukan. Setelah itu diambil nilai koordinat (latitude dan longitude) dari tiap lokasi lalu dimasukkan sebagai parameter untuk menentukan titik dari tiap lokasi (titik hijau dan balon merah) sekaligus memberi tanda jalan (garis merah) yang ditempuh untuk mencapai lokasi tujuan. Antarmuka yang berisi peta dan jalur memberikan dua pilihan menu, yaitu info perjalanan dan mode peta. Menu info perjalanan (Gambar 17) menampilkan daftar angkot yang harus dinaiki untuk sampai ke lokasi tujuan. Sedangkan mode peta memungkinkan pengguna untuk mengubah tampilan peta menjadi normal, hybrid, satellite,dan terrain.
Gambar 17 Implementasi antarmuka daftar angkot untuk bisa sampai tujuan Gambar 18 akan muncul setelah pengguna melakukan tap pada salah satu daftar angkot yang tersedia di menu info perjalanan (Gambar 17). Pada antarmuka ini ditampilkan gambar angkot dan informasi lainnya (nomor trayek, tarif, dan rute angkot) dari suatu angkot agar pengguna bisa mengetahui informasi angkot yang sesuai dengan tujuannya.
16
Gambar 18 Implementasi antarmuka informasi angkot
Gambar 19 Implementasi antarmuka menu pilihan peta Gambar 19 menunjukkan pilihan jenis peta. Ada jenis peta normal yang langsung tampil setelah pengguna menekan tombol cari jalur. Peta normal menampilkan peta dalam bentuk dua dimensi dengan keterangan jalan-jalan yang ada di sekitar suatu wilayah. Peta hybrid menampilkan peta penggabungan antara foto satelit dengan peta normal yang berisi wilayah dan jalan di sekitarnya. Peta satellite menampilkan peta hasil foto satelit yang telah dimiliki GoogleMaps. Terakhir, peta terrain menampilkan peta yang menunjukkan relief permukaan bumi yang menunjukkan ketinggian dari suatu lokasi. Pada Gambar 20 pengguna telah mengubah jenis peta yang ditampilkan menjadi hybrid. Tampak di Gambar 20 foto satelit dengan keterangan wilayahwilayah.
17
Gambar 20 Implementasi antarmuka perubahan jenis peta Gambar 21 memperlihatkan tampilan menu pencarian angkot berdasarkan lokasi yang dimasukkan oleh pengguna. Setelah tombol cari angkot ditekan pengguna akan diarahkan menuju Gambar 22. Gambar 22 menunjukkan tampilan daftar angkot yang lewat pada lokasi yang telah dimasukkan sebelumnya. Apabila pengguna memilih salah satu angkot, maka pengguna akan diarahkan kembali ke Gambar 18 yang menunjukkan informasi dari suatu angkot.
Gambar 21 Implementasi antarmuka pencarian angkot berdasarkan lokasi
18
Gambar 22 Implementasi antarmuka daftar angkot yang lewat suatu lokasi 5 Implementasi Sistem Fitur pencarian jalur terpendek di dalam aplikasi ini menggunakan algoritme dijstra. Dijkstra akan memilih rute yang memiliki total jarak terpendek untuk mencapai suatu lokasi atau verteks dari nilai jarak yang dimasukkan ke dalam database di dalam tabel vertextetangga. Nilai jarak didapatkan dari jarak yang harus ditempuh dari satu titik menuju titik yang lain (verteks yang bertetangga). Titik pada suatu lokasi ditentukan dari nilai latitude dan longitude. Nilai latitude dan longitude didapatkan dengan bantuan GoogleMaps. Dengan nilai latitude dan longitude dari suatu titik yang bertetangga didapatkan nilai jarak dalam satuan meter dan disimpan ke dalam database untuk dihitung dengan Dijkstra. Nilai latitude dan longitude yang sudah didapatkan disimpan juga ke dalam database untuk dipanggil kembali ketika menentukan titik dari suatu lokasi. Rute angkot didapatkan melalui proses berikut ini: 1 Pengguna menentukan lokasi asal dan tujuan. 2 Dijkstra menghitung dan memilih jarak terpendek berdasarkan tetangga dari suatu verteks sampai ditemukan lokasi tujuan. 3 Rute terpendek yang telah didapatkan oleh Dijkstra disimpan. 4 Setelah rute untuk mencapai tujuan diketahui, sistem akan mengecek kembali database untuk melihat angkot-angkot yang lewat pada lokasi yang dilalui untuk sampai tujuan. Kueri yang digunakan untuk melakukan pengecekan ini adalah (contoh lokasi: duber) select a.idAngkot, a.nomor, a.tarif, a.awal, a.akhir from angkotlokasi al left join angkot a on al.idangkot = a.idAngkot where al.idLokasi = (select idlokasi from lokasi where namalokasi = 'duber') 5 Angkot yang dipilih adalah angkot yang mampu mencapai lokasi terjauh jika terdapat angkot yang sama pada suatu rute.
19 Integration and System Testing Aplikasi ini telah diuji dengan emulator dan perangkat bergerak, yaitu ponsel Android froyo dan yang lebih tinggi dari itu. Metode pengujian yang dipilih adalah blackbox untuk mengetahui fungsi dari aplikasi dapat bekerja dengan baik atau tidak. Rincian skenario pengujian sistem dapat dilihat pada Lampiran 1. Hasil pengujian menunjukkan bahwa sistem bekerja sesuai dengan skenario uji atau sukses. Hasil dari pengujian juga dapat dilihat pada Lampiran 1.
SIMPULAN DAN SARAN Simpulan Aplikasi penentuan rute angkot menggunakan algoritme Dijkstra telah selesai dibuat. Fungsi utama dari Aplikasi ini yaitu menyediakan informasi angkot yang sesuai dengan rute terpendek untuk mencapai suatu lokasi. Selain itu pada aplikasi ini juga disediakan informasi secara umum yang berkaitan dengan angkot di Kota Bogor berupa nomor angkot, tarif, dan trayeknya. Dari penelitian ini juga dapat disimpulkan bahwa aplikasi yang dibuat telah berjalan sesuai dengan skenario uji yang dilakukan. Algoritme Dijkstra dapat berjalan di dalam lingkungan perangkat mobile berbasis Android untuk mencari rute terpendek berdasarkan parameter jarak. Pemilihan Android sebagai lingkunagan sistem operasi ditujukan untuk memberikan kemudahan baik bagi pengguna maupun bagi pengembang dalam mengembangkan aplikasi di masa mendatang dalam kaitannya dengan fleksibilitas penggunaan beragam perangkat keras yang dapat digunakan untuk instalasi aplikasi yang dihasilkan. Saran Aplikasi yang dihasilkan dari penelitian ini masih memiliki beberapa kekurangan, oleh karena itu beberapa saran yang harapannya dapat menjadikan aplikasi ini lebih baik, yaitu: 1 Penambahan data sehingga cakupan lokasi menjadi lebih luas. 2 Penggunaan fitur GPS di Android untuk menentukan lokasi asal dengan mempertimbangkan lokasi dan jalan terdekat di sekitarnya. 3 Penambahan fungsi validasi dan rancangan input output yang lebih mudah dengan mempertimbangkan usability untuk mengolah data agar menghindari kesalahan dalam pemasukan data yang dapat berpengaruh pada hasil pencarian.
DAFTAR PUSTAKA Chartrand G, Oellermann OR. 1993. Applied and Algorithmic Graph Theory. New York (US): McGraw-Hill Inc. Cormen TH, Leiserson CE, Rivest RL, Stein C. 2002. Introduction to Algorithms. Ed ke-2. New York (US): McGraw-Hill Inc.
20 Depdiknas. 2008. Kamus Besar Bahasa Indonesia Pusat Bahasa. Ed Ke-4. Jakarta (ID). Gramedia Pustaka Utama Murphy ML. 2011. Android Programming Tutorials. Macungie (US): CommonsWare, LLC. Safaat N. 2012. Pemrograman Aplikasi Mobile Smartphone dan Tablet PC Berbasis Android: Edisi Revisi. Bandung (ID): Informatika Bandung. Sommerville I. 2007. Software Engineering. Ed ke-8. Harlow (UK): Pearson Education Ltd. Statcounter. 2013. StatCounter Global Stats: Top 8 Mobile Operating Systems in Indonesia from Nov 2012 to Apr 2013. [Internet]. [diunduh 12 Mei 2012]. Tersedia pada: http://gs.statcounter.com/#mobile_os-ID-monthly-201211201304.
21 Lampiran 1 Tabel skenario uji dan hasil pengujian sistem angkot mobile Pengujian Tingkat
Kondisi Awal
Skenario
Hasil yang Diharapkan
Hasil Uji
Activity utama
Memilih daftar lokasi asal dengan dropdown
Tampil beberapa lokasi yang dapat dipilih
Sukses
Activity utama
Memilih daftar lokasi tujuan dengan dropdown
Tampil beberapa lokasi yang dapat dipilih
Sukses
Activity utama
Menekan tombol cari jalur setelah menentukan lokasi asal dan tujuan
Muncul jalur terpendek berdasarkan algoritme Dijkstra
Sukses
Menampilkan peta google
Activity utama
Menekan tombol cari jalur setelah menentukan lokasi asal dan tujuan
Muncul peta google
Sukses
Melihat info perjalanan
Sudah tampil peta google dengan jalur terpendek
Menekan tombol menu di perangkat lalu memilih menu info perjalanan
Muncul pop-up yang menampilkan angkot yang dapat dinaiki
Sukses
Mengubah tampilan peta
Sudah tampil peta google dengan jalur terpendek
Menekan tombol menu di perangkat lalu memilih menu mode peta
Tampilan peta berubah dari tampilan standar
Sukses
Melihat info lokasi
Sudah tampil peta google dengan jalur terpendek
Melakukan tap pada titik lokasi
Muncul pop-up kecil yang berisi sedikit info lokasi
Sukses
Mencari angkot berdasarkan lokasi
Halaman pembuka
Menekan tombol pencarian angkot
Muncul pop-up daftar angkot yang melewati lokasi tersebut
Sukses
Melihat informasi dari suatu angkot
Sudah tampil info perjalanan atau daftar angkot pada pencarian
Melakukan tap pada salah satu angkot dari daftar angkot yang muncul
Muncul tampilan informasi angkot yang berisi trayek, tarif, dan gambar angkot
Sukses
Nama Mengganti lokasi asal
Mengganti lokasi tujuan
Mencari jalur terpendek (Dijkstra)
Device
22 Lampiran 2 ERD database aplikasi angkot mobile idangkot idangkotlokasi
nomor awal
idangkot angkot
angkotlokasi
akhir idlokasi tarif
Memiliki idlokasi jarak namalokasi lokasi
vertextetanga
tetangga
idangkot posisiawal lati
status longi
id
23 Lampiran 3 Kode XML untuk menampilkan antarmuka pada Gambar 15 <Spinner android:id="@+id/spinnerDari" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="5dp" android:contentDescription="Asal" /> <Spinner android:id="@+id/spinnerKe" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="5dp" /> <Button android:id="@+id/button1" android:layout_width="128dp" android:layout_height="wrap_content" android:layout_gravity="right" android:layout_marginBottom="5dp" android:layout_marginLeft="5dp" android:layout_marginRight="5dp" android:layout_marginTop="20dp" android:text="Cari Jalur" />
24 Lampiran 4 Kode XML untuk menampilkan antarmuka pada Gambar 16