PMO2 Pertemuan 5 Pengenalan Maps, GPS, dan Location based Services

PERTEMUAN 5

PEMROGRAMAN MOBILE 2

Maps, GPS, Location Based Services

Disusun Oleh Kelompok 2 dengan anggota :

16.11.0137                  Untung Nur Khifni

16.11.0117                  Ade Putra Praditya

16.11.0118                  Ahmad

16.11.0164                  Desi Putri Pratiwi

16.11.0123                  Moch Mugni Labib

16.11.0133                  Ridho Santoso Handoyo

16.11.0134                  M.I.Zulkifli Nurul ‘Ilmi

16.11.0142                  Yusup Efendi

16.11.0146                  Yanuar Arviansyah

16.11.0160                  Zidni Mujib

16.11.0165                 Rafli Husain Kurniawan

 

STMIK AMIKOM PURWOKERTO

2018/2019

 

 

1. Pemahaman Maps, GPS dan based location

a. Google MAPS

Google Maps adalah  layanan pemetaan web yang dikembangkan oleh Google. Layanan ini memberikan citra satelit, peta jalan, panorama 360°, kondisi lalu lintas, dan perencanaan rute untuk bepergian dengan berjalan kaki, mobil, sepeda (versi beta), atau angkutan umum.

 

b. Google Maps API

Merupakan Google maps api memungkinkan kita untuk menampilkan peta / maps di dalam aplikasi kita. Kita dapat mengatur mode peta seperti apa yang akan ditampilkan seperti mode “satelit” misalnya. Google Maps API adalah suatu library yang berbentuk javascript yang berguna untuk memodifikasi peda yang ada di Google Maps sesuai dengan kebutuhan. Dalam perkembangannya Goggle Maps API diberikan kemampuan untuk mengambil gambar peta statis. Melakukan geocoding, dan memberikan penuntun arah. Google Maps API bersifat gratis untuk publik.

Kekurangan yang ada pada Google Maps API yaitu jika ingin melakukan akses harus terdapat layanan internet pada perangkat yang digunakan. Sedangkan kelebihan yang ada pada Google Maps API yaitu:

  • Dukungan penuh yang dilakukan Google sehingga terjamin dan bervariasi fitur yang ada pada Google Maps API.
  • Banyak pengembang yang menggunakan Google Maps API sehingga mudah dalam mencari referensi dalam pengembangan aplikasi.

 

c. Google Place Auto Complete

Google menyediakan API yang membuat kita semakin mudah dalam melakukan input alamat seperti nama jalan, nama kota, nama daerah dan nama tempat. Dimana ketika kita mengetikan sebuah kata maka kita akan diberikan pilihan dalam bentuk auto complete secara realtime. Jika juga dapat melaukan filter disini, contoh jika kita ingin hanya ingin menampilkan alamat / tempat yang ada di Indonesia saja.

 

d. Google Direction API

API ini memungkinkan kita untuk mengerahui arah atau rute antara 2 titik koordinat atau lebih. Dengan memanfaatkan API ini kita dapat menggambar garis rute tersebut atau sering dikenal dengan istilah Polyline. Selain rute jika juga mendapatkan informasi berupa jarak, estimasi waktu tiba sampai step-step jalan yang harus kita lewati.

 

e. GPS (Global Positioning System)

Merupakan sistem navigasi satelit yang menyediakan pelacakan posisi dan pengaturan waktu kepada pengguna. GPS dalam istilah formal adalah NAVSTAR GPS, singkatan dari Navigator Satellite Timing and Ranging Global Positioning Sistem. GPS terdiri atas 3 segmen utama, yaitu :

  • Segmen Kontrol, terdiri dari suatu sistem yang mengontrol kegiatan satelit GPS yang tersebar diseluruh dunia.
  • Segmen Satelit, teridir dari satelit-satelit GPS. Satelit bertugas untuk menerima dan menyimpan data yang ditransmisikan oleh segmen kontrol dan memancarkan data secara kontinyu ke segmen pengguna. Konstelasi GPS terdiri dari 24 satelit yang menempati 6 buah bidang orbit yang berbentuk mendekati lingkaran, dengan masing-masing bidang orbit ditempati 4 buah satelit. Kedudukan masingmasing satelit dalam tiap orbitnya diatur sedemikian rupa dengan jarak interval diantaranya tidak sama. Hal ini untuk meminimalkan pengaruh keadaan dimana ada satelit yang tidak berfungsi.
  • Segmen Pengguna, terdiri dari para pengguna yang tersebar diseluruh permukaan bumi dan alat penerima GPS. Segmen ini bertugas menerima data dari satelit dan memprosesnya untuk menentukan posisi, arah, jarak, dan waktu yang diperlukan.

