penerapan algoritma dijkstra dalam ...repo.darmajaya.ac.id/1283/1/skripsi full.pdfshop pada provinsi...

115
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

Upload: others

Post on 01-Dec-2020

15 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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

Page 2: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

BANDAR LAMPUNG

2018

Page 3: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah
Page 4: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah
Page 5: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah
Page 6: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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

Page 7: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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.

Page 8: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

HALAMAN MOTTO

“Rahasia Keberhasilan Adalah Kerja Keras Dan Belajar Dari Kegagalan”

-Kurnia Oktavian

Page 9: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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.

Page 10: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah
Page 11: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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.

Page 12: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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

Page 13: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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

Page 14: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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

Page 15: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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

Page 16: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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

Page 17: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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

Page 18: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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

Page 19: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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

Page 20: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah
Page 21: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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

Page 22: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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

Page 23: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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

Page 24: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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

Page 25: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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.

Page 26: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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

Page 27: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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)

Page 28: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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

Page 29: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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 :

Page 30: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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.

Page 31: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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

Page 32: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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

Page 33: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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.

Page 34: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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

Page 35: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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.

Page 36: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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

Page 37: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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

Page 38: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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.

Page 39: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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

Page 40: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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

Page 41: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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

Page 42: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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 :

Page 43: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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

Page 44: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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.

Page 45: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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.

Page 46: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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

Page 47: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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.

Page 48: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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.

Page 49: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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

Page 50: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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.

Page 51: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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

Page 52: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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.

Page 53: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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

Page 54: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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.

Page 55: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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.

Page 56: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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.

Page 57: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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

Page 58: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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:

Page 59: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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.

Page 60: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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

Page 61: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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

Page 62: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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

Page 63: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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

Page 64: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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

Page 65: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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:

Page 66: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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

Page 67: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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

Page 68: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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

Page 69: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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

Page 70: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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

Page 71: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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

Page 72: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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

Page 73: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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

Page 74: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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

Page 75: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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

Page 76: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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

Page 77: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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

Page 78: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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

Page 79: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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

Page 80: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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

Page 81: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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.

Page 82: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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.

Page 83: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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.

Page 84: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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.

Page 85: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

LAMPIRAN

Page 86: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah
Page 87: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah
Page 88: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah
Page 89: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah
Page 90: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah
Page 91: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah
Page 92: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah
Page 93: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah
Page 94: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

Rancangan Peta Bandar Lampung

Page 95: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

Rancangan Peta Metro

Page 96: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

Rancangan Peta Pringsewu

Page 97: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

Rancangan Peta Kalianda

Page 98: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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();

Page 99: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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

Page 100: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

// 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;

Page 101: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

} 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;

Page 102: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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);

}

Page 103: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

}

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);

Page 104: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

}

@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;

Page 105: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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||=======");

}

Page 106: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

//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

Page 107: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

}//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)+"->";

}

Page 108: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

}

// 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

Page 109: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

// 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);

Page 110: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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

Page 111: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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

Page 112: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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;

Page 113: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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),

Page 114: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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

Page 115: PENERAPAN ALGORITMA DIJKSTRA DALAM ...repo.darmajaya.ac.id/1283/1/SKRIPSI FULL.pdfShop Pada Provinsi Lampung Berbasis Android Oleh : Kurnia Oktavian Algoritma Dijkstra adalah sebuah

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;

}

}