Tutorial Membuat Aplikasi GPS dan Compass Menggunakan Android Studio


Hai bertemu lagi dengan saya pada blog saya malasnugas.com disini saya akan memberikan sebuah program untuk referensi kalian jika kalian akan membuat sebuah Aplikasi GPS ataupun Compass menggunakan Android Studio .Ketika Google memulai untuk memberikan layanan peta beberapa tahun yang lalu, masih belum bisa dipastikan apakah dapat digabungkan dengan aplikasi perangkat mobile. Dan pada saat versi web pertama dari aplikasi Google Map dirilis, iPhone sudah mulai mengembangkan untuk dapat digabungkan dengan perangkat mobile. Dan sekarang, Google Map dapat diakses secara langsung melalui aplikasi Android dengan menggunakan Google Maps Android API.Menggunakan Google Map membutuhkan koneksi internet. Sehingga kita perlu memberikan
permission untuk dapat menggunakan INTERNET untuk aplikasi kita. Selain Internet juga
<uses-permission android:name="android.permission.INTERNET"/>
beberapa Akses permission lainnya yakni ACCESS_COARSE_LOCATION dan
ACCESS_FINE_LOCATION untuk dapat menggunakan GPS.
APLIKASI DENGAN GOOGLE MAP
Membuat aplikasi android yang menggunakan Google Maps Android API v2 memerlukan beberapa langkah,
sebagai berikut:
1. Install Android SDK
2. Download dan konfigurasi Google Play Service SDK, termasuk didalamnya Google Maps Android API.
3. Miliki API key dengan cara register project ke Google Developer Console.
4. Tambahkan setting-an yang diperlukan pada AndroidManifest
5. Tambahkan sebuah peta pada aplikasi
6. Jalankan aplikasi.
Berikut detil langkah-langkahnya:
1. Install Android SDK. Langkah pertama sudah dilakukan.
2. Download dan konfigurasi Google Play Service SDK, termasuk didalamnya Google Maps Android API.
Install Google Play Service SDK, jika pada android studio belum ada.
3. Buat activity dengan memilih map activity, langkah tersebut secara otomatis menambahkan pengaturan
tentang map.
4. Tambahkan versi Google Play service pada manifest dengan mengedit AndroidManifest.xml.
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
5. Tambahkan Google Maps API key pada aplikasi. Kunci ini free dan kita bisa mendapatkannya sebanyak yang kita mau.
6. Untuk mendapatkan kunci, masuk ke Google Console (console.developers.google.com)

7. Pilih Credential, kemudian API key.

8. API key sudah dibuat, copykan kode yang ada di kotak Yout API key.

9. Setelah itu, tambahkan kunci yang diperoleh pada AndroidManifest
<meta-data
android :name= "com.google.android.geo.API_KEY"
android :value= "YOUR_API_KEY" />
10. Kemudian kita tambahkan permission pada manifest dengan menambahkan <uses permission>
<uses-permission android:name="permission_name"/>
Sebagai contoh, untuk permintaan Internet digunakan:
<uses-permission android:name="android.permission.INTERNET"/>
Selain itu, untuk menggunakan Google Maps Android API digunakan permission sebagai berikut:
 android.permission.INTERNET Digunakan oleh API untuk mendownload peta dari Google Maps
Server.
 android.permission.ACCESS_NETWORK_STATE Untuk mnegecek koneksi.
 android.permission.WRITE_EXTERNAL_STORAGE Untuk menyimpan ke penyimpan eksternal.
Permissin berikut dapat digunakan.
 android.permission.ACCESS_COARSE_LOCATION Untuk menggunakan Wifi untuk menentukan
lokasi device.
 android.permission.ACCESS_FINE_LOCATION untuk agar API dapat menggunakan Global
