Thursday, June 24, 2021

Tutorial Membuat Aplikasi Pencarian Tempat Pelayanan Kesehatan dengan Formula Haversine

Tutorial Membuat Aplikasi Pencarian Tempat Pelayanan Kesehatan dengan Formula Haversine
Membuat Aplikasi Pencarian Tempat Pelayanan Kesehatan dengan Formula Haversine
Halo sobat 48 😁. Bagaimana kabarnya? Semoga selalu dalam keadaan sehat ya. Pada kesempatan kali ini saya akan membagikan sebuah artikel yang membahas tentang Tutorial Membuat Aplikasi Pencarian Tempat Pelayanan Kesehatan dengan Formula Haversine.

Aplikasi Pencarian Tempat Pelayanan Kesehatan ini dibuat menggunakan Google Maps API, Google Place API dan Formula Haversine untuk menghitung jarak lokasi kita dengan lokasi tujuan. Bahasa yang digunakan untuk membuat aplikasi ini sepenuhnya pakai Kotlin. Untuk lokasi yang akan ditampilkan di aplikasi ini adalah Apotek/Klinik, Rumah Sakit, Praktik Dokter dan juga Toko Obat.

Tapi sebelum membuat aplikasi ini, ada baiknya kalian buat terlebih dahulu buat API KEY untuk Maps di Google Cloud Platform. Login dengan akun Google kalian lalu buka menu Console, pilih API & Layanan. Setelah itu kalian pilih menu Aktifkan API dan Layanan. Kemudian aktifkan API KEY Maps, Place dan Geolocation.

Buat kalian yang ingin langsung mencobanya, silahkan unduh melalui Github saya SOURCE CODE DISINI. Tetapi jika kalian ingin tahu cara mengaplikasikannya, silahkan lanjut baca artikel ini sampai selesai.

Jika kamu ingin mencoba tutorial aplikasi ini dengan versi video, berikut saya berikan Videonya:

Jangan lupa subscribe Channel Youtube saya juga ya Azhar Rivaldi, karena disana ada banyak tutorial-tutorial untuk membuat aplikasi lainnya. Oke langsung saja tanpa basa-basi lagi kita langsung ke langkah pertama :

1. Seperti biasa, buat project baru di Android Studio dengan cara klik File ⇒ Project Baru. Ketika diminta untuk memilih Default Activity, pilih Empty Activity dan klik next. Untuk minSDK, disini saya set API 21 ya. Ingat, jangan langsung Run atau Copy Paste Source Code dari saya, pasti akan terjadi error jika beda versi Gradle dan beda versi Android Studionya. Untuk tutorial ini, saya buat dengan bahasa Kotlin ya.

2. Kemudian kalian import beberapa library ke gradle:
Source : build.properties dan build.gradle

3. Jangan lupa tambahkan beberapa Permission ke Android Manifest:
Source : AndroidManifest.xml

4. Buat Class Main sebagai Class utama untuk menampilkan pilihan kategori tempat pelayanan. Buat activity_main.xml dan MainActivity.kt.
Source : activity_main.xml, dan MainActivity.kt

5. Buat Class untuk menampilkan lokasi berdasarkan kategori yang dipilih. Buat activity_location.xmlClinicActivity.ktDoctorActivity.ktDrugStoreActivity.kt,  dan HospitalActivity.kt.

6. Buat Class Detail Lokasi sebagai Class untuk menampilkan nama lokasi, alamat dan juga maps dengan petunjuknya. Buat activity_detail_location.xml dan DetailLocationActivity.kt.
Source : activity_detail_location.xml, dan DetailLocationActivity.kt

7. Buat Class Adapter. Buat list_item_main.xml dan MainAdapter.kt.
Source : list_item_main.xml, dan MainAdapter.kt

8. Buat Class Model. Buat ModelDetail.ktModelGeometry.ktModelLocation.kt dan ModelResults.kt.

9. Buat Class Model Response. Buat ModelResultDetail.kt dan ModelResultNearby.kt.

10. Buat Class Networking untuk API. Buat ApiClient.kt dan ApiInterface.kt.

11. Buat Class Utils untuk Formula Haversine. Buat HitungJarak.kt.
Source : HitungJarak.kt

12. Buat Class ViewModel karena disini saya menggunakan pattern MVVM. Buat ListResultViewModel.kt.
Source : ListResultViewModel.kt

Support Blog Rivaldi 48 agar terus bisa membagikan artikel-artikel yang bermanfaat dengan cara klik link Sociabuzz dibawah ini :
https://sociabuzz.com/azharrvldi_/donate (bisa pakai GoPay, OVO, DANA, Bank Transfer)

Demikian informasi yang saya bagikan untuk kalian. Jangan lupa bagikan artikel ini ke teman-teman kalian agar ikut membaca Tutorial Membuat Aplikasi Pencarian Tempat Pelayanan Kesehatan dengan Formula Haversine ini. Subscribe juga blog Rivaldi 48 ini agar kalian mendapatkan notifikasi saat Admin update artikel terbaru. Semoga kalian lebih nyaman dan mudah dalam mengakses Blog Rivaldi 48 dimanapun kalian berada. Terima Kasih. Follow Instagram Admin @azhardvls_