Cara kerja GPS :

  • Pertama-tama yang harus dimiliki untuk menggunakan GPS adalah GPS GPS receiver merupakan perangkat penerima sinyal satelit GPS, perangkat ini berfungsi untuk memperhitungkan letak koordinat berlandaskan data-data yang tersedia.
  • Sinyal gelombang mikro dipancarkan oleh setaip GPS. GPS receiver ini menerima sinyal dari satelit yang memancarkan gelombang mikro dari setiap satelit GPS. Lalu sinyal tersebut mentriangulasi letak dengan cara mengkalkulasikan lamanya perjalanan ketika satelit GPS mengirim kode sinyal dan dikalikan kecepatan cahay yang dimaksudkan sebagai penentu jarak receiver dari satelit.
  • Dengan memiliki minimal 3 kode sinyal dari satelit yang berbeda, penerima sinyal GPS bisa melakukan penghitungan posisi regular satu titik koordinat letak bujur juga letak lintang bumi (Longitude dan Latitude). Dengan kata lain triangulasi digunakan untuk mengunci lokasi ketika GPS tersebut menyala. Ketika mengunci sinyal pada satelit
  • Keempat, GPS receiver mengukur keberadaan atau letak ketinggian suatu titik di atas permukaan laut atau yang disebut Altitude.

 

f. Location based Services

Merupakan istilah umum yang digunakan untuk menggambarkan teknologi yang digunakan untuk menemukan lokasi perangkat yang digunakan atau menggabungkan antara proses dari layanan mobile dengan posisi geografis dari penggunanya. Poin pentingnya adalah ketika posisi target, dimana sebuah target bisa jadi adalah pengguna LBS sendiri atau entitas lain yang tergabung dalam suatu layanan. Dua unsur utama LBS adalah :

  • Location Manager (API Maps)
  • Menyediakan tools/source untuk LBS, API Maps menyedikan fasilitas untuk menampikan, memanupulasi peta berserta fitur-fitur seperti tampilan satelit, jalan, maupun gabungannya.
  • Location Providers (API Location)

Pengguna dapat menentukan lokasinya, melacak gerakan/perpindahan, serta kedekatan dengan lokasi tertentu dengan mendeteksi perpindahan. Secara garis besar, LBS dapat dibagi menjadi dua, yaitu:

  • Pull Service: Layanan hanya diberikan ketika ada permintaan dari pengguna.
  • Push Service: Layanan diberikan langsung oleh sevice provider tanpa menunggu permintaan dari pengguna.

Yang dibangun dari teknologi informasi dan komunikasi baru (New Information and Communication Technologies / NICTS) yang didalamnya meliputi: sistem telekomunikasi mobile dan perangkat genggam, dengan data berasal dari internet dan Sistem Informasi Geografis (SIG) yang menggunakan spatial database.

 

2. Dasar Pembuatan Maps dan based location

a. Pembuatan based location

Dalam mengimplementasikan LBS, ada 2 pendekatan dasar yang digunakan, yaitu :

– Memproses data di lokasi dan mengirimkan hasilnya ke alat.

– Mendapatkan data lokasi dari alat tersebut berdasarkan aplikasi yang menggunakannya secara langsung.

 

Dalam Layanan Berbasis Lokasi terdapat lima komponen penting yaitu meliputi :

  • Mobile Devices: Suatu alat yang digunakan oleh pengguna untuk meminta informasi yang dibutuhkan. Informasi dapat diberikan dalam bentuk suara, gambar, dan teks.
  • Comunication Network: Komponen kedua adalah jaringan komunikasi yang mengirim data pengguna dan informasi yang diminta dari mobile terminal ke Service Provider kemudian mengirimkan kembali informasi yang diminta ke pengguna. Communication Network dapat berupa jaringan seluler (GSM, CDMA), Wireless Local Area Network (WLAN), atau Wireless Wide Area Network (WWAN).
  • Positioning Component: Untuk memproses suatu layanan maka posisi pengguna harus diketahui.
  • Service and Aplication Provider: Penyedia layanan menawarkan berbagai macam layanan kepada pengguna dan bertanggung jawab untuk memproses informasi yang diminta oleh pengguna.
  • Data and Content Provider: Penyedia layanan tidak selalu menyimpan semua data yang dibutuhkan yang bisa diakses oleh pengguna. Untuk itu, data dapat diminta dari data dan content provider.

 

3. Menampilkan Lokasi Saat ini

Untuk aplikasi android yang berbasis lokasi, memiliki fungsionalitas untuk mendeteksi lokasi terkini pengguna menjadi salah satu fungsi yang harus dimiliki. Dengan memanfaatkan Google Maps API, lokasi pengguna dapat diketahui dengan jaringan yang disediakan service provider maupun wifi yang terhubung dengan perangkat android pengguna.

