Penjelasan scribt program dari aplikasi GPS dan Kompas Menggunakan Android Studio

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()
· Untuk dapat dan Menangkap GPS dari satelit kita perlu menambahkan 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 
Hasil :

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) {
 }

}
Hasil :

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
Buka google_maps_api.xml pada package res/value, di google_maps_api.xml terdapat alamat untuk mengaktifkan Maps API, disini alamatnya adalah https://console.developers.google.com/flows/enableapi?apiid=maps_android_backend&keyTy
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.

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 :

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));}}
HASIL :

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

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel