APLIKASI LOCATION BASED SERVICE UNTUK SISTEM PEMESANAN TAKSI ONLINE PADA PLATFORM ANDROID Risdilah Mimma Untsa1, Aries Pratiarso2, A. Subhan Khalilullah 2 1
Politeknik Elektronika Negeri Surabaya, Jurusan Teknik Telekomunikasi 2 Laboratorium Tugas Akhir, Politeknik Elektronika Negeri Surabaya Kampus ITS, Surabaya 60111 e-mail :
[email protected] e-mail :
[email protected] e-mail :
[email protected]
Abstrak I. PENDAHULUAN
Seiring dengan semakin berkembangnya teknologi, dukungan akan aplikasi pada suatu device menjadi sangat besar. Penggunaan sistem operasi Android yang open source pada telepon seluler menjadi pilihan tersendiri untuk memenuhi kelengkapan sesuai kebutuhan. Dengan dukungan sistem operasi Android, memungkinkan pembuatan aplikasi otomatis yang dapat menentukan taksi yang direkomendasikan menjemput calon penumpang sehingga menghubungkan antara sopir taksi dan calon penumpang dimana keduanya dapat saling memantau dengan akses Google Map. Pada aplikasi ini ketika seorang calon penumpang ingin memesan sebuah taksi yang harus dilakukan adalah menekan menu pemesanan pada aplikasi tersebut. Kemudian aplikasi akan mendaftar semua taksi yang sedang online dan belum terisi penumpang. Dari daftar tersebut kemudian akan dihasilkan beberapa taksi berdasarkan jarak yang terdekat dengan posisi calon penumpang. Sebagai data dasar yang akan diolah, digunakan sebuah peta yang merupakan kolaborasi dengan server google, yaitu Google Map. Dengan memanfaatkan GMap API aplikasi mampu melakukan proses modifikasi data seperti menambah dan menghapus data-data taksi yang sedang online. Bagian Djikstra adalah sebuah engine yang dirancang untuk melakukan perhitungan jarak terdekat taksi-taksi dengan calon penumpang. Hasil pengolahannya kemudian akan ditentukan taksi-taksi mana saja yang terdekat dengan calon penumpang sehingga dapat menampilkan informasi posisi taksi maupun calon penumpang dalam bentuk peta geografis memanfaatkan Google Map.
Kata kunci
Seiring dengan semakin berkembangnya teknologi, dukungan akan aplikasi pada suatu device menjadi sangat besar. Apalagi ditambah dengan semakin berkembang luasnya teknologi selular yang menawarkan fitur-fitur baru dalam dunia telekomunikasi. Android menjadi platform alternatif tersendiri sebagai pilihan dalam mengembangkan fitur-fitur yang berbasis linux kernel dengan segala kelebihannya untuk memenuhi kelengkapan sesuai kebutuhan. Penentuan lintasan terpendek dari satu titik ke titik yang lain merupakan masalah yang sering ditemui. Hal ini telah banyak diaplikasikan dalam kehidupan sehari-hari, misalnya pengantar makanan cepat saji yang harus tiba di tempat tujuan dengan tepat dan dalam waktu singkat, seorang desainer jaringan komputer yang harus mendesain perutean pada jaringan untuk memaksimalkan performa jaringan, ataupun pencarian rute terdekat pada jalur angkutan umum. Penentuan rute terpendek ini dapat dimodelkan dengan nilai masing-masing sisi yang merepresentasikan persoalan yang akan dipecahkan. Penentuan rute terpendek yang akan dibahas pada proyek akhir ini ditentukan menggunakan algoritma Dijkstra yang diaplikasikan pada angkutan umum taksi untuk menjemput calon penumpang. Aplikasi tersebut merupakan sebuah layanan berbasis lokasi dan akses Google Map yang mendukung mobilitas dan kelebihan Android. Taksi adalah salah satu alternatif alat transportasi darat yang banyak diminati masyarakat karena jasa taksi yang dapat digunakan dengan mudah. Masyarakat pun dapat dengan langsung memanggil taksi di jalan, menelepon operator taksi atau SMS. Pada umumnya layanan taksi masih menggunakan pemancar radio untuk memberikan informasi adanya pemesan taksi kepada sopir taksi. Penginformasian ini dilakukan secara manual oleh operator layanan taksi dan belum ada
: LBS, Android, Google Map,
Dijkstra
1
konfirmasi taksi mana yang akan melayani pemesan taksi nantinya. Sopir taksi yang akan menjemput pemesan taksi juga tidak dapat mengetahui lokasi calon penumpang berada secara otomatis. Pada penelitian kali ini akan dibuat software aplikasi otomatis yang dapat menentukan jarak terdekat taksi dengan pemesan taksi sehingga taksi itulah yang direkomendasikan menjemput calon penumpang. Aplikasi ini juga memudahkan calon penumpang untuk memesan taksi dalam waktu singkat dan memudahkan sopir taksi dalam mencari lokasi calon penumpang.
devices yang digunakan oleh user. Positioning Component dibagi menjadi dua, yaitu: terminal base dan network base. Pada terminal base posisi diketahui dari mobile device yang digunakan oleh user. Sedangkan network base memanfaatkan jaringan komunikasi yang digunakan oleh user. 2.1.4 Global Positioning System (GPS) Perangkat GPS menerima sinyal yang ditransmisikan oleh satelit GPS. Dalam menentukan posisi, dibutuhkan paling sedikit 3 satelit untuk penentuan posisi 2 dimensi (lintang dan bujur) dan 4 satelit untuk penentuan posisi 3 dimensi (lintang, bujur, dan ketinggian). Semakin banyak satelit yang diperoleh maka akurasi posisi akan semakin tinggi. Untuk mendapatkan sinyal tersebut, perangkat GPS harus berada di ruang terbuka. Apabila perangkat GPS berada dalam ruangan atau kanopi yang lebat dan daerah kita dikelilingi oleh gedung tinggi maka sinyal yang diperoleh akan semakin berkurang sehingga akan sukar untuk menentukan posisi dengan tepat atau bahkan tidak dapat menentukan posisi. Perangkat GPS menerima sinyal dari satelit dan kemudian melakukan perhitungan sehingga pada tampilan umumnya dapat mengetahui posisi (dalam lintang dan bujur), kecepatan, dan waktu. Disamping itu juga informasi tambahan seperti jarak, dan waktu tempuh. GPS dipergunakan pada berbagai bidang antara lain, sistem navigasi pesawat, laut dan darat, pemetaan dan geodesi, survei, sistem penentuan lokasi, pertanian, eksplorasi sumber daya alam, dan masih banyak lagi.
II. TEORI PENUNJANG Dasar teori yang diuraikan pada bab ini meliputi penjelasan platform protokol T.38 dan SIP. 2.1 Location Based Service Layanan Berbasis lokasi adalah layanan informasi yang dapat diakses melalui mobile device dengan mengunakan mobile network yang dilengkapi kemampuan untuk memanfaatkan lokasi dari mobile device tersebut. Layanan berbasis lokasi dapat digambarkan sebagai suatu layanan yang berada pada pertemuan tiga teknologi yaitu : Geographic Information System, Internet Service, dan Mobile Devices. Dalam Layanan Berbasis Lokasi terdapat Lima komponen penting yaitu: 2.1.1 Mobile Devices Suatu alat yang digunakan oleh user untuk meminta informasi yang dibutuhkan. Informasi dapat diberikan dalam bentuk suara, gambar, dan text. Mobile device dapat dibagi menjadi dua jenis yaitu: single purpose dan multi purpose. Mobile device dengan single purpose hanya digunakan untuk satu tujuan saja, contoh: navigation box yang terdapat pada mobil atau truk pengangkut barang. Mobile device dengan multi purpose dapat digunakan untuk mengakses berbagai macam informasi yang diinginkan, contoh : Smart phone, handphone, PDA, Laptop.
2.1.5 Data dan Content Provider Content Provider tidak selalu menyimpan semua data yang dibutuhkan yang bisa diakses oleh user. Untuk itu, data dapat diminta dari data and content provider. Pertama user dengan menggunakan meminta informasi yang diinginkan., untuk itu diperlukan informasi mengenai lokasi user. Lokasi user dapat diketahui dengan dua cara, dengan mengunakan alat navigasi yang sudah terpasang langsung pada mobile device yang digunakan (contohnya ponsel dengan GPS), atau melalui jaringan komunikasi yang telah ada.
2.1.2 Jaringan Komunikasi Komponen kedua adalah jaringan komunikasi yang mengirim data user dan informasi yang diminta dari mobile terminal ke service provider kemudian mengirimkan kembali informasi yang diminta ke user. Jaringan komunikasi dapat berupa jaringan seluler (GSM, CDMA), Wireless Local Area Network (WLAN), atau Wireless Wide Area Network (WWAN).
2.2 Android Android adalah sistem operasi untuk smartphone yang dibuat oleh google corporation. Sistem operasi ini dikembangkan dengan memanfaatkan linux kernel. Versi stable terbaru dari Android adalah Froyo 2.2 yang dirilis pada bulan mei 2010 dengan kernel linux versi 2.6.32. pada versi ini fitur Android sudah dilengkapi dengan koneksi wifi dan browser chrome versi 8.
2.1.3 Positioning Component Untuk memproses suatu layanan maka posisi user harus diketahui. Untuk mengetahui posisi user dapat dilakukan dengan dua cara yaitu berdasarkan jaringan seluler atau berdasarkan pada mobile
2
Dari arsitektur sistem, Android merupakan sekumpulan framework dan virtual machine yang berjalan di atas kernel linux. Gambar lapisan arsitekturnya dapat dilihat pada gambar 2.4. Virtual machine Android bernama Dalvik Virtual Machine (DVM), engine ini berfungsi untuk menginterpretasikan dan menghubungkan seluruh kode mesin yang digunakan oleh setiap aplikasi dengan kernel Linux. Sementara untuk framework aplikasi sebagian besar dikembangkan oleh google dan sebagian yang lain dikembangkan oleh pihak ketiga. Beberapa framework yang dikembangkan oleh Android sendiri misalnya fungsi untuk telephoni seperti panggilan telepon, sms, video call. Untuk browser Android menggunakan google chrome yang sebelumnya sudah dikembangkan oleh google jauh sebelum Android rilis.
Android dapat menggunakan object yang dibangun oleh aplikasi yang lain. Contoh jika ingin menggunakan sebuah object scrollbar, tidak harus membuatnya sendiri, namun bisa saja memanggil object yang berada di aplikasi lainnya. 2.2.2. Siklus Hidup Komponen Android Siklus hidup dari android merupakan logika dasar aliran dari sebuah aplikasi yang dibangun. Untuk komponen aplikasi activity diagram aliran program tampak pada gambar berikut.
APLIKASI ANDROID
ANDROID DESKTOP FRAMEWORK ANDROID APPLICATION FRAMEWORK & LIBRARY
Dalvik Virtual Machine
LINUX KERNEL Modem
LCD
Keypad/Touch
Audio
Bluetooth
Wi-Fi
Gambar 2.2. Diagram alir siklus Android 2.3 SQLite Database Pada Android terdapat fasilitas untuk membuat database yang dikenal dengan SQLite, SQLite adalah salah satu software basis data yang tertanam yang sangat populer, kombinasi SQL interface dan penggunaan memory yang sangat sedikit dengan kecepatan yang sangat cepat. SQLite di android termasuk dalam Android runtime, sehingga setiap versi dari android dapat membuat database dengan SQLite. SQLite telah terinclude pada platform Android. SQLite sendiri terkenal sebagai database yang open-source, stand alone SQL database, berukuran kecil, tidak membutuhkan administrasi, tanpa server, tanpa file konfigurasi dan juga telah digunakan pada banyak aplikasi terkenal. Pada Android, database yang dibuat untuk suatu aplikasi hanya bias diakses oleh aplikasi itu sendiri, aplikasi lain tidak akan bisa mengaksesnya kecuali jika ingin berbagi databasenya yaitu dengan menggunakan content provider. Database SQLite merupakan sebuah file yang dapat diambil, dipindahkan atau meng-copynya ke system lain.
Gambar 2.1. Lapisan arsitektur sistem operasi Android secara umum Aplikasi yang dikembangkan diatas android dibuat dengan menggunakan kode java seperti halnya J2ME yang telah lama digunakan pada platform telepon genggam lainnya. Namun secara siklus program memiliki perbedaan mendasar antara J2ME dengan java yang ada pada Android. Kode java pada Android lebih dekat dengan J2SE. Hingga saat ini android telah banyak digunakan pada produk smartphone seperti Samsung, LG, dan HTC. Dengan dukungan Software Development Kit (SDK) dan Application Programming Interface (API) dari google memberikan kemudahan bagi pihak ketiga untuk membangun aplikasi yang berjalan pada sistem operasi tersebut. 2.2.1. Komponen Aplikasi Android Android memiliki empat komponen meliputi activity, services, broadcast receiver, dan content provider. Komponen aplikasi dapat disebut juga sebagai elemen-elemen aplikasi yang bisa dikembangkan pada platform Android. Perlu diketahui bahwa untuk membangun sebuah aplikasi pada Android bahasa pemrograman yang digunakan adalah Java, seperti halnya J2ME(Java 2 Micro Edition) yang digunakan untuk membangun aplikasi pada perangkat mobile, Java yang dikembangkan pada sistem android memiliki struktur yang tersendiri. Program aplikasi yang dikembangkan pada android tidak memiliki fungsi main. Karateristik lain adalah bahwa semua aplikasi di
2.4 Algoritma Dijkstra Algoritma Dijkstra diperkenalkan oleh ilmuwan komputer Belanda Edsger Dijkstra pada tahun 1959 dan telah secara luas digunakan dalam menentukan rute tersingkat atau jalur terpendek berdasarkan kriteria tertentu yang digunakan sebagai batasan. Khususnya dalam bidang transportasi, batasan yang digunakan tersebut
3
adalah dengan menggunakan fungsi biaya arus. Algoritma ini melakukan komputasi pencarian rute terpendek antara simpul sumber dan simpul tujuan berdasarkan bobot pada sisi yang menghubungkan simpul-simpul dalam graph. Bobot pada sisi bisa berarti jarak.waktu ataupun bobot lainnya. Jalur terpendek dalam graph adalah jumlah total minimum bobot dari sisi-sisi yang menghubungkan simpul sumber dengan simpul tujuan . Algoritma Djikstra bekerja dengan cara mengunjungi simpulsimpul pada graph dimulai dengan simpul sumber. Algoritma Djikstra kemudian secara berulang memilih simpul-simpul terdekat dan menghitung total bobot semua sisi yang dilewati untuk mencapai simpul tersebut. Pada saat MAT (Matriks Asal Tujuan) dibebankan kepada suatu jaringan, bisa saja terjadi kondisi dimana rute yang semula merupakan rute tersingkat akan digantikan oleh rute yang lain akibat terjadinya peningkatan volume pada ruas-ruas tertentu yang semula merupakan bagian dari rute tersingkat tersebut. Diagram alirnya dapat dilihat pada gambar di bawah ini.
Dijkstra
Notifikasi
Gmap API
UI
Gma p
Dat User a Gambar 3.1 Sistem yang dibangun Sebagai data dasar yang akan diolah, digunakan sebuah peta yang merupakan kolaborasi dengan server google, yaitu Google Map. Dengan memanfaatkan GMap API aplikasi mampu melakukan proses modifikasi data seperti menambah dan menghapus data-data taksi yang sedang online. Bagian Djikstra adalah sebuah engine yang dirancang untuk melakukan perhitungan jarak terdekat taksi-taksi dengan calon penumpang. Hasil pengolahannya kemudian akan ditentukan taksi-taksi mana saja yang terdekat dengan calon penumpang. Setelah didapatkan beberapa taksi, kemudian bagian notifikasi akan mengirimkan pesan kepada seluruh taksi yang berada pada jarak terdekat. Bagian UI(User Interface) berfungsi untuk menjembatani pengguna dengan aplikasi yang dikembangkan ini, diantaranya adalah menampilkan informasi posisi taksi maupun calon penumpang dalam bentuk peta geografis memanfaatkan Google Map. Mulai Mulai Pesan Taksi Centroid=posisi penumpang
Menunggu Notifikasi
Mengambil Data Taksi kosong
Notifikasi = 1 Hitung jarak masingmasing taksi dng Dijkstra
Y
Hitung jarak centroid untuk semua taksi
Kirim konfirmasi
Kirim Notifikasi Pemesanan pada Taksi I
Hitung rute terpendek Ke calon penumpang
Menunggu konfirmasi
Status = Menjemput
T Konfirmasi=1
Gambar 2.3. Diagram Alir Dijkstra
Y
III. PERANCANGAN SISTEM
T
Tampilkan posisi Calon penumpang
Ambil Penumpang
Tampilkan Taksi pengirim konfirmasi
Untuk menyelesaikan pembuatan sistem aplikasi pemesanan taksi, maka dilakukan perancangan sistem yang akan dibuat. Agar sistem dapat bekerja sesuai dengan yang diharapkan, dibutuhkan perencanaan yang akan dibahas sebagai berikut.
Status = Full Selesai
Selesai
Gambar 3.2. Diagram alir aplikasi (a).pada sisi penumpang (b).sopir taksi
4
secara manual dan perhitungan program tidak jauh berbeda. Secara grafik sebagai berikut.
Pada diagram alir sisi penumpang, calon penumpang sebagai centroid mengirimkan notifikasi bahwa sedang membutuhkan taksi untuk menjemputnya. Sistem mencari taksi yang tidak berpenumpang sehingga taksi yang berpenumpang otomatis tidak mendapatkan notifikasi tersebut. Penghitungan jarak masing-masing taksi terdekat menggunakan engine Dijkstra. Setelah diketahui jarak masing-masing taksi maka akan diambil yang paling dekat dan taksi itulah yang mendapat notifikasi dari centroid. Untuk diagram alir pada sisi sopir, saat taksi yang tidak berpenumpang mendapat kiriman notifikasi. Setelah mengkonfirmasi notifikasi tersebut maka akan diketahui jarak terpendek menuju centroid dan ditampilkan posisi centroid.
Gambar 4.2 Grafik Perbandingan Perhitungan Dijkstra Manual Vs Program V. KESIMPULAN
IV. HASIL KEMAJUAN PROYEK AKHIR
Dari hasil pengamatan selama tahap perancangan, implementasi dan uji coba sistem yang dibuat dapat diambil kesimpulan sebagai berikut : 1. Aplikasi harus selalu berjalan dengan koneksi internet karena untuk mendapatkan hasil yang real-time mengetahui posisi user. 2. Untuk mendeteksi lokasi user sangat dipengaruhi oleh penerimaan sinyal pada GPS sehingga menyebabkan kondisi ruangan terbuka dapat menangkap sinyal secara cepat dan tepat. 3. Algoritma Dijkstra yang diimplementasikan berhasil mencari jarak terpendek antara user dan taksi dengan perbandingan hasil perhitungan yang tidak jauh berbeda dengan perhitungan secara manual.
Dari rancangan sistem yang dibuat, dilakukan konfigurasi penomoran seperti pada gambar dibawah ini. Dijkstra
Notifikasi
Gmap API
UI
Gma p
Dat User a Gambar 4.1 Sitem pada aplikasi Dari sistem diatas, dilakukan dua macam pengujian pada aplikasi yang sudah diinstal pada ponsel. Pengujian keberhasilan pencarian lokasi user dari ponsel berdasar GPS dan pengujian perhitungan jarak user dengan taksi terdekat menggunakan perhitungan manual dibandingkan dengan perhitungan dijkstra. Pengujian pertama yaitu dengan menjalankan aplikasi pemesanan taksi pada sisi user. Ketika aplikasi dijalankan, secara otomatis GPS pada ponsel akan langsung mendeteksi posisi user untuk ditampilkan pada peta. Pengujian ini dilakukan sebanyak 10 kali pada 10 titik lokasi yang berbeda. Dari 10 pengujian tersebut, didapatkan waktu ratarata sebesar 1 menit 46 detik. Pada pengujian kedua yaitu pengujian perhitungan jarak user dengan taksi terdekat menggunakan perhitungan manual dibandingkan dengan perhitungan dijkstra yang juga dilakukan sebanyak 10 kali pada 10 titik lokasi yang berbeda. Untuk pengujian secara manual dilakukan dengan perbandingan skala pada peta. Dari pengujian tersebut didapatkan jarak dari perhitungan
5