Disini akan dijelaskan bagaimana cara membuat sebuah aplikasi android sederhana untuk melihat lokasi terkini pengguna dengan memanfaatkan Google Maps API yang akan dibangun menggunakan Android Studio. Sebelum memulai diperlukan aplikasi yang sebelumnya dibangun di tutorial Menampilkan Peta Dengan Google Maps API Pada Android Studio.

Persiapan

Beberapa hal yang perlu disiapkan antara lain :

  1. Android Studio.
  2. Perangkat android untuk uji coba aplikasi yang akan dibuat, pastikan perangkat terhubung dengan internet dan aktifkan akses lokasi.
  3. Aplikasi android dengan Google Maps API yang sebelumnnya dibuat di tutorial Menampilkan Peta Dengan Google Maps API Pada Android Studio.

Callback dan Variable Baru

Buka MapsActivity.java pada package java, tambahkan beberapa calback yang diperlukan, antara lain:

  1. ConnectionCallbacks: Callback ini akan memiliki function ‘public function onConnected()’ yang akan dipanggil saat perangkat terhubung dengan jaringan internet.
  2. OnConnectionFailedListener: Menyediakan callback saat klien dengan penyedia layanan gagal terhubung.
  3. LocationListener: Callback ini diperlukan saat terjadi perubahan lokasi pengguna.

Masukan ketiga callback setelah OnMapReadyCallback hingga menjadi

tekan ALT+ENTER dan import class yang diperlukan, hingga menjadi

Klik kanan pada bagian degnan garis bawah merah lalu pihih “Generate”, kemudian pilih “Implement Method”.

Pilih semua method lalu klik OK, lalu tambahkan beberapa variable baru yang nanti akan digunakan dibawahnya. Variable tersebut antara lain :

GoogleApiClient mGoogleApiClient;

private LocationRequest mLocationRequest;

private Marker mCurrLocationMarker;

private Location mLastLocation;

onMapReady()

Fungsi ini dipanggil saat peta siap digunakan. Disini letak ditambahkannya marker, listener dan atribut-atribut fungsional lainnya.

buildGoogleApiClient()

Sekarang kita perlu menginisialisasi Google Play Services. Metode yang akan digunakan adalah builder method (buildGoogleApiClient()). Setelahnya setMyLocationEnabled diperlukan untuk mengaktifkan location layer yang memungkinkan perangkat untuk berinteraksi dengan lokasi terkini pengguna. Buat fungsi baru dengan nama function protected synchronized void buildGoogleApiClient() dan tambahkan kode berikut:

GoogleApiClient.Builder digunakan untuk konfigurasi klien.

.addConnectionCallbacks menyediakan callback yang diperlukan saat klien tengah terhubung atau terputus dari server.

addOnConnectionFailedListener menyediakan callback yang diperlukan saat klien gagal terhubung dengan layanan.

addApi menambahkan LocationServices API titik akhir Google Play Services.

mGoogleApiClient.connect() klien harus terhubung terlebih dahulu sebelum dapat melakukan sebuah operasi.

onConnected()

Dalam aplikasi yang berbasis lokasi, sangat perlu untuk memperbarui lokasi terkini secara berkala. Dengan Location Provider yang memanfaatkan data lokasi dari GPS, sinyal cellular dan jaringan Wi-Fi dapat dilakukan analisa lokasi dengan sangat akurat.

Jadi sekarang aplikasi berbasis lokasi ini telah dapat mengetahui kemungkinan lokasi terkini. Selanjutnya perlu ditambahkan apa yang harus dilakukan saat lokasi pengguna berubah. Untuk itu Google Maps API telah menyediakan fungsi onLocationChanged.

Selanjutnya diperlukan izin untuk mengakses lokasi terkini.

 

Permintaan Izin Akses Lokasi

Pada Android 6.0 Marshmallow, aplikasi tidak akan diberi izin apapun pada saat instalasi. Melainkan aplikasi harus meminta izin satu per satu pada saat aplikasi berjalan. Jadi tambahkan kode berikut:

public static final int MY_PERMISSIONS_REQUEST_LOCATION = 99;

public boolean checkLocationPermission(){

if (ContextCompat.checkSelfPermission(this,

android.Manifest.permission.ACCESS_FINE_LOCATION)

!= PackageManager.PERMISSION_GRANTED) {

if (ActivityCompat.shouldShowRequestPermissionRationale(this,

android.Manifest.permission.ACCESS_FINE_LOCATION)) {

ActivityCompat.requestPermissions(this,

new String[]{android.Manifest.permission.ACCESS_FINE_LOCATION},

MY_PERMISSIONS_REQUEST_LOCATION);

} else {

ActivityCompat.requestPermissions(this,

new String[]{android.Manifest.permission.ACCESS_FINE_LOCATION},

MY_PERMISSIONS_REQUEST_LOCATION);

}

return false;

} else {

return true;

}

}

