About Me

Agus Haryanto,
Android Trainner,
GoogleMaps (JavaScript) Trainer
JQuery and JQuery Mobile Trainer
Java, Java Script and PHP Trainer
Freelance Developer Android
Freelance Developer Blackberry
Freelance Developer Web (GIS Googlemaps)
Freelance Developer SMS Gateway

jika ingin contact saya bisa emali ke agus.superwriter@gmail.com

ym: agus_h23

Pin BB : 2AD38B33

Facebook : Agus Haryanto


Article

Belajar Android - Pengenalan GPS Android

Jumpa lagi dengan Agus Haryanto diseri tutorial Android, kalau pada tutorial sebelumnya  yang kita bahas fitur CALL android yang berfungsi untuk melakukan panggilan. Sekarang mari kita melangkah ke fitur yang sangat berguna untuk pembuatan aplikasi yang keren,  fitur itu adalah GPS (Global Positionning System).

Hampir Semua Handphone ber OS android dilengkapi GPS, sebetulnya apasih GPS itu.

GPS adalah singkatan dari Global Positionning System, dengan GPS kita dapat mengetahui lokasi kita berada yaitu data koordinat Latitude dan Longitudenya. Bagi yang pernah membuat aplikasi yang menggunakan MAP (Geography Information System) pasti sudah mengenal istilah ini.

GPS hanyalah hardware, untuk memaksimalkannya kita perlu membuat aplikasi yang memanfaatkan GPS.

Ada pertanyaan nih, setelah mengetahui fungsi GPS, kira-kira aplikasi apa yang akan kita bangun ?

Ingat Social networking FourSquare, dimana pada foursquare kita dapat mengetahui posisi teman-teman kita yang sedang online, sehingga apabila ada yang jaraknya dekat dengan kita maka kita bisa copy darat.

Sekarang kita masuk kemateri utama, mulailah belajar dengan pertanyaan

  1. Bagaimanakah cara mendapatkan Lokasi kita saat ini dengan menggunakan GPS di android ?
  2. Bagaimanakah cara menampilkannya dalam bentuk MAP ?

Kita akan jawab dengan pembuatan Aplikasi Android LokasiKu.

1. Seperti biasa kita buat project baru

2. Pada project ini kita akan menampilkan posisi Koordinat yang ditangkap oleh GPS. Untuk itu kita siapkan layoutnya, buka file main.xml tuliskan kode berikut

<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:orientation="vertical" android:layout_width="fill_parent"
	android:layout_height="fill_parent">
	<TextView android:id="@+id/TextView01" android:layout_width="wrap_content"
		android:layout_height="wrap_content" android:text="Longitute: "></TextView>
	<TextView android:id="@+id/TextViewLongitude" android:layout_width="wrap_content"
		android:layout_height="wrap_content" android:text="unknown"></TextView>
	<TextView android:id="@+id/TextView03" android:layout_width="wrap_content"
		android:layout_height="wrap_content" android:text="Latitude: "></TextView>
	<TextView android:id="@+id/TextViewLatitude" android:layout_width="wrap_content"
		android:layout_height="wrap_content" android:text="unknown"></TextView>
</LinearLayout>

3. Setelah Layout kita perlu menambahkan permission pada file AndroidManifest.xml

  1. Setelah Layout kita perlu menambahkan permission pada file AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.agus"
      android:versionCode="1"
      android:versionName="1.0">
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".Lokasiku"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>

    <uses-sdk android:minSdkVersion="8" />
    <uses-permission android:name="android.permission.INTERNET"></uses-permission>
	<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
	<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>

</manifest>

penambahannya ada pada line 18,19 dan 20

5. Sekarang kita kebagian inti yaitu dibagian javanya, buka file LokasiKu.java  ketikkan kode berikut

package com.agus;

import android.app.Activity;
import android.content.Context;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.Toast;

public class Lokasiku extends Activity {

