Mendeteksi Lokasi Device dengan Geolocation API di Delphi-Raudus – Geolocation API adalah standard API HTML5 yang dikeluarkan oleh W3C (World Wide Web Consortium), yakni sebuah lembaga internasional yang berkecimpung di bidang standarisasi protokol web. Salah satu milestone badan ini adalah terus mengembangkan standar penyajian web yang lebih modern, dinamis dan responsif, yakni HTML5. Nah, salah satu API (Application Programming Interface) di dalam standar HTML5 adalah GeoLocation, yang berfungsi untuk mengambil data lokasi device (bisa laptop, komputer atau smartphone) jika device tersebut sedang terkoneksi internet. Data lokasi ini sumbernya bermacam-macam, tergantung koneksinya, misalnya dari ISP, access point WIFI atau dari BTS provider telekomunikasi. Data lokasi yang dihasilkan dari API Geolocation ini cukup akurat dan mampu menggambarkan lokasi device, relatif terhadap koneksi internet yang sedang dijalankan. Memang, untuk masalah akurasi masih kalah dengan teknologi GPS yang mampu memberi lokasi absolute longitude dan latitude, namun untuk aplikasi-aplikasi yang hanya membutuhkan deteksi lokasi dalam cakupan ‘area’, penggunaan API Geolocation ini sudah banyak membantu.
Mendeteksi Lokasi Device dengan Geolocation API di Delphi-Raudus
Baiklah, kali ini saya akan memberikan tutorial bagaimana memanfaatkan API geolocation untuk mengambil data lokasi user menggunakan Delphi-raudus. Bagi yang belum tahu Raudus, Raudus adalah semacam framework Delphi yang menangani web service. Raudus dikembangkan secara open source jadi Anda bebas menggunakannya. Kembali ke project kita tadi, kali ini kita akan membuat project Raudus sederhana untuk mengambil data lokasi user. Â Berikut ini adalah langkah-langkahnya :
- Buka IDE Delphi Anda (saya menggunakan Delphi Xe2). Saya anggap Anda sudah menginstal framework Raudus (saya menggunakan Raudus versi 0.8.10). Anda dapat mengunduhnya di http://www.raudus.com/download/
- Buat project Raudus baru melalui menu File | New | Other… | RaApplication
- Ambil komponen RaExtWindow, RaExtLabel (2 bh), RaExtTextField (2 bh) dan RaExtButton. Atur peletakannya seperti gambar di bawah. Di jendela Object Inspector, atur pula property ‘Text’ milik komponen RaExtLabel1, RaExtLabel2 dan RaExtButton1 seperti pada gambar di bawahÂ
- Tambahkan Unit RxGeolocation di bawah ‘Uses’, instance ‘RxGeoLocation1’ dan procedure RxGeolocation1Callback di bawah ‘private’.
uses Classes, SysUtils, Controls,RxGeolocation, RaApplication, RaBase, RaControlsExt; type TRaForm1 = class(TRaForm) RaExtWindow1: TRaExtWindow; RaExtButton1: TRaExtButton; RaExtLabel1: TRaExtLabel; RaExtTextField1: TRaExtTextField; RaExtTextField2: TRaExtTextField; RaExtLabel2: TRaExtLabel; procedure RaExtButton1Click(Sender: TObject); procedure RaFormCreate(Sender: TObject); private { Private declarations } RxGeolocation1: TRxGeolocation; procedure RxGeolocation1Callback(Sender: TObject); public { Public declarations } end;
- Tambahkan script berikut di event RaFormCreate
procedure TRaForm1.RaFormCreate(Sender: TObject); begin RxGeolocation1 := TRxGeolocation.Create(Self); RxGeolocation1.OnCallback := RxGeolocation1Callback; end;
- Tambahkan script berikut untuk procedure ‘RxGeolocation1Callback’
procedure TRaForm1.RxGeolocation1Callback(Sender: TObject); begin if RxGeolocation1.Success then begin RaExtTextField1.Value := FloatToStr(RxGeolocation1.Latitude); RaExtTextField2.value := FloatToStr(RxGeolocation1.Longitude); end; end;
- Tambahkan event handler berikut untuk event onClick milik komponen RaExtButton
procedure TRaForm1.RaExtButton1Click(Sender: TObject); begin RxGeolocation1.Enabled := True; end;
- Running program di atas, dan seharusnya ada jendela command prompt sperti gambar, tanda webserver Raudus sudah running. Jika Anda masih menjumpai error, biasanya karena library path project belum disetting ke master raudus atau copykan folder ‘www’ di C:/Program Files/Raudus ke folder project Anda.
- Buka web browser dan ketik ‘localhost:88’ di address bar. Maka seharusnya Anda akan menjumpai gambar di bawah. Jika belum, biasanya ada warning yang meminta persetujuan bahwa aplikasi akan mengakses lokasi Anda, tepat di bawah address bar.Â
- Tekan tombol ‘Cek lokasi …’ dan perhatikan koordinat yang dihasilkan. Jika Anda penasaran, Anda dapat membuka google map dan mencocokkannya dengan koordinat Anda sekarang. Â
Sampai langkah di atas, Anda sudah berhasil membuat aplikasi yang mengambil data lokasi menggunakan Delphi dan Raudus. Anda dapat pula mengakses aplikasi Raudus Anda tadi mengunakan smartphone. Namun syaratnya antara laptop yang berfungsi sebagai webserver Raudus (aplikasi raudus tadi) dan smartphone harus terhubung dalam jaringan WIFI yang sama atau melalui internet dengan beberapa persyaratan khusus. Untuk yang melalui internet akan saya jelaskan di lain kesempatan karena ada banyak settingan yang harus dilakukan. Kali ini saya akan menunjukkan akses aplikasi raudus melalui jaringan WIFI melalui smartphone. Langkah-langkahnya sebagai berikut :
- Cek IP laptop Anda (yang sedang menjalankan aplikasi Raudus tadi). Dari start program, pada kotak search ketik ‘cmd’. Jika sudah muncul jendela command prompt ketik ‘ipconfig’. Seharusnya di sana akan terpampang ip laptop Anda.Â
- Pastikan aplikasi raudus sudah berjalan
- Koneksikan laptop dengan jaringan WIFI
- Koneksikan smartphone dengan jaringan WIFI yang sama dengan laptop
- Buka web browser di smartphone, dan akses aplikasi Raudus dengan mengetikkan IP laptop:88 (contoh 192.168.10.102:88) di address bar web browser smartphone. Seharusnya tampilan di smartphone Anda adalah sbb :
- Klik tombol ‘Cek lokasi …’ dan lihat koordinat longitude dan latitude yang dihasilkan. Jika perlu cek dengan google map untuk melihat akurasi data.Â
- Selesai 🙂
Aplikasi modern sekarang ini banyak sekali yang menggunakan API geolocation ini, terutama pada aplikasi smartphone. Kegunaan utama dari API ini adalah untuk meng-engage user dan memberikan value added service kepada pemakai aplikasi. Contoh sederhananya begini : aplikasi Anda adalah aplikasi pencari restoran. Tentunya pengguna aplikasi Anda tentu senang menggunakan aplikasi Anda jika ketika dijalankan otomatis mencari restoran yang terdekat dengan lokasi pengguna tadi. Inilah yang dinamakan LBS (Location Based System) application. Masih banyak aplikasi-aplikasi LBS yang sedang marak saat ini. Kebanyakan adalah aplikasi handheld semacam Android atau iOS. Nah, sekarang tinggal kreativitas Anda untuk memanfaatkan API gratis ini. Selamat berkarya …..
a Technopreneur – writer – Enthusiastic about learning AI, IoT, Robotics, Raspberry Pi, Arduino, ESP8266, Delphi, Python, Javascript, PHP, etc. Founder of startup Indomaker.com
saya tertarik aplikasi baca geoposition device, apakah aplikasi ini bisa digunakan untuk membaca lokasi no hp pada hp yg sedang aktif.
Terimakasih
Antok
bisa aja mas antok
agan mohon bantuan nya pada kasus pencarian rute terpendek seperti pada blog ini apa bisa di implementasikan ke program delphi 7, mhon bntuan nya , ini gan contoh kasus yg mau di implentasikan ke program delphi 7 bertzzie.com/knowledge/analisis-algoritma/Greedy.html
kalo pencarian rute terpendek paling mudah pake javascript googlemaps mas, kalo mau pake delphi 7 agak susah, harus oprek2 dulu
kalau pakai yg java sript gmna ya mas apa harus berbasis web,soalnya ada tugas dari kuliah membuat jalur terpendek , mhon bntuan nya mas
sdh dpt gan solusinya,hee
Maaf mas, saya mau tanya… setelah saya jalankan aplikasi yang dibuat kok muncul error File not found : ‘RxGeolocation.dcu’ ? Library RxGeolocation memang sudah bawaan atau perlu diinstal dulu? saya menggunakan Delphi 7 dan raudus versi 0.8.10 . mohon bantuannya.
MAS saya kok error yang di bagian uses untuk RxGeolocation, ???
di web browser udah diijinkan belum buat akses lokasi?
Agan bisa minta tolong buatin aplikasi ngga gan
bisa aja gan, tapi kita kan profesional gan, ada fee-nya
Selamat pagi,
mas aji, raudus sayakok ga ada component raext yah
mungkin versi yang lebih baru ya mas? kalo punya saya versi 0.8.7