penerapan algoritma dijkstra dalam ...repo.darmajaya.ac.id/1283/1/skripsi full.pdfshop pada provinsi...
TRANSCRIPT
PENERAPAN ALGORITMA DIJKSTRA DALAM PENCARIAN LOKASI
TERDEKAT UNTUK PET SHOP PADA PROVINSI LAMPUNG
BERBASIS ANDROID
Disusun Oleh :
NAMA : KURNIA OKTAVIAN
NPM : 1411010037
FAKULTAS ILMU KOMPUTER
JURUSAN TEKNIK INFORMATIKA
INSTITUT INFORMATIKA DAN BISNIS DARMAJAYA
BANDAR LAMPUNG
2018
RIWAYAT HIDUP
I. IDENTITAS
1. Nama : Kurnia Oktavian
2. Npm : 1411010037
3. Tempat/Tanggal Lahir : Bandar Lampung. 19 September 1996
4. Agama : Islam
5. Alamat : Jl. MS. Batubara GG. Sakura No. 12 RT. 02
6. Suku : Jawa
7. Kewarganegaraan : Indonesia
8. No. Telp/ Hp : 082181556565
9. Email : [email protected]
II. Pendidikan yang pernah ditempuh oleh penulis, antara lain :
1. Sekolah Dasar Negeri (SDN) 2 Rawa Laut Bandar Lampung tamat tahun 2008.
2. Sekolah Menegah Pertama (SMP) Utama 3 Bandar Lampung tamat tahun 2011.
3. Sekolah Menengah Kejuruan Negeri (SMKN) 4 Bandar Lampung tamat Tahun
2014.
4. Pada tahun 2014 Penulis diterima di IIB Darmajaya Jurusan S-1 Teknik
Informatika.
Yang menyatakan
Bandar Lampung, 19 September
2018
Kurnia Oktavian
NPM.1411010037
PERSEMBAHAN
Kupersembahkan karya ini untuk :
1. Allah Subhanahu Wa Ta’ala atas limpahan anugrah yang telah diberikan
sehingga skripsi ini dapat terselesaikan dengan baik.
2. Kedua Orang Tuaku yang senantiasa mencurahkan kasih sayangnya untuk
keberhasilan dan setiap doanya untuk kehidupanku.
3. Bapak Apri Triansah, S.Kom., M.T.I, selaku pembimbing skripsi yang selalu
memberikan bimbingan dan masukan – masukan terbaik sehingga skripsi ini
dapat selesai dengan baik.
4. Teman terdekat Daus, Rizki, Steven, I Wayan, Danu, Ryan, Thiu, Fillian,
Steven, Arip, dan teman-teman yang sama – sama berjuang dan yang selalu
mendukung baik langsung maupun tidak langsung.
5. Terima kasih banyak kepada semua dosen yang telah membimbingku dan
memberikan ilmu pengetahuan, masukan dan dukungan.
6. Almamater tercinta Institut Bisnis dan Informatika Darmajaya (IIB)
Darmajaya yang telah memberikanku banyak bekal ilmu pengetahuan.
HALAMAN MOTTO
“Rahasia Keberhasilan Adalah Kerja Keras Dan Belajar Dari Kegagalan”
-Kurnia Oktavian
ABSTRAK
Penerapan Algoritma Dijkstra Dalam Pencarian Lokasi Terdekat Untuk Pet
Shop Pada Provinsi Lampung Berbasis Android
Oleh :
Kurnia Oktavian
Algoritma Dijkstra adalah sebuah algoritma yang dipakai dalam memecahkan
permasalahan jarak terpendek untuk sebuah graf berara dengan bobot-bobot sisi yang
bernilai tak-negatif. Algoritma ini ditemukan oleh Edger W. Dijkstra. Pada naskah
aslinya, algoritma ini digunakan untuk mencari lintasan terpendek pada graf berarah,
algoritma ini akan selalu bernilai benar bila diterapkan pada graf tak berarah.
Aplikasi Pet Shop Lampung dengan menggunakan algoritma dijkstra merupakan
salah satu bentuk sarana aplikasi yang bertujuan untuk membantu para pencinta
hewan atau pengguna aplikasi yang ingin mencari lokasi pet shop dalam
mendapatkan informasi, nama toko, lokasi tempat, no telepon, alamat, rute terpendek.
Penelitian pengembangan sistem pet shop Lampung menggunakan metode Prototype,
metode ini cocok digunakan untuk mengembangkan sebuah perangkat lunak yang
akan dikembangkan kembali. Metode ini dimulai dengan komunikasi dengan
pengguna. Kemudian membuat sebuah rancangan dan pemodelan yang selanjutnya
akan dilakukan pembetukan prototype sebelum di produksi. Hasil penelitian
menunjukan bahwa Aplikasi Pet Shop Lampung dengan menggunakan algortima
dijkstra dapat membantu pengguna dalam mencari rute terpendek.
Kata kunci: Java, Android, Pet Shop, Dijkstra.
PRAKATA
Puji syukur dipanjatkan kepada Tuhan YME, yang telah melimpahkan rahmat-
Nya sehingga dapat menyelesaikan laporan Skripsi. Laporan ini disusun sebagai
laporan tugas akhir. Dalam ini judul yang diangkat ialah “Penerapan Algoritma
Dijkstra Dalam Pencarian Lokasi Terdekat Untuk Pet Shop Pada Provinsi
Lampung Berbasis Android ”.
Penelitian ini di susun sebagai syarat untuk mencapai gelar sarjana strata satu(S1)
pada jurusan Teknik Informatika IIB Darmajaya Bandar Lampung. Dalam
penulisan penelitian ini saya banyak memperoleh bimbingan, dorongan dan
bantuan dari berbagai pihak. Untuk itu saya mengucapkan terima kasih
setulus – tulusnya kepada :
1. Ketua Yayasan Alfian Husein Institut Informatuka dan Bisnis Darmajaya
Bandar Lampung.
2. Bapak Ir. Firmansyah YA, MBA, M.Sc, Selaku Rektor Institut Informatika
dan Bisnis Darmajaya Bandar Lampung.
3. Bapak Sriyanto, S.Kom., MM, Selaku Dekan Fakultas Ilmu Komputer
Institut Informatika dan Bisnis Darmajaya Bandar Lampung.
4. Bapak Yuni Arkhiyansyah, M.Kom, Selaku Ketua Jurusan Teknik
Infomatika Institut Informatika dan Bisnis Darmajaya.
5. Bapak Apri Triansah, S.Kom., M.T.I, Selaku Dosen Pembimbing yang
telah banyak membimbing, mengarahkan, dan memotivasi penulis dalam
penyusunan penelitian ini.
6. Para Dosen, Staf dan karyawan Institut Informatika dan Bisnis Darmajaya
Bandar Lampung yang telah memberi bantuan baik langsung maupun
tidak langsung selama saya menjadi mahasiswa.
7. Semua pihak yang telah memberikan bantuan dan petunjuk sehingga saya
dapat lebih mudah dalam menyusun skripsi ini.
8. Almamater tercinta Institut Informatika dan Bisnis (IIB) Darmajaya yang
telah memberikan banyak bekal ilmu pengetahuan.
Saya menyadari bahwa skripsi ini masih jauh dari kesempurnaan, baik dalam
pembahasaan materi maupun dalam penyajiannya, oleh karena itu kritik dan saran
yang sifatnya membangun merupakan masukan yang sangat berarti bagi
penyempurnaan dimasa yang akan datang.
Semoga skripsi ini bermanfaat dan dapat dijadikan bahan pertimbangan informasi
bagi pihak yang berkepentingan.
Yang menyatakan
Bandar Lampung, 19 September
2018
Kurnia Oktavian
NPM.1411010037
DAFTAR ISI
Halaman
HALAMAN JUDUL .......................................................................................... i
HALAMAN PERNYATAAN ............................................................................ ii
HALAMAN PERSETUJUAN .......................................................................... iii
HALAMAN PENGESAHAN ........................................................................... iv
RIWAYAT HIDUP ........................................................................................... v
HALAMAN PERSEMBAHAN ....................................................................... vi
MOTTO ............................................................................................................... vii
ABSTRAK ......................................................................................................... viii
PRAKATA .......................................................................................................... ix
DAFTAR ISI ....................................................................................................... xi
DAFTAR TABEL .............................................................................................. xvi
DAFTAR GAMBAR .......................................................................................... xvii
BAB I PENDAHULUAN
1.1 Latar Belakang Masalah ..................................................................... 1
1.2 Rumusan Masalah .............................................................................. 2
1.3 Batasan Masalah ................................................................................. 2
1.4 Tujuan Penelitian ............................................................................... 2
1.5 Manfaat Penelitian ............................................................................. 2
1.6 Sistematika Penulisan ........................................................................ 3
BAB II LANDASAN TEORI
2.1 Sistem Informasi Geografis ................................................................. 4
2.2 Pet ....................................................................................................... 4
2.2.1 Pet Shop..................................................................................... 4
2.3 Algortima Dijkstra ............................................................................. 4
2.4 Metode Prototype ............................................................................... 5
2.5 Aplikasi .............................................................................................. 7
2.5.1 Android ..................................................................................... 7
2.5.2 Android Studio........................................................................... 7
2.5.3 Android Software Development Kit (SDK) ............................... 8
2.5.4 Android Development Tools (ADT) ......................................... 8
2.5.5 Arsitektur Android .................................................................... 8
2.5.6 Java ........................................................................................... 10
2.5.7 Google Maps Api ...................................................................... 10
2.5.8 JSON ......................................................................................... 10
2.6 Database ............................................................................................ 11
2.6.1 Sqlite ........................................................................................ 11
2.7 Black-Box Testing .............................................................................. 11
2.8 Unified Modeling Language (UML) .................................................. 12
2.8.1 Use case Diagram ..................................................................... 12
2.8.2 Activity Diagram ...................................................................... 13
2.8.3 Class Diagram .......................................................................... 14
2.9 Penelitian Terkait ............................................................................... 15
BAB III METODOLOGI PENELITIAN
3.1 Metode Pengumpulan Data ................................................................ 17
3.1.1 Observasi .................................................................................. 17
3.1.2 Wawancara ............................................................................... 17
3.1.3 Studio Literatur ........................................................................ 17
3.2 Metode Pengembangan Perangkat Lunak .......................................... 17
3.2.1 Komunikasi .............................................................................. 17
3.2.2 Perencanaan Cepat ................................................................... 18
3.2.2.1 Analisa Kebutuan Non Fungsional .............................. 18
a. Analsis Kebutuhan Pengguna (User) .......................... 18
b.Analisis Kebutuhan Perangkat Lunak (Software) ....... 18
c. Analisis Kebutuhan Perangkat Keras (Hardware) ..... 19
3.2.2.2 Tahapan Algortima Dijkstra ........................................ 19
3.2.3 Pemodelan Desain .................................................................... 20
3.2.3.1 Flowchart Algortima Dijkstra ..................................... 20
3.2.3.2 Desain UML ................................................................ 21
a. Use Case Diagram ...................................................... 21
b. Rancangan Activity Diagram Menu Utama ............... 22
c. Rancangan Activity Diagram Menu Navigasi ............ 22
d. Rancangan Activity Diagram Daftar Pet Shop ........... 22
e. Rancangan Activity Diagram Detail Informasi Pet Shop
23
f. Rancangan Activity Diagram
Peta Pet Shop Bandar Lampung ................................ 23
g. Rancangan Activity Diagram
Peta Pet Shop Metro .................................................. 24
h. Rancangan Activity Diagram
Peta Pet Shop Pringsewu ........................................... 24
i. Rancangan Activity Diagram
Peta Pet Shop Kalianda .............................................. 25
j. Rancangan Activity Diagram Bantuan ........................ 26
k. Rancangan Activity Diagram Tentang Aplikasi ......... 26
3.2.3.3 Class Diagram ............................................................. 26
3.2.3.4 Desain Antar Muka Aplikasi ....................................... 27
a. Rancangan Tampilan Halaman Menu Utama .............. 27
b. Rancangan Tampilan Halaman Menu Navigasi ......... 28
c. Rancangan Tampilan Halaman Daftar Pet Shop ........ 29
d. Rancangan Tampilan Halaman
Detail Informasi Pet Shop .......................................... 29
e. Rancangan Tampilan Halaman
Peta Pet Shop Bandar Lampung ................................ 30
f. Rancangan Tampilan Halaman
Peta Pet Shop Metro .................................................. 31
g. Rancangan Tampilan Halaman
Peta Pet Shop Pringsewu ........................................... 31
h. Rancangan Tampilan Halaman
Peta Pet Shop Kalianda .............................................. 32
i. Rancangan Tampilan Halaman Bantuan ..................... 33
j. Rancangan Tampilan Halaman Tentang Aplikasi ....... 33
3.2.4 Pembentukan Prototype ......................................................... 34
3.2.5 Penyerahan Sistem dan Umpan Balik .................................... 35
BAB IV HASIL PENELITIAN DAN PEMBAHASAN
4.1 Hasil Penelitian ................................................................................ 36
4.1.1 Persiapan Data ....................................................................... 36
4.1.1 Pengujian Data ....................................................................... 37
4.1.3 Pengujian Algortima Dijkstra
Pada Aplikasi Pet Shop Lampung ......................................... 37
4.2 Implementasi .................................................................................... 38
4.2.1 Implementasi Basis Data ....................................................... 38
4.2.2 Implementasi Tampilan ......................................................... 39
4.2.2.1 Tampilan Halaman Menu Utama ............................... 39
4.2.2.2 Tampilan Halaman Menu Navigasi ........................... 40
4.2.2.3 Tampilan Halaman Daftar Pet Shop .......................... 40
4.2.2.4 Tampilan Halaman Detail Informasi Pet Shop .......... 41
4.2.2.5 Tampilan Halaman Peta Pet Shop Bandar Lampung . 41
4.2.2.6 Tampilan Halaman Peta Pet Shop Metro ................... 42
4.2.2.7 Tampilan Halaman Peta Pet Shop Pringsewu ........... 42
4.2.2.8 Tampilan Halaman Peta Pet Shop Kalianda .............. 43
4.2.2.9 Tampilan Halaman Bantuan ...................................... 43
4.2.2.10 Tampilan Halaman Tentang Aplikasi ...................... 44
4.2.3 Pengujian Sistem .................................................................... 44
4.2.3.1 Pengujian Pada Menu Utama .................................. 44
4.2.3.2 Pengujian Pada Menu Navigasi .............................. 46
4.2.3.3 Pengujian Pada Daftar Pet Shop ............................. 47
4.2.3.4 Pengujian Pada Detail Informasi Pet Shop ............. 49
4.2.3.5 Pengujian Pada Peta Pet Shop Bandar Lampung .... 50
4.2.3.6 Pengujian Pada Peta Pet Shop Metro ...................... 52
4.2.3.7 Pengujian Pada Peta Pet Shop Pringsewu ............... 53
4.2.3.8 Pengujian Pada Peta Pet Shop Kalianda ................. 55
4.2.3.9 Pengujian Pada Pet Shop Bantuan .......................... 56
4.2.3.10 Pengujian Pada Tentang Aplikasi ......................... 58
4.3 Kelebihan dan Kelemahan Aplikasi ................................................. 60
4.3.1 Kelebihan Aplikasi .............................................................. 60
4.3.2 Kelemahan Aplikasi ............................................................ 60
BAB V SIMPULAN DAN SARAN
5.1 Simpulan ............................................................................................. 61
5.2 Saran ................................................................................................... 61
DAFTAR PUSTAKA
LAMPIRAN
DAFTAR GAMBAR
Halaman
Gambar 2.1 Metode Prototype ............................................................................. 6
Gambar 2.2 Arsitektur Android ........................................................................... 9
Gambar 3.1 Flowcart Aplikasi ............................................................................ 20
Gambar 3.2 Use Case Diagram ........................................................................... 21
Gambar 3.3 Rancangan Activity Diagram Menu Utama ..................................... 22
Gambar 3.4 Rancangan Activity Diagram Menu Navigasi .................................. 22
Gambar 3.5 Rancangan Activity Diagram Daftar Pet Shop ................................. 23
Gambar 3.6 Rancangan Activity Diagram Detail Informasi Pet Shop ................. 23
Gambar 3.7 Rancangan Activity Diagram Peta Pet Shop Bandar Lampung ....... 24
Gambar 3.8 Rancangan Activity Diagram Peta Pet Shop Metro ......................... 24
Gambar 3.9 Rancangan Activity Diagram Peta Pet Shop Pringsewu .................. 25
Gambar 3.10 Rancangan Activity Diagram Peta Pet Shop Kalianda ................... 25
Gambar 3.11 Rancangan Activity Diagram Bantuan ........................................... 26
Gambar 3.12 Rancangan Activity Diagram Tentang Aplikasi ............................. 26
Gambar 3.13 Class Diagram Aplikasi Pet Shop .................................................. 27
Gambar 3.14 Rancangan Tampilan Halaman Menu utama ................................. 28
Gambar 3.15 Rancangan Tampilan Halaman Menu Navigasi ............................. 28
Gambar 3.16 Rancangan Tampilan Halaman Daftar Pet Shop ............................ 29
Gambar 3.17 Rancangan Tampilan Halaman Detail Informasi Pet Shop ............. 30
Gambar 3.18 Rancangan Tampilan Halaman Peta Pet Shop Bandar Lampung .. 30
Gambar 3.19 Rancangan Tampilan Halaman Peta Pet Shop Metro .................... 31
Gambar 3.20 Rancangan Tampilan Halaman Peta Pet Shop Pringsewu ............. 32
Gambar 3.21 Rancangan Tampilan Halaman Peta Pet Shop Kalianda ................ 32
Gambar 3.22 Rancangan Tampilan Halaman Bantuan ........................................ 33
Gambar 3.23 Rancangan Tampilan Halaman Tentang Aplikasi .......................... 34
Gambar 4.1 Rancangan Peta Dijkstra Metro ........................................................ 36
Gambar 4.2 Hasil Pengujian Menggunakan Aplikasi Pet Shop Lampung ........... 38
Gambar 4.3 Implementasi Basis Data .................................................................. 39
Gambar 4.4 Tampilan Halaman Menu Utama ..................................................... 39
Gambar 4.5 Tampilan Halaman Menu Navigasi .................................................. 40
Gambar 4.6 Tampilan Halaman Daftar Pet Shop.................................................. 40
Gambar 4.7 Tampilan Halaman Detail Informasi Pet Shop ................................ 41
Gambar 4.8 Tampilan Halaman Peta Pet Shop Bandar Lampung ....................... 41
Gambar 4.9 Tampilan Halaman Peta Pet Shop Metro .......................................... 42
Gambar 4.10 Tampilan Halaman Peta Pet Shop Pringsewu ................................ 42
Gambar 4.11 Tampilan Halaman Peta Pet Shop Kalianda .................................. 43
Gambar 4.12 Tampilan Halaman Bantuan ........................................................... 43
Gambar 4.13 Tampilan Halaman Tentang Aplikasi ............................................ 44
Daftar Tabel
Halaman
Tabel 2.1 Simbol dan Ketengan Use Case Diagram ........................................... 13
Tabel 2.2 Simbol dan Ketengan Activity Diagram .............................................. 14
Tabel 2.3 Simbol dan Ketengan Class Diagram .................................................. 15
Tabel 2.4 Penelitian Terkait ................................................................................. 16
Tabel 4.1 Data Uji Dijkstra .................................................................................. 37
Tabel 4.2 Pengujian Menu Utama ........................................................................ 45
Tabel 4.3 Pengujian Menu Navigasi .................................................................... 46
Tabel 4.4 Pengujian Daftar Pet Shop ................................................................... 48
Tabel 4.5 Pengujian Detail Informasi Pet Shop ................................................... 49
Tabel 4.6 Pengujian Peta Pet Shop Bandar Lampung .......................................... 51
Tabel 4.7 Pengujian Peta Pet Shop Metro ............................................................ 52
Tabel 4.8 Pengujian Peta Pet Shop Pringsewu ..................................................... 54
Tabel 4.9 Pengujian Peta Pet Shop Kalianda ....................................................... 55
Tabel 4.10 Pengujian Bantuan ............................................................................. 57
Tabel 4.11 Pengujian Tentang Aplikasi ............................................................... 58
BAB 1
PENDAHULUAN
1.1 Latar Belakang
Di era modern teknologi dan komunikasi berkembang semakin pesat
kebutuhan akan informasi sangat diperlukan, salah satunya pet shop. Masyarakat
yang memelihara hewan peliharaan bukan hanya sebagai hobi tetapi berinteraksi
dengan hewan peliharaan pun mampu mengusir stres dan rasa kesepian.
Pet shop adalah tempat yang menyediakan segala kebutuhan makanan,
penitipan, aksesoris, obat-obatan dan penjualan hewan peliharaan. Dengan
banyaknya lokasi pet shop yang berada di Provinsi Lampung masih banyak
masyarakat yang belum mengetahui tempat untuk menitipkan hewan
peliharaannya saat sedang ingin berlibur keluar kota, di samping itu banyaknya
jenis hewan peliharaan menyebabkan ketidaktahuan tempat untuk membeli
kebutuhan seperti makanan, obat-obatan, aksesoris dan tempat untuk membeli
hewan peliharaan yang diinginkan. Keterbatasan waktu dan jarak lokasi
menyebabkan susahnya menjangkau lokasi pet shop.
Sistem Informasi Geografis (SIG) suatu sistem Informasi yang dapat
memadukan antara data grafis (gambar) dengan data teks (atribut) objek yang
dihubungkan secara geografis di bumi. Teknologi SIG mengintegrasikan operasi
pengolahan data berbasis database yang biasa digunakan saat ini, seperti
pengambilan visualisasi yang khas serta berbagai keuntungan yang mampu
ditawarkan analisis geografis melalui gambar-gambar petanya.
Oleh karena itu dengan perancangan dan pembuatan Sistem Informasi
Geografis (SIG) berbasis android. Android adalah sistem operasi berbasis Linux
yang dirancang untuk perangkat bergerak layar sentuh seperti telepon pintar dan
komputer tablet.
Berdasarkan latar belakang masalah diatas, maka penulis melakukan
penelitian dengan judul “Penerapan Metode Dijkstra Dalam Pencarian Lokasi
Terdekat Untuk Pet Shop pada Provinsi Lampung Berbasis Android” yang
2
diharapkan dapat membantu pengguna aplikasi pet shop dalam melakukan
pencarian lokasi pet shop di Provinsi Lampung.
1.2 Rumusan Masalah
Berdasarkan latar belakang yang sudah dijabarkan di atas, dapat dirumuskan
beberapa permasalahan antara lain :
1. Bagaimana penerapan metode dijkstra dalam pencarian lokasi terdekat pet
shop?
2. Bagaimana membangun aplikasi Sistem Informasi Geografis Pet Shop ini
dapat membantu pengguna dalam informasi yang disediakan?
1.3 Batasan Masalah
Batasan masalah yang akan di teliti untuk menghindari meluasnya masalah,
dibatasi pada:
1. IDE yang digunakan dalam pembuatan aplikasi yaitu android studio dan
api google sebagai visualiasi peta.
2. Tempat pet shop yang diteliti bedasarkan skala kota Bandar Lampung,
Pringsewu, Metro, dan Kalianda.
3. Aplikasi pet shop dibangun untuk berjalan pada sistem operasi android 5.1
hingga 8.1.
1.4 Tujuan Penelitian
Adapun tujuan dari penelitian ini adalah:
1. Perancangan Aplikasi ini diharapkan dapat membantu pengguna dalam
mencari lokasi terdekat.
2. Membangun aplikasi berbasis android pet shop.
3. Mengimplementasikan algoritma dijkstra untuk menentukan lokasi pet
shop terdekat.
1.5 Manfaat Penelitian
Manfaat dari penelitian ini adalah diharapkan membantu pengguna aplikasi pet
shop yang berada di Provinsi Lampung dalam mencari informasi toko seperti
3
alamat, foto toko, dan informasi hewan dan makanan yang di jual oleh toko pet
shop.
1.6 Sistematika Penulisan
Uraian singkat mengenai sistematika penulisan pada masing-masing bab adalah
sebagai berikut :
BAB I : PENDAHULUAN
Pada bab ini berisi tentang latar belakang, identifikasi masalah,
rumusan masalah, batasan masalah, tujuan dan manfaat penelitian,
dan sistematika penulisan.
BAB II : LANDASAN TEORI
Pada bab ini berisi tentang teori-teori yang mendukung penelitian
yang akan dilakukan oleh penulis/peneliti.
BAB III : METODOLOGI PENELITIAN
Bab ini berisi metode – metode penelitian yang digunakan serta
kebutuhan sistem aplikasi yang dibuat untuk menentukan
konsentrasi skripsi dan rekomendasi bahasa pemrograman baik
berupa analisis kebutuhan data, desain dan rancangan konteks
diagram, rancangan database, dan rancangan tampilan.
BAB IV : HASIL PENELITIAN DAN PEMBAHASAN
Bab ini menjelaskan tentang hasil analisis dan pembahasan yang
diperoleh berkaitan dengan landasan teori yang relevan dan
memberikan gambaran tentang desain aplikasi yang baru.
BAB V : SIMPULAN DAN SARAN
Bab ini berisi tentang kesimpulan dan saran yang diharapkan dapat
bermanfaat untuk pengembangan sistem informasi geografis pet
shop berbasis android selanjutnya.
DAFTAR PUSTAKA
LAMPIRAN
BAB II
LANDASAN TEORI
2.1 Sistem Informasi Geografis
Menurut Riyanto (2009:35) Sistem Informasi Geografis (SIG) adalah sistem
informasi khusus yang mengelola data yang memiliki informasi spasial
(bereferensi keruangan). Atau dalam arti yang lebih sempit, adalah sistem
komputer yang memiliki kemampuan untuk membangun, menyimpan, mengelola
dan menampilkan informasi bereferensi geografis, misalnya data yang
diidentifikasi menurut lokasinya, dalam sebuah database.
2.2 Pet
Menurut Undang-udang No.18 Pasal 1 hewan peliharaan (pet) adalah hewan yang
kehidupannya untuk sebagian atau seluruhnya bergantung pada manusia untuk
maksud tertentu.
2.2.1 Pet Shop
Pet shop adalah toko hewan peliharaan dimana berbagai pelayanan untuk
hewan peliharaan tersedia ditoko baik jual beli, penitipan, dan perawatan
seperti memandikan dan salon.
2.3 Algoritma Dijkstra
Siang (2009 : 306) mengatakan bahwa algoritma yang ditemukan oleh Dijkstra
untuk mencari path terpendek merupakan algoritma yang lebih efisien
dibandingkan algoritma Warshall, meskipun implementasinya juga lebih sukar.
Misalkan G adalah graf berarah berlabel dengan titik-titik V(G)={v1, v2,..., vn}
dan path terpendek yang dicari adalah dari v1 ke vn. Algoritma Dijkstra dimulai
dari titik v1. dalam iterasinya, algoritma akan mencari satu titik yang jumlah
bobotnya dari titik 1 terkecil. Titik-titik yang terpiih dipisahkan dan titik-titik
tersebut tidak diperhatikan lagi dalam iterasi berikutnya.
5
Misalkan:
V (G) = {v1, v2,.., vn}
L = Himpunan titik-titik ε V (G) yang sudah terpilih dalam jalur path
terpendek.
D(j) = Jumlah bobot path terkecil dari v1 ke vj.
w(i,j) = Bobot garis dari titik vi ke vj.
w*(1,j) = Jumlah bobot path terkecil dari v1 ke vj
Secara formal, algoritma Dijkstra untuk mencari path terpendek adalah
sebagai berikut:
1. L = { };
V = {v2, v3,.., }.
2. Untuk i = 2, ..., n, lakukan D(i) – w(1, i)
3. Selama ∉ L lakukan:
a. Pilih titik vk ∈ V - L dengan D(k) terkecil.
L = L ∪ { }
b. Untuk setiap vj ∈ V - L lakukan:
Jika D(j) > D(k) + W(k,j) maka ganti D(j) dengan D(k) + W(k,j)
4. Untuk setiap vj ∈ V, w*(1, j) = D(j)
Menurut algoritma di atas, path terpendek dari titik ke adalah melalui titik
titik dalam L secara berurutan, dan jumlah bobot path terkecilnya adalah D(n).
2.4 Metode Prototype
Pressman (2012 : 51) menguraikan bahwa dalam melakukan perancangan sistem
yang akan dikembangkan dapat menggunakan metode prototype. Metode ini
cocok digunakan untuk mengembangkan sebuah perangkat lunak yang
dikembangkan kembali. Metode ini dimulai dengan pengumpulan kebutuhan
pengguna. Kemudian membuat sebuah rancangan kilat yang selanjutnya akan
dievaluasi kembali sebelum di produksi secara benar. Prototype bukanlah
merupakan sesuatu yang lengkap, tetapi sesuatu yang harus dievaluasi dan
dimodifikasi kembali. Segala perubahan dapat terjadi pada saat prototype dibuat
6
untuk memenuhi kebutuhan pengguna dan saat yang sama memungkinkan
pengembangan untuk lebih memahami kebutuhan pengguna secara baik.
Berikut adalah tahapan dalam metode prootype :
1. Komunikasi (Communication) dan pengumpulan data awal, yaitu
komunikasi dengan klien dan user untuk menentukan kebutuhan.
2. Perencanaan cepat (Quick Plan), yaitu pembuatan perencaan analisis
terhadap kebutuhan pengguna.
3. Pemodelan perancangan cepat (Modeling Quick Design), yaitu membuat
rancangan desain program.
4. Pembentukan prototype (Construction of prototype), yaitu pembuatan
aplikasi berdasarkan dari pemodelan desain yang telah dibuat.
5. Penyerahan sistem dan umpan balik(Development Delevery and
Feedback), yaitu memproduksi perangkat secara benar sehingga dapat
digunakan oleh pengguna.
Gambar 2.1 Metode Prototype (Pressman, 2012)
7
2.5 Aplikasi
Safaat (2012 : 9) mengatakan bahwa perangkat lunak aplikasi adalah suatu
subkelas perangkat lunak komputer yang memanfaatkan kemampuan komputer
langsung untuk melakukan suatu tugas yang diinginkan pengguna. Biasanya
dibandingkan dengan perangkat lunak sistem yang mengintegrasikan berbagai
kemampuan komputer, tapi tidak secara langsung menerapkan kemampuan
tersebut untuk mengerjakan suatu tugas yang menguntungkan pengguna. Contoh
utama perangkat lunak aplikasi adalah pengolah kata, lembar kerja, dan pemutar
media. Beberapa aplikasi yang digabung bersama menjadi suatu paket kadang
disebut sebagai suatu paket atau suite aplikasi (application suite). Contohnya
adalah Microsoft Office dan Open Office.org, yang menggabungkan suatu
aplikasi pengolah kata, lembar kerja, serta beberapa aplikasi lainnya. Aplikasi-
aplikasi dalam suatu paket biasanya memiliki antarmuka pengguna yang memiliki
kesamaan sehingga memudahkan pengguna untuk mempelajari dan menggunakan
setiap aplikasi. Sering kali, aplikasi ini memiliki kemampuan untuk saling
berinteraksi satu sama lain sehingga menguntungkan pengguna. Contohnya, suatu
lembar kerja dapat dibenamkan dalam suatu dokumen pengolah kata walaupun
dibuat pada aplikasi lembar kerja yang terpisah.
2.5.1 Android
Kasman (2013:2) menguraikan bahwa “Android” merupakan sebuah
sistem operasi yang berbasis Linux untuk perangkat portable seperti
smartphone dan komputer tablet”. Android menyediakan platform terbuka
bagi programmer untuk mengembangkan aplikasi sendiri pada berbagai
perangkat dengan sistem operasi Android.
2.5.2 Android Studio
Satyaputra & Aritonang ( 2016 : 01) Menguraikan bahwa Android studio
adalah IDE resmi untuk membangun aplikasi Android berdasarkan Intellij
IDEA. Intellij IDEA sendiri adalah java Integrated Development
Environment (IDE) yang dikembangkan oleh JetBrains, untuk
mengembangkan perangkat lunak komputer. Intellij IDE berfungsi dalam
membantu anda dalam dunia per-coding-an baik dari segi navigasi,
penyokong produktivitas, hingga code editor yang cerdas. Android studio
8
dibangun denga tujuan mempercepat proses pembangunan maupun
pengembangan aplikasi yang berkualitas tinggi untuk setiap device
Android.
2.5.3 Android Software Development Kit (SDK)
Kasman (2013 : 21) Android SDK (Software Development Kit) merupakan
sebuah tools yang diperlukan untuk mengembangkan aplikasi berbasis
Android menggunakan bahasa pemograman Java. Pada saat ini Android
SDK telah menjadi alat bantu dan API (Aplication Programming Interface)
untuk mengembangkan aplikasi berbasis Android.
2.5.4 Android Development Tools (ADT)
Safaat (2010 : 6) Menyampaikan bahwa Android Development Tools
(ADT) adalah plugin untuk Eclipse Intergrated Development
Environment (IDE) yang dirancang untuk memberikan lingkungan yang
terpadu di mana untuk membangun aplikasi Android. ADT memperluas
kemampuan Eclipse untuk membiarkan para developer lebih cepat
dalam membuat proyek baru Android, membuat aplikasi UI,
menambahkan komponen berdasarkan Android Framework API, debug
aplikasi dalam pengunaan Android SDK, dan membuat file APK untuk
mendistribusikan aplikasi.
2.5.5 Arsitektur Android
Kasman (2013 : 06) Menguraikan bahwa Secara umum, arsitektur Android
terdiri dari lapisan software, yaitu lapisan aplikasi, framework aplikasi,
pustaka, Android runtime, dan kernel linux. Gambar 2.1 berikut
merupakan arsitektur dari Android :
9
Gambar 2.2 Arsitektur Android (Kasman, 2013)
Penjelasan dari arsitektur Android adalah sebagai berikut :
1) Framework Aplikasi Dibawah aplikasi terdapat sejumlah software
pendukung, meliputi layanan pegelola activity, view, sumber daya,
pemberitahuan ( notifikasi ) dan lain lain.
2) Pustaka Android menyediakan sejumlah pustaka dasar seperti pustaka
grafis 2D dan 3D, multimedia playback, browser engine, percetakan font,
database dan lain – lain. Aplikasi yang memanfaatkan pustaka fungsi ini
melalui laisan framework aplikasi.
3) AndroidRunTime menyediakan pustaka inti bagi pemrograman Java, dan
terdapat Dalvik Virtual Machine yang akan menjalankan aplikasi. Tiap
aplikasi akan dijalankan pada proses terpisah dengan Virtual Machine
yang berbeda sehinggo terisolasi satu sama lain. Aplikasi masih dapat
berkomunikasi dengan aplikasi lain melalui mekanisme yang disediakan
framework aplikasi. Dalvik VM bergantung pada lapisan dibawahnya
(kernel linux) untuk multi-threading dan pengelolaan memori tingkat
rendah.
10
4) Kernel linux bertanggung jawab menyediakan layar dasar seperti
keamanan, pengelolaan proses, pengelolaan file, pengelolaan sumber daya
memori dan hardware.
2.5.6 Java
Haryanto (2011 : 2) Menguraikan Java merupakan bahasa berorientasi
objek untuk pengembangan aplikasi mandiri, aplikasi berbasis internet,
aplikasi untuk perangkat cerdas yang dapat berkomunikasi lewat internet/
jaringan komunikasi. Melalui teknologi java, dimungkinkan perangkat
audio streo dirumah terhubung jaringan komputer. Java tidak lagi hanya
untuk membuat applet yang memperintah halaman web tapi java telah
menjadi bahasa untuk pengembangan aplikasi skala interprise berbasis
jaringan besar.
2.5.7 Google Maps Api
Google Maps Application Programming Interface (API) adalah salah satu
fasilitas aplikasi yang dibuatkan oleh google untuk memfasilitasi
pengguna yang ingin menggabungkan Google Maps ke dalam website
masing-masing dengan menampilkan data point milik sendiri. Dengan
menggunakan Google Maps API, Google Maps dapat disimpan pada
website eksternal. Supaya aplikasi Google Maps dapat perlihatkan di
website tertentu, diperlukan adanya API key. API key merupakan kode
unik yang digenerasikan oleh google untuk suatu website tertentu, agar
server Google Maps dapat mengenali.
2.5.8 JSON
Menurut (Json, 2018) JSON (JavaScript Object Notation) adalah format
pertukaran data yang ringan, mudah dibaca dan ditulis oleh manusia, serta
mudah diterjemahkan dan dibuat (generate) oleh komputer. Format ini
dibuat berdasarkan bagian dari Bahasa Pemprograman JavaScript, Standar
ECMA-262 Edisi ke-3 - Desember 1999. JSON merupakan format teks
yang tidak bergantung pada bahasa pemprograman apapun karena
menggunakan gaya bahasa yang umum digunakan oleh programmer
keluarga C termasuk C, C++, C#, Java, JavaScript, Perl, Python dll. Oleh
11
karena sifat-sifat tersebut, menjadikan JSON ideal sebagai bahasa
pertukaran-data.
2.6 Database
Kadir (Kadir, 2009) Menguraikan Sebuah Basis Data adalah sebuah struktur yang
umumnya dikategorikan dalam hal Sebuah Basis Data flat dan sebuah Basis Data
relasional. Basis data relasional lebih disukai karena lebih masuk akal
dibandingkan Basis data flat Ada tabel-tabel yang menyimpan data. Setiap tabel
terdiri dari kolom dan baris. Sebuah kolom mendefinisikan jenis informasi apa
yang akan disimpan. Diperlukan kolom khusus untuk setiap jenis informasi yang
ingin di simpan.
2.6.1 Sqlite
Safaat (2012:4) SQLite adalah salah satu software yang embedded yang
sangat popular, kombinasi SQL interface dan penggunaan memory yang
sangat sedikit dengan kecepatan yang sangat cepat. SQLite di android
termasuk dalam Android runtime, sehingga setiap versi dari android dapat
membuat database dengan SQLite.
Dalam sistem android terdapat beberapa teknik untuk melakukan
penyimpanan data. Teknik yang umum digunakan adalah sebagai berikut:
1. Shared prefences yaitu menyimpan data beberapa nilai (value) dalam
bentuk groups key yang dikenal dengan prefences.
2. Files yaitu menyimpan data dalam file, dapat berupa menulis ke file
atau membaca dari file.
3. SQLite Database, yaitu menyimpan data dalam bentuk database.
4. Content Providers, yaitu menyimpan data dalam bentuk content
providers service.
2.7 Black-Box Testing
(Pressman, 2012 : 597) Menguraikan Black Box Testing atau Pengujian Kotak
Hitam atau juga disebut Behavioral Testing, berfokus pada persyaratan fungsional
dari perangkat lunak. Artinya, teknik Black-Box Testing memungkinkan untuk
12
mendapatkan set kondisi masukan yang sepenuhnya akan melaksanakan semua
persyaratan fungsional untuk suatu program.
Black-Box Testing bukan merupakan alternatif dari pengujian White Box Testing.
Sebaliknya, Black-Box Testing adalah pendekatan komplementer yang mungkin
untuk mengungkap kelas yang berbeda dari kesalahan daripada metode White
Box Testing.
Black Box Testing mencoba untuk menemukan kesalahan dalam kategori berikut.
1. Fungsi tidak benar atau hilang.
2. Kesalahan interface atau antarmuka.
3. Kesalahan dalam struktur data atau akses database eksternal.
4. Kesalahan kinerja atau perilaku.
5. Kesalahan inisialisasi dan terminasi.
2.8 Unified Modeling Language (UML)
(Nugroho, 2015) Menguraikan Unified Modeling Language (UML) adalah
keluarga notasi grafis yang didukung oleh meta-model tunggal, yang membantu
pendeskripsian dan desain sistem perangkat lunak, khususnya sistem yang
dibangun menggunakan pemrograman berorientasi objek (OOP). Definisi ini
merupakan definisi yang sederhana. Pada kenyataannya, pendapat orang–orang
tentang UML berbeda satu sama lain. Hal ini dikarenakan oleh sejarahnya sendiri
dan oleh perbedaan persepsi tentang apa yang membuat sebuah proses rancang–
bangun perangkat lunak efektif.
UML lahir dari penggabungan banyak bahasa permodelan grafis berorientasi
objek yang berkembang pesat pada akhir 1980-an dan awal 1990-an. UML dibuat
oleh Grady Booch, James Rumbaugh, dan Ivar Jacobson di bawah bendera
Rational Software Corp. UML menyediakan notasi-notasi yang membantu
memodelkan sistem dari berbagai perspektif. UML tidak hanya digunakan dalam
pemodelan perangkat lunak, namun hampir dalam semua bidang yang
membutuhkan pemodelan.
13
2.8.1 Use case Diagram
(Nugroho, 2015) Menguraikan Use case Diagram adalah diagram yang
mendeskripsikan interaksi antara pengguna dengan aplikasi.
Kesimpulannya use case digunakan untuk mengetahui fungsi apa saja
yang ada di dalam sebuah sistem. Simbol dan keterangan use casedapat
dilihat pada Tabel 2.1.
Tabel 2.1 Simbol dan keterangan Use case diagram
SIMBOL KETERANGAN
Aktor
Mewakili peran orang, sistem yang lain atau alat
ketika berkomunikasi dengan use case
Use case
Abstraksi dan interaksi antara sistem dan aktor
Association
Abstraksi dari penghubung antara aktor dan use
case
Generalisasi Menunjukkan spesialisasi aktor untuk dapat
berpartisipasi dengan use case
<<include>>
Menunjukkan bahwa suatu use case seluruhnya
merupakan fungsionalitas dari use case lainnya
<<extend>>
Menunjukkan bahwa suatu use case merupakan
tambahan fungsional dari use case lainnya jika
suatu kondisi terpenuhi
14
2.8.2 Activity Diagram
(Nugroho, 2015) Menguraikan Activity Diagram atau Diagram Aktivitas
menggambarkan alur aktivitas dalam aplikasi, menjelaskan proses masing-
masing alur berawal dan proses aplikasi berakhir. Diagram aktivitas juga
menggambarkan proses paralel yang mungkin terjadi pada beberapa
eksekusi. Simbol dan keterangan activity diagramdapat dilihat pada Tabel
2.2.
Tabel 2.2 Simbol dan keterangan activity diagram
SIMBOL KETERANGAN
Status Awal
Status awal aktivitas sistem, sebuah
diagram aktivitas memiliki status awal.
Aktivitas
Aktivitas yang dilakukan sistem, aktiv.itas
biasanya diawali dengan kata kerja
Percabangan/decision
Asosiasi percabangan dimana jika ada
pilihan aktivitass lebih dari satu.
Status akhir
Status akhir yang dilakukan sistem, sebuah
diagram aktivitas memiliki sebuah status
akhir
2.8.3 Class Diagram
Class Diagram atau Diagram Kelas merupakan diagram yang
memodelkan sekumpulan kelas, interface, kolaborasi, dan relasinya.
Diagram kelas digambarkan dengan bentuk kotak (Nugroho, 2015).
Simbol dan keterangan class diagramdapat dilihat pada Tabel 2.3.
15
Tabel 2.3 Simbol dan keterangan class diagram
SIMBOL KETERANGAN
CLASS
Himpunan dari objek-objek yang berbagai atribut
serta operasi yang sama.
Nary Association
Upaya untuk menghindari asosiasi dengan lebih dari 2
objek.
Generalization
Hubungan dimana objek anak (descendent) berbagai
perilaku dan struktur data dari objek yang ada
diatasnya objek induk (oncestor).
Realization
Operasi yang benar-benar dilakukan suatu objek.
2.9 Penelitian Terkait
Penelitian yang terkait sebelumnya menggunakan beberapa jurnal yang terkait
dengan penelitian ini yang dapat dilihat pada tabel 2.4.
Tabel 2.4 Penelitian Terkait
No Judul Nama Tahun
16
1 Sistem Informasi Geografis Untuk
Perjalanan Wisata Di Kota
Semarang
Danny
Manongga,
Samuel Papilaya,
Selfiana Pandie
2009
2 Aplikasi Google Maps API untuk
Sistem Informasi Geografis
Errissya Rasywir 2011
Tabel 2.4 Penelitian Terkait (lanjutan)
No Judul Nama Tahun
3 Sistem Informasi Geografis
Pariwisata Berbasis Web Dan
Pencarian Jalur Terpendek Dengan
Algoritma Dijkstra
Sholeh Hadi
Pramono,
Sunaryo
2013
4 Implementasi Algoritma Dijkstra
Dalam Aplikasi Untuk Menentukan
Lintasan Terpendek Jalan Darat
Antar Kota Di Sumatera Bagian
Selatan
Fitria, Apri
Triansyah
2013
BAB III
METODOLOGI PENELITIAN
3.1 Metode Pengumpulan Data
Dalam menyusun penelitian ini, diperlukan data – data informasi yang relatif
lengkap sebagai bahan yang mendukung kebenaran materi pembahasan sehingga
dilakukan pengumpulan data untuk mendapatkan informasi atau materi yang
diperlukan. Adapun metode pengumpulan data dalam penelitian ini dapat
dijabarkan sebagai berikut :
3.1.1 Observasi
Metode pengumpulan data ini dilakukan dengan cara melakukan pengamatan
langsung pada objek penelitian. Objek penelitian yang dipilih oleh peneliti
adalah Rumi Pet Shop dan Pet Shop yang berada di Lampung.
3.1.2 Wawancara
Metode ini dilakukan dengan cara bertemu langsung dan melakukan tanya
jawab/wawancara dengan pihak yang berkaitan, pihak yang berkaitan pada
penelitian yang dilakukan yaitu pemilik atau pengurus pet shop.
3.1.3 Studi literatur
Metode ini digunakan untuk mencari sumber – sumber atau data yang
mendukung dan diperlukan dalam penelitian yang bisa diperoleh dari
membaca buku – buku referensi, artikel atau jurnal penelitian yang pernah
dilakukan sebelumnya. Penelitian terkait yang pernah di lakukan sebelumnya
dapat dilihat pada tabel 2.4.
3.2 Metode Pengembangan Perangkat Lunak
Pada tahapan pengumpulan perangkat lunak, penelitian ini dilakukan berdasarkan
metode pengembangan sistem yang dipilih yaitu metode pengembangan sistem
Prototype.
3.2.1 Komunikasi
Komunikasi harus dilakukan dengan yang tepat. Data objektif dan relevan
dengan pokok pembahasan menjadi indikator keberhasilan suatu penelitian.
18
Komunikasi dilakukan dengan cara mengadakan interaksi dengan klien dan
user sehingga kebutuhan perangkat lunak dapat terpenuhi.
3.2.2 Perencanaan Cepat
Quick Plan (rencana cepat) merupakan tahapan dengan melakukan analisis
dan perencanaan setelah kita mendapatkan data-data dari tahapan komunikasi.
3.2.2.1 Analisa kebutuhan Non Fungsional
Analisa kebutuhan non fungsional adalah sebuah langka dimana seseorang
pembangun perangkat lunak menganalisis sumber daya yang akan
menggunakan perangkat lunak yang dibangun. Analisis kebutuhan non
fungsional tidak hanya menganalisis siapa saja yang akan menggunakan
aplikasi tetapi juga menganalisis perangkat keras dan perangkat lunak agar
aplikasi dapat berjalan dengan baik. Analisis non fungsional yang
dilakukan dibagi dalam tiga tahapan, yaitu :
a. Analisis Kebutuhan Pengguna (User)
Analisis kebutuhan pengguna yang digunakan untuk memasang aplikasi
pet shop Lampung dengan ketentuan sebagai berikut:
1. Menggunakan Sistem Operasi berbasis Android.
2. Menggunakan Sistem Operasi Android minimum versi 5.1
Lollipop.
b. Analisis Kebutuhan Perangkat Lunak (Software)
Analisis kebutuhan perangkat lunak yang digunakan untuk membangun
aplikasi pet shop Lampung pada android adalah sebagai berikut :
1. Perangkat lunak sistem operasi pada PC adalah Microsoft Windows
10 64 bit.
2. Perangkat lunak sistem operasi pada android minimum adalah
Android versi 5.1 (Lollipop).
3. Perangkat lunak untuk pembuatan program adalah Android Studio.
4. Perangkat lunak yang di gunakan untuk pembuatan database adalah
DB Browser for SQLite.
5. Perangkat lunak yang digunakan untuk pembuatan graph peta
graph.latcoding.com
19
6. Perangkat lunak pembuatan komponen aplikasi adakah Adobe XD.
c. Analisis Kebutuhan Perangkat Keras (Hardware)
Analisis kebutuhan perangkat keras yang digunakan untuk membangun
sebuah sistem website adalah sebagai berikut :
Spesifikasi minimum untuk PC :
1. Processor Intel Core i5-4210U.
2. Ram 8 Gb.
3. Harddisk 500 Gb.
4. Keyboard dan Mouse.
Spesifikasi minimum untuk android :
1. Prosessor Qualqom Snapdragon 615.
2. Ram 1 Gb.
3. Strorage 500 Mb.
Analisa tersebut bukanlah hal yang mutlak, namun merupakan pendapat
peneliti tentang minimum penggunaan perangkat keras yang dipakai
dalam pengembangan aplikasi pet shop lampung berbasis android.
3.2.2.2 Tahapan Algorima Dijkstra
Dalam penelitian ini akan diimplementasikan metode Dijkstra untuk
menentukan jarak terdekat. Pada tahapan ada beberapa langkah dalam
algortima dijkstra.
1. Beri nilai bobot (jarak) untuk setiap titik ke titik lainnya, lalu set
nilai 0 pada node awal dan nilai tak hingga terhadap node lain
(belum terisi)
2. Set semua node “Belum Terjamah” dan set node awal sebagai
“Node keberangkatan”
3. Dari no keberangkatan, pertimbangkan node tetangga yang belum
terjamah dan hitung jaraknya dari titik keberangkatan. Sebagai
contoh, jika titik keberangkatan A ke B memiliki bobot jarak 6 dan
dari B ke node C berjarak 2, maka jarak ke C melewati B menjadi
6+2=8. Jika jarak ini lebih kecil dari jarak sebelumnya (yang telah
20
terekam sebelumnya) hapus data lama, simpan ulang data jarak
dengan jarak yang baru.
4. Saat kita selesai mempertimbangkan setiap jarak terhadap node
tetangga, tandai node yang telah terjamah sebagai “Node
terjamah”. Node terjamah tidak akan pernah di cek kembali, jarak
yang disimpan adalah jarak terakhir dan yang paling minimal
bobotnya.
5. Set “Node belum terjamah” dengan jarak terkecil (dari node
keberangkatan) sebagai “Node Keberangkatan” selanjutnya dan
lanjutkan dengan kembali ke langkah 3.
3.2.3 Pemodelan Desain
Analisis kebutuhan dari tahap sebelumnya akan dipelajari dalam fase ini dan
desain sistem disiapkan. Desain Sistem membantu dalam mendefinisikan
arsitektur sistem secara keseluruhan.
3.2.3.1 Flowchart Algortima Dijkstra
Mulai
Input Lokasi
User dan Pet
Shop Tujuan
Tentukan node awal
dan node akhir
Beri label
sementara jarak
antar titik
Mencari node
ketetanggan bobot
terkecil dengan
node awal
Beri Label Permanen
Mencari bobot selanjutnya
dan membandingkan antar
bobot
Sudah di
kunjungi?
Selesai
Masukan node awal
kedalam tabel
Tidak
Periksa bobot node
Ya
Bobot baru <
bobot lama?
Bobot tetap Perbarui bobot
Tidak
Ya
Bandingkan bobot
setiap node
Tetapkan nilai bobot
terkecil
Node
Tujuan?
Hasil rute terpendek
Ya
Tidak
21
Gambar 3.1 Flowchart Aplikasi
3.2.3.2 Desain UML (Unified Modelling Language)
UML (Unified Modelling Language) yaitu suatu metode permodelan
secara visual untuk sarana perancangan sistem berorientasi objek, atau
definisi UML yaitu sebagai suatu bahasa yang sudah menjadi standar pada
visualisasi, perancangan dan juga pendokumentasian sistem software. Pada
Penelitian kali ini UML yang dipakai adalah Use Case, Activity Diagram,
dan Class Diagram.
a. Rancangan Use Case Diagram
Rancangan use case diagram dapat dilihat pada gambar 3.2.
Gambar 3.2 Use Case Diagram Sistem
Berdasarkan use case diagram pada gambar 3.2 dapat dijelaskan secara
singkat masing-masing fungsi dari use case sebagai berikut :
22
1. Use case menu utama, use case yang berisi tentang halaman daftar
pet shop dan peta pet shop lampung.
2. Use case menu navigasi, use case yang berisi penjelasan tentang
halaman bantuan dalam penggunaan aplikasi dan tentang aplikasi.
b. Rancangan Activity Diagram Menu Utama
Rancangan activity diagram menu utama dapat dilihat pada gambar 3.3.
Pengguna Aplikasi
Membuka Aplikasi Menampilkan Menu Utama
- Daftar Pet Shop
- Map Bandar Lampung
- Map Metro
- Map Pringsewu
- Map Kalianda
Gambar 3.3 Activity Diagram Menu Utama
c. Rancangan Activity Diagram Menu Navigasi
Rancangan activity diagram menu navigasi dapat dilihat pada gambar 3.4.
Pengguna Aplikasi
Membuka Aplikasi
Menampilkan Menu Navigasi
- Bantuan
- Tentang Aplikasi
Gambar 3.4 Activity Diagram Menu Navigasi
d. Rancangan Activity Diagram Daftar Pet shop
23
Rancangan activity diagram daftar pet shop dapat dilihat pada gambar 3.5.
Pengguna Aplikasi
Memilih Daftar Pet
Shop
Menampilkan Daftar
Pet Shop
Gambar 3.5 Activity Diagram Daftar Petshop
e. Rancangan Activity Diagram Detail Informasi Pet Shop
Rancangan activity diagram detail informasi pet shop dapat dilihat pada
gambar 3.6.
Pengguna Aplikasi
Memilih Daftar Pet
Shop
Menampilkan Daftar
Pet Shop
Memilih Salah Satu
Pet Shop
Menampilkan Detail
Informasi Pet Shop
Gambar 3.6 Activity Diagram Detail Informasi Pet Shop
f. Rancangan Activity Diagram Peta Pet Shop Bandar Lampung
Rancangan activity diagram peta pet shop Bandar Lampung dapat dilihat
pada gambar 3.7.
24
Pengguna Aplikasi
Memilih Peta Pet
Shop Bandar
Lampung
Menampilkan Peta
Pet Shop Bandar
Lampung
Memilih Pet Shop
yang ingin dituju
Men-tap posisi user
Menampilkan jalur
terdekat ke lokasi Pet
Shop tujuan
Gambar 3.7 Rancangan Activity Diagram Peta Pet Shop Bandar Lampung
g. Rancangan Activity Diagram Peta Pet Shop Metro
Rancangan activity diagram peta pet shop Metro dapat dilihat pada gambar
3.8.
Pengguna Aplikasi
Memilih Peta Pet
Shop Metro
Menampilkan Peta
Pet Shop Metro
Memilih Pet Shop
yang ingin dituju
Men-tap posisi user
Menampilkan jalur
terdekat ke lokasi Pet
Shop tujuan
Gambar 3.8 Rancangan Activity Diagram Peta Pet Shop Metro
h. Rancangan Activity Diagram Peta Pet Shop Pringsewu
Rancangan activity diagram peta pet shop Pringsewu dapat dilihat pada
gambar 3.9.
25
Pengguna Aplikasi
Memilih Peta Pet
Shop Pringsewu
Menampilkan Peta
Pet Shop Pringsewu
Memilih Pet Shop
yang ingin dituju
Men-tap posisi user
Menampilkan jalur
terdekat ke lokasi Pet
Shop tujuan
Gambar 3.9 Rancangan Activity Diagram Peta Pet Shop Pringsewu
i. Rancangan Activity Diagram Peta Pet Shop Kalianda
Rancangan activity diagram Peta pet shop Kalianda dapat dilihat pada
gambar 3.10.
Pengguna Aplikasi
Memilih Peta Pet
Shop Kalianda
Menampilkan Peta
Pet Shop Kalianda
Memilih Pet Shop
yang ingin dituju
Men-tap posisi user
Menampilkan jalur
terdekat ke lokasi Pet
Shop tujuan
Gambar 3.10 Rancangan Activity Diagram Peta Pet Shop Kalianda
26
j. Rancangan Activity Diagram Bantuan
Rancangan activity diagram bantuan dapat dilihat pada gambar 3.11.
Pengguna Aplikasi
Memilih Menu
Navigasi BantuanMenampilkan Bantuan
Gambar 3.11 Rancangan Activity Diagram Bantuan
k. Rancangan Activity Diagram Tentang Aplikasi
Rancangan activity diagram tentang aplikasi dapat dilihat pada gambar
3.12.
Pengguna Aplikasi
Membuka Menu Navigasi
Tentang Aplikasi
Menampilkan Tentang
Aplikasi
Gambar 3.12 Rancangan Activity Diagram Tentang Aplikasi
3.2.3.3 Class Diagram
Class Diagram menggambarkan struktur dan deskripsi class, package dan
objek beserta hubungan satu sama lain. Class diagram pada aplikasi Pet
Shop Lampung yaitu sebagai berikut. Tampilan rancangan halaman menu
utama dapat dilihat pada gambar 3.13.
27
TokoActivity
+namapetshop
caripetshop()
getnamapetshop()
getid()
BandarLampungActivity
+bandarlampungpetshop
+jarak
+pathdijkstra
+waktutempuh
dijkstra()
getkordinat()
getbandarlampug()
jarak()
Menu Utama
+about
MetroActivity
+petshopbandarlampung
+jarak
+pathdijkstra
+waktutempuh
dijkstra()
getkordinat()
getmetro()
jarak()
PringsewuActivity
+petshopbandarlampung
+jarak
+pathdijkstra
+waktutempuh
dijkstra()
getkordinat()
getpringsewu()
jarak()
KaliandaActivity
+kaliandapetshop
+jarak
+pathdijkstra
+waktutempuh
dijkstra()
getkordinat()
getkalianda()
jarak()
+tokopetshop
DetailTokoActivity
+gambarpetshop
+namapetshop
+notelp
+alamat
+deskripsi
getgambar()
getnamapetshop()
getnotelp()
getalamat()
getdeskripsi()
+kaliandamaps
memulaiproses()
+bandarlampungmaps
+metromaps
+bantuan
Gambar 3.13 Class Diagram Aplikasi Pet Shop Lampung
3.2.3.4 Desain Antar Muka Aplikasi
Desain aplikasi merupakan rancangan bagaimana bentuk dan rupa
tampilan aplikasi yang ingin kita buat.
a. Rancangan Tampilan Halaman Menu Utama
Pada rancangan tampilan menu utama terdapat menu-menu utama yang
dapat dipilih di dalam aplikasi. Menu-menu tersebut diantaranya menu
daftar pet shop, menu peta pet shop Bandar Lampung, menu peta pet shop
Metro, peta pet shop Pringsewu, dan peta pet shop Kalianda. Tampilan
rancangan halaman menu utama dapat dilihat pada gambar 3.14.
28
Daftar Pet Shop
Peta Pet
Shop BDL
Pet Pet
Shop
Metro
Pet Pet
Shop
Pringsewu
Pet Pet
Shop
Kalianda
Aplikasi Pet Shop Lampung
Gambar 3.14 Rancangan Tampilan Menu Utama
b. Rancangan Tampilan Halaman Menu Navigasi
Rancangan tampilan halaman menu navigasi berisi terdapat menu-menu
utama yang dapat dipilih di dalam aplikasi. Menu-menu tersebut
diantaranya menu bantuan, dan menu tentang aplikasi. Rancangan
tampilan halaman menu navigasi dapat dilihat pada gambar 3.15.
LOGO
Bantuan
Tentang Aplikasi
Gambar 3.15 Rancangan Tampilan Halaman Menu Navigasi
29
c. Rancangan Tampilan Halaman Daftar Pet Shop
Rancangan tampilan halaman daftar pet shop berisi daftar nama toko pet
shop yang ada di lampung, dan juga tombol bantuan untuk mencari pet
shop yang ada di dalam daftar. Rancangan tampilan daftar pet shop dilihat
pada gambar 3.16.
Pencarian
Pet Shop 1
Pet Shop 2
Pet Shop 3
Pet Shop 4
Pet Shop 5
Pet Shop 6
Pet Shop 7
Pet Shop 8
Pet Shop 9
Gambar 3.16 Rancangan Tampilan Halaman Daftar Pet Shop
d. Rancangan Tampilan Halaman Detail Informasi Pet Shop
Rancangan tampilan halaman detail informasi pet shop berisi informasi
nama toko, alamat, dan deskripsi barang atau hewan yang di jual.
Rancangan tampilan halaman Bantuan dapat dilihat pada gambar 3.17.
30
Gambar Pet Shop
Nama Toko:
No Telp:
Alamat:
Deskripsi:
Gambar 3.17 Rancangan Tampilan Halaman Detail Informasi Pet Shop
e. Rancangan Tampilan Halaman Peta Pet Shop Bandar Lampung
Rancangan tampilan halaman peta pet shop Bandar Lampung berisi
tentang pengguna mencari jarak terdekat pet shop yang ada di kota Bandar
Lampung dan informasi jarak dan waktu tempuh pet shop yang ingin di
tuju. Rancangan tampilan halaman peta pet shop Bandar Lampung dapat
dilihat pada gambar 3.18.
Pilih Pet Shop BDL
Feedback Tips
25km10 Miles
0 Km 0 Menit
--Pilih Pet Shop Bandar Lampung--
Feedback Tips
25km10 Miles
0 Km 0 Menit
Gambar 3.18 Rancangan Halaman Peta Pet Shop Bandar Lampung
31
f. Rancangan Tampilan Halaman Peta Pet Shop Metro
Rancangan tampilan halaman peta pet shop Metro berisi tentang pengguna
mencari jarak terdekat pet shop yang ada di kota Metro dan informasi jarak
dan waktu tempuh pet shop yang ingin di tuju. Rancangan tampilan
halaman peta pet shop Metro dapat dilihat pada gambar 3.19.
--Pilih Pet Shop Metro--
Feedback Tips
25km10 Miles
0 Km 0 Menit
Gambar 3.19 Rancangan Tampilan Halaman Peta Pet Shop Metro
g. Rancangan Tampilan Halaman Peta Pet Shop Pringsewu
Rancangan tampilan halaman peta pet shop Pringsewu berisi tentang
pengguna mencari jarak terdekat pet shop yang ada di kota Pringsewu dan
informasi jarak dan waktu tempuh pet shop yang ingin di tuju. Rancangan
tampilan halaman peta pet shop Pringsewu dapat dilihat pada gambar 3.20.
32
--Pilih Pet Shop Pringsewu--
Feedback Tips
25km10 Miles
0 Km 0 Menit
Gambar 3.20 Rancangan Halaman Peta Pet Shop Pringsewu
h. Rancangan Tampilan Halaman Peta Pet Shop Kalianda
Rancangan tampilan halaman peta pet shop Kalianda berisi tentang
pengguna mencari jarak terdekat pet shop yang ada di kota Kalianda dan
informasi jarak dan waktu tempuh pet shop yang ingin di tuju. Rancangan
tampilan halaman peta pet shop Kalianda dapat dilihat pada gambar 3.21.
--Pilih Pet Shop Kalianda--
Feedback Tips
25km10 Miles
0 Km 0 Menit
Gambar 3.21 Rancangan Tampilan Halaman Peta Pet Shop Kalianda
33
i. Rancangan Tampilan Halaman Bantuan
Rancangan tampilan halaman bantuan berisi petunjuk penggunaan
aplikasi. Rancangan tampilan halaman Bantuan dapat dilihat pada gambar
3.22.
Bantuan
Gambar 3.22 Rancangan Tampilan Halaman Bantuan
j. Rancangan Tampilan Halaman Tentang Aplikasi
Pada gambar diatas berisi rancangan tampilan halaman tentang aplikasi.
Berisi informasi tentang aplikasi dan juga email pembuat aplikasi bila
pengguna ingin memberikan saran atau kritik. Rancangan tampilan
halaman tentang aplikasi dapat dilihat pada gambar 3.23.
34
Keluar
Logo
Gambar 3.23 Rancangan Tampilan Halaman Tentang Aplikasi
3.2.4 Pembentukan Prototype
Pada tahap inilah aplikasi dibuat dengan menggunakan bahasa pemrograman
tertentu dan diuji bagaimana program berjalan.
1) Pembuatan aplikasi
Dalam penelitian ini aplikasi dibuat pada dasarnya dengan menggunakan
Android Studio dan juga perangkat lunak penunjang yang telah dijelaskan
pada sub bab analisis kebutuhan perangkat lunak. Sedangkan untuk
bahasa pemrograman yang di gunakan adalah Java.
2) Pengujian aplikasi
Pengujian aplikasi dilakukan dengan menggunakan metode black-box
testing. Pengujian yang akan dilakukan yaitu dengan menguji fungsi dari
masing masing halaman yang terdapat pada aplikasi. Pengujian dilakukan
dengan menggunakan tiga buah perangkat yang berbeda yang memiliki
spesifikasi dengan keriteria tinggi, sedang, dan rendah dilihat dari segi
perangkat kerasnya.
35
Berikut adalah ketiga perangkat tersebut dan spesifikasinya :
1. Perangkat Kategori Rendah
a. Nama Perangkat : Xperia Z1
b. Versi Sistem Operasi : Android 5.1 (Lollipop)
c. Prosesor : Quad-core 2.2 GHz Krait 400
d. Kapasitas RAM : 2 Gb
2. Perangkat Kategori Sedang
a. Nama Perangkat : Xiaomi Redmi Note 3
b. Versi Sistem Operasi : Android 6.0 (Marshmallow)
c. Prosesor : Hexa-core 1.4 GHz Cortex-A53
d. Kapasitas RAM : 3 Gb
3. Perangkat Kategori Tinggi
a. Nama Perangkat : Xiaomi Redmi 5 Plus
b. Versi Sistem Operasi : Android 7.0 (Nougat)
c. Prosesor : Octa-core 2.0 GHz Cortex-A53
d. Kapasitas RAM : 4 Gb
3.2.5 Penyerahan Sistem dan Umpan Balik
Penyerahan sistem dan umpan balik merupakan tahapan ketika aplikasi telah
selesai dibuat. Aplikasi yang telah dibuat akan distribusikan melalui Google
Play Store sehingga semua orang bisa mengunduhnya.
BAB IV
HASIL PENELITIAN DAN PEMBAHASAN
4.1 Hasil Penelitian
Pada bab ini di jelaskan mengenai hasil penelitian dan implementasi program dari
berbagai proses yang telah di rancang pada bab 3. Adapun tahapan- tahapan nya
adalah sebagai berikut.
4.1.1 Persiapan Data
Tahapan ini dimulai dengan melakukan pembuatan rancangan peta
dijkstra untuk di implementasikan pada maps google. Dalam pengujian
ini dibuat 18 node dijkstra pada peta Metro. Berdasarkan hasil rancangan
dijkstra tersebut akan dicari lokasi terdekat berdasarkan titik awal dan
titik akhir. Untuk rancangan peta dijkstra dapat di lihat gambar 4.1 dan
selengkapnya dapat dilihat pada lampiran.
Gambar 4.1 Rancangan Peta Dijkstra Metro
37
4.1.2 Pengujian Data
Pengujian ini bertujuan untuk mengetahui untuk kerja dari algoritma
dijkstra dalam mencari lokasi terdekat berdasarkan dari rancangan peta
dan titik awal dan akhir yang telah ditentukan:
Tabel 4.1 Data Uji Dijkstra
Jika titik awal (start) node 3 Jl. Jendral Sudirman dan titik akhir (finish)
node 9 Geky Kios di Jl. AH Nasution maka langkah awal dalam mencari
lokasi terdekat adalah:
1. Beri label sementara untuk jarak antar titik.
2. Menentukan jarak minimum dari label sementara, node 3 adalah titik
awal yang memiliki bobot 0.
3. Mencari titik terpendek berikutnya yaitu node 4 dan set sebagai label
permanen, dan di dapatkan jarak yang terhubung node 4 adalah node
5 dan 18, pilih bobot terpendek berikutnya yaitu 18 dan set sebagai
label permanen dan ulangi langkah hingga mendapatkan label
permanen node 9.
Hasil path: 3-4-18-2-10-9.
4.1.3 Pengujian Algortima Dijkstra Pada Aplikasi Pet Shop
Lampung
Pengujian ini bertujuan untuk mengetahui apakah aplikasi yang buat
sesuai dengan pengujian data yang telah di lakukan sebelumnya:
38
Gambar 4.2 Hasil Pengujian Menggunakan Aplikasi Pet Shop Lampung
Jika node awal 3 berada di tengah-tengah node 4 maka dibuat node baru
dengan total seluruh node Metro yaitu 18, +1 maka 19, dan Jika node
akhir 9 berada di tengah-tengah node 10 maka dibuat node baru dengan
total seluruh node Metro yaitu 18, +1 maka 19, jika node sudah terisi
oleh awal yang baru maka akan di tambah lagi +1 menjadi node 20.
Jadi node awal 3 diganti 19, dan node 9 diubah menjadi 20.
Hasil path: 19-4-18-2-10-20.
4.2 Implementasi
Implementasi yang akan dibahas pada bab ini meliputi implementasi basis data,
implementasi algoritma dijkstra, implementasi tampilan dan juga pengujian
aplikasi.
4.2.1 Implementasi Basis Data
Implementasi basis data yang dibuat menggunakan database sqlite yang
merupakan bagian dari android studio. Basis data ini dibuat berdasarkan
Class Diagram yang sudah di rancang sebelumnya. Pembuatan basis data
ini dilakukan dengan menggunakan tools DB Browser for SQLite yang
dijalankan melalui desktop dapat di lihat pada gambar 4.3.
39
Gambar 4.3 Implementasi Basis Data
4.2.2 Implementasi Tampilan
4.2.2.1 Tampilan Halaman Menu Utama
Halaman home adalah halaman yang akan muncul pertama kali ketika
user membuka aplikasi ini. Tampilan dari halaman home dapat di lihat
pada gambar 4.4.
Gambar 4.4 Tampilan Halaman Menu Utama
40
4.2.2.2 Tampilan Halaman Menu Navigasi
Halaman menu navigasi adalah halaman yang akan digunakan user
untuk melihat halaman bantuan dan halaman tentang aplikasi. Tampilan
dari halaman menu navigasi dapat di lihat pada gambar 4.5.
Gambar 4.5 Tampilan Halaman Menu Navigasi
4.2.2.3 Tampilan Halaman Daftar Pet Shop
Halaman daftar petshop digunakan untuk menampilkan daftar-daftar
nama pet shop yang berada di Lampung. Berikut adalah tampilan
halaman daftar pet shop dapat di lihat pada gambar 4.6.
Gambar 4.6 Tampilan Halaman Daftar Pet Shop
41
4.2.2.4 Tampilan Halaman Detail Informasi Pet Shop
Halaman Detail Informasi Pet Shop adalah halaman yang digunakan
untuk menampilkan informasi nama toko, no. telepon, alamat, deskripsi
barang dan hewan yang di jual. Berikut adalah tampilan halaman detail
informasi pet shop dapat di lihat pada gambar 4.7.
Gambar 4.7 Tampilan Detail Informasi Pet Shop
4.2.2.5 Tampilan Halaman Peta Pet Shop Bandar Lampung
Halaman Peta Pet Shop Bandar Lampung digunakan user untuk mencari
lokasi toko yang berada di Bandar Lampung dan mencari lokasi terdekat
pet shop. Berikut tampilan halaman peta Pet Shop Bandar Lampung
dapat di lihat pada gambar 4.8.
Gambar 4.8 Tampilan Halaman Peta Pet Shop Bandar Lampung
42
4.2.2.6 Tampilan Halaman Peta Pet Shop Metro
Halaman Peta Pet Shop Metro digunakan user untuk mencari lokasi toko
yang berada di Metro dan mencari lokasi terdekat pet shop. Berikut
tampilan halaman peta Pet Shop Metro dapat di lihat pada gambar 4.9.
Gambar 4.9 Tampilan Halaman Peta Pet Shop Metro
4.2.2.7 Tampilan Halaman Peta Pet Shop Pringsewu
Halaman Peta Pet Shop Pringsewu digunakan user untuk mencari lokasi
toko yang berada di Pringsewu dan mencari lokasi terdekat pet shop.
Berikut tampilan halaman peta pet shop Pringsewu dapat di lihat pada
gambar 4.10.
Gambar 4.10 Tampilan Halaman Peta Pet Shop Pringsewu
43
4.2.2.8 Tampilan Halaman Peta Pet Shop Kalianda
Halaman Peta Pet Shop Kalianda digunakan user untuk mencari lokasi
toko yang berada di Kalianda dan mencari lokasi terdekat pet shop.
Berikut tampilan halaman peta pet shop Kalianda dapat di lihat pada
gambar 4.11
Gambar 4.11 Tampilan Halaman Peta Pet Shop Kalianda
4.2.2.9 Tampilan Halaman Bantuan
Halaman bantuan adalah halaman yang memberikan petunjuk
penggunaan aplikasi. Berikut tampilan halaman bantuan dapat di lihat
pada gambar 4.12.
Gambar 4.12 Tampilan Halaman Tampilan Halaman Bantuan
44
4.2.2.10 Tampilan Halaman Tentang Aplikasi
Halaman tentang aplikasi adalah memberi tahu user tentang pengembang
aplikasi. Berikut tampilan halaman bantuan dapat di lihat pada gambar
4.13.
Gambar 4.13 Tampilan Halaman Tampilan Halaman Tentang Aplikasi
4.2.3 Pengujian Sistem
Proses pengujian sistem dilakukan dengan menggunakan metode black
box testing. Pada saat melakukan pengujian dengan menggunakan
smartphone Sony Xperia Z1, Xiaomi Note 3, dan Xiaomi 5 Plus proses
berjalan dengan baik, semua menu aplikasi dapat diakses. Aplikasi ini
bisa digunakan di smartphone android lain yang sudah berbasis android
dengan minimum versi 5.1 (Lollipop) sampai yang terbaru versi 8.0
(Oreo).
4.2.3.1 Pengujian Pada Menu Utama
Hasil uji aplikasi pada menu utama terhadap beberapa merk smartphone
berbasis android akan dijelaskan pada tabel 4.2 halaman berikut:
45
Tabel 4.2 Pengujian Menu Utama
No Item Uji Tipe Item Gambar Keterangan
1
Processor
Quad-core
2.2 GHz
Krait 400
Aplikasi
dapat di buka
dengan lancar
dan dapat
berfungsi
dengan baik.
RAM 2 Gb
Merk Xperia Z1
Versi Lollipop 5.1
Layar 5.0 Inch
2
Processor
Hexa-core
1.4 GHz
Cortex-A53
Aplikasi
dapat di buka
dengan lancar
dan dapat
berfungsi
dengan baik.
RAM 3 GB
Merk Xiaomi Note
3
Versi Marshmallow
6.0
Layar 5.5 Inch
46
Tabel 4.2 Pengujian Menu Utama (lanjutan)
No Item Uji Tipe Item Gambar Keterangan
3
Processor
Octa-core
2.0 GHz
Cortex-A53
Aplikasi
dapat di buka
dengan lancar
dan dapat
berfungsi
dengan baik.
RAM 4 GB
Merk Xiaomi 5
Plus
Versi Nougat 7.0
Layar 5.99 Inch
4.2.3.2 Pengujian Pada Menu Navigasi
Hasil uji aplikasi pada menu navigasi terhadap beberapa merk
smartphone berbasis android akan dijelaskan pada tabel 4.3 halaman
berikut:
Tabel 4.3 Pengujian Menu Navigasi
No Item Uji Tipe Item Gambar Keterangan
1
Processor
Quad-core
2.2 GHz
Krait 400
Aplikasi
dapat di buka
dengan lancar
dan dapat
berfungsi
dengan baik.
RAM 2 Gb
Merk Xperia Z1
Versi Lollipop 5.1
47
Layar 5.0 Inch
Tabel 4.3 Pengujian Menu Navigasi (lanjutan)
No Item Uji Tipe Item Gambar Keterangan
2
Processor
Hexa-core
1.4 GHz
Cortex-A53
Aplikasi
dapat di buka
dengan lancar
dan dapat
berfungsi
dengan baik.
RAM 3 GB
Merk Xiaomi Note
3
Versi Marshmallow
6.0
Layar 5.5 Inch
3
Processor
Octa-core 2.0
GHz Cortex-
A53
Aplikasi
dapat di buka
dengan lancar
dan dapat
berfungsi
dengan baik.
RAM 4 GB
Merk Xiaomi 5
Plus
Versi Nougat 7.0
Layar 5.99 Inch
4.2.3.3 Pengujian Pada Daftar Pet Shop
48
Hasil uji aplikasi pada daftar pet shop terhadap beberapa merk
smartphone berbasis android akan dijelaskan pada tabel 4.4 halaman
berikut:
Tabel 4.4 Pengujian Daftar Pet Shop
No Item Uji Tipe Item Gambar Keterangan
1
Processor
Quad-core
2.2 GHz
Krait 400
Aplikasi
dapat di buka
dengan lancar
dan dapat
berfungsi
dengan baik.
RAM 2 Gb
Merk Xperia Z1
Versi Lollipop 5.1
Layar 5.0 Inch
2
Processor
Hexa-core
1.4 GHz
Cortex-A53
Aplikasi
dapat di buka
dengan lancar
dan dapat
berfungsi
dengan baik.
RAM 3 GB
Merk Xiaomi Note
3
Versi Marshmallow
6.0
Layar 5.5 Inch
49
Tabel 4.4 Pengujian Daftar Pet Shop (lanjutan)
No Item Uji Tipe Item Gambar Keterangan
3
Processor
Octa-core
2.0 GHz
Cortex-A53
Aplikasi
dapat di buka
dengan lancar
dan dapat
berfungsi
dengan baik.
RAM 4 GB
Merk Xiaomi 5
Plus
Versi Nougat 7.0
Layar 5.99 Inch
4.2.3.4 Pengujian Pada Detail Informasi Pet Shop
Hasil uji aplikasi pada detail informasi pet shop terhadap beberapa merk
smartphone berbasis android akan dijelaskan pada tabel 4.5 halaman
berikut:
Tabel 4.5 Pengujian Detail Informasi Pet Shop
No Item Uji Tipe Item Gambar Keterangan
1
Processor
Quad-core
2.2 GHz
Krait 400
Aplikasi
dapat di buka
dengan lancar
dan dapat
berfungsi
dengan baik.
RAM 2 Gb
Merk Xperia Z1
Versi Lollipop 5.1
50
Layar 5.0 Inch
Tabel 4.5 Pengujian Detail Informasi Pet Shop (lanjutan)
No Item Uji Tipe Item Gambar Keterangan
2
Processor
Hexa-core
1.4 GHz
Cortex-A53
Aplikasi
dapat di buka
dengan lancar
dan dapat
berfungsi
dengan baik.
RAM 3 GB
Merk Xiaomi Note
3
Versi Marshmallow
6.0
Layar 5.5 Inch
3
Processor
Octa-core 2.0
GHz Cortex-
A53
Aplikasi
dapat di buka
dengan lancar
dan dapat
berfungsi
dengan baik.
RAM 4 GB
Merk Xiaomi 5
Plus
Versi Nougat 7.0
Layar 5.99 Inch
4.2.3.5 Pengujian Pada Peta Pet Shop Bandar Lampung
51
Hasil uji aplikasi pada peta pet shop Bandar Lampung terhadap beberapa
merk smartphone berbasis android akan dijelaskan pada tabel 4.6
halaman berikut:
Tabel 4.6 Pengujian Peta Pet Shop Bandar Lampung
No Item Uji Tipe Item Gambar Keterangan
1
Processor
Quad-core
2.2 GHz
Krait 400
Aplikasi
dapat di buka
dengan lancar
dan dapat
berfungsi
dengan baik.
RAM 2 Gb
Merk Xperia Z1
Versi Lollipop 5.1
Layar 5.0 Inch
2
Processor
Hexa-core
1.4 GHz
Cortex-A53
Aplikasi
dapat di buka
dengan lancar
dan dapat
berfungsi
dengan baik.
RAM 3 GB
Merk Xiaomi Note
3
Versi Marshmallow
6.0
Layar 5.5 Inch
52
Tabel 4.6 Pengujian Peta Pet Shop Bandar Lampung (lanjutan)
No Item Uji Tipe Item Gambar Keterangan
3
Processor
Octa-core
2.0 GHz
Cortex-A53
Aplikasi
dapat di buka
dengan lancar
dan dapat
berfungsi
dengan baik.
RAM 4 GB
Merk Xiaomi 5
Plus
Versi Nougat 7.0
Layar 5.99 Inch
4.2.3.6 Pengujian Pada Peta Pet Shop Metro
Hasil uji aplikasi pada peta pet shop Metro terhadap beberapa merk
smartphone berbasis android akan dijelaskan pada tabel 4.7 halaman
berikut:
Tabel 4.7 Pengujian Peta Pet Shop Metro
No Item Uji Tipe Item Gambar Keterangan
1
Processor
Quad-core
2.2 GHz
Krait 400
Aplikasi
dapat di buka
dengan lancar
dan dapat
berfungsi
dengan baik.
RAM 2 Gb
Merk Xperia Z1
Versi Lollipop 5.1
53
Layar 5.0 Inch
Tabel 4.7 Pengujian Peta Pet Shop Metro (lanjutan)
No Item Uji Tipe Item Gambar Keterangan
2
Processor
Hexa-core
1.4 GHz
Cortex-A53
Aplikasi
dapat di buka
dengan lancar
dan dapat
berfungsi
dengan baik.
RAM 3 GB
Merk Xiaomi Note
3
Versi Marshmallow
6.0
Layar 5.5 Inch
3
Processor
Octa-core 2.0
GHz Cortex-
A53
Aplikasi
dapat di buka
dengan lancar
dan dapat
berfungsi
dengan baik.
RAM 4 GB
Merk Xiaomi 5
Plus
Versi Nougat 7.0
Layar 5.99 Inch
4.2.3.7 Pengujian Pada Peta Pet Shop Pringsewu
54
Hasil uji aplikasi pada peta pet shop Pringsewu terhadap beberapa merk
smartphone berbasis android akan dijelaskan pada tabel 4.8 halaman
berikut:
Tabel 4.8 Pengujian Pada Peta Pet Shop Pringsewu
No Item Uji Tipe Item Gambar Keterangan
1
Processor
Quad-core
2.2 GHz
Krait 400
Aplikasi
dapat di buka
dengan lancar
dan dapat
berfungsi
dengan baik.
RAM 2 Gb
Merk Xperia Z1
Versi Lollipop 5.1
Layar 5.0 Inch
2
Processor
Hexa-core
1.4 GHz
Cortex-A53
Aplikasi
dapat di buka
dengan lancar
dan dapat
berfungsi
dengan baik.
RAM 3 GB
Merk Xiaomi Note
3
Versi Marshmallow
6.0
Layar 5.5 Inch
55
Tabel 4.8 Pengujian Pada Peta Pet Shop Pringsewu (lanjutan)
No Item Uji Tipe Item Gambar Keterangan
3
Processor
Octa-core
2.0 GHz
Cortex-A53
Aplikasi
dapat di buka
dengan lancar
dan dapat
berfungsi
dengan baik.
RAM 4 GB
Merk Xiaomi 5
Plus
Versi Nougat 7.0
Layar 5.99 Inch
4.2.3.8 Pengujian Pada Peta Pet Shop Kalianda
Hasil uji aplikasi pada peta pet shop Kalianda terhadap beberapa merk
smartphone berbasis android akan dijelaskan pada tabel 4.9 halaman
berikut:
Tabel 4.9 Pengujian Pada Peta Pet Shop Kalianda
No Item Uji Tipe Item Gambar Keterangan
1
Processor
Quad-core
2.2 GHz
Krait 400
Aplikasi
dapat di buka
dengan lancar
dan dapat
berfungsi
dengan baik.
RAM 2 Gb
Merk Xperia Z1
Versi Lollipop 5.1
56
Layar 5.0 Inch
Tabel 4.9 Pengujian Pada Peta Pet Shop Kalianda (lanjutan)
No Item Uji Tipe Item Gambar Keterangan
2
Processor
Hexa-core
1.4 GHz
Cortex-A53
Aplikasi
dapat di buka
dengan lancar
dan dapat
berfungsi
dengan baik.
RAM 3 GB
Merk Xiaomi Note
3
Versi Marshmallow
6.0
Layar 5.5 Inch
3
Processor
Octa-core 2.0
GHz Cortex-
A53
Aplikasi
dapat di buka
dengan lancar
dan dapat
berfungsi
dengan baik.
RAM 4 GB
Merk Xiaomi 5
Plus
Versi Nougat 7.0
Layar 5.99 Inch
4.2.3.9 Pengujian Pada Bantuan
57
Hasil uji aplikasi pada bantuan terhadap beberapa merk smartphone
berbasis android akan dijelaskan pada tabel 4.10 halaman berikut:
Tabel 4.10 Pengujian Bantuan
No Item Uji Tipe Item Gambar Keterangan
1
Processor
Quad-core
2.2 GHz
Krait 400
Aplikasi
dapat di buka
dengan lancar
dan dapat
berfungsi
dengan baik.
RAM 2 Gb
Merk Xperia Z1
Versi Lollipop 5.1
Layar 5.0 Inch
2
Processor
Hexa-core
1.4 GHz
Cortex-A53
Aplikasi
dapat di buka
dengan lancar
dan dapat
berfungsi
dengan baik.
RAM 3 GB
Merk Xiaomi Note
3
Versi Marshmallow
6.0
Layar 5.5 Inch
58
Tabel 4.10 Pengujian Bantuan (lanjutan)
No Item Uji Tipe Item Gambar Keterangan
3
Processor
Octa-core
2.0 GHz
Cortex-A53
Aplikasi
dapat di buka
dengan lancar
dan dapat
berfungsi
dengan baik.
RAM 4 GB
Merk Xiaomi 5
Plus
Versi Nougat 7.0
Layar 5.99 Inch
4.2.3.10 Pengujian Pada Tentang Aplikasi
Hasil uji aplikasi pada tentang aplikasi terhadap beberapa merk
smartphone berbasis android akan dijelaskan pada tabel 4.11 halaman
berikut:
Tabel 4.11 Pengujian Tentang Aplikasi
No Item Uji Tipe Item Gambar Keterangan
1
Processor
Quad-core
2.2 GHz
Krait 400
Aplikasi
dapat di buka
dengan lancar
dan dapat
berfungsi
dengan baik.
RAM 2 Gb
Merk Xperia Z1
Versi Lollipop 5.1
59
Layar 5.0 Inch
Tabel 4.11 Pengujian Tentang Aplikasi (lanjutan)
No Item Uji Tipe Item Gambar Keterangan
2
Processor
Hexa-core
1.4 GHz
Cortex-A53
Aplikasi
dapat di buka
dengan lancar
dan dapat
berfungsi
dengan baik.
RAM 3 GB
Merk Xiaomi Note
3
Versi Marshmallow
6.0
Layar 5.5 Inch
3
Processor
Octa-core 2.0
GHz Cortex-
A53
Aplikasi
dapat di buka
dengan lancar
dan dapat
berfungsi
dengan baik.
RAM 4 GB
Merk Xiaomi 5
Plus
Versi Nougat 7.0
Layar 5.99 Inch
60
4.3 Kelebihan dan Kelemahan Aplikasi
4.3.1 Kelebihan Aplikasi
a. Terdapat informasi pet shop sehingga pengguna bisa mengetahui
informasi lokasi, no. telepon, alamat, dan deskripsi yang dijual.
b. Menggunakan algoritma dijkstra dan api map google sebagai
tampilan visualisasi peta.
c. Terdapat petunjuk cara menggunakan aplikasi menggunakan
algortima dijkstra.
4.3.2 Kelemahan Aplikasi
a. Database aplikasi belum bersifat online sehingga ketika menambah
data pet shop baru harus admin, dan di upload kembali melalui
google playstore.
b. Aplikasi membutuhkan internet saat membuka peta pet shop.
c. Perlu di tambahkan lagi node jalur untuk seluruh lampung agar tidak
di pisah-pisah antar kota.
d. Pet shop tidak seluruhnya terdata, karena hanya bagian kota saja.
BAB V
SIMPULAN DAN SARAN
5.1 Kesimpulan
Setelah melakukan semua analisa, perancangan, implementasi, dan evaluasi
system maka dapat ditarik beberapa kesimpulan sebagai berikut :
1. Aplikasi Pet Shop Lampung Berbasis Android dapat membantu pengguna
dalam mencari pet shop dan memberi informasi foto pet shop, alamat, no.
telepon, dan deskripsi apa saja yang dijual oleh pet shop.
2. Penerapan Algoritma Dijkstra pada sistem yang dibangun dapat digunakan
untuk menentukan lokasi jarak terdekat sehingga dapat membantu pengguna
aplikasi dalam menentukan rute terdekat ke lokasi pet shop tujuan.
3. Belum mampu mempertimbangkan kemacetan suatu jalan sehingga rute yang
diberikan bisa jadi rute terpendek tetapi bukan rute tercepat.
4. Data jalan hanya mencakup jalan arteri dan jalan besar, belum mencakup
gang-gang kecil dan jalan perkampungan.
5.2 Saran
Peneliti memberikan saran bagi yang akan mengembangkan penelitian ini, yaitu
sebagai berikut :
1. Membandingkan atau menggabungkan dengan algoritma lain misalkan
Algoritma Floyd Warshall, A Star, dan sebagainya.
2. Pengembangan sistem yang dapat mempertimbangkan tingkat kemacetan
suatu jalan pada analisis rute terpendek.
3. Aplikasi Pet Shop Lampung perlu di lakukan update basis data secara
berkala untuk memelihara dan memperbaharui data pet shop.
4. Node peta yang terdapat pada aplikasi perlu dikembangkan sehingga
seluruh pet shop menjadi dalam satu peta provinsi lampung.
DAFTAR PUSTAKA
Adi, Nugroho (2015). Rekayasa Perangkat Lunak Menggunakan UML dan Java.
Yogyakarta: C.V Andi Offset.
Antonio Gusmao, Sholeh Hadi Pramono, dan Sunaryo (2013). Sistem Informasi
Geografis Pariwisata Berbasis Web Dan Pencarian Jalur Terpendek
Dengan Algoritma Dijkstra. Jurnal EECCIS 7 (2).
Bambang, Haryanto (2011). Esensi-esensi Bahasa Pemrograman Java.
Yogyakarta: C.V Andi Offset.
Danny Manongga,Samuel Papilaya, dan Selfiana Pandie (2009). Sistem Informasi
Geografis untuk perjalanan wisata di kota semarang. Jurnal Informatika
10 (1).
Fitria & Apri Triansyah (2013), Implementasi Algoritma Dijkstra Dalam Aplikasi
Untuk Menentukan Lintasan Terpendek Jalan Darat Antar Kota Di
Sumatera Bagian Selatan. Jurnal Sistem Informasi 5 (2).
Json (2018). Pengenalan JSON. https://www.json.org/json-id.html. Diakses 10
April 2018.
Kadir, Abdul. (2009). Mastering AJAX dan PHP. Yogyakarta: C.V Andi Offset.
Kasman, Akhmad Dharma (2013). Kolaborasi Dahsyat ANDROID dengan PHP
dan MySQL. Yogyakarta: Lokomedia.
Muhammad Sholeh, Naniek Widyastuti, dan Ali Mashuri (2011). Aplikasi Google
Maps Api Untuk Sistem Informasi Geografis. Jurnal Informatika 1 (3).
Pressman, Roger S (2012). Rekayasa Perangkat Lunak (Edisi 7). Yogyakarta: C.V
Andi Offset.
Republik Indonesia. 2009. Undang-Undang No. 18 Tahun 2009 Tentang
Peternakan dan Kesehatan Hewan.
Riyanto (2010). Sistem Informasi Geografis Berbasis Mobile. Yogyakarta: Gava
Media.
Safaat, Nazarudin (2012). Android Pemrograman Aplikasi Mobile Smartphone
Dan Tablet Pc Berbasis Android Revisi Kedua. Bandung: Informatika.
Siang, Jong Jek (2009). Matematika Diskrit Dan Aplikasinya Pada Ilmu
Komputer. Yogyakarta: C.V Andi Offset.
LAMPIRAN
Rancangan Peta Bandar Lampung
Rancangan Peta Metro
Rancangan Peta Pringsewu
Rancangan Peta Kalianda
Main Activity.java public class MainActivity extends AppCompatActivity implements
NavigationView.OnNavigationItemSelectedListener {
Button close;
Dialog MyDialog;
private int STORAGE_PERMISSION_CODE = 23;
private DatabaseHelper db;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, R.string.navigation_drawer_open,
R.string.navigation_drawer_close);
drawer.addDrawerListener(toggle);
toggle.syncState();
NavigationView navigationView = (NavigationView)
findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
Button bdlmap = (Button) findViewById(R.id.btnbdl);
bdlmap.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(MainActivity.this,
BandarLampungActivity.class));
}
});
Button kalmap = (Button) findViewById(R.id.btnkal);
kalmap.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(MainActivity.this,
KaliandaActivity.class));
}
});
Button metmap = (Button) findViewById(R.id.btnmet);
metmap.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(MainActivity.this, MetroActivity.class));
}
});
Button primap = (Button) findViewById(R.id.btnpri);
primap.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(MainActivity.this,
PringsewuActivity.class));
}
});
Button toko = (Button) findViewById(R.id.btntoko);
toko.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(MainActivity.this, TokoActivity.class));
}
});
requestStoragePermission();
db = new DatabaseHelper(this);
File database =
getApplicationContext().getDatabasePath(DatabaseHelper.DBNAME);
if (database.exists()) {
db.getReadableDatabase();
if (copyDatabase(this)) {
//Toast.makeText(getApplicationContext(), "Copy success",
Toast.LENGTH_LONG).show();
} else {
//Toast.makeText(getApplicationContext(), "Copy failed",
Toast.LENGTH_LONG).show();
return;
}
}
if (!database.exists()) {
db.getReadableDatabase();
if (copyDatabase(this)) {
// Toast.makeText(getApplicationContext(), "Copy success",
Toast.LENGTH_LONG).show();
} else {
// Toast.makeText(getApplicationContext(), "Copy failed",
Toast.LENGTH_LONG).show();
return;
}
}
}
private void requestStoragePermission(){
if (ActivityCompat.shouldShowRequestPermissionRationale(this,
Manifest.permission.ACCESS_FINE_LOCATION)){
}
//And finally ask for the permission
ActivityCompat.requestPermissions(this,new
String[]{Manifest.permission.ACCESS_FINE_LOCATION},STORAGE_PERMISSION_CODE);
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[]
permissions, @NonNull int[] grantResults) {
//Checking the request code of our request
if(requestCode == STORAGE_PERMISSION_CODE){
//If permission is granted
if(grantResults.length >0 && grantResults[0] ==
PackageManager.PERMISSION_GRANTED){
//Displaying a toast
// Toast.makeText(this,"Permission granted now you can read the
storage",Toast.LENGTH_LONG).show();
}else{
//Displaying another toast if permission is not granted
Toast.makeText(this,"Oops you just denied the
permission",Toast.LENGTH_LONG).show();
}}}
@Override
public void onBackPressed() {
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
} else {
super.onBackPressed();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
startActivity(new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS));
}
return super.onOptionsItemSelected(item);
}
@SuppressWarnings("StatementWithEmptyBody")
@Override
public boolean onNavigationItemSelected(MenuItem item) {
// Handle navigation view item clicks here.
int id = item.getItemId();
if (id == R.id.nav_bantuan) {
startActivity(new Intent(this, SliderActivity.class));
} else if (id == R.id.nav_popup) {
MyCustomAlertDialog();
}
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
return true;
}
public void MyCustomAlertDialog(){
MyDialog = new Dialog(MainActivity.this);
MyDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
MyDialog.setContentView(R.layout.custom_popup);
MyDialog.setTitle("My Custom Dialog");
close = (Button)MyDialog.findViewById(R.id.close);
close.setEnabled(true);
close.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
MyDialog.cancel();
}
});
MyDialog.show();
}
private boolean copyDatabase(Context context) {
try {
InputStream inputStream =
context.getAssets().open(DatabaseHelper.DBNAME);
String outFileName = DatabaseHelper.DBLOCATION +
DatabaseHelper.DBNAME;
OutputStream outputStream = new FileOutputStream(outFileName);
byte[] buff = new byte[1024];
int length;
while ((length = inputStream.read(buff)) > 0) {
outputStream.write(buff, 0, length);
}
outputStream.flush();
outputStream.close();
Log.w("Database", "Copy Success");
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
}
TokoActivity.java public class TokoActivity extends AppCompatActivity {
Button close;
private RecyclerView rvWord;
private Word_Adapter word_adapter;
private List<TokoModel> dictionaryModelList;
private DatabaseHelper mDBHelper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.toko_activity);
rvWord=(RecyclerView) findViewById(R.id.rvWord);
rvWord.setLayoutManager(new LinearLayoutManager(getApplicationContext()));
RecyclerView.ItemDecoration itemDecoration=new
DividerItemDecoration(getApplicationContext(),DividerItemDecoration.VERTICAL);
rvWord.addItemDecoration(itemDecoration);
mDBHelper=new DatabaseHelper(this);
dictionaryModelList=mDBHelper.getListWord("");
word_adapter=new Word_Adapter();
word_adapter.setData(dictionaryModelList);
rvWord.setAdapter(word_adapter);
SearchView searchView=(SearchView) findViewById(R.id.searchView);
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
searchWord(newText);
return false;
}
});
}
private void searchWord(String wordSearch){
dictionaryModelList.clear();
dictionaryModelList=mDBHelper.getListWord(wordSearch);
word_adapter.setData(dictionaryModelList);
rvWord.setAdapter(word_adapter);
}
}
DetailToko.java public class DetailPetshop extends AppCompatActivity {
private static ViewPager mPager;
private static int currentPage = 0;
private static int NUM_PAGES = 0;
private ArrayList<DetailModel> detailModelArrayList;
public String arraylist;
String notelp;
private String [] imagetempat;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.sliderdetail);
String gambar = getIntent().getStringExtra("GAMBAR");
String toko = getIntent().getStringExtra("NAMATOKO");
String daerah = getIntent().getStringExtra("DAERAH");
String alamat = getIntent().getStringExtra("ALAMAT");
String deskripsi = getIntent().getStringExtra("DESKRIPSI");
notelp = getIntent().getStringExtra("NOTELP");
TextView tokotext = (TextView) findViewById(R.id.namatokotext);
// TextView daerahtext = (TextView) findViewById(R.id.daerahtext);
TextView alamattext = (TextView) findViewById(R.id.alamattext);
TextView deskripsitext = (TextView) findViewById(R.id.deskripsitext);
TextView notelptext = (TextView) findViewById(R.id.notelp);
tokotext.setText(toko);
alamattext.setText("Alamat: "+ alamat);
deskripsitext.setText("Deskripsi: " + '\n' +deskripsi);
notelptext.setText(notelp);
notelptext.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog.Builder builder1 = new
AlertDialog.Builder(DetailPetshop.this);
builder1.setMessage("Hubungi Toko Pet Shop ini?");
builder1.setCancelable(true);
builder1.setPositiveButton(
"Ya",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialPhoneNumber(notelp);
}
});
builder1.setNegativeButton(
"Tidak",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
AlertDialog alert11 = builder1.create();
alert11.show();
}
});
arraylist = gambar;
imagetempat = arraylist.split(",");
detailModelArrayList = new ArrayList<>();
detailModelArrayList = populateList();
init();
}
public void dialPhoneNumber(String notelp) {
Intent intent = new Intent(Intent.ACTION_DIAL);
intent.setData(Uri.parse("tel:" + notelp));
if (intent.resolveActivity(getPackageManager()) != null) {
startActivity(intent);
}
}
private ArrayList<DetailModel> populateList(){
ArrayList<DetailModel> list = new ArrayList<>();
for(int i = 0; i < imagetempat.length; i++){
DetailModel imageModel = new DetailModel();
imageModel.setImage_drawable(imagetempat[i].trim());
list.add(imageModel);
}
return list;
}
private void init() {
mPager = (ViewPager) findViewById(R.id.pager);
mPager.setAdapter(new
Definition_Adapter(DetailPetshop.this,detailModelArrayList));
CirclePageIndicator indicator = (CirclePageIndicator)
findViewById(R.id.indicator);
indicator.setViewPager(mPager);
final float density = getResources().getDisplayMetrics().density;
//Set circle indicator radius
indicator.setRadius(4 * density);
NUM_PAGES =detailModelArrayList.size();
// Pager listener over indicator
indicator.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageSelected(int position) {
currentPage = position;
}
@Override
public void onPageScrolled(int pos, float arg1, int arg2) {
}
@Override
public void onPageScrollStateChanged(int pos) {
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id=item.getItemId();
if(id==android.R.id.home){
onBackPressed();
return true;
}
return super.onOptionsItemSelected(item);
}
@Override
public void onBackPressed() {
super.onBackPressed();
}
}
Dijkstra.java public class dijkstra {
public TextView txtDistance;
String[][] graph = new String[100][100];
String jalur_terpendek1 = "";
String status = "none";
void jalurTerpendek(String[][] arg_graph, int simpulAwal, int simpulTujuan){
System.out.println("sa : " + simpulAwal + " & st : " + simpulTujuan);
if(simpulAwal == simpulTujuan){
status = "die";
return;
}
graph = arg_graph;
int simpul_awal = simpulAwal;
int simpul_maju = simpulAwal;
int simpul_tujuan = simpulTujuan;
if(simpul_maju != simpul_tujuan){
//HITUNG JUMLAH SIMPUL
int jml_simpul = 0;
for(String[] array : graph){
if(array[0] != null){
jml_simpul += 1;
}
}
//TANDAI SIMPUL YANG AKAN DIKERJAKAN
List<Integer> simpulYangDikerjakan = new ArrayList<Integer>();
//UNTUK MENYIMPAN NILAI-NILAI * YANG DITANDAI
List<Integer> simpulYangSudahDikerjakan_bawah = new
ArrayList<Integer>();
double nilaiSimpulYgDitandai = 0;
double nilaiSimpulFixYgDitandai = 0;
//PERULANGAN HANDLE
for(int perulangan = 0; perulangan < 1; perulangan++){
//UNTUK MNDAPATKAN 1 BOBOT PALING MINIMUM DARI SETIAP SIMPUL
List<Double> perbandinganSemuaBobot = new ArrayList<Double>();
//DAFTARKAN SIMPUL pertama YANG AKAN DIKERJAKAN KE DALAM ARRAY
if(!simpulYangDikerjakan.contains(simpul_maju)){
simpulYangDikerjakan.add(simpul_maju);
}
//PERULANGAN SIMPUL SIMPUL YANG DITANDAI
for(int perulanganSimpul = 0; perulanganSimpul <
simpulYangDikerjakan.size(); perulanganSimpul++){
//HITUNG JUMLAH BARIS PER KOLOM SIMPUL
int jml_baris_fix = 0;
for(int min_batas_bris = 0; min_batas_bris < 100;
min_batas_bris++){
if(graph[simpulYangDikerjakan.get(perulanganSimpul)][min_batas_bris] != null){
jml_baris_fix += 1;
}
}
//CARI BOBOT MINIMUM di 1 simpul berdasarkan baris scr
urut[0][0],[0][1] dst
List<Double> bobot = new ArrayList<Double>();
int status_baris = 0;
//perulangan CARI BOBOT2 DI 1 SIMPUL
for(int min_batas_bris_fix = 0; min_batas_bris_fix <
jml_baris_fix; min_batas_bris_fix++){
String bobot_dan_ruas =
graph[simpulYangDikerjakan.get(perulanganSimpul)][min_batas_bris_fix];//pasti
berurutan [0][0],[0][1] dst
//print isi dr baris[0][0],[0][1],[0][2] dst
//System.out.println("bobot_dan_ruas :
"+bobot_dan_ruas);
String[] explode;
explode = bobot_dan_ruas.split("->");
//System.out.println("bobot_ : "+explode[0]);
//cari bobot yg belum dikerjakan (yg tidak ada tanda -
>y)
if(explode.length == 2){
status_baris += 1; // masih ada yg belum ->y
//Cek simpul apakah sudah ditandai apa blom, klo
udh berarti nilai * tidak ditambah lagi / 0
//kalo blm ditandai, berarti nilai * bernilai
nilaiSimpulYgditandai
if(!simpulYangSudahDikerjakan_bawah.isEmpty()){
if(simpulYangSudahDikerjakan_bawah.contains(simpulYangDikerjakan.get(perulanganSim
pul))){
nilaiSimpulYgDitandai = 0;
}else{
nilaiSimpulYgDitandai =
nilaiSimpulFixYgDitandai;
}
}
bobot.add((Double.parseDouble(explode[1])+nilaiSimpulYgDitandai));//bs acak
bobot[0],bobot[2]// 0 dan 2 berdasarkan baris yg akan dikerjakan
graph[simpulYangDikerjakan.get(perulanganSimpul)][min_batas_bris_fix] =
String.valueOf(explode[0]+"-
>"+(Double.parseDouble(explode[1])+nilaiSimpulYgDitandai));
}
}
//jika baris di kolom belum ->y semua, maka lakukan if di
bawah ini :
if(status_baris > 0){
//DAPATKAN BOBOT MINIMUM
for(int index_bobot = 0; index_bobot < bobot.size();
index_bobot++){
if(bobot.get(index_bobot) <= bobot.get(0)){
bobot.set(0, bobot.get(index_bobot));
}
}
perbandinganSemuaBobot.add(bobot.get(0));
}//end if jika ->y atau ->t belum semua dikerjakan
else{//Jika baris di kolom sudah ->y semua, maka lakukan
else di bawah ini
//System.out.println("=======||Baris sudah ->y
semua||=======");
}
//DAFTARKAN SIMPUL SIMPUL YANG baru selesai DIKERJAKAN
if(!simpulYangSudahDikerjakan_bawah.contains(simpulYangDikerjakan.get(perulanganSi
mpul))){
simpulYangSudahDikerjakan_bawah.add(simpulYangDikerjakan.get(perulanganSimpul));
}
}//end for perulanganSimpul
//DAPATKAN 1 BOBOT PALING MINIMUM DARI SIMPUL YG DITANDAI
for(int min_indexAntarBobotYgDitandai = 0;
min_indexAntarBobotYgDitandai < perbandinganSemuaBobot.size();
min_indexAntarBobotYgDitandai++){
if(perbandinganSemuaBobot.get(min_indexAntarBobotYgDitandai)
<= perbandinganSemuaBobot.get(0)){
perbandinganSemuaBobot.set(0,
perbandinganSemuaBobot.get(min_indexAntarBobotYgDitandai));
}
}
//DAPATKAN INDEX SIMPUL+BOBOTNYA YG ASLI DARI SIMPUL YG DITANDAI
int indexAwalAsli = 0; //index simpulnya
int status_baris1 = 0;
int dapat_indexAsliBobot = 0;
int simpul_lama = 0;
for(Integer indexAsli_bobot : simpulYangDikerjakan){
for(int baris1 = 0; baris1 < 100; baris1++){
if(graph[simpulYangDikerjakan.get(indexAwalAsli)][baris1]
!= null){
String bobot_dan_ruas1 =
graph[simpulYangDikerjakan.get(indexAwalAsli)][baris1];
//System.out.println(bobot_dan_ruas1);
String[] explode1;
explode1 = bobot_dan_ruas1.split("->");
if(explode1.length == 2){
// System.out.println("----------;"+explode1[1]);
if(perbandinganSemuaBobot.get(0) ==
Double.parseDouble(explode1[1])){
dapat_indexAsliBobot = baris1;
simpul_lama =
simpulYangDikerjakan.get(indexAwalAsli);
simpul_maju = Integer.parseInt(explode1[0]);
status_baris1 += 1;
}
}//end if cek ->y atau ->t
}//end if cek baris != null
}//end for limit baris = 100
indexAwalAsli++; //index simpul di tambah 1
}//end for simpul yang dikerjakan
//BULETIN BOBOT MINIMUM YANG UDH DIDAPAT dan HAPUS RUAS YANG
BERHUBUNGAN
if(status_baris1 > 0){
graph[simpul_lama][dapat_indexAsliBobot] =
graph[simpul_lama][dapat_indexAsliBobot]+"->y";
//HAPUS RUAS LAIN
for(int min_kolom = 0; min_kolom < jml_simpul; min_kolom++){
for(int min_baris = 0; min_baris < 100; min_baris++){
if(graph[min_kolom][min_baris] != null){
String ruasYgAkanDihapus =
graph[min_kolom][min_baris];
String[] explode3 = ruasYgAkanDihapus.split("->");
if(explode3.length == 2){
if(explode3[0].equals(String.valueOf(simpul_maju))){
graph[min_kolom][min_baris] =
graph[min_kolom][min_baris]+"->t";
}
}//end if cek ->y atau ->t
}//end if cek baris != null
}//end for baris
}//end for kolom
}//end if cek status_baris sudah ->y atau ->t semua apa belum
//Nilai * yg ditandai
nilaiSimpulFixYgDitandai = perbandinganSemuaBobot.get(0);
//System.out.println("nilaiSimpulFixYgDitandai :
"+nilaiSimpulFixYgDitandai);
//System.out.println("perbandingan simpul? : "+simpul_maju+" =
"+simpul_tujuan+" ..?");
if(simpul_maju != simpul_tujuan){
--perulangan;
}
else{
break; //akhiri perulangan
}
}//end for handle perulangan
//System.out.println("--SELESAI--");
//taruh simpul gabungan ke array; misal : simpul 6-10
List<String> gabungSimpulPilihan = new ArrayList<String>();
for(int h = 0; h < jml_simpul; h++){
for(int n = 0; n < 100; n++){
if(graph[h][n] != null){
String str_graph = graph[h][n];
if(str_graph.substring(str_graph.length()-1,
str_graph.length()).equals("y")){
String[] explode4 = graph[h][n].split("->");
String simpulGabung = h+"-"+explode4[0];
gabungSimpulPilihan.add(simpulGabung);
}
}//end if cek isi graph != null
}//end for looping baris
}//end looping kolom (simpul)
//masukkan simpul yg sudah diurutkan (dari simpul tujuan ke simpul
awal). (nanti direverse arraynya)
List<Integer> simpulFix_finish = new ArrayList<Integer>();
//masukkan pertama kali simpul tujuan (simpul akhir) ke array dgn
index 0. (nanti dibalik(reverse) arraynya)
simpulFix_finish.add(simpul_tujuan);
int simpul_explode = simpul_tujuan;
for(int v = 0; v < 1; v++){
for(int w = 0; w < gabungSimpulPilihan.size(); w++){
String explode_simpul = gabungSimpulPilihan.get(w);
String[] explode5 = explode_simpul.split("-");
if(simpul_explode == Integer.parseInt(explode5[1])){
simpulFix_finish.add(Integer.parseInt(explode5[0]));
simpul_explode = Integer.parseInt(explode5[0]);
}
if(simpul_explode == simpul_awal){
break;
}
}
if(simpul_awal != simpul_explode){
--v;
}else{
break;
}
}//end for cari simpul yang dibuletin lalu dibandingkan dgn
simpul_tujuan
//array di balik indexnya; jadi simpul tujuan di pindah posisi ke
akhir index array
Collections.reverse(simpulFix_finish);
String jalur_terpendek = "";
for(int x = 0; x < simpulFix_finish.size(); x++){
if(x == simpulFix_finish.size()-1){
jalur_terpendek += simpulFix_finish.get(x);
}else{
jalur_terpendek += simpulFix_finish.get(x)+"->";
}
}
// System.out.println("... "+jalur_terpendek);
//Toast.makeText(getBaseContext(), "... "+jalur_terpendek,
Toast.LENGTH_LONG).show();
jalur_terpendek1 = jalur_terpendek;
}//end if start != finish
}
}
MapsActivity.java
public class BandarLampungActivity extends AppCompatActivity implements
OnMapReadyCallback, OnMapClickListener {
// DB
DatabaseHelper dbHelper;
Cursor cursor;
private TextView jaraktxtv;
private TextView durasitxtv;
private GoogleMap mMap;
private Button btnFindPath;
private LocationManager locationManager;
public String __global_endposition = null;
public String __global_startposition = null;
public int __global_simpul_awal;
public int __global_simpul_akhir;
public String __global_old_simpul_awal = "";
public String __global_old_simpul_akhir = "";
public int __global_maxRow0;
public int __global_maxRow1;
private String[][] __global_graphArray;
private LatLng __global_yourCoordinate_exist = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.bandarlampung_activity);
SupportMapFragment mapFragment = (SupportMapFragment)
getSupportFragmentManager()
.findFragmentById(R.id.peta);
mapFragment.getMapAsync(this);
// create DB
dbHelper = new DatabaseHelper(this);
try {
dbHelper.createDataBase();
} catch (Exception ioe) {
Toast.makeText(getApplicationContext(), "Gagal",
Toast.LENGTH_LONG).show();
}
final SQLiteDatabase db = dbHelper.getReadableDatabase();
cursor = db.rawQuery("SELECT * from tbltoko where daerah = \"Bandar
Lampung\" order by namatoko asc", null);
cursor.moveToFirst();
}
@Override
public void onMapClick(LatLng arg0) {
// TODO Auto-generated method stub
// your coordinate position
double latUser = arg0.latitude;
double lngUser = arg0.longitude;
__global_yourCoordinate_exist = arg0;
// destination coordinate position
String endposition = __global_endposition;
if(endposition != null){
// dipecah coordinate PETSHOP
String[] exp_endposition = endposition.split(",");
double lat_endposition = Double.parseDouble(exp_endposition[0]);
double lng_endposition = Double.parseDouble(exp_endposition[1]);
//
========================================================================
// CORE SCRIPT
// fungsi cari simpul awal dan tujuan, buat graph sampai algoritma
dijkstra
//
========================================================================
try {
startingScript(latUser, lngUser, lat_endposition, lng_endposition);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}else{
Toast.makeText(getApplicationContext(), "Pilih lokasi tujuan dulu",
Toast.LENGTH_LONG).show();
}
}
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
if (ActivityCompat.checkSelfPermission(this,
Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED
&& ActivityCompat.checkSelfPermission
(this, Manifest.permission.ACCESS_COARSE_LOCATION) !=
PackageManager.PERMISSION_GRANTED) {
return;
}
mMap.setMyLocationEnabled(true);
mMap.setOnMapClickListener(this);
// posisi kamera google saat awal tampil
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(-5.422224,
105.258164), 13.0f));
DatabaseHelper datatoko = new DatabaseHelper(this);
List<Toko> toko;
toko = datatoko.getbandarlampung();
for (Toko p : toko) {
String namatoko = p.getNamatoko();
String alamat = p.getAlamat();
String[] latlong = p.getKoordinat().split(", ");
double latitude = Double.parseDouble(latlong[0]);
double longitude = Double.parseDouble(latlong[1]);
LatLng location = new LatLng(latitude, longitude);
System.out.println(location);
mMap.addMarker(new MarkerOptions()
.icon(BitmapDescriptorFactory.fromResource(R.mipmap.marker))
.position(location)
.title(namatoko)
.snippet(alamat));
}
// tampung nama smk
ArrayList<String> spinner_list_smk = new ArrayList<String>();
// Adapter spinner smk
ArrayAdapter<String> adapter_spinner_smk;
// nama-nama PETSHOP dimasukkan ke array
spinner_list_smk.add("-- Pilih Pet Shop --");
for (int i = 0; i < cursor.getCount(); i++) {
cursor.moveToPosition(i);
spinner_list_smk.add(cursor.getString(1).toString());
}
// masukkan list PETSHOP ke spinner (dropdown)
Spinner spinner = (Spinner) findViewById(R.id.spinner_list_smk);
adapter_spinner_smk = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, spinner_list_smk);
adapter_spinner_smk.setDropDownViewResource(android.R.layout.simple_spinner_dro
pdown_item);
spinner.setAdapter(adapter_spinner_smk);
//spinner.setBackgroundColor(Color.WHITE);
dbHelper = new DatabaseHelper(this);
try {
dbHelper.createDataBase();
} catch (Exception ioe) {
Toast.makeText(getApplicationContext(), "Gagal",
Toast.LENGTH_LONG).show();
}
// Query DB to show all PETSHOP
dbHelper = new DatabaseHelper(this);
final SQLiteDatabase db = dbHelper.getReadableDatabase();
cursor = db.rawQuery("SELECT * FROM place_bdl", null);
cursor.moveToFirst();
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()
{
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
// TODO Auto-generated method stub
if(arg0.getItemAtPosition(arg2).toString() != "-- Pilih Pet Shop --
"){
String pilih_smk = arg0.getItemAtPosition(arg2).toString();
cursor = db.rawQuery("SELECT koordinat from tbltoko where
daerah = \"Bandar Lampung\" and namatoko = '" + pilih_smk + "'", null);
cursor.moveToFirst();
cursor.moveToPosition(0);
// get coordinate PETSHOP from field koordinat
__global_endposition = cursor.getString(0).toString();
// user men-tap peta
if(__global_yourCoordinate_exist != null){
// your coordinate
double latUser = __global_yourCoordinate_exist.latitude;
double lngUser = __global_yourCoordinate_exist.longitude;
// destination coordinate PETSHOP
String[] exp_endCoordinate =
__global_endposition.split(",");
double lat_endposition =
Double.parseDouble(exp_endCoordinate[0]);
double lng_endposition =
Double.parseDouble(exp_endCoordinate[1]);
//
========================================================================
// CORE SCRIPT
// fungsi cari simpul awal dan tujuan, buat graph sampai
algoritma dijkstra
//
========================================================================
try {
startingScript(latUser, lngUser, lat_endposition,
lng_endposition);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}else{
Toast.makeText(getApplicationContext(), "Tap pada peta
untuk menentukan posisi Anda", Toast.LENGTH_SHORT).show();
}
}// if -- pilih PETSHOP --
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
}
}
DatabaseHelper.java
public class DatabaseHelper extends SQLiteOpenHelper {
public static final String DBNAME="petshop.sqlite";
public static final String
DBLOCATION="/data/data/com.darmajaya.petshop/databases/";
private static final int DATABASE_VERSION = 1;
private Context mContext;
private SQLiteDatabase mDatabase;
public void createDataBase() throws IOException {
if(DataBaseisExist()){
//do nothing - database already exist
//Toast.makeText(myContext, "Database Sudah Ada",
Toast.LENGTH_SHORT).show();
}
else{
//By calling this method and empty database will be created into the
default system path
//of your application so we are gonna be able to overwrite that
database with our database.
this.getReadableDatabase();
try {
copyDataBase();
//Toast.makeText(myContext, "Database Berhasil Diimport Dari
Assets", Toast.LENGTH_LONG).show();
} catch (IOException e) {
throw new Error("Error copying database");
}
}
}
private boolean DataBaseisExist(){
SQLiteDatabase checkDB = null;
try{
String myPath = DBLOCATION + DBNAME;
checkDB = SQLiteDatabase.openDatabase(myPath, null,
SQLiteDatabase.OPEN_READONLY);
}catch(SQLiteException e){
//database does't exist yet.
}
if(checkDB != null){
checkDB.close();
}
if(checkDB != null )return true ;else return false;
}
private void copyDataBase() throws IOException{
//Open your local db as the input stream
InputStream myInput = mContext.getAssets().open(DBNAME);
// Path to the just created empty db
String outFileName = DBLOCATION + DBNAME;
//Open the empty db as the output stream
OutputStream myOutput = new FileOutputStream(outFileName);
//transfer bytes from the inputfile to the outputfile
byte[] buffer = new byte[1024];
int length;
while ((length = myInput.read(buffer))>0){
myOutput.write(buffer, 0, length);
}
//Close the streams
myOutput.flush();
myOutput.close();
myInput.close();
}
public DatabaseHelper(Context context){
super(context,DBNAME,null,1);
this.mContext=context;
}
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
}
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
}
public void openDatabase(){
String dbPath=mContext.getDatabasePath(DBNAME).getPath();
if(mDatabase!=null && mDatabase.isOpen()){
return;
}
mDatabase=SQLiteDatabase.openDatabase(dbPath,null,SQLiteDatabase.OPEN_READWRITE);
}
public void closeDatabase(){
if(mDatabase !=null){
mDatabase.close();
}
}
public List<TokoModel> getListWord(String wordSearch){
TokoModel dictionaryModel=null;
List<TokoModel> dictionaryModelList=new ArrayList<>();
openDatabase();
String[] args={"%"+wordSearch+"%"};
Cursor cursor=mDatabase.rawQuery("Select * From tbltoko Where namatoko
Like ? order by namatoko asc",args);
cursor.moveToFirst();
while (!cursor.isAfterLast()){
dictionaryModel=new
TokoModel(cursor.getString(0),cursor.getString(1),cursor.getString(2),
cursor.getString(3), cursor.getString(4), cursor.getString(5),
cursor.getString(6));
dictionaryModelList.add(dictionaryModel);
cursor.moveToNext();
}
cursor.close();
closeDatabase();
return dictionaryModelList;
}
public List<Toko> getkalianda() {
Toko tempat = null;
List<Toko> itemListpeta = new ArrayList<>();
openDatabase();
Cursor cursor = mDatabase.rawQuery("select * from tbltoko where daerah =
\"Kalianda\"", null);
cursor.moveToFirst();
while (!cursor.isAfterLast()) {
tempat = new Toko(cursor.getString(0), cursor.getString(1),
cursor.getString(2),
cursor.getString(3), cursor.getString(4), cursor.getString(5),
cursor.getString(6), cursor.getString(7));
itemListpeta.add(tempat);
cursor.moveToNext();
}
cursor.close();
closeDatabase();
return itemListpeta;
}
public List<Toko> getpringsewu() {
Toko tempat = null;
List<Toko> itemListpeta = new ArrayList<>();
openDatabase();
Cursor cursor = mDatabase.rawQuery("select * from tbltoko where daerah =
\"Pringsewu\"", null);
cursor.moveToFirst();
while (!cursor.isAfterLast()) {
tempat = new Toko(cursor.getString(0), cursor.getString(1),
cursor.getString(2),
cursor.getString(3), cursor.getString(4), cursor.getString(5),
cursor.getString(6), cursor.getString(7));
itemListpeta.add(tempat);
cursor.moveToNext();
}
cursor.close();
closeDatabase();
return itemListpeta;
}
public List<Toko> getbandarlampung() {
Toko tempat = null;
List<Toko> itemListpeta = new ArrayList<>();
openDatabase();
Cursor cursor = mDatabase.rawQuery("select * from tbltoko where daerah =
\"Bandar Lampung\"", null);
cursor.moveToFirst();
while (!cursor.isAfterLast()) {
tempat = new Toko(cursor.getString(0), cursor.getString(1),
cursor.getString(2),
cursor.getString(3), cursor.getString(4), cursor.getString(5),
cursor.getString(6), cursor.getString(7));
itemListpeta.add(tempat);
cursor.moveToNext();
}
cursor.close();
closeDatabase();
return itemListpeta;
}
public List<Toko> getmetro() {
Toko tempat = null;
List<Toko> itemListpeta = new ArrayList<>();
openDatabase();
Cursor cursor = mDatabase.rawQuery("select * from tbltoko where daerah =
\"Metro\"", null);
cursor.moveToFirst();
while (!cursor.isAfterLast()) {
tempat = new Toko(cursor.getString(0), cursor.getString(1),
cursor.getString(2),
cursor.getString(3), cursor.getString(4), cursor.getString(5),
cursor.getString(6), cursor.getString(7));
itemListpeta.add(tempat);
cursor.moveToNext();
}
cursor.close();
closeDatabase();
return itemListpeta;
}
}
Toko.java
public class Toko {
private String id;
private String namatoko;
private String notelp;
private String deskripsi;
private String alamat;
private String daerah;
private String gambar;
private String koordinat;
public Toko(String id, String namatoko, String notelp, String deskripsi,
String alamat, String daerah, String gambar, String koordinat) {
this.id = id;
this.namatoko = namatoko;
this.notelp = notelp;
this.deskripsi = deskripsi;
this.alamat = alamat;
this.daerah = daerah;
this.gambar = gambar;
this.koordinat = koordinat;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getNamatoko() {
return namatoko;
}
public void setNamatoko(String namatoko) {
this.namatoko = namatoko;
}
public String getNotelp() {
return notelp;
}
public void setNotelp(String notelp) {
this.notelp = notelp;
}
public String getDeskripsi() {
return deskripsi;
}
public void setDeskripsi(String deskripsi) {
this.deskripsi = deskripsi;
}
public String getAlamat() {
return alamat;
}
public void setAlamat(String alamat) {
this.alamat = alamat;
}
public String getDaerah() {
return daerah;
}
public void setDaerah(String daerah) {
this.daerah = daerah;
}
public String getGambar() {
return gambar;
}
public void setGambar(String gambar) {
this.gambar = gambar;
}
public String getKoordinat() {
return koordinat;
}
public void setKoordinat(String koordinat) {
this.koordinat = koordinat;
}
}