BAB II
LANDASAN TEORI 2.1. Tinjauan Pustaka
Dalam penelitian ini akan digunakan lima tinjauan pustaka yang nantinya dapat mendukung penelitian, berikut ini merupakan tinjauan studi yang digunakan dalam penelitian ini yaitu:
1. Sholichin, Yasindan (2018), dalam penelitian yang berjudul "Implementasi Algoritma Dijkstra Dalam Pencarian Lintas Terpendek Lokasi Rumah Sakit, Hotel Dan Terminal Kota Malang". membahas tentang pencarian rumah sakit , hotel dan terminal didaerah malang berbasis android. Dalam penelitian ini mengimplementasikan algoritma Dijkstra untuk mendapatkan rute terpendek dari lokasi pengguna ke lokasi tujuan. Rute yang ditunjukkan oleh hasil perhitungan algoritma Dijkstra yaitu rute yang hanya bisa dilalui mobil dan motor seperti jalan raya.
2. Meitasari, Nurdin, Aryanti (2017), dalam penelitian yang berjudul
"Implementasi metode Dijkstra dalam mobile Aplikasi pencarian SPBU terdekat di kota Palembang". pencarian rumah sakit , hotel dan terminal didaerah malang berbasis android. Dalam penelitian ini mengimplementasikan algoritma Dijkstra untuk mendapatkan rute terpendek dari lokasi pengguna ke lokasi tujuan yaitu SPBU. Rute yang ditunjukkan oleh hasil perhitungan algoritma Dijkstra yaitu rute yang hanya bisa dilalui mobil dan motor seperti jalan raya.
3. Ferdiansyah & Rizal (2013), dalam penelitian yang berjudul “Penerapan Algoritma Dijkstra untuk Menentukan Rute Terpendek Pembacaan Water
Meter Induk PDAM Tirta Kerta Raharja Kabupaten Tangerang”, dalam penelitian inipenulis mengembangkan sebuah sistem untuk penentuan rute terpendek bagi para pembaca meter dalam melakukan perjalanan dan pembacaan water meterpelanggan skala besar yang biasa dikenal sebagai pelanggan curah yang tersebar diberbagai wilayah Tangerang dan DKI Jakarta.Masalah pencarian rute terpendek bisa diselesaikan salah satunya dengan penerapan algoritma Dijkstra.Algoritma Dijkstramenggunakan prinsip Greedy, yaitu mencari jalur terpendek dari satu nodeke nodelainnya yang searah (directed graph)mulai dari nodeasal sampai nodetujuan. Penelitian ini berupaya membangun sebuah prototypesistem yang menunjukan lintasan terpendek antara beberapa nodeatau lokasi yang diimplementasikan pada sistem Rute Baca Meter dimana selanjutnya water meterpada node-nodeini akan dibaca secara berkala oleh Petugas pembaca water meter. Karena banyak lokasi watermeter yang harus dimasukan (tersebar di Kabupaten Tangerang, Kota Tangerang, Kota Tangerang Selatan dan DKI Jakarta) maka sistem ini menggunakan penelitian yang bersifat simulatif dan deskriptif dengan mengambil contohlokasi water meter di Kota Tangerangyang diasumsikan sebagai node, dimana node-node tersebut dihubungkan oleh garis-garis yang disimulasikan sebagai jalan yang diberikan nilai (satuan jarak dalam kilometer).
4. Baskoro & Susanto (2015), dalam penelitian yang berjudul “Aplikasi Berbasis Android Pencarian ATM Mandiri Terdekat Menggunakan Algoritma Dijkstra”, dalam penelitian ini penulis menggunakan metode pengembangan Agile dengan XP (Extream Programing) dengan alasan sifat aplikasi yang
dikembangkan melali tahapan-tahapan yang ada sesuai dengan medote Agile.
Dalam penelitian ini penulis merancang sebuah perangkat lunak ponsel berbasis Android pencarian ATM mandiri terdekat dari posisi pengguna.
Penulis menggunakan algoritma Dijkstra untuk menghasilkan rute terpendek dari lokasi pengguna ke lokasi ATM Mandiri. Fitur yang terdapat pada aplikasi ini yaitu daftar ATM Mandiri terdekat dari lokasi pengguna dan Call Center Mandiri sehingga pengguna dapat langsung menghubungi.
5. Fauzi, Zamzuri, Yunefri (2018), dalam penelitian yang berjudul "Implementasi Geografis Sebagai Media Pencarian Pondok Pesantren Dikota Pekanbaru Dengan Metode Dijkstra". membahas tentang pencarian yang berjudul
"Implementasi Geografis Sebagai Media Pencarian Pondok didaerah Pekan baru berbasis android. Dalam penelitian ini mengimplementasikan algoritma Dijkstra untuk mendapatkan rute terpendek dari lokasi pengguna ke lokasi tujuan. Rute yang ditunjukkan oleh hasil perhitungan algoritma Dijkstra.
2.2. Keaslian Penelitian
Berdasarkan tinjauan studi literatur yang dipaparkan diatas maka penulis menjelaskan bahwa yang menjadi perbedaan pada penelitian sebelumnya dan penelitian yang akan diusulkan ialah perbedaan objek penelitian dan manfaat tambahan selain mencari lokasi juga memberikan informasi mengenai jadwal praktik dokter hewan di Bandar lampung
2.3. Landasan Teori
2.3.1. GPS (Global Positioning System)
GPS atau Global Positioning System, merupakan sebuah alat atau sistem yang dapat digunakan untuk menginformasikan penggunanya dimana dia berada (secara global) di permukaan bumi yang berbasiskan satelit. Data dikirim dari satelit berupa sinyal radio dengan data digital.(Adolf, Darlis, &
Kanosri, 2015).
2.3.2. Google Maps
Google Maps adalah jasa peta gratis dan onlinedisediakan oleh Google yang dapat ditemukan di http://maps.google.com. Pada situs tersebut kita dapat melihat informasi geografis pada hamper semua wilayah di muka bumi.
Layanan ini interaktif, karena di dalamnya peta dapat digeser sesuai keinginan pengguna, mengubah tingkat zoom, serta mengubah tampilan peta.
Google mapsjuga menawarkan peta yang dapat diseret dan Gambar setelit untuk seluruh dunia, serta menawarkan rute perjalanan.(Albertrahmat, 2015).
2.3.3. MapBox
Mapbox adalah salah satu penyedia peta kustom terbesar di situs-situs ternama seperti Foursquare, Pinterest, Evernote sejak pada tahun 2010, Mapbox memperbanyak pilihan peta kustomnya untuk mengisi keterbatasan yang dimiliki penyedia peta seperti google maps. Mapbox merupakan pencipta atau contributor sejumlah pustaka dan aplikasi peta bebas terkenal, misalnya spesifikasi MBTiles, Kartografi TileMill IDE, pustakka Java Script Leaflet, Bahasa gaya dan parser peta CartoCSS, dan pustaka Java Script
Mapbox.js.Data Mapbox diambil dari sumber-sumber data terbuka seperti Open Street Map dan NAS, dan sumber-sumber data berbayar seperti Digital Globe. Teknologinya dibangun menggunakan Node.Js, CouchDB, Mapnik, GDAL dan Leafletjs. MapBox, yaitu dukungan terhadap GeoJSON – encoding obyek geografis dalam bentuk JSON. Mapbox juga merupakan turunan dari Open Street Map.
2.3.4. Android
Android merupakan sistem operasi perangkat mobile yang tumbuh dan terus dikembangkan. OS mobile masih memiliki berbagai macam jenislainnya seperti Windows Mobile, i-Phone OS, Symbian, dan masih banyak lagi. Namun, android berjalan dengan mengutamakan aplikasi inti yang dibangun sendiri tanpa memperhatikan potensi yang cukup besar dari aplikasi pihak ketiga. Oleh sebab itu, adanya keterbatasan dari aplikasi pihak ketiga untuk mendapatkan data asliponsel, berkomunikasi antar proses serta keterbatasan distribusi aplikasi pihak ketiga untuk platform mereka (Hermawan, Stephanus. 2011).
2.3.5. Android Studio
Android Studio adalah Integrated Development Environment (IDE) untuk mengembangkan aplikasi Android. Android Studio berbasis pada
“IntelliJ IDEA” Java-IDE dari Jetbrains dan diperkenalkan oleh Google.
Android Studio ini diumumkan pada Mei 2013. (Hohensee, 2014, pp. 1)
2.3.6. Komponen Aplikasi Android
Android adalah sebuah kumpulan perangkat lunak untuk perangkat mobile yang mencakup sistem operasi, middleware dan aplikasi utama mobile (Safaat, 2012). Android memiliki 4 (empat) karakteristik sebagai berikut:
1. Terbuka
2. Android dibangun untuk sebuah keterbukaan sehingga sebuah aplikasi dapat memanggil salah satu fungsi inti ponsel seperti membuat panggilan, mengirim pesan teks, menggunakan kamera, dan lain-lain.
3. Semua Aplikasi dibuat sama Android tidak memberikan perbedaan terhadap aplikasi utama dari telpon dan aplikasi pihak ketiga (third-party application).
4. Memecahkan hambatan pada aplikasi Android mengaatasi hambatan untuk membangun aplikasi yang baru dan inovatif.
5. Pengembangan aplikasi yang cepat dan mudah
6. Android menyediakan akses yang sangat luas kepada pengguna untuk menggunakan library yang dipergunakan tools yang dapat digunakan untuk mengembangkan aplikasi yang semakin baik.
2.3.7. RUP (Rational Unified Process)
RUP (Rational Unified Process) merupakan pendekatan pengembangan perangkat lunak yang dilakukan berulang-ulang (iterative), fokus pada arsitektur (architecture-centric), lebih diarahkan berdasarkan penggunaan kasus (usecase driven). RUP merupakan proses rekayasa perangkat lunak dengan pendefinisian yang baik (well defined) dan
penstrukturan yang baik (well structured) (Rossa, 2014). Proses pengulangan/iteratif pada RUP secara global dapat dilihat pada Gambar 2.1 sebagai berikut :
Fase RUP memiliki empat buah tahap atau fase yang dapat dilakukan pula secara iteratif. Berikut adalah penjelasan untuk setiap fase pada RUP : 1. Inception
Pada tahap ini penulis menentukan ruang lingkup pengembangan sistem dari hasil wawancara dan studi literature yang penulis lakukan, meliputi dari hasil penelitian atau skripsi-skripsi terdahulu.
2. Elaboration
Pada tahap ini dari hasil studi literature dan wawancara tersebut penulis dapat melakukan identifikasi masalah pada sistem yang dibuat. Didalam elaboration terdapat dua tahapan yaitu :
a) Analisis
Terdapat tiga fase dalam tahapan analisis sistem pada alur pengembangan sistem RUP, yaitu: analisis permasalahan, analisis persyaratan, dan analisis keputusan.
Gambar 2.1. Proses Iteratif RUP Sumber: (Rossa, 2014)
b) Perancangan
Pada tahap perancangan terdiri dari: perancangan aplikasi, menggunakan diagram UML meliputi usecase diagram, perancangan tampilan, dan menggunakan struktur navigasi.
3. Construction
Pada tahap ini menjelaskan bagaimana mengimplementasi dan melakukan uji coba terhadap aplikasi yang telah dibuat. Dalam tahapan implementasi dijelaskan perangkat keras dan perangkat lunak apa saja yang dibutuhkan untuk mengimplementasi aplikasi ini. Sedangkan pada tahapan uji coba dilakukan testing. Testing diperlukan untuk menjamin kualitas aplikasi yang telah dibuat apakah telah sesuai dengan yang diharapkan.
4. Transition
Pada tahap transition penulis membuat panduan penggunaan dari aplikasi yang telah dibuat.
2.3.8. Java
Menurut Liang (2013, pp. 10), Java merupakan bahasa pemrograman yang dikembangkan oleh James Gosling berserta tim di Sun Microsystem pada tahun 1991. Awalnya Java disebut dengan “Oak”. Namun pada tahun 1995, nama “Oak” diganti menjadi Java. Bahasa pemrograman Java dirancang untuk menjadi bahasa pemrograman multi-platform yang cukup aman dan tangguh. Java memiliki beberapa karakeristik yaitu simpel, berorientasi object, high performance, multithreaded, dinamis, intepreted, serta porTabel.
Pada mulanya Java biasa digunakan untuk mengembangkan aplikasi berbasis desktop yang lebih dikenal dengan nama J2SE. Kemudian muncul dua versi berikutnya yaitu J2EE yang diarahkan untuk mengembangkan aplikasi skala besar, aplikasi berbasis network, dan aplikasi berbasis web;
dan J2ME yang diarahkan untuk mengembangkan aplikasi pada device yang kecil dan terbatas memorinya, misalnya pada perangkat Blackberry dan perangkat berbasis Symbian.
Pada tahun 2007, J2ME dijadikan basis untuk mengembangkan sistem operasi Android oleh Google. Pada tahun 2010, perusahaan Oracle membeli Sun Microsystem dan menjadi perusahaan penyedia layanan untuk bahasa pemrograman Java. Dalam awal masa kepemilikannya, Oracle mengajukan tuntutan pada Google atas penggunaan teknologi J2ME pada platform Android, namun mereka dinyatakan kalah di pengadilan. Pada tahun 2011, Oracle merilis Java 7 yang perkembangannya sangat signifikan dari Java versi sebelumnya yaitu Java 6.
2.3.9. Dijkstra
Algoritma Dijkstra adalah algoritma yang popular untuk menentukan jalur terpendek.Algoritma ini disebut sebagai sumber tunggal algoritma untuk menentukan jalur terpendek. Dalam algoritma ini, untuk setiap vertex tertentu disebut sebagai titik jalur terpendek ke semua titik yang lain. Dalam algoritma ini tidak hanya terfokus untuk mencari jalur terpendek dari setiap vertex tetapi ke semua vertex yang
tersedia.Algoritma ini dapat diterapkan pada grafik hanya dengan bobot non-negative. Algoritma Dijkstra menemukan jalur terpendek ke graph bervertex diurutan jarak dari sumber tertentu. Dalam proses pencarian jalur terpendek, Algoritma Dijkstra menemukan jalur terpendek dari sumber titik vertex terdekat menuju titik selanjutnya. (Purwanto, Wibowo, 2012).
Langkah-langkah algoritma Dijkstra adalah sebagai berikut.
Input: Graf bobot G dengan s,t∈V(G).
Step 1: Label titik s dengan λ(s) = 0 dan untuk setiap titik v di G selain s, label titik v dengan λ(v) = ∞. (dalam praktik diganti dengan bilangan yang sangat besar). Tulis T = T = V (G).
Step 2: Misalkan u ∈T dengan λ(u) minimum.
Step 3: Jika u ∈t, berhenti, berarti panjang lintasan terpendek dari s ke t adalah λ(t)
Step 4: Untuk setiap sisi e = uv, v ∈T; ganti label v dengan λ(v) = minimum { λ(v), λ(u) + w(e)}.
Step 5: Tulis T = T –{u}, dan kembali ke step 2.
Algoritma Dijkstra membutuhkan parameter tempat asal, dan tempat tujuan. Hasil akhir dari algoritma ini adalah jarak terpendek dari tempat asal ke tempat tujuan beserta rutenya. Berikut Rumus Algoritma Dijksttra:
E1 = (V0,V1), E2 = (V1,V2),……, En = (Vn-1,V1) J = (E1,E2,…..,En)
Keterangan:
V = Titik Vartex jarak terdekat dari titik vartex0 ke vartex selanjutnya E = Path total jarak dari 2 vartex
J = Jumlah jarak dari setiap Path
2.3.10. Unified Modeling Language (UML)
Unified Modeling Language(UML) dapat digunakan untukmemvisualisasikan, menentukan, membangun, dan membuat dokumen artefak dari sebuah sistem software yang intensif (Pressman, 2010). Unified ModellingLanguage (UML) dapat dilihat sebagai berikut:
2.3.10.1. Use Case Diagram
Use case Diagram mengGambarkan bagaimana user berinteraksi dengansistem dengan cara mendefinisikan langkah-langkah yang dibutuhkan untuk menyelesaikan tujuan tertentu (Pressman, 2010).
Sebuah format yang mudah untuk membuat sebuah use case adalah dengan menjelaskan skenario utamanya sebagai sebuah urutan langkah- langkah dan alternatif langkah-langkah sebagai variasi dari urutan tersebut.
Tabel 2.1. Simbol Use case Diagram
No. Simbol Keterangan
Use Case adalah fungsionalitas yang
1.
disediakan sistem sebagai unit-unit yang saling bertukar pesan antara unit atau aktor, biasanya menggunakan kata kerja.
Aktor adalah seseorang/sesuatu yang 2.
berinteraksi dengan yang akan dibuat diluar sistem informasi. Biasanya dinyatakan menggunakan kata benda.
Asosiasi (association) adalahkomunikasi
3.
antara aktor dan Use Case yang
Tabel 2.2. Simbol Use case Diagram (Lanjutan)
No. Simbol Keterangan
berpartisipasi pada Use Case atau Use Case memiliki interaksi dengan aktor.
Generalisasi (generalization) 4.
adalahhupromosin (umum-khusus) antara dua buah Use Case dimana fungsi yang satu adalah fungsi yang lebih umum dari lainnya.
Include adalah Use Case yang 5. << Include >>
ditambahkan akan dipanggil saat Use Case tambahan dijalankan.
6. Ekstensi (extend) adalahUse Case
<<Extend>>
tambahan ke sebuah Use Case yang ditambahkan dapat berdiri sendiri walau tanpa Use Case tambahan itu.
Sumber: (Pressman, 2010)
2.3.10.2. Activity Diagram
Activity Diagram mengGambarkan perilaku dinamis dari suatu sistem ataubagian dari sistem melalui aliran kontrol antara tindakan bahwa sistem melakukan kegiatan tersebut. Hal ini mirip dengan flowchart kecuali bahwa suatu diagram aktivitas dapat menunjukan aliran secara bersamaan (Pressman, 2010). SimbolActivity Diagram dapat dilihat pada Tabel 2.3. berikut ini :
Tabel 2.3. Simbol Activity Diagram
No. Simbol Keterangan
1.
Status awal aktivitas sistem, sebuah diagram aktivitas memiliki sebuah status awal.
2.
Aktivitas yang dilakukan sistem, aktivitas biasanya diawali dengan kata kerja.
3.
Percabangan (Decision) merupakan asosiasi percabangan dimana jika ada pilihan aktivitas lebih dari satu.
4.
Penggapromosin (Join) merupakan asosiasi penggapromosin dimana lebih dari satu aktivitas digabungkan menjadi satu.
5. Swimlane, Memisahkan organisasi bisnis yang bertanggung jawab terhadap aktivitas.
6. Status akhir yang dilakukan sistem, sebuah diagram aktivitas memiliki sebuah status akhir.
Sumber:(Pressman, 2010)
2.3.10.3. Class Diagram
Class diagram merupakan bangunan utama dalam pemodelan berorientasiobjek. Diagram ini mengGambarkan sebuah pandangan dari satu aspek tertentu dari model atau keseluruhan, mengGambarkan struktur elemen beserta hubunganmereka. Class Diagram terutama digunakan untuk membangun sebuah arsitektursistem dengan menangkap dan mendefinisikan class-class dan interface danhubungan antara mereka.
Sebuah class diagram mengGambarkan hubungan antarkelas daripada hubungan antar objek (Pressman, 2010). Simbol Class Diagramdapat dilihat pada Tabel 2.4. berikut ini :
No. Simbol Keterangan
1.
Nama Kelas + Atribut + Operasi
Kelas pada struktur sistem
2.
Antar Muka/Interface
Nama Interface
Sama dengan konsep interface dalam pemrograman berorientasi objek
3.
Asosiasi / Asociation Relasi antar kelas dengan makna umum, asosiasi biasanya juga disertai dengan multiplicity
4.
Asosiasi Berarah / Directed Association
Relasi antar kelas dengan makna kelas satu yang digunakan oleh kelas lainnya, asosiasi biasanya juga disertai dengan multiplicity.
Tabel 2.4. Simbol Class Diagram
2.3.11. Black-Box Testing
Menurut (Maturidi, 2014) Black-box testing bertujuan untuk menunjukkan fungsi software tentang cara beroperasinya. Input dan ouput data telah berjalan sebagaimana yang diharapkan dan apakah informasi yang disimpan secara eksternal selalu dijaga kemutakhirannya. Pengujian black- box berfokus pada persyaratan fungsional perangkat lunak. Pengujian ini memungkinkan analisis sistem memperoleh kumpulan kondisi input yang akan mengerjakan seluruh keperluan fungsional program.
No. Simbol Keterangan
5.
Generalisasi Relasi antar kelas dengan makna
generalisasi spesialisasi (umum khusus)
6.
Ketergantungan /
dependency Relasi anar kelas dengan makna ketergantungan antar kelas
7.
Agregasi / aggregation Relasi antar kelas dengan makna semua bagian (whole-part)
Tabel 2.5. Simbol Class Diagram (Lanjutan)
Sumber:(Pressman, 2010)
2.3.11.1. Teknik Equivalence Partitioning
Salah satu teknik pengujian Black-box Testing adalah dengan menggunakan teknik Equivalence Partitioning yang digunakan untuk menguji masukan serta membagi masukan kedalam kelompok- kelompok berdasarkan fungsinya. Sehingga didapatkan sebuah Test Caseyang akurat (Aristoteles,Wardiyanto and Pratama, 2015). Dalam teknik ini akan dilakukan beberapa tahapan. Pada tahapan pertama diawali dengan menentukan Test Case perangkat lunak yang akan diuji dengan metode Equivalence Partitions kemudian menginisialisasi standar grade partition masukan dan keluaran.
2.3.11.2. Kriteria Range Perhitungan Pengujian
Jumlah Skor Kriteria
0.00 – 36.00 Tidak baik/Tidak Layak
36.01 – 52.00 Kurang Baik/Kurang Layak
52.01 – 68.00 Cukup Baik/Cukup Layak
68.01 – 84.00 Baik/Layak
84.01 – 100 Sangat Baik/Sangat Layak
Sumber: (Asyhari dan Silvia, 2018) Tabel 2.6. Kriteria Range Perhitungan Pengujian