26 comments

  1. terima kasih gan ilmunya, semoga ilmu yang di bagikan menjadi amal dan pahala

    ReplyDelete
  2. error yang lain sudah saya solve satu satu gan, kalau ini error kenapa ya udah searching" kurang ngerti karna baru megang android

    Cause 1: java.util.concurrent.ExecutionException: java.lang.RuntimeException: java.lang.RuntimeException: Duplicate class android.support.v4.app.INotificationSideChannel found in modules core-1.1.0-runtime.jar (androidx.core:core:1.1.0) and support-compat-27.1.1-runtime.jar (com.android.support:support-compat:27.1.1)
    Duplicate class android.support.v4.app.INotificationSideChannel$Stub found in modules core-1.1.0-runtime.jar (androidx.core:core:1.1.0) and support-compat-27.1.1-runtime.jar (com.android.support:support-compat:27.1.1)
    Duplicate class android.support.v4.app.INotificationSideChannel$Stub$Proxy found in modules core-1.1.0-runtime.jar (androidx.core:core:1.1.0) and support-compat-27.1.1-runtime.jar (com.android.support:support-compat:27.1.1)
    Duplicate class android.support.v4.os.IResultReceiver found in modules core-1.1.0-runtime.jar (androidx.core:core:1.1.0) and support-compat-27.1.1-runtime.jar (com.android.support:support-compat:27.1.1)
    Duplicate class android.support.v4.os.IResultReceiver$Stub found in modules core-1.1.0-runtime.jar (androidx.core:core:1.1.0) and support-compat-27.1.1-runtime.jar (com.android.support:support-compat:27.1.1)
    Duplicate class android.support.v4.os.IResultReceiver$Stub$Proxy found in modules core-1.1.0-runtime.jar (androidx.core:core:1.1.0) and support-compat-27.1.1-runtime.jar (com.android.support:support-compat:27.1.1)
    Duplicate class android.support.v4.os.ResultReceiver found in modules core-1.1.0-runtime.jar (androidx.core:core:1.1.0) and support-compat-27.1.1-runtime.jar (com.android.support:support-compat:27.1.1)
    Duplicate class android.support.v4.os.ResultReceiver$1 found in modules core-1.1.0-runtime.jar (androidx.core:core:1.1.0) and support-compat-27.1.1-runtime.jar (com.android.support:support-compat:27.1.1)
    Duplicate class android.support.v4.os.ResultReceiver$MyResultReceiver found in modules core-1.1.0-runtime.jar (androidx.core:core:1.1.0) and support-compat-27.1.1-runtime.jar (com.android.support:support-compat:27.1.1)
    Duplicate class android.support.v4.os.ResultReceiver$MyRunnable found in modules core-1.1.0-runtime.jar (androidx.core:core:1.1.0) and support-compat-27.1.1-runtime.jar (com.android.support:support-compat:27.1.1)

    ReplyDelete
    Replies
    1. akhirnya running gan, ternyata androidx nya belum saya jadiin "true" di gradle.properties nya :D
      akhirnya ada titik terang dalam penyelesaian tugas akhir :D
      makasi gan atas ilmunya, semoga berkah dan jadi pahala buat agan..
      semangat terus gan dalam membuat aplikasi sederhana seperti ini, terus berkarya gan..

      Delete
    2. nice.. agan udah bisa baca error dari program, itu jadi nilai plus

      Delete
    3. oh iya gan, kalau objek nya mau saya rubah misalnya jadi tempat wisata itu saya harus rombak dimana aja ya gan

      Delete
    4. sudah gan work mulai membaca satu satu :D
      mau nanya lagi gan, itukan gambar apotek dan praktek dokter kan udah saya ganti file nya yah yang di app/build/generated/res/pngs/debug/ sudah saya desain juga gambarnya, tapi kok pas saya jalanin masih logo apotek dan logo first aid yah gan?

      itu gimana ya gan ?
      maaf banyak nanya karna pemula :D

      Delete
    5. semua logo ada di folder drawable

      Delete
    6. yang bentuk filenya xml gan ?

      Delete
    7. atau harus tambah image asset ?
      saya searching google disuruh buat image asset, tapi kok ic_lanchernya juga otomatis disuruh buat, sedangkan ic_launcher nya sudah ada..
      atau saya cukup buat file xml saja ?
      terus gambar yang mau saya masukkan itu taro difolder mana yah gan ?
      difolder drawable isinya file xml semua..

      Delete
    8. oke mas sudah bisa :D
      add new vector asset saja ternyata :D

      Delete
    9. mau tanya gan untuk gradle.properties disebelah mana ya? saya cari kok gk ada

      Delete
    10. usahakan new project, jangan asal copas

      Delete
  3. cara ganti topiknya gimana kak jadi ndak dr praktek atau apotik melainkan wisata atau tempat makan gitu

    ReplyDelete
    Replies
    1. biasakan baca source codenya ya, disana ada api googlenya

      Delete
  4. mas, sebelumnya aplikasi lancar pake api key gratisan yang cuma 30 hari itu, nah setelah masa limit abis saya coba daftar api key baru, tapi pas saya masukin api key terbaru kok setiap mencari lokasi selalu "data kosong!" yah mas ?
    itu kenapa yah mas :(

    ReplyDelete
    Replies
    1. ya kamun udah nyalain belum sdk mapsnya di cloud google? aktifin placenya sudah?

      Delete
    2. Sudah mas, places api dan sdk map nya sudah saya aktifin..
      Bedanya console.developer.google dan console.cloud.google apa mas? Kan sama sama bisa dapet api dari situ..
      Sebelumnya saya dari console.developer.google

      Delete
  5. assalamualaikum gan, saya sudah coba tetapi kok "cannot resolve symbol" yee gan?
    kenapa itu yaa? mohon bimbingan nya dong gan, terimakasih

    ReplyDelete
  6. Type mismatch: inferred type is (ArrayList) -> Unit but (ArrayList!) -> Unit was expected


    Kalau seperti kenapa ya? modelResults selalu gak matching

    ReplyDelete

Silahkan tinggalkan komentar jika Anda punya saran, kritik, atau pertanyaan seputar topik pembahasan. Gunakan bahasa yang bijak dan santun. Terima Kasih.
EmoticonEmoticon