Pada kode diatas checkSelfPermission harus menghasilkan PackageManager.PERMISSION_GRANTED, sehingga aplikasi dapat melanjutkan prosesnya. Jika aplikasi tidak mendapat izin, method ini akan menghasilkan PERMISSION_DENIED, dan aplikasi akan meminta persetujuan izin dari pengguna.

 

Respon Permintaan Akses Lokasi

Sebuah dialog box akan ditampilkan saat aplikasi meminta persetujuan dari pengguna. Saat pengguna menanggapi, sistem yang menyangkut method onRequestPermissionsResult(), memberikan aplikasi tanggapan dari pengguna. Aplikasi ini mengambil alih apabila persetujuan telah diberikan

Untuk uji coba aplikasi yang telah dibuat gunakan perangkat android yang terhubung ke android studio dan memiliki koneksi internet serta aktifkan akses lokasi pada pengaturan perangkat android. Jika uji coba berhasil maka akan muncul gambar seperti di bawah ini:

 

4. Meperbaharui Lokasi Terbaru Pada Android

Mengaktifkan atau menonaktifkan lokasi

  1. Di ponsel atau tablet Android, tap Setelan  >Keamanan & lokasi >
  2. Tap tombol di kanan atas untuk mengaktifkan atau menonaktifkan lokasi.
  3. Jika mengaktifkan lokasi, Anda dapat menggunakan mode akurasi tinggi untuk hasil yang lebih akurat. Jika Anda diminta untuk meningkatkan keakuratan lokasi, tap Setuju. Atau tap Mode >Akurasi tinggi.

Tips: Untuk mengaktifkan lokasi dengan cepat, geser layar perangkat dari atas ke bawah dengan 2 jari > tap Lokasi.

Memeriksa dan memperbarui lokasi

Jika menggunakan browser, seperti Chrome atau Safari, Anda dapat melihat lokasi Anda dan memperbaruinya langsung dari halaman hasil penelusuran. Langkah ini tidak berlaku untuk Google app.

  1. Di ponsel atau tablet Android, lakukan penelusuran di Google.
  2. Scroll ke bagian bawah halaman hasil penelusuran. Lokasi Anda akan terlihat.
  3. Untuk memperbarui lokasi, tap Gunakan lokasi akurat.
  4. Jika diminta untuk membagikan lokasi perangkat dengan Google, tap Izinkan.

Memeriksa dan memperbarui lokasi pada komputer

Jika menggunakan browser, seperti Chrome atau Safari, Anda dapat melihat lokasi Anda dan memperbaruinya langsung dari halaman hasil penelusuran.

  1. Di komputer, lakukan penelusuran di Google.
  2. Scroll ke bagian bawah halaman hasil penelusuran. Lokasi Anda akan terlihat.
  3. Untuk memperbarui lokasi, klik Gunakan lokasi akurat atau Perbarui lokasi.
  4. Jika Anda diminta membagikan lokasi perangkat dengan Google, klik Izinkan.

Pada Iphone & Ipad

Mengaktifkan atau menonaktifkan lokasi

  1. Di iPhone atau iPad, buka aplikasi Pengaturan.
  2. Tap Privasi >Layanan Lokasi.
  3. Tap tombol di kanan atas untuk mengaktifkan atau menonaktifkan lokasi.

Memeriksa dan memperbarui lokasi

Jika menggunakan browser, seperti Chrome atau Safari, Anda dapat melihat lokasi Anda dan memperbaruinya langsung dari halaman hasil penelusuran. Langkah ini tidak berlaku untuk Google app.

  1. Di iPhone atau iPad, lakukan penelusuran di Google.
  2. Scroll ke bagian bawah halaman hasil penelusuran. Lokasi Anda akan terlihat.
  3. Untuk memperbarui lokasi, tap Gunakan lokasi akurat atau Perbarui.
  4. Jika diminta untuk berbagi lokasi perangkat dengan Google, ketuk Izinkan.

 

Referensi

https://www.simplifiedcoding.net/how-to-search-location-in-google-map-in-android/

http://www.zoftino.com/android-show-current-location-on-map-example

https://medium.com/@rizal_hilman/bermain-google-maps-api-android-kuy-bikin-aplikasi-kayak-go-jek-belajarapi-20b004d6abdf

https://console.cloud.google.com/google/maps-apis/apis/placesandroid.googleapis.com/metrics?project=pmo-pertemuan-5&duration=PT1H

 

http://hirupmotekar.com/wp-content/uploads/2018/11/Pertemuan-5_Kelompok-2.pptx -> download PPT

http://hirupmotekar.com/wp-content/uploads/2018/11/Pertemuan-5_Kelompok-2_word.docx  -> download word

https://drive.google.com/open?id=1HCDiBp-x5aX0HIFW_5bZYV-fSZTP_xlW -> download project