	private LocationManager lm;
	private LocationListener locationListener;
	private TextView latituteField;
	private TextView longitudeField;

	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		latituteField = (TextView) findViewById(R.id.TextViewLatitude);
		longitudeField = (TextView) findViewById(R.id.TextViewLongitude);
		// ---use the LocationManager class to obtain GPS locations---
		lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);

		locationListener = new MyLocationListener();

		lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener);
	}

	/**
	 * Listener Untuk Menangkap setipa perbubahan Lokasi dari GPS
	 *
	 *
	 */
	private class MyLocationListener implements LocationListener {
		//Menampilkan Update Lokasi GPS terkini
		@Override
		public void onLocationChanged(Location loc) {
			if (loc != null) {
				latituteField.setText(String.valueOf(loc.getLatitude()));
				longitudeField.setText(String.valueOf(loc.getLongitude()));

				Toast.makeText(
						getBaseContext(),
						"Location changed : Lat: " + loc.getLatitude()
								+ " Lng: " + loc.getLongitude(),
						Toast.LENGTH_SHORT).show();
			}
		}

		@Override
		public void onProviderDisabled(String provider) {
			// TODO Auto-generated method stub
		}

		@Override
		public void onProviderEnabled(String provider) {
			// TODO Auto-generated method stub
		}

		@Override
		public void onStatusChanged(String provider, int status, Bundle extras) {
			// TODO Auto-generated method stub
		}
	}

}

Untuk menangkap nilai yang dihasilkan oleh GPS android kita menggunakan class LocationManager dan LocationListenner.

Agar setiap terjadi perubahan lokasi, aplikasi kita terus mendapatkan informasi terkini, maka kita perlu membuat inner class yang mengimplement class LocationListenner. Pada program diatas informasi GPS yang berupa letak Latitude dan Longitude posisi kita, di tampilakn pada 2 buah textView. Selain itu kita tampilkan juga dalam bentuk Toast.

Sekarang mari kita jalankan projectnya

Hasilnya masih unknown, lho kok bisa unknown, ia karena nilai defultnya kita set “unknown”, coba perhatikan di file main.xml

Sekarang mari kita coba update lokasinya, Kalau di eclipse kita bisa menggunakan emulator control. Apabila jendela Emulation Control belum ada, kita bisa menampilkannya dengan cara klik Window –> Show View –>Other

Pilih Emulator Control lalu klik OK

Pada Jendela Emulator Kontrol kita bisa set Longitude dan Latitude GPSnya, Karena saya tinggal dijakarta, isikan saja Longitude = 106.85324 dan Latitute=-6.23326
Klik tombol Send

Kembali ke Emulator Android dan lihat apa yang terjadi

Sekarang Nilai Longitude dan Latitude nya sudah terisi, sesuai dengan Nilai yang kita berikan di emulator control.

Coba kita rubah lagi nilai longitude dan Latitude pada Emulator Control lalu klik tombol send maka pada emulator android nilai dari longitude dan latitudenya juga akan berubah sesuai dengan nilai yang ada di emulator control

Sampai disini kita baru setengah jalan, kita baru berhasil mendapatkan koordinatnya. Tujuan kita adalah menampilkan Lokasi kita sekarang dalam MAP. Untuk langkah selanjutnya bisa dilihat ditutorial selanjutnya yang akan membahas menampilkan Google Map di android

Note : untuk yang belum pernah membuat aplikasi android dieclipse, untuk memulainya bisa melihat tutorial Aplikasi Android Sederhana – Manghitung Luas Persegi Panjang

Salam Hangat

Agus Haryanto

Share

51 comments to Belajar Android – Pengenalan GPS Android

  • ahmad rifai

    maaf mas, udah bisa, ternyata harus keluar ruangan. oh iya, saya mau nanya. cara ngambil n ngirim angka latitude sama longitude gimana ya mas. maklum, baru newbie. mohon pencerahannya. :)

Leave a Reply

 

 

 

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Spam protection by WP Captcha-Free