Positioning System (GPS) untuk menentukan lokasi peralatan dalam area yang sangat kecil.
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<!-- The following two permissions are not required to use
Google Maps Android API v2, but are recommended. -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
PRAKTIK
1. Pertama kita akan membuat project untuk pendeteksian lokasi.
2. Buat project baru. Kemudian buat sebuah activity dengan nama activity_main.xml. Kodingnya
adalah sebagai berikut.
<LinearLayout xmlns: android= "http://schemas.android.com/apk/res/android"
xmlns: tools = "http://schemas.android.com/tools"
android :layout_width= "match_parent"
android :layout_height= "match_parent"
android :paddingBottom= "@dimen/activity_vertical_margin"
android :paddingLeft= "@dimen/activity_horizontal_margin"
android :paddingRight= "@dimen/activity_horizontal_margin"
android :paddingTop= "@dimen/activity_vertical_margin"
tools :context= ".MainActivity"
android :orientation= "vertical" >
<LinearLayout
android :layout_width= "match_parent"
android :layout_height= "wrap_content"
android :layout_marginTop= "40dip" >
<TextView
android :id= "@+id/TextView01"
android :layout_width= "wrap_content"
android :layout_height= "wrap_content"
android :layout_marginLeft= "10dip"
android :layout_marginRight= "5dip"
android :text= "Latitude: "
android :textSize= "20dip" ></TextView>
<TextView
android :id= "@+id/TextView02"
android :layout_width= "wrap_content"
android :layout_height= "wrap_content"
android :text= "unknown"
android :textSize= "30dip"
android :textStyle= "bold"
android :textIsSelectable= "false" ></TextView>
</LinearLayout>
<LinearLayout
android :layout_width= "match_parent"
android :layout_height= "wrap_content" >
<TextView
android :id= "@+id/TextView03"
android :layout_width= "wrap_content"
android :layout_height= "wrap_content"
android :layout_marginLeft= "10dip"
android :layout_marginRight= "5dip"
android :text= "Longitute: "
android :textSize= "20dip" ></TextView>
<TextView
android :id= "@+id/TextView04"
android :layout_width= "wrap_content"
android :layout_height= "wrap_content"
android :text= "unknown"
android :textSize= "30dip"
android :textStyle= "bold" ></TextView>
</LinearLayout>
</LinearLayout>
3. Kemudian pada resource string beri nilai pada appname.
<string name="app_name">Cari Lokasi</ string>
4. Kemudian pada manifest tambahkan Permission berikut.
<uses-permission android:name= "android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name= "android.permission.NETWORK_PROVIDER" />
<uses-permission android:name= "android.permission.GPS_PROVIDER" />
5. Dan tambahkan pada file MainActivity.java sehingga menjadi sebagai berikut
import android.content.Context;
import android.location.Criteria;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity implements LocationListener {
private TextView latituteField;
private TextView longitudeField;
private LocationManager locationManager;
private String provider;
@Override
public void onCreate(Bundle savedInstanceState) {
super .onCreate(savedInstanceState);
setContentView(R.layout. activity_main);
latituteField = (TextView) findViewById(R.id. TextView02);
longitudeField = (TextView) findViewById(R.id. TextView04);
locationManager = (LocationManager)
getSystemService(Context. LOCATION_SERVICE);
Criteria criteria = new Criteria();
provider = locationManager .getBestProvider(criteria, false);
Location location = locationManager .getLastKnownLocation(provider);
if (location != null) {
System.out.println("Provider " + provider + " has been selected.");
onLocationChanged(location);
} else {
latituteField .setText("Location not available");
longitudeField .setText("Location not available");
}
}
@Override
protected void onResume() {
super .onResume();
locationManager .requestLocationUpdates(provider, 400, 1, this);
}
@Override
protected void onPause() {
super .onPause();
locationManager .removeUpdates(this);
}
@Override
public void onLocationChanged(Location location) {
double lat = (location.getLatitude());
double lng = (location.getLongitude());
latituteField .setText(String.valueOf(lat));
longitudeField .setText(String.valueOf(lng));
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
@Override
public void onProviderEnabled(String provider) {
Toast.makeText(this, "Enabled new provider " + provider,
Toast.LENGTH_SHORT).show();
}
@Override
public void onProviderDisabled(String provider) {
Toast.makeText(this, "Disabled provider " + provider,
Toast.LENGTH_SHORT).show();
}
}
6. Jalankan project diatas.
7. Jika anda menjalankan di emulator, ikuti langkah-langkah berikut
8. Jalankan projetnya. Anda harus masuk ke telnet.
9. Jalankan control panel
10. Buka program and features
11. Klik windows feature on & off (kiri atas)
12. Cari telnet client, centang, kemudian ok
13. Masuk ke command prompt, cmd
14. Ketik > telnet localhost (no port emulator, biasanya 5554)
15. Jika sudah masuk, ketikkan > geo fix <nilai longitude> <nilai latitude>
16. Misalnya > geo fix 30.219470 -97.745361
17. Buat project baru. Tuliskan pada activity_mail.xml. Kodingnya sebagai berikut.
<RelativeLayout xmlns:android= "http://schemas.android.com/apk/res/android"
xmlns:tools=http://schemas.android.com/tools
android:layout_width= "match_parent"
android:layout_height= "match_parent"
android:paddingLeft= "@dimen/activity_horizontal_margin"
android:paddingRight= "@dimen/activity_horizontal_margin"
android:paddingTop= "@dimen/activity_vertical_margin"
android:paddingBottom= "@dimen/activity_vertical_margin"
tools:context= ".MainActivity" >
<TextView
android :id= "@+id/tvHeading"
android :layout_width= "wrap_content"
android :layout_height= "wrap_content"
android :layout_centerHorizontal= "true"
android :layout_marginBottom= "40dp"
android :layout_marginTop= "20dp"
android :text= "Heading: 0.0" />
<ImageView
android :id= "@+id/imageViewCompass"
android :layout_width= "wrap_content"
android :layout_height= "wrap_content"
android :layout_below= "@+id/tvHeading"
android :layout_centerHorizontal= "true"
android:src= "@drawable/compass" />
</RelativeLayout>
18. Ubahlah MainActivity.java, sehingga menjadi berikut.
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.animation.Animation;
import android.view.animation.RotateAnimation;
import android.widget.ImageView;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity implements SensorEventListener {
private ImageView image;
private float currentDegree = 0f;
private SensorManager mSensorManager;
TextView tvHeading;
@Override
protected void onCreate(Bundle savedInstanceState) {
super .onCreate(savedInstanceState);
setContentView(R.layout. activity_main);
image = (ImageView) findViewById(R.id. imageViewCompass);
tvHeading = (TextView) findViewById(R.id. tvHeading);
mSensorManager = (SensorManager) getSystemService( SENSOR_SERVICE);
}
@Override
protected void onResume() {
super .onResume();
mSensorManager .registerListener(this,
mSensorManager .getDefaultSensor(Sensor. TYPE_ORIENTATION),
SensorManager.SENSOR_DELAY_GAME);
}
@Override
protected void onPause() {
super .onPause();
mSensorManager .unregisterListener(this);
}
@Override
public void onSensorChanged(SensorEvent event) {
float degree = Math.round(event.values [0]);
tvHeading .setText("Heading: " + Float. toString(degree) + " degrees");
RotateAnimation ra = new RotateAnimation(
currentDegree , -degree,
Animation.RELATIVE_TO_SELF, 0.5f,
Animation.RELATIVE_TO_SELF,
0.5f);
ra.setDuration(210);
ra.setFillAfter(true);
image .startAnimation(ra);
currentDegree = -degree;
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
}
19. Coba jalankan dan amati hasilnya. Jelaskan jalannya program.
20. Masuk kembali ke telnet
21. Jika masuk, ketik > sensor set orientation 90:0:0 (angka 90 adalah sudut dari utara)
22. Amati hasilnya.
23. Project ketiga adalah menggunakan google map.
24. Buat project baru. Pilih Google Maps Activity. Perhatikan kembali langkah di atas (pada bagian teori). Pada activity_maps akan berisi kode berikut.
<fragment xmlns: android= "http://schemas.android.com/apk/res/android"
xmlns: map = "http://schemas.android.com/apk/res-auto"
xmlns: tools = "http://schemas.android.com/tools"
android :id= "@+id/map"
android :name= "com.google.android.gms.maps.SupportMapFragment"
android :layout_width= "match_parent"
android :layout_height= "match_parent"
tools :context= "belajar.coba.firman.trylokasi2.MapsActivity" />
25. Dan pada file MainActivity.java sehingga menjadi sebagai berikut
import android.support.v4.app.FragmentActivity;
import android.os.Bundle;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;
public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {
private GoogleMap mMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super .onCreate(savedInstanceState);
setContentView(R.layout. activity_maps);
//Obtain the SupportMapFragment and get notified when the map is ready to be used.
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
}
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
// Add a marker in center and move the camera
LatLng sydney = new LatLng(0, 0);
mMap .addMarker(new MarkerOptions().position(sydney).title( "Marker in Center"));
mMap .moveCamera(CameraUpdateFactory.newLatLng (sydney));
}
}
26. Dan ubahlah pada AndroidManifest.xml. Kodingnya sebagai berikut.
<? xml version= "1.0" encoding= "utf-8" ?>
<manifest xmlns: android= "http://schemas.android.com/apk/res/android"
package= "belajar.coba.ningrum.trylokasi2" >
<uses-permission android:name= "android.permission.ACCESS_FINE_LOCATION" />
<application
android :allowBackup= "true"
android :icon= "@mipmap/ic_launcher"
android :label= "@string/app_name"
android :supportsRtl= "true"
android :theme= "@style/AppTheme" >
<meta-data
android :name= "com.google.android.geo.API_KEY"
android :value= " TULISKAN DISINI API_KEY ANDA " />
<meta-data
android :name= "com.google.android.gms.version"
android :value= "@integer/google_play_services_version" />
<activity
android :name= ".MapsActivity"
android :label= "@string/title_activity_maps" >
<intent-filter>
<action android:name= "android.intent.action.MAIN" />
<category android:name= "android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
27. Coba jalankan dan amati hasilnya. Jelaskan jalannya program.
28. Jalankan dan amati hasilnya.
29. Gantilah nilai latitude longitude nya.
30. Amati perbedaannya.
D. LATIHAN
Latihan diberikan oleh dosen pengampu pada saat praktikum.
Dikerjakan di laboratorium pada jam praktikum.
E. TUGAS
Tugas diberikan oleh dosen pengampu pada akhir praktikum.
Dikerjakan di rumah dan dilampirkan pada laporan.


untuk penjelasan dari program diatas kalian dapat membaca artikel saya berikut ini tentang Penjelasan scribt program dari aplikasi GPS dan Kompas Menggunakan Android Studio

0 Response to "Tutorial Membuat Aplikasi GPS dan Compass Menggunakan Android Studio"

Post a Comment

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel