8
BAB II
LANDASAN TEORI
1.1. Tinjauan Jurnal
Pada penelitian yang penulis lakukan, ada beberapa perbandingan dan sumber referensi dalam perancangan atau pengembangan aplikasi location base service warung terdekat dengan algoritma haversine berbasis Android, serta penelitian inipun diperlukan acuan agar penulis dapat belajar dari pengalaman penelitian sebelumnya.
Adapun beberapa penelitian sejenis yang dapat menjadi referensi yaitu sebagai berikut:
Penelitian yang dilakukan oleh Zarman et al., (2016) dengan jurnal berjudul
“Implementasi Algoritma Ant Colony Optimization Pada Aplikasi Pencarian Lokasi Tempat Ibadah Terdekat Di Kota Bandung” dimana pada penelitian ini telah berhasil membuat aplikasi pencarian tempat ibadah terdekat degan menggunakan algoritma Ant Colony Optimization, dimana algoritma ini menganalogikan koloni semut yang sedang mencari makanan dari sarang menuju sumber makanan, dengan meninggalkan suatu jejak kaki yang disebut Pheromon. Dan penelitian ini menjadikan Google map API sebagai pemetaannya.
Penelitian yang dilakukan oleh Rosadi & Andriawan (2016) dengan jurnal berjudul “Sistem Informasi Pencarian Tempat Kost Di Kota Bandung Berbasis Android” penelitian ini bertujuan untuk memudahkan pencarian kos dan juga memiliki manfaaat untuk pemilik kos yang ingin mempromosikan kosannya. Serta untuk pengembangan sistem pada penelitian ini menggunakan metode waterfall.
Penelitian yang dilakukan oleh Kuntjoro et al., (2015) dengan jurnal berjudul
“Membangun Aplikasi Web dan Mobile Android untuk Media Pencarian Kost Menggunakan PHONEGAP dan Google Maps API” seperti penelitian sebelumnya yaitu mengenai pencarian kosan, namun pada penelitian ini menggunakan PhoneGAP yaitu sebuah platform HTML5 yang memungkinkan pengembang melakukan teknologi berbasis web (HTML, CSS dan Javascript) untuk membuat aplikasi Mobile asli (native) dengan menggunakan PhoneGap pengembang dapat menulis aplikasi mereka dan menyebarkannya langsung ke enam platform mobile utama dan salah satunya adalah Android. Serta penelitian ini telah melakukan penerapan Google Map API.
Penelitian yang dilakukan oleh Anam & Hartono (2019) dengan jurnal berjudul
“Aplikasi Pemandu Pencarian Wisata Terdekat Berbasis GIS Android Dengan Algoritma Dijkstra” Penelitian ini sangat membantu wisatawan dalam mengetahui lokasi wisata, pusat oleh-oleh khas Sumenep dan penginapan hotel terdekat. Hal tersebut dapat ditunjukkan dengan hasil uji coba pencarian wisata terdekat menggunakan aplikasi Android menghasilkan akurasi sebesar 95%. Pada penelitian ini menggunakan algoritma Dijkstra untuk keakuratan pencarian objek wisata. Serta melakukan penerapan Google Map API.
Penelitian yang dilakukan oleh (Rofiq & Uzzy, 2014) dengan jurnal berjudul
“Penentuan Jalur Terpendek Menuju Cafe Di Kota Malang Menggunakan Metode Bellman-Ford dengan Location Based Service Berbasis Android” Penelitian ini bertujuan untuk membantu para visitor yang datang ke kota malang untuk memberikan informasi mengenai rute terpendek serta informasi mengenai café terdekat dengan
menggunakan metode bellman-ford dimana metode ini dapat mencari rute terpendek dari suatu grafik berbobot namun pada metode ini membutuhkan waktu yang lebih lama dibandingkan metode djikstra.
Dari kelima penelitian diatas yang telah dilakukan sebelumnya, penulis merasa ada yang kurang dari sistem informasi pencarian yang telah dilakukan sebelumnya.
Yaitu kurangnya fitur Rating dan juga ulasan dari pengguna aplikasi yang dapat menjadi referensi untuk pengguna lainnya yang sedang mencari informasi baik itu kos ataupun yang lainnya.
Tabel II.1 Tinjauan Jurnal
Penulis dan Tahun Judul Perumusan Perbedaan
Andri Zarman, Mohamad Irfan, dan Wisnu Uriawan pada tahun 2016
Implementasi
Algoritma Ant Colony Optimization Pada Aplikasi Pencarian Lokasi Tempat Ibadah Terdekat Di Kota Bandung
Menggunakan algoritma APO untuk
menampilkan jarak terdekat
Algoritma yang digunakan serta kurangnya fitur review dan rating Dadi Rosadi dan
Feby Oktarista Andriawan pada tahun 2016
Sistem Informasi Pencarian Tempat Kost Di Kota Bandung Berbasis Android
Membuat aplikasi yang memudahkan mencari kos dengan metode waterfall.
Objek yang berbeda serta kurangnya fitur review dan rating Andi Triansah, Dedi
Cahyadi, dan Indah Fitri Astuti pada tahun 2015
Membangun Aplikasi Web dan Mobile Android untuk Media Pencarian Kost Menggunakan
Merancang aplikasi berbasis web dan mobile
Platform yang berbeda serta
kurangnya
PHONEGAP dan Google Maps API
untuk
pencarian kos.
fitur review dan rating Khairil Anam dan
Ony Dwi Hartono pada tahun 2019
Aplikasi Pemandu Pencarian Wisata Terdekat Berbasis GIS Android Dengan Algoritma Dijkstra
Menggunakan algoritma Dijktra
Objek yang digunakan berbeda
M.Rofiq dan Riza Fathul Uzzy pada tahun 2014
Penentuan Jalur Terpendek Menuju Cafe Di Kota Malang Menggunakan
Metode Bellman-Ford dengan Location Based Service Berbasis Android
Menggunakan algoritma Bellman ford
Objek yang digunakan berbeda
1.2. Konsep Dasar Program
Komputer merupakan suatu alat untuk mengolah data sesuai dengan kebutuhan.
Data tidak saja begitu langsung dikelola tanpa adanya instruksi-instruksi yang diletakan kedalam komputer tersebut. Kumpulan instruksi-instruksi yang saling berhubungan yang dirancang untuk melaksanakan kegiatan-kegiatan yang terintregrasi untuk mencapai suatu sasaran ini yang disebut dengan program (Oktaviani et al., 2018).
1.2.1. Android
Android adalah sistem operasi untuk perangkat bergerak (mobile) yang awalnya dikembangkan oleh Android Inc. Salah satu pencipta dari Android adalah Andy Rubin, yang kini sering disebut sebagai “Bapak Android” (Fadilah, 2018).
Pada sistem operasi Android berbasis Linux yang bersifat tebuka atau bisa disebut dengan Open Source dan dirancang untuk dapat beroperasi di berbagai mobile
device baik itu smartphone maupun tablet. Selain itu banyak sekali kelebihan yang dimiliki oleh sistem operasi Android yang benar-benar dapat dirasakan oleh para penggunanya sehingga dapat membuat Android mampu bersaing di tengah keramaian smartphone seperti Blackberry ataupun Iphone yang lebih dahulu muncul dan beredar dipasaran dibandingkan Android (Firmansyah, 2018).
Berikut beberapa keunggulan pada sistem operasi Android, yaitu : 1. Open Source
2. Magnet Google 3. Multitasking
4. Mendapatkan dukungan dari vendor ternama 5. Easy notification
6. Beautiful widget 7. Modding
1.2.2. Location Base Service (LBS)
Location Based Service atau dapat disingkat LBS adalah istilah umum yang digunakan untuk menggambarkan teknologi yang digunakan untuk menemukan lokasi tujuan yang dibutuhkan oleh penggunanya. Dengan memanfaatkan teknologi GPS (Global Positioning System) yang dapat mendeteksi lokasi keberadaan pengguna, LBS (Location Based Service) dapat menjadi nilai tambah layanan dalam membangun sebuah aplikasi pencari rute terdekat (Firmansyah, 2018).
Pada LBS atau Location Based Service memiliki dua unsur utama yaitu : 1. Location Manager (API Maps)
Pada unsur ini menyediakan tools untuk LBS yaitu API Maps dimana memiliki fungsi untuk menyediakan fasilitas menampilkan dan memanipulasi peta berdasarkan fitur-fitur lainnya seperti tampilan satelit, jalan, maupun gabungan dari keduanya. Untuk unsur ataupun paket ini berada pada com.google.android.maps.
2. Location Providers (API Location)
Pada unsur Location Providers menyediakan teknologi pencarian yang dapat digunakan oleh perangkat dimana Location API berhubungan dengan data GPS dan data lokasi secara Realtime. API Location bedapa pada paket Android yaitu com.google.android.location.
1.3. Metode Algoritma
Untuk dapat menyelesaikan persoalan-persoalan yang akan dihadapi, alangkah baiknya kita memerlukan sebuah rencana atau strategi terlebih dahulu. Dalam dunia pemrograman pun demikian. Untuk dapat menyelesaikan berbagai persoalan ataupun masalah maka diperlukan langkah-langkah penyelesaiannya yang dinamakan algoritma.
1.3.1. Algoritma Haversine
Algoritma Haversine adalah persamaan penting dalam sistem navigasi, nantinya Algoritma Haversine akan menghasilkan jarak terpendek antara dua titik,
misalnya pada bola yang diambil dari garis bujur (longtitude) dan garis lintang (latitude). Algoritma ini pertama kali ditemukan oleh Jamez Andrew di tahun 1805, dan digunakan pertama kali oleh Josef de Mendoza y Ríos di tahun 1801. Istilah haversine ini sendiri diciptakan pada tahun 1835 oleh Prof. James Inman. Josef de Mendoza y Ríos menggunakan haversine pertama kali dalam penelitiannya tentang
“Masalah Utama Astronomi Nautical“, Proc. Royal Soc, Dec 22. 1796. Haversine digunakan untuk menemukan jarak antar bintang. Formula Haversine adalah persamaan yang digunakan dalam navigasi, yang memberikan jarak lingkaran besar antara dua titik pada permukaan bola (bumi) berdasarkan bujur dan lintang. Formula Haversine merupakan suatu metode untuk mengetahui jarak antar dua titik dengan memperhitungkan bahwa bumi bukanlah sebuah bidang datar namun adalah sebuah bidang yang memiliki derajat kelengkungan.
Penggunaan rumus ini mengasumsikan pengabaian efek ellipsoidal, cukup akurat untuk sebagian besar perhitungan, juga pengabaian ketinggian bukit dan kedalaman lembah di permukaan bumi. Berikut adalah rumus haversine:
∆lat = lat2- lat1
∆long = long2- long1
A = sin2(∆lat/2) + cos(lat1).cos(lat2).sin2(∆long/2) C = 2atan2(,√𝑎, √1 − 𝑎 )
D = R.c Dimana :
R = jari-jari bumi sebesar 6371(km)
∆lat = besaran perubahan latitude
∆long = besaran perubahan longitude C = kalkulasi perpotongan sumbu D = jarak (km)
1 derajat = 0.0174532925 radian Dengan Pseudocode sebagai berikut :
Sumber : (https://stackoverflow.com/ )
Gambar 2.1. Pseudocode Haversine Formula
2.4. Pengujian Aplikasi
Pengujian aplikasi merupakan salah satu bagian terpenting yang harus dilakukan guna untuk memastikan bahwa fungsi aplikasi yang dibangun sesuai harapan yang diinginkan serta sesuai dengan tujuan.
2.4.1. Pengujian Black Box
Black Box Testing (pengujian kotak hitam) yaitu menguji perangkat lunak dari segi spesifikasi fungsional tanpa menguji desain dan kode program. Pengujian dilakukan untuk mengetahui apakah fungsi-fungsi, masukan, dan keluaran dari perangkat lunak sesuai dengan spesifikasi yang dibutuhkan (Khasanah, 2015).
Beberapa alasan mengapa metode ini diberi nama Black Box yaitu karena program perangkat lunak, di mata penguji seperti di dalam kotak yang orang tidak bisa melihat kedalamnya. Serta metode ini mencoba menemukan kesalahan dalam kategori berikut (Setyadi, 2019):
1. Fungsi salah atau tidak ada 2. Kesalahan antarmuka
3. Kesalahan dalam struktur data atau akses database eksternal 4. Kesalahan perilaku atau kinerja
5. Inisialisasi dan terminasi kesalahan
Dengan mengaplikasikan teknik pengujian Black Box maka kita menarik serangkaian test case yang memenuhi kriteria seperti, test case yang mengurangi dengan harga lebih dari satu, jumlah test case tambahan yang harus didesain untuk mencapai pengujian yang dapat dipertanggungjawabkan, dan test case yang memberi tahu kita sesuatu mengenai kehadiran atau ketidakhadiran kelas kesalahan (Firmansyah, 2018).
Berikut adalah keuntungan dan kekurangan dalam menggunakan Teknik Black Box Testing menurut (Setyadi, 2019) :
1. Keuntungan menggunakan Teknik Black Box Testing
a. Pengujian dilakukan dari sudut pandang pengguna dan akan membantu dalam mengungkap perbedaan dalam spesifikasi.
b. Penguji tidak perlu tahu bahasa pemrograman atau bagaimana perangkat lunak telah diimplementasikan.
c. Tes dapat dilakukan oleh badan independen dari pengembang, memungkinkan untuk perspektif objektif dan menghindari bias pengembang.
d. Kasus uji dapat dirancang segera setelah spesifikasi selesai.
2. Kekurangan menggunakan Teknik Black Box Testing
a. Hanya sejumlah kecil input yang mungkin dapat diuji dan banyak jalur program akan dibiarkan belum teruji.
b. Tanpa spesifikasi yang jelas, yang merupakan situasi di banyak proyek, kasus uji akan sulit untuk dirancang.
2.5. Peralatan Pendukung
Peralatan pendukung yang penulis gunakan pada penelitian ini sebagai model sistem yang akan dirancang adalah :
2.5.1. Unified Modelling Language
Unified Modelling Language (UML) sebagai notasi pemodelan standar industri untuk visualisasi sistem berorientasi obyek dan juga sebagai platform untuk mempercepat proses pengembangan aplikasi. UML menawarkan sebuah standar untuk merancang model sebuah sistem (Sholiq, 2006) dalam (Sauri, et al., 2018)
Menurut (N, 2015) UML atau Unified Modelling Language memiliki beberapa jenis diagram sebagai berikut :
1. Use Case Diagram
Sumber : (Sutejo, 2016)
Gambar II.2. Use Case Diagram
Use case diagram adalah sebuah diagram yang menggambarkan sejumlah external actors dan hubungannya ke use case yang diberikan oleh sistem. Use case adalah deskripsi fungsi yang disediakan oleh sistem dalam bentuk teks sebagai dokumentasi dari use case symbol namun dapat juga dilakukan dalam activity diagrams. Use case digambarkan hanya yang dilihat dari luar oleh actor (keadaan lingkungan sistem yang dilihat user) dan bukan bagaimana fungsi yang ada di dalam sistem.
2. Activity Diagram
Sumber : (Sutejo, 2016)
Gambar II.3. Activity Diagram
Activity diagram atau diagram aktivitas yaitu salah satu jenis diagram pada UML yang dapat memodelkan proses-proses apa saja yang terjadi pada sistem.
3. Sequence Diagram
Sumber : (Sutejo, 2016)
Gambar II.4. Sequence Diagram
Sequence diagram yaitu salah satu jenis diagram pada UML yang menjelaskan interaksi objek yang berdasarkan urutan waktu, sequence diagram juga dapat menggambarkan urutan atau tahapan yang harus dilakukan untuk dapat menghasilkan sesuatu seperti pada use case diagram.
4. Dan lain-lain
Selain itu masih banyak lagi jenis diagram yang termasuk kedalam UML seperti Object diagram, Composite structure diagram, Component diagram, dan lain-lain.
Berikut merupakan Keuntungan dalam menggunakan UML menurut Sholiq dalam (Sauri et al., 2018), yaitu :
1. Software terdesain dan terdokumentasi secara profesional sebelum dibuat, dan dapat diketahui secara persis apa yang nantinya didapatkan.
2. Oleh karena mendesain terlebih dahulu, reusable code dapat dikode dengan tingkat efesiensi tinggi.
3. Lubang dapat diketemukan pada saat menggambar desain.
4. Dengan UML, dapat dilihat gambaran besarnya.
2.5.2. Google Maps API
Google maps API adalah sebuah SIG (Sistem Informasi Geografis) berbasis pada internet yang disediakan oleh Google secara gratis atau dengan kata lain tidak di peruntukkan untuk kepentingan komersial (Triansah et al., 2015).
Saat ini Google Maps adalah layanan pemetaan berbasis web yang popular.
User dapat menambahkan layanan Google Maps ke sebuah website menggunakan Google Maps API. Google Maps API dapat ditambahkan ke sebuah website menggunakan JavaScript. API tersebut menyediakan banyak fasilitas dan utilitas untuk memanipulasi peta dan menambahkan konten ke peta melalui berbagai layanan, memungkinkan user untuk membuat aplikasi peta yang kuat pada sebuah website.
Namun untuk dapat mengakses Google Maps, terlebih dahulu user harus melakukan pendaftaran API key dengan data pendaftaran berupa nama domain web yang kita bangun (Triansah et al., 2015).
Pada Google Maps API terdapat 4 jenis pilihan model peta yang disediakan oleh Google menurut (Raja, N, & Irwansyah, 2015), diantaranya adalah:
1. Roadmap, untuk menampilkan peta biasa 2 dimensi 2. Satellite, untuk menampilkan foto satelit
3. Terrain, untuk menunjukkan relief permukaan bumi dan menunjukkan seberapa tingginya suatu lokasi, contohnya akan menunjukkan gunung dan sungai
4. Hybrid, akan menunjukkan foto satelit yang diatasnya tergambar pula apa yang tampil pada Roadmap (jalan dan nama kota).
2.5.3. Android Studio
Android Studio merupakan sebuah Integrated Development Environment (IDE) khusus untuk membangun aplikasi yang berjalan pada platform Android.
Android studio ini berbasis pada IntelliJ IDEA, sebuah IDE untuk bahasa pemrograman Java. Bahasa pemrograman utama yang digunakan adalah Java, sedangkan untuk membuat tampilan atau layout, digunakan bahasa XML. Android studio juga terintegrasi dengan Android Software Development Kit (SDK) untuk deploy ke perangkat Android. Android Studio juga merupakan pengembangan dari eclipse, dikembangkan menjadi lebih kompleks dan professional yang telah tersedia didalamnya Android Studio IDE, Android SDK tools. Setiap proyek di Android Studio berisi satu atau beberapa modul dengan file kode sumber dan file sumber daya (Yulianti, 2017). Jenis-jenis modul mencakup :
1. Modul aplikasi Android 2. Modul Pustaka
3. Modul Google App Engine
Secara default, Android Studio akan menampilkan file proyek dalam tampilan proyek Android, seperti yang ditampilkan dalam gambar II.13 tampilan disusun berdasarkan modul untuk memberikan akses cepat ke file sumber utama
proyek (Yulianti, 2017). Semua file versi terlihat di bagian atas di bawah Gradle Scripts dan masing-masing modul aplikasi berisi folder berikut:
1. Manifests : Berisi file AndroidManifest.xml.
2. java : Berisi file kode sumber Java, termasuk kode pengujian JUnit.
3. Res : Berisi semua sumber daya bukan kode, seperti tata letak XML, string UI, dan gambar bitmap.
Sumber : (Khanifa, 2016)
Gambar II.5. File Utama Android Studio 2.5.4. Firebase Database
Firebase adalah peyedia layanan realtime database dan backend sebagai layanan. Suati aplikasi yang memungkinkan pengembang membuat API untuk disingkronisasikan untuk client yang berbeda-beda dan disimpan pada cloud-nya milik Firebase. Firebase Database memiliki banyak library yang memungkinkan untuk mengintegrasikan layanan ini dengan Android, Ios, Javacript, Java, Objective-C dan Node.JS . Database Firebase juga bersifat bisa diakses lewat Rest API. Rest API tersebut menggunakan protokol Server-Sent Event dengan membuat koneksi HTTP untuk menerima push notification dari server. Pengembang menggunakan Rest API untuk post data yang selanjutnya Firebase client library yang sudah diterapkan pada aplikasi yang dibangun yang akan mengambil data secara realtime (Khanifa, 2016).
Sumber : (Khanifa, 2016)
Gambar II.6. Sistem kerja Firebase
Pengembang juga dapat menggunakan database ini untuk mengamankan data menggunakan server Firebase dengan rules yang ada. Untuk hosting file Firebase menyediakan hosting untuk static file dengan fasilitas CND dan SNL (Khanifa, 2016).
2.5.5. Android Software Development Kit (SDK)
SDK adalah singkatan dari Software Development Kit yaitu merupakan software yang dibuat untuk membangun aplikasi Android. Saat ini disediakan Android SDK (Software Development Kit) sebagai alat bantu dan API untuk mulai mengembangkan aplikasi pada platform Android menggunakan bahasa pemrograman Java. Ketika proses install berlangsung akan disediakan pilihan untuk package dari Android yang akan digunakan untuk pengembangan, mulai dari Android 1.5 hingga Android 4.0.
Android SDK merupakan tools API (Application Programming Interface) yang diperlukan untuk mulai mengembangkan aplikasi pada platform Android menggunakan bahasa pemrograman Java. Android merupakan subset perangkat
lunak untuk ponsel yang meliputi sistem operasi, middleware dan aplikasi kunci yang di release oleh Google. Saat ini disediakan Android SDK (Software Development Kit) sebagai alat bantu dan API untuk mulai mengembangkan aplikasi pada platform Android menggunakan pemrograman Java. Sebagai platform aplikasi-netral, Android memberi kesempatan untuk membuat aplikasi yang dibutuhkan dimana aplikasi tersebut bukan merupakan aplikasi bawaan handphone/smartphone. Beberapa fitur- fitur Android yang paling penting adalah sebagai berikut (Yulianti, 2017) :
a. Framework aplikasi yang mendukung penggantian komponen dan reusable b. Mesin Virtual Dalvik dioptimalkan untuk perangkat mobile.
c. Integrated browser berdasarkan engine open source WebKit.
d. Grafis yang dioptimalkan dan didukung oleh libraries grafis 2D, grafis 3D berdasarkan spesifikasi opengl ES 1,0 (Opsional akselerasi hardware).
e. SQLite untuk menyimpan data.
f. Media Support yang mendukung audio, video, dan gambar (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF), GSM Telephony (tergantung hardware).
g. Bluetooth, EDGE, 3G, dan WiFi (tergantung hardware).
h. Kamera, GPS, kompas, dan accelerometer (tergantung harware).
i. Lingkungan Development yang lengkap dan kaya termasuk perangkat emulator, tools untuk debugging, profil dan kinerja memori (Yulianti, 2017).
2.5.7. Global Positioning System (GPS)
Global Positioning System (GPS) merupakan sistem navigasi yang berbasiskan satelit dan merupakan alat untuk mengetahui posisi yang tersusun atas constellation 24
satellites yang mengorbit pada bumi pada ketinggian kurang lebih 11.000 mil.
Awalnya GPS hanya terbatas untuk kalangan militer di USA, tetapi pada awal tahun 80an pemerintah membuatnya terbuka untuk digunakan secara umum khususnya pada komersial bisnis, travel, dan navigasi, sampai sekarang GPS sudah meluas penggunaannya seperti mendeteksi gempa dan ramalan cuaca. GPS didesain untuk beroperasi 24 jam, dalam segala kondisi cuaca dan bisa digunakan di seluruh dunia.
Prinsip dasar dari GPS terletak pada jarak dari receiver ke satelit, receiver minimal harus mencari 3 posisi satelit untuk menghasilkan posisi yang akurat, operasi ini dinamakan triangulation, secara singkat triangulation dapat dijelaskan demikian ketiga satelit akan mencari irisan dari 3 posisi yang berbeda, posisi yang akurat akan ditemukan pada irisan ketiga satelit. Sebagai contohnya, misalkan kita disuruh oleh seseorang untuk menemukan seseorang (misalkan) di toko buku berdasarkan beberapa petunjuk yang diberikan oleh orang tersebut. Pertama, kita diberitahu bahwa kita tepat berada 10 mil jauhnya dari rumah kita. Kita akan mengetahui bahwa kita berada di suatu radius dengan jangkauan 10 mil. Dengan informasi ini, kita akan kesusahan mencarinya karena radiusnya sangat luas (Rofiq & Uzzy, 2014).