Servis berbasis lokasi (atau kerennya biasa disebut Location Based Service) adalah salah satu bidang yang lagi tren untuk sekarang baik itu untuk aplikasi handphone, desktop, atau web. Lihat saja contohnya sudah banyak yang bermunculan seperti Foursquare dan Koprol, ditambah dengan fitur lokasi di Twitter dan Facebook kabarnya juga akan menambahkan fitur lokasi dalam waktu dekat.
Kali ini saya akan sharing tentang bagaimana caranya membuat aplikasi di handphone yang menyediakan fitur lokasi. Sekarang ini yang saya tau ada beberapa media yang dapat digunakan mengambil posisi seseorang menggunakan handphone, yaitu dengan cara mengambil data lokasi dari nomor identitas BTS terdekat (CellID), eksternal GPS, dan built-in GPS.
Global Positioning System (GPS)
Kalau kita menggunakan GPS untuk mengambil datanya, baik itu yang eksternal atau yang built-in, membutuhkan biaya yang cukup besar karena GPS eksternal paling murah yang saya tau itu sekitar 500 ribuan yang dapat di-pair dengan handphone, sedangkan handphone yang sudah memiliki GPS terpasang didalamnya kisaran harganya setau saya di atas 2 juta semua. Cukup mahal bukan hehe , apalagi untuk kantong mahasiswa.
CellID
Nah cara yang satu lagi adalah dengan mengambil CellID dari BTS terdekat. Kita tidak memerlukan apa-apa untuk mengambil informasi CellID tersebut karena ini sudah ada sejak handphone jaman jadul. CellID sebetulnya itu makanan sehari-harinya anak teknik telekomunikasi, gak perlu kita bahas panjang lebar untuk ini hehe. Ya singkatnya dengan menggunakan CellID kita dapat mengetahui posisi handphone seseorang.
CellID jeleknya jika dibandingkan dengan menggunakan GPS adalah keakuratannya, keakuratan data yang didapat dengan menggunakan CellID bergantung pada seberapa “canggih” daerah anda hehe, kalo anda menggunakan CellID di Irian Jaya yang notabene BTS-BTS-nya pasti sedikit pasti tingkat keakuratannya rendah, tapi jika anda menggunakan CellID di daerah padat Jakarta seperti Jalan Sudirman maka tingkat keakuratannya lebih tinggi.
Alur Pemprosesan CellID Menggunakan Java ME
Nah, poin menariknya adalah ini, dengan menggunakan Java ME untuk membuat program yang dapat mengambil data CellID lalu memprosesnya menjadi koordinat bumi tidaklah rumit. Pertama yang kita harus lakukan adalah mengakses properti sistem dari handphone yang digunakan untuk mengambil data CellID, contoh untuk handphone merek Sony Erricson properti yang harus kita akses adalah sebagai berikut:
- com.sonyericsson.net.cellid => untuk mengambil CellID dari handphone
- com.sonyericsson.net.cmcc => untuk mengambil kode negara (MCC)
- com.sonyericsson.net.cmnc => untuk mengambil kode jaringan handphone (MNC)
- com.sonyericsson.net.lac => untuk mengambil kode area lokal (LAC)
4 properti di atas diperlukan untuk mengambil koordinat kita CellID, MCC, MNC, dan LAC. Jika anda menggunakan handphone jenis lain, cek dokumen whitepaper dari jenis handphone yang anda gunakan, biasanya di situ terdapat properti sistem yang menyimpan keempat data tersebut.
Setelah kita mendapatkan keempat data tersebut, kita tinggal meng-query data-data tersebut di database yang menyimpan data-data CellID dari berbagai negara. Salah satu yang menyediakan database CellID tersebut adalah opencellid.org, opencellid.org menyediakan API untuk mengakses database CellID. Hasil pemprosesan data-data CellID yang kita masukkan ke opencellid.org berupa data XML yang berisi koordinat dan informasi-informasi tambahan dari CellID yang kita masukkan.
Source Code Program Pemprosesan CellID
Oke, setelah penjelasan umum mengenai cara untuk mengambil posisi seorang menggunakan CellID, sekarang saatnya kita mengimplementasikannya dalam bentuk program handphone yang dibuat menggunakan Java ME. Langung saja download di sini: source code
Ada 3 file di source yang saya berikan:
- CellID.java => class yang berisi fungsi-fungsi statik untuk mendapatkan CellID hingga memprosesnya menjadi koordinat
- HttpRequest.java => class yang berisi fungsi untuk HTTP request
- MainApp.java => midlet class yang berisi contoh penggunaan class CellID
Setiap kodingan sudah saya berikan inline comment sebagai deskripsi fungsi-fungsi dari tiap koding yang ada, jadi tidak perlu dituliskan di sini. Selamat mencoba kalau begitu hehe
0 comments:
Posting Komentar