Penjelasan scribt program dari aplikasi GPS dan Kompas Menggunakan Android Studio
Sunday, 2 September 2018
Add Comment
PERTEMUAN KE – 10
GPS dan Compass
A.
TUJUAN
Mahasiswa diharapkan dapat memahami dan mengetahui tentang GPS dan Compass yang
digunakan pada aplikasi mobile.
B. PEMBAHASAN PRAKTIKUM:
1. GPS
Aplikasi gps ini digunakan untuk menentukan lokasi perangkat saat ini berdasarkan koordinat latitude dan longitude berikut adalah penjelasanya :
- Main_activity.java
public class MainActivity extends AppCompatActivity implements LocationListener { // Dipanggil saat ada perubahan lokasi geografis pengguna private TextView latituteField; private TextView longitudeField; //Pemberian hak akses pada objek private LocationManager locationManager; private String provider; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); latituteField = (TextView) findViewById(R.id.TextView02); //untuk menampilkan hasil koordinat latitude pada komponen widget textview dengan id //TextView02 longitudeField = (TextView) findViewById(R.id.TextView04); //untuk menampilkan hasil koordinat longitude pada komponen widget textview dengan //id TextView04 locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE); //objek untuk mengakses gps Criteria criteria = new Criteria(); provider = locationManager.getBestProvider(criteria, false); if (ActivityCompat.checkSelfPermission(this, Manifest.permission. ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission. ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { //digunakan untuk mengetahui lokasi terkini berdasarkan perangkat return; } 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"); }} protected void onResume() { super.onResume(); if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission( this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { return; } locationManager.requestLocationUpdates(provider, 400, 1, this); } @Override protected void onPause() { super.onPause(); if (ActivityCompat.checkSelfPermission(this, Manifest.permission. ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat. checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { return; } 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)); } //fungsi untuk menentukan koordinat latitude dan longitude perangkat berdasarkan //nilai yang diambil dari method getLatitude() dan getLongitude() @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(); } //fungsi diatas digunakan untuk menghidupkan network provider public void onProviderDisabled(String provider) { Toast.makeText(this, "Disabled provider " + provider, Toast.LENGTH_SHORT).show(); //fungsi diatas digunakan untuk mematikan network provider }} Penjelasan : Kelas ini mengimplementasikan kelas LocationListener untuk mengetahui perubahan lokasi perangkat.untuk menampilkan koordinat latitude digunakan objek dengan nama lat yang akan digunakan untuk memanggil methode getLatitude()sedangkan untuk menampilkan koordinat longitude digunakan objek dengan nama lng yang akan digunakan untuk memanggil method getLongitude() |
permission
<uses-permission> GPS
PROVIDER,NETWORK_PROVIDER, ACCESS_FINE_LOCATIONnya melalui fileAndroidManifest.xml , buka file AndroidManifest.xml lalu ketikkan seperti
kode berikut
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> //untuk memberikan akses agar dapat menentukan posisi perangkat terkini <uses-permission android:name="android.permission.NETWORK_PROVIDER" /> //scribt diatas digunakan untuk memberikan akses kepada jaringan internet <uses-permission android:name="android.permission.GPS_PROVIDER" /> //scribt diatas digunakan untuk memberikan akses ke perangkat GPS |
2. KOMPAS
- Main_activity.java
public class MainActivity extends AppCompatActivity implements SensorEventListener { //mengimplementasikan kelas SensorEventListener private ImageView image; // variabel untuk gambar kompas yang digunakan private float currentDegree = 0f; // variabel untuk menangkap derajat perputaran 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); // mengintegrasikan gambar dari file xml tvHeading = (TextView) findViewById(R.id.tvHeading); // variabel ini akan menagkap derajat kemana perangkat menghadap mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); //objek untuk mengakses perangkat sensor magnetic bawaan perangkat } @Override protected void onResume() { super.onResume(); mSensorManager.registerListener(this, mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION), SensorManager.SENSOR_DELAY_GAME); } //fungsi ketika kompas belum digunakan maka sensor akan dalam keadaan default @Override protected void onPause() { super.onPause(); mSensorManager.unregisterListener(this); } //fungsi ketika animasi kompas sudah berhenti maka akan memanggil method onpause() @Override public void onSensorChanged(SensorEvent event) { float degree = Math.round(event.values[0]); //untuk mendapatkan sudut sumbu z tvHeading.setText("Heading: " + Float.toString(degree) + " degrees"); RotateAnimation ra = new RotateAnimation( //untuk membuat animasi rotasi pada gambar currentDegree, -degree, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); ra.setDuration(210); //untuk mengatur durasi putaran animasi ra.setFillAfter(true); image.startAnimation(ra); //untuk memulai animasi currentDegree = -degree; } public void onAccuracyChanged(Sensor sensor, int accuracy) { } } |
3. GOOGLE MAPS
Pada praktikum yang ke 3 ini kita akan membuat sebuah aplikasi yang akan digunakan untuk memberikan fitur berbasis lokasi, karena dengan fitur tersebut pengguna dapat memberikan informasi berupa lokasi yang ditampilkan dalam bentuk peta sehingga dapat dengan mudah dimengerti oleh penerima informasi. Maps API dari Google play service adalah salah satu API yang dapat dimanfaatkan dalam mengembangkan aplikasi android yang memberikan fitur berbasis lokasi.
Disini akan dijelaskan bagaimana cara menampilkan peta menggunakan Maps API di dalam aplikasi android yang nantinya akan dijalankan dalam perangkat android. Berikut adalah penjelasan langkah-langkah nya :
- Untuk langgkah yang pertama kita harus Mendaftarkan Maps API terlebih dahulu
Copy alamat tersebut lalu buka dalam browser, bila perlu daftarkan akun gmail untuk konfigurasi API. Mendaftarkan maps api ini berfungsi agar kita mendapatkan key/kunci api yang akan digunakan untuk mengaktifkan api. Copykan kunci api yang telah di dapat pada scribt string.xml pada bagian key here seperti pada gambbar di bawah
<resources> <!-- TODO: Before you run your application, you need a Google Maps API key. To get one, follow this link, follow the directions and press "Create" at the end: https://console.developers.google.com/flows/enableapi?apiid=maps_android_backend& keyType=CLIENT_SIDE_ANDROID&r=20:53:42:28:27:34:CB:8B:4A:59:D7:B5:31:71:F9:A5:EA:9D :07:1B%3Bcom.firman.googlemaps You can also add your credentials to an existing key, using this line: 20:53:42:28:27:34:CB:8B:4A:59:D7:B5:31:71:F9:A5:EA:9D:07:1B;com.firman.googlemaps Alternatively, follow the directions here: https://developers.google.com/maps/documentation/android/start#get-key Once you have your key (it starts with "AIza"), replace the "google_maps_key" string in this file. --> <string name="google_maps_key" templateMergeStrategy="preserve" translatable="false"> AIzaSyBW8TDpuxEJ_O5v0b7tFXaeQNrhpL5QYwM</string> </resources> |
- Main_activity.java
package com.firman.googlemaps; 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); SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager() .findFragmentById(R.id.map); mapFragment.getMapAsync(this); } @Override public void onMapReady(GoogleMap googleMap) { mMap = googleMap; LatLng sydney = new LatLng(-7.7928394, 110.4072305); mMap.addMarker(new MarkerOptions().position(sydney).title("Marker in AKAKOM")); mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney)); //pada scribt diatas merupakan penambahan koordinat sebagai parameter pada konstruktor LatLng penjelasan :Pada script diatas telah ditambahkan koordinat yang berupa longitude dan latitude berdasarkan lokasi Akakom secara default di onMapReady() . Jadi saat aplikasi
dijalankan pertama kali marker akan ditempatkan di AKAKOM
yogyakarta. Pada bagian title() akan berfungsi untuk
memberi nama lokasi yang sesuai dengan koordinat yang kita
berikan tadi.
|
C. PEMBAHASAN LATIHAN :
Pada latihan kali ini kita akan menambahkan 3 titik koordinat pada aplikasi yang kita buat seperti pada penjelasaan berikut :
· Untuk membuat 3 buah koordinat pada alikasi yang kita buat kita hanya akan menambahkan koordinat yang kita inginkan pada kelas Main_activity.java
public void onMapReady(GoogleMap googleMap) { mMap = googleMap; nMap1 = googleMap; nMap2 = googleMap; LatLng sydney = new LatLng(-7.7928394, 110.4072305); mMap.addMarker(new MarkerOptions().position(sydney).title("Marker in AKAKOM")); mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney)); //pada scribt diatas merupakan penambahan koordinat sebagai parameter pada konstruktor // LatLng yang akan menyatakan koordinat Latitude dan Longitude. Untuk bagian title yang // akan digunakan sebagai nama koordinat yang kita berikan saya kasih nama Marker in AKAKOM LatLng Myhome = new LatLng(-7.633948, 110.441010); nMap1.addMarker(new MarkerOptions().position(Myhome).title ("Marker in 1633100123/FIRMAN AGUS SAPUTRO")); //pada scribt diatas merupakan penambahan koordinat sebagai parameter //pada konstruktor LatLng yang akan menyatakan koordinat Latitude dan Longitude. // Untuk bagian title yang akan digunakan sebagai nama koordinat yang kita berikan saya kasih nama Marker in 1633100123/FIRMAN AGUS SAPUTRO nMap1.moveCamera(CameraUpdateFactory.newLatLng(Myhome)); LatLng jogjaBAY = new LatLng(-7.748150, 110.418864); nMap2.addMarker(new MarkerOptions().position(jogjaBAY).title ("Marker in JOGJA BAY WATERPARK")); //pada scribt diatas merupakan penambahan koordinat sebagai parameter //pada konstruktor LatLng yang akan menyatakan koordinat Latitude dan Longitude. //Untuk bagian title yang akan digunakan sebagai nama koordinat yang kita berikan saya kasih nama Marker in JOGJA BAY WATERPARK nMap2.moveCamera(CameraUpdateFactory.newLatLng(jogjaBAY));}} |
D. KESIMPULAN :
Dari praktikum tersebut dapat disimpulkan bahwa Untuk mengakses informasi lokasi kedalam aplikasi dapat dilakukan dengan berbagai cara seperti yang telah dipraktikan diatas yaitu melalui :
· melalui akun Google kita yang tertanam di smartphone khususnya android sudah terintregasi oleh GPS. Geolokasi dari pertama kita mensetting smartphone inilah menjadi titik kunci bagaimana arah mata angin ditentukan walau pengguna bergerak dari satu tempat ke tempat lainnya.
· Dengan memanfaatkan Google Maps API, lokasi pengguna dapat diketahui dengan jaringan yang disediakan service provider maupun wifi yang terhubung dengan perangkat android pengguna.
· Melalui sensor magnetic bawaan smartphone yang biasanya digunakan untuk menentukan arah .
Untuk menggunakan akses-akses tersebut kita harus memberikan sebuah permission agar akses-akses tersebut dapat digunakan oleh aplikasi yang kita buat.
Untuk versi scribt program lengkapnya anda dapat mengunjungi artikel saya tentang Membuat Aplikasi GPS dan Compass Menggunakan Android Studio
0 Response to "Penjelasan scribt program dari aplikasi GPS dan Kompas Menggunakan Android Studio"
Post a Comment