BAB II LANDASAN TEORI Dalam bab ini membahas mengenai teori-teori yang mendasari dalam pembuatan Aplikasi Location Based Service Masjid Menggunakan Algoritma A* untuk pencarian rute terdekat Berbasis Android. Berikut ini adalah beberapa landasan teori yang digunakan dalam aplikasi tersebut : 2.1. Masjid 2.1.1. Pengertian Masjid Ditinjau dari segi etimologi, masjid berasal dari bahasa Arab, yaitu dari kata sajada-sujud-masjad/masjid. Sujud mengandung arti taat, patuh, dan tunduk dengan hormat. Makna-makna ini diekspresikan secara lahiriahnya dalam bentuk meletakkan dahi, kedua tangan, lutut, dan kaki ke bumi. Tempat yang dibangun khusus untuk melakukan sujud seperti ini secara rutinitas disebut masjid. Dalam ilmu tata bahasa Arab atau gramatikal bahasa Arab kata masjid dinamakan ismu makan, yaitu kata benda yang menunjukkan pada arti tempat. Jadi masjid berarti tempat bersujud. inilah pengertian sehari-hari bagi umumnya umat Islam, masjid sebagai bangunan tempat mendirikan shalat bagi umat Islam. Akan tetapi, akar kata masjid yaitu sajada, mengandung makna tunduk dan patuh serta taat, maka hakekat masjid itu adalah tempat melakukan segala macam aktivitas yang mengandung kepatuhan kepada Allah Swt. Dengan kata lain,
13
bahwa masjid itu berarti suatu tempat melakukan segala aktivitas manusia yang mencerminkan nilai-nilai kepatuhan dan ketaatan kepada Allah. Ditinjau dari segi semiotik, makna suatu masjid dapat dipahami berdasar pada, bentuk, model, dan simbol yang tampak dari masjid itu sendiri. Bentuk dan model fisik bangunan masjid di Indonesia ini banyak terpengaruh dari budaya Timur Tengah, Turki, dan juga tidak lepas dari pengaruh budaya dari adat tradisi daerah setempat tertentu, sehingga bentuk dan model bangunan masjid yang ada di Pulau Sulawesi, Sumatera, Kalimantan, Jawa, dan lain-lain berbeda-beda. Namun, yang jelas bahwa bentuk dan model bangunan fisik masjid yang banyak di Indonesia ini justru lebih didorong pada simbol sufistik. Hal ini boleh jadi, karena para tokoh yang membangun masjid itu umumnya adalah para sufi dan wali sebagai muballigh yang akan memberikan pencerahan dan penyejukan hati bagi umat Islam. Misalnya saja, di berbagai daerah di Indonesia ini banyak dijumpai bangunan fisik dan material masjid yang berbentuk tiga susun atapnya lalu di atasnya terdapat sebuah qubah kecil yang di tengahtengah lingkarannya tertancap sebuah menarah kecil yang di puncak atasnya terdapat sebuah lambang bulan sabit dan bintang. Bangunan fisik masjid dengan bercirikan model dan bentuk seperti di atas dapat dimaknai sebagai simbol bahwa manusia itu dalam proses persujudan menuju kepada Tuhan. 2.1.2. Klasifikasi Masjid Berdasarkan hubungan keberadaan Masjid dengan lingkungannya, menurut Fachrurozy dapat dikategorikan ke dalam beberapa level. Diantaranya ialah,
14
Masjid di pedesaan, Masjid kampus, Masjid di pusat kota, Masjid di perkantoran, Masjid di tempat perbelanjaan dan Masjid wisata. Keragaman level Masjid ini tidak terlepas dari kondisi masyarakat muslim sendiri yang kian dinamis. 1) Masjid Jami’ Masjid jami’ atau Masjid di pedesaan mencerminkan kehidupan masyarakat pedesaan yang homogen. Secara harfiah, jami’ artinya berkumpul, maka dari makna ini merujuk kepada keadaan masyarakat desa yang masih menjunjung tinggi nilai-nilai kebersamaan dan keagamaan. Masjid jami’ ini, selain bercirikan dari karakter masyarakat yang demikian,
juga dilihat dari
kepengurusannya yang belum baik, serta pendanaan yang relatif tidak stabil. 2) Masjid Wisata Masjid
wisata
adalah
Masjid
yang
dengan
sengaja
dibangun
untuk
kepentingan itu, atau dibangun di daerah wisata. Keduanya berbeda. Jika dari awal Masjid tersebut diproyeksikan untuk menjadi pusat kunjungan wisata, maka keberadaanya menjadi pioner dalam pengembangan pola jemaah yang dibinanya. Contoh model Masjid wisata ini ialah Masjid At Ta’awun di Puncak. Ciri umum Masjid dengan konsep ini ialah kondisi jemaah yang heterogen dan tidak terukur, namun dari aspek pembiayaan kegiatan relatif stabil dan mudah diperoleh, kemudian dari kepengurusan Masjid relatif stabil dan teratur karena tentu dikelola dengan baik.
15
3) Masjid Instansi Masjid instansi adalah Masjid yang ada di lokasi perkantoran, ide awal pembangunan Masjid model ini ialah untuk memfasilitasi para karyawan dalam melaksanakan
ibadah
formal.
Ciri lainnya
adalah
dari aspek
kepengurusan relatif stabil, namun masih diwarnai perilaku birokrasi. Dari aspek pendanaan relatif mudah diperoleh. 4) Masjid Pusat Kota Masjid di pusat kota (kaum) merupakan mejid utama dalam penyangga aspek-aspek spiritual dan sosial masyarakat yang ada di sekitarnya. Konsep Masjid kaum ini, jika melihat pada perjalanan sejarah Islam lokal, juga merupakan symbol pemerintahan dan keberagamaan. Masjid model ini biasanya
dibangun
berdekatan
dengan
pusat
pemerintahan,
contoh
kongkritnya ialah Masjid besar atau Masjid raya. 5) Masjid Kampus Sebagaimana halnya Masjid instansi, demikian pula dengan Masjid kampus. Didirikan untuk
memfasilitasi kepentingan para siswa/mahasiswa muslim
dalam melaksanakan kegiatan ibadah formalnya. Sementara itu dalam pespektif pemerintah, Masjid dikategorikan menjadi lima level. Pertama Masjid nasional dalam hal ini di Indonesia adalah istiqlal Jakarta. Untuk tingkat propinsi disebut dengan Masjid Raya, tingkat kabupaten
16
disebut dengan Masjid Agung, tingkat kecamatan disebut dengan Masjid Besar dan tingkat desa disebut dengan Masjid Jami. A. Masjid Negara Masjid Negara adalah masjid yang berada di Ibu Kota Negara Indonesia, menjadi pusat
kegiatan
keagamaan
tingkat Kenegaraan.
Kriterianya
mencakup: -
Dibiayai oleh Negara melalui APBN dan masyarakat.
-
Berfungsi sebagai pembina masjid–masjid
yang ada di wilayah
provinsi. -
Kepengurusannya ditetapkan dan dilantik oleh Menteri Agama atau yang mewakilinya.
-
Menjadi contoh dan rujukan masjid yang ideal
-
Memiliki fasilitas/bangunan penunjang seperti seperti kantor, bank syariah, toko, aula.
-
Memiliki nilai budaya,
arsitektur
nasional dan memiliki potensi
sebagai tempat tujuan wisata, baik domestik maupun mancanegara. -
Memiliki nilai sejarah kebangsaan.
B. Masjid Raya Masjid Raya adalah masjid yang berada di Ibu Kota Provinsi, menjadi pusat kegiatan keagamaan tingkat Pemerintahan Provinsi. Kriterianya mencakup:
17
-
Dibiayai oleh Pemerintah Provinsi melalui APBD tingkat I dan masyarakat.
-
Berfungsi sebagai pembina masjid agung yang ada di wilayah provinsi.
-
Kepengurusannya ditetapkan dan dilantik oleh Walikota/Bupati atau yang mewakilinya yang diusulkan oleh Ka. Kanwil Kementerian Agama Provinsi berdasarkan saran dan pendapat masyarakat.
-
Menjadi contoh dan rujukan masjid yang ideal dalam skala provinsi.
-
Memiliki fasilitas/bangunan penunjang seperti kantor, bank syariah, toko, aula.
-
Memiliki nilai budaya,
arsitektur
nasional dan memiliki potensi
sebagai tempat tujuan wisata, baik domestik maupun mancanegara. -
Memiliki nilai sejarah kebangsaan.
C. Masjid Agung Masjid Agung adalah masjid yang terletak di Ibu Kota Pemerintahan Kabupaten/Kota, menjadi pusat kegiatan sosial keagamaan yang dihadiri oleh pejabat Pemkab/Pemkot dengan kriteria sebagai berikut: -
Dibiayai oleh Pemerintah Kabupaten/Kota dan swadaya masyarakat muslim.
-
Menjadi pusat kegiatan keagamaan Pemerintahan Kabupaten/Kota atau masyarakat muslim dalam skala kabupaten/kota.
-
Menjadi pembina masjid–masjid yang ada di wilayah Kabupaten/Kota.
18
-
Kepengurusan masjid ditetapkan oleh Bupati/Wali Kota atas usul Ka. Kantor Kementerian Agama Kabupaten/Kota atau lembaga yang ada di masyarakat, baik organisasi kemasyarakatan maupun yayasan.
-
Menjadi
contoh
dan
rujukan
masjid
yang
ideal dalam skala
Kabupaten/Kota. -
Memiliki fasilitas/bangunan penunjang seperti kantor, bank syariah, toko, aula.
D. Masjid Besar Masjid besar adalah masjid yang berada di ibukota kecamatan yang menjadi pusat kegiatan sosial keagamaan yang dihadiri oleh camat, pejabat dan tokoh masyarakat tingkat kecamatan, kriterianya sebagai berikut: -
Diabiayai Pemerintahan Kecamatan dan disubsidi oleh Pemerintah Kecamatan atau organisasi kemasyarakatan dan yayasan.
-
Menjadi pusat kegiatan keagamaan Pemerintahan Kecamatan;
-
Menjadi pembina masjid – masjid yang ada diwilayah Kecamatan;
-
Kepengurusan Masjid dipilih oleh jamaah dan dikuatkan oleh Camat atas usul Ka. KUA Kecamatan.
E.Masjid Jami Masjid Jami adalah masjid yang terletak di pusat pemukiman di wilayah pedesaan/kelurahan dengan kriteria sebagai berikut:
19
-
Berada di pusat Pedesaan/Kelurahan/pemukiman warga, dibiayai oleh Pemerintahan Desa/Kelurahan dan atau swadaya masyarakat.
-
Menjadi pusat kegiatan keagamaan Pemerintahan Desa dan warga.
-
Menjadi pembina masjid, musholla dan majelis taklim yang ada di wilayah Desa/Kelurahan/Pemukiman.
-
Kepengurusan Masjid dipilih oleh jamaah dan dikuatkan oleh Ka. KUA Kecamatan atas usul Pengurus Masjid.
2.1.3. Fungsi-fungsi Masjid Mengenai fungsi Masjid, kita dapat merujuknya kepada sumber otoritas ajaran yakni al Quran dan amal rasul, yang menunjukan bagaimana sesungguhnya pola penggunaan Masjid itu. Dari sumber pertama, yang diungkapkan dalam QS. An Nuur ayat 36-37 berikut: Artinya : 36. Bertasbih kepada Allah di Masjid- Masjid yang Telah diperintahkan untuk dimuliakan dan disebut nama-Nya di dalamnya, pada waktu pagi dan waktu petang, 37. Laki-laki yang tidak dilalaikan oleh perniagaan dan tidak (pula) oleh jual beli dari mengingati Allah, dan (dari) mendirikan sembahyang, dan (dari) membayarkan zakat. mereka takut kepada suatu hari yang (di hari itu) hati dan penglihatan menjadi goncang. Dari kutipan ayat di atas, secara tegas dinyatakan bahwa Masjid merupakan tempat untuk memuliakan Nama Allah dengan berdzikir, shalat, serta menunaikan zakat. Kegiatan ini lebih merujuk kepada suatu konsep kegiatan
20
ibadah
secara
vertical (mahdloh).
Namun
jika
mengingat bahwa Masjid
merupakan rumah Allah, dan pemiliknya adalah Allah terlepas dari bentuk dan pendiriannya,
maka
sesungguhnya
segenap
aktivitas
manusia
yang
pada
prinsipnya adalah ibadah dimulai dari Masjid, dan juga bermuara kepada Masjid, serta akhirnya juga kembalinya ke Masjid. Prinsip ini merupakan hakikat dari bahwa sesungguhnya manusia adalah hamba-Nya. Artinya : 18. Dan Sesungguhnya Masjid-Masjid itu adalah kepunyaan Allah. Maka janganlah kamu menyembah seseorangpun di dalamnya di samping (menyembah) Allah. (QS. Jin [72] :18). Adapun dari amal rasul kita mendapatkan bahwa di masanya, Masjid selain sebagai tempat untuk menunaikan ibadah mahdloh seperti diungkapkan ayat diatas, juga merupakan pusat kegiatan umat pada umumnya, baik itu menyangkut
ibadah
formal
juga
muamalah
(horizontal).
Harun
Nasution
menjelaskan bahwa di masa awal perjalanan sejarah Islam, Masjid oleh Nabi Muhammad dan umat Islam digunakan untuk melakukan ibadah shalat, tempat tinggal ahl al shuffah, juga tempat tinggal Nabi Muhammad dan keluarga. Dan seiring perkembangan umat Islam, maka fungsi Masjid di Madinah bertambah sebagai tempat Nabi Muhammad mengatur strategi dalam ketatanegaraan dan pemerintahan, menyampaikan pidato-pidato, juga memutuskan perkara peradilan. Sementara itu Quraish Shihab merinci fungsi-fungsi Masjid di masa Nabi Muhammad sebagai berikut:
21
1) Tempat ibadah (shalat, zikir). 2) Tempat konsultasi dan komunikasi persoalan ekonomi, sosial dan budaya. 3) Tempat melangsungkan kegiatan pendidikan umat. 4) Tempat melakukan santunan terhadap fakir miskin (sosial). 5) Tempat latihan militer serta mempersiapkan perlengkapannya. 6) Tempat pengobatan korban peperangan. 7) Tempat perdamaian dan pengadilan sengketa. 8) Aula dan tempat menerima tamu. 9) Pusat penerangan dan pembelaan agama. 2.2 Android
Android adalah sebuah sistem operasi untuk perangkat telepon selular yang berbasis linux yang mencangkup sistem operasi, middleware dan aplikasi. Android bersifat open source sehingga pengembang dapat menggunakan Android gratis dan dapat membangun android tanpa adanya batasan-batasan.
2.2.1 Android SDK (Android Software Development Kit) Android SDK adalah tools API (Application Programming Interface) yang diperlukan untuk mengembangkan aplikasi pada platform Android menggunakan bahasa pemrograman Java. Sebagai platform aplikasi netral, Android memberi kesempatan untuk membuat aplikasi yang dibutuhkan yang bukan merupakan aplikasi bawaan handphone atau smartphone. Beberapa fitur android diantaranya yakni : 22
1. Application
framework
yang mendukung pergantian komponen dan
reusable. 2. Dalvik virtual machine dioptimalkan untuk perangkat mobile. 3. Integrated browser berdasarkan engine opensource Webkits. 4. Optimized
graphics didukung oleh libraries grafis 2D, grafis 3D
berdasarkan spesifikasi OpenGL ES 1.0 (opsional hadware). 5. SQLite untuk penyimpanan data (database). 6. Media support yang mendukung audio, video dan gambar dengan format MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF (tergantung hardware). 7. Bluetooth, EDGE, 3G, and WiFi (tergantung hardware). 8. Camera, GPS, compass, and accelerometer (tergantung hardware). 9. Rich development environment, lingkungan development yang kaya termasuk dengan emulator, tools untuk debugging, memori dan plugins untuk Eclipse IDE. (Safaat, 2012) 2.2.2 Arsitektur Android Arsitektur
android
menggambarkan
komponen-komponen
yang
membangun sebuah aplikasi Android. Berikut ini adalah gambaran arsitektur android yang dikutip dari buku Android Pemrograman Aplikasi Mobile Smartphone dan Tablet PC Berbasis Android.
23
Gambar 2.1 Arsitektur Android (Safaat, 2012) Secara garis besar arsitektur Android dapat dijelaskan sebagai berikut : a. Application dan Widgets Application dan widgets merupakan puncak dari diagram arsitektur android. Lapisan aplikasi ini merupakan lapisan yang paling tampak pada pengguna ketika menjalankan program. Pada lapisan ini terdapat aplikasi inti yang dipergunakan pengguna, yakni: email client, program SMS, kalender, peta, browser, kontak dan lain-lain. b. Application Framework Android merupakan Open Development Platform yakni developer dapat melakukan pengembangan dengan membangun aplikasi yang bagus dan inovatif. Dalam android terdapat kerangka aplikasi (Application Framework) yang menyediakan kelas-kelas yang dapat digunakan untuk mengembangkan aplikasi.
24
Selain itu,
android
juga menyediakan abstraksi generik
untuk
mengakses
perangkat, serta mengatur tampilan (user interface) dan sumber daya aplikasi. Komponen-komponen yang termasuk
didalam Application Framework
yakni : 1. Activity Manager. 2. Content Providers. 3. Resource Manager. 4. Location Manager. 5. Notification Manager. c. Libraries Libraries merupakan lapisan dimana fitur-fitur Android tersebut berada. Android menyertakan satu set library dalam bahasa C/C++ yang digunakan oleh berbagai komponen yang ada pada sistem Android. Kemampuan ini dapat diakses oleh
programmer
melewati Android
application
framework.
Berikut
ini
merupakan beberapa library yang dipergunakan dalam Android, diantaranya, yakni : a. Libraries media untuk pemutaran media audio dan video. b. Libraries untuk manajemen tampilan. c. Libraries Graphics yang mencakup SGL dan Open GL untuk grafis 2 dan 3D. d. Libraries SQLite untuk dukungan database. e. Libraries SSL dan WebKit terintegrasi dengan web browser dan security. f. Libraries Live WebCore yang mencakup modern web browser dengan engine embedded web view, dan library lainnya.
25
d. Android Runtime Pada android tertanam paket pustaka inti yang menyediakan sebagian besar fungsi android. Android Runtime merupakan mesin virtual yang membuat aplikasi android menjadi lebih tangguh dengan paket pustaka yang telah ada. Didalam Android Runtime dibagi menjadi dua bagian, yaitu : 1. Pustaka inti (Core Libraries) Aplikasi
Android
dibangun
dalam
bahasa
Java.
Sehingga
diperlukan libraries yang berfungsi untuk menterjemahkan bahasa Java/ C, sehingga source code program dapat dikenali dan diekseskusi. 2. Dalvik Virtual Machine Mesin virtual ini merupakan sebuah interpreter mesin virtual yang mengeksekusi file dalam format Dalvik Executable (*.dex). Dengan format
ini Dalvik
akan
mengoptimalkan efisiensi penyimpanan dan
pengalamatan memori pada file yang dieksekusi. Dalvik berjalan di atas kernel Linux 2.6, dengan fungsi dasar seperti threading dan manajemen memori yang terbatas. e. Linux Kernel
Lapisan ini merupakan lapisan dimana inti dari sistem operasi Android. Didalamnya berisi file-file sistem yang mengatur sistem processing, memory, resource, drivers dan sistem-sistem operasi android lainnya. Linux kernel yang dipergunakan Android adalah Linux Kernel release 2.6. (Safaat, 2012) 26
2.3 LBS (Location based services) Location based services (LBS) adalah layanan informasi yang didasarkan pada lokasi pelanggan pada saat itu. Sistem dapat menentukan lokasi dimana pelanggan berada, lalu memberikan informasi yang sesuai. Salah satu contoh sederhana adalah informasi lokasi ATM terdekat yang dikirimkan ke salah satu piranti bergerak sesuai dengan lokasi piranti tersebut berada. Contoh lain adalah mobile advertising, yaitu informasi komersial yang dikirimkan ke piranti bergerak yang relevan dengan posisi piranti tersebut.
Misalnya informasi komersial
mengenai program diskon menu tertentu di salah satu café yang berlokasi dekat dengan posisi piranti bergerak. 2.3.1. Komponen LBS Terdapat lima komponen pendukung utama dalam teknologi Layanan Berbasis Lokasi, antara lain:
Piranti Mobile
Piranti Mobile adalah salah satu komponen penting dalam LBS. Piranti ini berfungsi sebagai alat bantu (tool) bagi pengguna untuk
meminta
informasi. Hasil dari informasi yang diminta dapat berupa teks, suara, gambar dan lain sebagainya. Piranti mobile yang dapat digunakan bisa berupa PDA, smartphone, laptop. Selain itu, piranti mobile dapat juga berfungsi sebagai alat navigasi di kendaraan seperti halnya alat navigasi berbasis GPS.
27
Jaringan Komunikasi
Komponen kedua adalah jaringan komunikasi. Komponen ini berfungsi sebagai jalur penghubung yang dapat mengirimkan data-data yang dikirim oleh pengguna dari piranti mobile-nya untuk kemudian dikirimkan ke penyedia layanan dan kemudian hasil permintaan tersebut dikirimkan kembali oleh penyedia layanan kepada pengguna.
Komponen Positioning (Penunjuk Posisi/Lokasi)
Setiap layanan yang diberikan oleh penyedia layanan biasanya akan berdasarkan pada posisi pengguna yang meminta layanan tersebut. Oleh karena
itu
diperlukan
komponen
yang
berfungsi
sebagai
pengolah/pemroses yang akan menentukan posisi pengguna layanan saat itu. Posisi pengguna tersebut bisa didapatkan melalui jaringan komunikasi mobile atau juga menggunakan Global Positioning System (GPS).
Penyedia layanan dan aplikasi
Penyedia layanan merupakan komponen LBS yang memberikan berbagai macam layanan yang bisa digunakan oleh pengguna. Sebagai contoh ketika pengguna meminta layanan agar bisa tahu posisinya saat itu, maka aplikasi dan penyedia layanan langsung memproses permintaan tersebut, mulai dari menghitung dan menentukan posisi pengguna, menemukan rute jalan, mencari data di Yellow Pages sesuai dengan permintaan, dan masih banyak lagi yang lainnya.
28
Penyedia data dan konten
Penyedia layanan tidak selalu menyimpan seluruh data dan informasi yang diolahnya. Karena bisa jadi berbagai macam data dan informasi yang diolah tersebut berasal dari pengembang/pihak ketiga yang memang memiliki otoritas
untuk
menyimpannya.
Sebagai contoh basis data
geografis dan lokasi bisa saja berasal dari badan-badan milik pemerintah. 2.4 Sistem Informasi Geografis (SIG) Sistem Informasi Geografis atau Geographic Information System (GIS) merupakan suatu sistem informasi yang berbasis komputer, dirancang untuk bekerja dengan menggunakan data yang memiliki informasi spasial (bereferensi keruangan).
Sistem
memanipulasi,
ini
menangkap
menganalisa,
dan
gambar,
menampilkan
mengecek, data
yang
mengintegrasikan, secara
spasial
direferensikan kepada kondisi bumi. 2.4.1 Jenis Data SIG Secara umum dikenal tiga jenis data. Ketiganya merupakan abstraksi sederhana dari objek-objek nyata yang lebih rumit, yaitu : 1.
Titik:
sebagai
koordinat
tunggal
(x,y)
yang
digunakan
untuk
menggambarkan berbagai penampakan geografi. Merupakan jenis data yang paling sederhana.
29
2. Garis: sebagai rangkaian koordinat (sekumpulan titik) yang tersambung dalam suatu rantai untuk
menggambarkan bentuk dan jarak suatu
penampakan. 3. Poligon: suatu area tertutup yang disusun oleh satu garis atau lebih. Biasanya poligon diberi label atau tanda khusus (arsir, warna, dan sebagainya) untuk membedakan dan membatasi antara satu poligon dengan polygon lainnya. 2.4.2 Model Data SIG Data dalam SIG dikelompokkan dalam dua bagian, yaitu data spasial dan data non spasial. Data non spasial adalah data yang merepresentasikan aspekaspek deskriptif dari fenomena yang dimodelkannya. Data ini sering disebut juga data atribut. Sedangkan data spasial merupakan data yang memuat tentang lokasi suatu objek dalam peta berdasarkan posisi geografi objek tersebut di dalam bumi dengan menggunakan sistem koordinat. Data spasial mempunyai dua elemen dasar, yaitu : a. Lokasi Lokasi umumnya mengacu pada letak geografi suatu objek dalam sistem koordinat
bumi,
akan
tetapi
kode
dipergunakan. Sebagai contoh, kode pos.
30
geografi
lainnya
juga
dapat
b. Atribut Atribut merupakan karakteristik atau ciri dasar dari suatu objek. Dalam suatu peta, atribut biasanya disajikan sebagai teks atau legenda peta. Hingga saat ini, secara umum, persepsi manusia mengenai data spasial dapat direpresentasikan dalam dua bentuk, yaitu model data vektor dan model data raster. Data vector melakukan proses pengolahan data atau gambar menggunakan garis dan kurva yang memuat informasi warna, dimensi serta posisi. Vektor bersifat resolution-independent atau tidak tergantung pada resolusi. Artinya, vektor dapat diubah-ubah baik bentuk, ukuran, posisi atau warnanya pada resolusi berapapun tanpa mengubah kualitas tampilannya. Vektor dapat pula berupa satu titik tunggal. Sedangkan data raster yang disebut juga dengan bitmap, adalah gambar yang komposisinya terdiri atas titik-titik berbentuk bujur sangkar, yang dinamakan dengan pixel, yang disusun pada suatu grid. Setiap titik-titik pada grid tersebut masing-masing mengandung warna tersendiri. Memodifikasi raster berarti memodifikasi tiap
pixel. Raster bersifat
resolution dependent atau bergantung pada resolusi. Artinya data menampilkan gambar yang terpaku pada resolusi tertentu. Jadi, ketika gambar tersebut diperkecil atau diperbesar, kualitas gambar akan berubah.
31
2.5 Google Maps
Google Maps adalah layanan peta dan pemetaan digital yang bisa dimanfaatkan untuk mengamati peta dunia secara gratis melalui browser web. Google
Maps
memanfaatkan
teknologi
digital imaging.seperti foto
Satelit
sehingga kamu bisa melihat bagaimana landscape planet bumi apabila dilihat dari luar angkasa. Dengan kata lain, Google Maps merupakan suatu peta yang dapat dilihat dengan menggunakan suatu browser. Kita dapat menambahkan fitur Google Maps dalam web yang telah kita buat atau pada blog kita yang berbayar maupun gratis sekalipun dengan Google Maps API. Google Maps API adalah suatu library yang berbentuk JavaScript.
2.6 Graph Graph merupakan suatu alat bantu untuk merepresentasikan objek-objek diskrit dan hubungan antara objek-objek tersebut. Graph G didefinisikan sebagai pasangan himpunan (V, E), ditulis dengan notasi G = (V, E). V (node) merupakan merupakan himpunan tidak kosong dari simpul. E (edge) merupakan himpunan sisi yang menghubungkan sepasang simpul. Dan jika suatu edge berasal dari suatu simpul dan ujungnya kembali ke simpul yang sama, maka dinamakan
edge
tersebut
loop. Simpul pada graph umumnya dinomori dengan huruf atau
angka. Sedangkan sisi pada graph
umumnya dinamai dengan himpunan simpul
yang dihubungkan oleh sisi tersebut.
32
Graph dapat dikelompokkan berdasarkan ada tidaknya edge-nya yang paralel atau loop, jumlah node, berdasarkan ada tidaknya arah pada edge-nya, atau ada tidaknya bobot pada edge-nya. Berdasarkan ada tidaknya edge yang paralel atau loop graph terdiri dari graph sederhana dan graph tak sederhana. Graph sederhana adalah graph yang tidak memiliki sisi ganda dan juga loop. Sisi ganda merupakan kondisi ketika dua buah simpul memiliki lebih dari satu sisi. Sedangkan graph tak sederhana adalah graph yang memiliki sisi ganda dan atau loop. Graph tak sederhana dapat dibagi dua, yaitu graph graph
semu (pseudograph) dan multiplegraph. Graph semu adalah
yang mempunyai
loop dan edge ganda sedangkan multiplegraph adalah
hanya mempunyai edge ganda. Berdasarkan
orientasi arah atau panah graph dibedakan atas graph tak
berarah dan graph berarah. Graph tak berarah adalah graph yang edge-nya tidak mempunyai orientasi arah atau panah
sedangkan graph berarah adalah graph
yang setiap sisinya memiliki orientasi arah dari suatu simpul ke simpul lainnya. Graph berbobot adalah graph
yang memiliki nilai pada setiap sisinya.
Bobot pada setiap sisi dapat menyatakan jarak antara dua buah kota, biaya perjalanan, waktu tempuh, ongkos produksi, dan sebagainya.
33
2.7 GPS (Global Positioning System )
GPS sebenarnya merupakan sebuah sistem navigasi berbasis satelit yang dikembangkan oleh US DoD=United States Department of Defense (Departemen Pertahanan Amerika Serikat) dan diberinama NAVSTAR GPS.
Global Positioning System (GPS) adalah sistem navigasi berbasis satelit yang terdiri dari jaringan 24 satelit ditempatkan ke orbit, NAVSTAR bukanlah suatu singkatan sebagaimana umumnya sebuah nama yang diberikan pada suatu alat, tetapi NAVSTAR adalah sebuah nama untuk GPS yang diberikan oleh penentu kebijakan dalam program pembuatan GPS bernama John Walsh.
Pengelolaan Satelit tersebut dilakukan oleh 50th Space Wing Angkatan Udara Amerika Serikat dengan biaya perawatan mencapai angka sekitar US$750 juta per tahun, termasuk penggantian satelit lama, serta riset dan pengembangan. Karena memang diciptakan pertama kali oleh Departemen Pertahanan maka pada awalnya GPS dimanfaatkan dalam urusan militer, dan sejak tahun 1980-an GPS mulai dimanfaatkan secara lebih luas.
2.8 PHP (Pretext Hyper-Processor) Menurut
Antonius
Nugraha
Widhi Pratama
(2010:9)
PHP
adalah
kependekan dari Pretext Hyper-Processor yang dibagun oleh Rasmus Lerdorf pada tahun 1994. Dahulu, pada awal pengembangannya PHP disebut sebagai kependekan dari Personal Home Page. PHP merupakan produk open source
34
sehingga kita dapat mengakses source code, menggunakan, dan mengubahnya tanpa harus membayar sepeserpun. PHP
adalah bahasa scripting yang menyatu dengan HTML dan dijalankan
pada server side. Artinya semua sintaks yang kita berikan akan sepenuhnya dijalankan pada server sedangkan yang dikirimkan ke browser hanya hasilnyasaja. PHP menyatu dengan bahasa HTML untuk membuat halaman web yang menarik. PHP mampu berjalan di atas beberapa platfrom seperti Windows, Unix serta varian Linux. Beberapa kelebihan PHP antara lain dapat membuat situs yang interaktif dengan forum diskusi, guestbook dan sebagainya, koneksitas yang baik dengan bermacam-macam database seperti Oracle, MySQL, PostgreSQL dan lainlain. 2.9 JSON (JavaScript Object Notation) JSON (JavaScript Object Notation) adalah format pertukaran data yang ringan, mudah dibaca dan ditulis oleh manusia, serta mudah diterjemahkan dan dibuat
(generate)
dari Bahasa
oleh
komputer.
Pemprograman
Format ini dibuat berdasarkan bagian
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 karena sifat-sifat tersebut, menjadikan JSON ideal sebagai bahasa pertukaran-data.
35
JSON terbuat dari dua struktur: 1.
Kumpulan
pasangan
nama/nilai.
Pada
beberapa
bahasa,
hal ini
dinyatakan sebagai objek (object), rekaman (record), struktur (struct), kamus (dictionary), tabel hash (hash table), daftar berkunci (keyed list), atau associative array. 2.
Daftar nilai terurutkan (an ordered list of values). Pada kebanyakan
bahasa, hal ini dinyatakan sebagai larik (array), vektor (vector), daftar (list), atau urutan (sequence). Struktur-struktur data ini disebut sebagai struktur data universal. Pada dasarnya, semua bahasa pemprograman moderen mendukung struktur data ini dalam bentuk yang sama maupun berlainan. Hal ini pantas disebut demikian karena format data mudah dipertukarkan dengan bahasa-bahasa pemprograman yang juga berdasarkan pada struktur data ini. JSON menggunakan bentuk sebagai berikut: Objek adalah sepasang nama/nilai yang tidak terurutkan. Objek dimulai dengan { (kurung kurawal buka) dan diakhiri dengan } (kurung kurawal tutup). Setiap nama diikuti dengan : (titik dua)dan setiap pasangan nama/nilai dipisahkan oleh , (koma).
Gambar 2.2 Objek JSON (http://www.json.org/json- id.html, akses 2013)
36
Larik adalah kumpulan nilai yang terurutkan.
Larik
dimulai dengan
[ (kurung kotak buka) dan diakhiri dengan ] (kurung kotak tutup). Setiap nilai dipisahkan oleh , (koma).
Gambar 2.3 Larik JSON (http://www.json.org/json- id.html, akses 2013)
Nilai (value) dapat berupa sebuah string dalam tanda kutip ganda, atau angka, atau true atau false atau null, atau sebuah objek atau sebuah larik. Struktur-struktur tersebut dapat disusun bertingkat.
Gambar 2.4 Struktur Value JSON (http://www.json.org/json- id.html, akses 2013)
String adalah kumpulan dari nol atau lebih karakter Unicode, yang dibungkus dengan tanda kutip ganda. Di dalam string dapat digunakan backslash escapes "\" untuk membentuk karakter khusus. Sebuah karakter mewakili karakter
37
tunggal
pada
string.
String
sangat
mirip
dengan
string
C
atau
Java.
(http://www.json.org/json- id.html,akses 2013)
Gambar 2.5 Struktur String JSON (http://www.json.org/json- id.html, akses 2013)
2.10 Algoritma A* Algoritma A* pertama kali dikemukakan oleh Peter Hart, Nils Nilson dan Bertram Raphael pada tahun 1968. Algoritma A* (yang diucapkan dengan “A star”) merupakan salah satu algoritma pencarian
graph terbaik yang mampu
menemukan jalur dengan biaya pengeluaran paling sedikit dari titik permulaan yang diberikan sampai ke titik tujuan yang diharapkan (dari satu atau lebih mungkin tujuan). Algoritma ini menggunakan fungsi
distance - plus - cost (biasanya di
notasikan dengan f(x)) untuk menentukan urutan kunjungan pencarian node di dalam
tree. Gabungan jarak - plus – biaya merupakan penjumlahan dari dua
fungsi, yaitu fungsi path - cost (selalu dinotasikan dengan g(x), dimungkinkan
38
bernilai
heuristic ataupun tidak), dan sebuah kemungkinan penerimaan
atas
“perkiraan heuristic” jarak ke titik tujuan (dinotasikan dengan h(x)). Fungsi path cost g(x) adalah jumlah biaya yang harus dikeluarkan dari node awal menuju node yang akan dituju. Algoritma A* dapat diimplementasikan lebih efisien, karena tidak ada node yang diproses berkali - kali. Dan pada kenyataannya, hasil pencarian dari algoritma A* adalah sama dengan hasil dari pencarian menggunakan algoritma Djikstra.
(http://digilib.its.ac.id/public/ITS-Undergraduate-9123-2205100111-
Paper.pdf) Sedangkan Menurut (Russel & Norvig, 2003) dalam bukunya, Algoritma A* adalah algoritma
best first search yang paling banyak dikenal. Algoritma ini
memeriksa node dengan menggabungkan g(n), yaitu cost yang dibutuhkan untuk mencapai sebuah node dan h(n) yaitu cost yang didapat dari node ke tujuan. Sehingga didapatkan rumus algoritma A* ini adalah : F(n) = g(n) + h(n) Keterangan : • G(n) adalah biaya (cost) yang dibutuhkan oleh sebuah jalur (path) untuk mencapai node n dari node awal • H(n) adalah estimasi biaya (cost) sebuah jalur (path). • F(n) adalah estimasi total biaya (cost) sebuah jalur (path) dari node awal ke node tujuan (goal) melalui node n.
39
Beberapa terminologi dasar yang terdapat pada algoritma ini adalah starting point, simpul (nodes), A, open list, closed list, harga (cost), halangan (unwalkable). 1. Starting point merupakan terminologi untuk posis awal sebuah benda. 2. Simpul (node) merupakan petak-petak kecil sebagai representasi dari pathfinding.
Bentuknya dapat berupa persegi,
lingkaran maupun
segitiga. 3. A merupakan simpul yang sedang dijalankan dalam algoritma pencarian jalur terpendek. 4. Open list merupakan tempat menyimpan data simpul yang mungkin diakses dari starting point maupun simbol yang sedang dijalankan. 5. Closed list merupakan tempat menyimpan data simpul sebelum A yang juga merupakan bagian dari jalur terpendek yang telah dihasilkan didapatkan. 6. 7.
Harga (cost) merupakan nilai dari f(n). Halangan (unwalked) merupakan sebuah atribut yang menyatakan bahwa sebuah simpul tidak dapat dilalui oleh A.
2.10.1 Sifat Algoritma A* Seperti BFS, A* akan selalu menemukan sebuah solusi, jika memang ada. Apabila fungsi heuristik h dapat diterima, yang berarti nilai h tidak akan pernah melebihi ongkos minimal untuk meraih tujuan yang sebenarnya, maka A* sendiri akan dapat diterima (atau dapat disebut optimal) apabila himpunan tertutup tidak digunakan.
40
Apabila digunakan sebuah himpunan tertutup, maka h harus monoton (atau konsisten) agar A* dapat menjadi optimal. Ini berarti fungsi heuristik tidak akan pernah
berlebihan
dalam menghitung
ongkos
dari sebuah
titik
ke
titik
tetangganya. Secara formal, unutuk semua jalur x, y dimana y adalah suksesor dari x: h(x) = g(y) - g(x) + h(y). A Star juga dapat dijamin keoptimalannya untuk sembarang heuristik, yang berarti bahwa tidak ada satupun algoritma lain yang mempergunakan heuristik yang sama akan mengecek lebih sedikit titik dari A*, kecuali ketika ada beberapa solusi parsial dimana h dapat dengan tepat memprediksi ongkos jalur minimal. 2.10.2 Kompleksitas Algortima A Star Kompleksitas waktu dari A Star sangat bergantung dari heuristik yang digunakannya. Pada kasus terburuk, jumlah titik yang diperiksa berjumlah eksponensial terhadap panjang solusi (jalur terpendek), tetapi A* akan memiliki kompleksitas waktu polinomial apabila fungsi memenuhi kondisi berikut: |h(x) - h*(x)| = O(log h*(x) dimana h* adalah heuristik optimal, yaitu ongkos sebenarnya dari
jalur x ke
tujuan. Dengan kata lain, galat dari h tidak akan melaju lebih cepat dari logaritma dari heuristik optimal h* yang memberikan jarak sebenarnya dari x ke tujuan. Penggunaan memori dari A*
bahkan lebih bermasalah dari kompleksitas
waktunya. Beberapa varian dari A* telah dikembangkan untuk mengatasi masalah ini, termasuk diantaranya Iterative-Deepening-A*, Memory-Bounded- A* (MA*)
41
dan Simplified-Memory-Bounded-A* (SMA*) dan Recursive-Best- First-Search (RBFS). RBFS juga akan memberikan hasil yang optimal apabila heuristiknya dapat diterima. 2.10.3 Jarak dalam Algoritma A* Algoritma A* merupakan algoritma pencarian yang menggunakan estimasi biaya terkecil untuk mencapai suatu tujuan dengan jarak yang terdekat dan memiliki nilai heuristik
yang digunakan sebagai dasar pertimbangan. Nilai
heuristik ini digunakan untuk menuntun pencarian rute dan mempersempit ruang pencarian. Ada beberapa penghitungan jarak yang sering digunakan dalam algoritma A, yaitu : 1. Jarak Manhattan Fungsi ini merupakan fungsi heuristik yang paling umum digunakan. Fungsi ini hanya akan menjumlahkan selisih nilai x dan y dari dua buah titik. Fungsi ini dinamakan Manhattan karena di kota Manhattan, Amerika, jarak dari dua lokasi umumnya dihitung dari blok-blok yang harus dilalui saja dan tentunya tidak bisa dilalui secara diagonal. Perhitungannya dapat ditulis sebagai berikut:
Dimana h(n) merupakan perkiraan cost dari node n ke node tujuan yang dihitung dengan fungsi heuristik. Variable X1 node asal, sedangkan variabel Y1
42
merupakan koordinat x dari
merupakan koordinat y dari node asal.
Variabel X2 merupakan koordinat x dari node tujuan dan Y1 merupakan koordinat y dari node tujuan. Nilai dari h(n) akan selalu bernilai positif. 2. Jarak Euclid Heuristik ini akan menghitung jarak berdasarkan panjang garis yang dapat ditarik dari dua buah titik. Perhitungannya dapat dituliskan sebagai berikut:
Dalam kasus ini, skala relatif nilai g mungkin akan tidak sesuai lagi dengan nilai fungsi heuristik h. Karena jarak Euclidian selalu lebih pendek dari jarak Manhattan, maka dapat dipastikan selalu akan didapatkan jalur terpendek, walaupun secara komputansi lebih berat. Fungsi
heuristik sangat berpengaruh terhadap kelakuan algoritma A* ,
yaitu: 1.
Apabila h(n) selalu bernilai 0, maka hanya g(n) yang akan berperan,
dan A* berubah menjadi Algoritma Dijkstra, yang menjamin selalu akan menemukan jalur terpendek. 2. Apabila h(n) selalu lebih rendah atau sama dengan ongkos perpindahan dari titik n ke tujuan, maka A* dijamin akan selalu menemukan jalur terpendek. Semakin rendah nilai h(n), semakin banyak titik-titik yang diperiksa A*, membuatnya semakin lambat. 3. Apabila h(n) tepat sama dengan ongkos perpindahan dari n ke tujuan, maka A* hanya akan mengikuti jalur terbaik dan tidak pernah memeriksa satupun titik lainnya, membuatnya sangat cepat.
43
Walaupun hal ini belum
tentu bisa diaplikasikan ke semua kasus, ada beberapa kasus khusus yang dapat menggunakannya. 4. Apabila h(n) kadang kala lebih besar dari ongkos perpindahan dari n ke tujuan, maka A* tidak menjamin ditemukannya jalur terpendek, tapi prosesnya cepat. 5. Apabila h(n) secara relatif jauh lebih besar dari g(n), maka hanya h(n) yang memainkan peran, dan A* berubah menjadi BFS. Dalam mengaplikasikan Algoritma A* pada aplikasi ini, fungsi heuristik yang digunakan adalah jarak Euclid. 2.11 RUP (Rational Unified Process) Unified Process atau dikenal dengan proses iteratif dan incremental merupakan sebuah proses pengembangan perangat lunak yang dilakukan secara berulang (iteratif) dan inkremental (bertahap dengan progres menaik). Iteratif bisa dilakukan di dalam setiap tahap, atau iteratif tahap pada proses pengembangan perangkat
lunak
untuk
menghasilkan
perbaikan
fungsi
yang
inkremental
(bertambah menaik) dimana setiap iterasi akan memperbaiki iterasi berikutnya. Salah satu Unified Process yang terkenal adalah RUP (Rational Unified Process). RUP (Rational Unified Process) fokus pada arsitektur lebih diarahkan berdasarkan penggunaan kasus (Use Case driven). RUP merupakan proses rekayasa perangkat lunak dengan pendefinisian yang baik (well-defined) dan penstrukturan yang baik (well structured). RUP menyediakan pendefinisian struktur yang baik untuk alur hidup proyek perangkat lunak. RUP adalah sebuah
44
produk proses perangkat lunak yang dikembangkan oleh Rational Software diakuisi oleh IBM di bulan Februari 2003. (Rosa, Shalahuddin,2011)
Gambar 2.6 Proses iteratif RUP (Rosa, Shalahuddin,2011) Melalui gambar 2.7 dapat dilihat bahwa RUP memiliki, a. Dimensi pertama digambarkan secara horizontal. Dimensi ini mewakili aspek-aspek dinamis dari pengembangan perangkat lunak. Aspek ini dijabarkan dalam tahapan pengembangan atau fase. Setiap fase akan memiliki suatu major milestone yang menandakan akhir dari awal dari phase selanjutnya. Setiap fase dapat berdiri dari satu beberapa iterasi. Dimensi ini terdiri atas Inception, Elaboration, Construction, dan Transition. b. Dimensi kedua digambarkan secara vertikal. Dimensi ini mewakili aspekaspek
statis
dikelompokkan
dari ke
proses
pengembangan
dalam beberapa
disiplin.
perangkat Proses
lunak
yang
pengembangan
perangkat lunak yang dijelaskan kedalam beberapa disiplin terdiri dari empat elemen penting, yakni who is doing, what, how dan when. Dimensi ini terdiri atas Business Modeling, Requirement, Analysis and Design,
45
Implementation,
Test,
Deployment,
Configuration
dan
Change
Manegement, Project Management, Environtment.
Gambar 2.7 Tahap pengembangan sistem (Kruchten,2003) Keterangan dari fase RUP adalah sebagai berikut : 1. Inception (Permulaan) Tahap ini lebih pada memodelkan proses bisnis yang dibutuhkan (business modelling) dan mendefinisikan kebutuhan akan sistem yang akan dibuat (requirements), pada tahapan ini penulis mengklasifikasikan ke dalam proses bisnis yang telah berjalan beserta analisis pengembangannya. 2. Elaboration (perluasan/perencanaan) Tahap ini lebih difokuskan pada perencanaan arsitektur sistem. Tahap ini juga dapat mendeteksi apakah arsitektur sistem yang diinginkan dapat dibuat atau
46
tidak. Mendeteksi risiko yang mungkin terjadi dari sistem arsitektur yang dibuat. Tahap ini lebih pada analisis dan design sistem serta implementasi sistem yang fokus pada purwapura sistem (Prototype). Pada tahapan ini penulis mengklasifikasikan dalam analisis perencanaan pembangunan aplikasi yang disesuaikan dengan kebutuhan dan bisnis proses yang telah berjalan. 3. Construction (Konstruksi) Tahap ini fokus pada pengembangan komponen dan fitur-fitur sistem. Tahap ini
lebih
pada
pengimplementasian
dan
pengujian
yang
fokus
pada
implementasi perangkat lunak pada kode program. Tahap ini menghasilkan produk perangkat lunak dimana menjadi syarat dari Initial Operational Capacity Milestone atau batas kemampuan operasional awal. Pada tahapan ini penulis mulai mengimplementasikan analisis perancangan kedalam bahasa pemograman J2ME yang akan membangun seluruh komponen sistem yang akan di buat. 4. Transition (transisi) Tahap in lebih pada deployment atau instalasi sistem agar dapat dimengerti oleh user. Pada tahapan ini penulis menguji kelayakan aplikasi secara keseluruhan
yang
berguna
untuk
menjamin kesesuaian aplikasi dengan
rancangan.
47
2.12 Unified Modeling Language ( UML ) Unified Modeling Language (UML) adalah bahasa pemodelan untuk sistem atau
perangkat
lunak
yang
berparadigma
berorientasi
objek
pemodelan
sesungguhnya digunakan untuk penyederhanaan permasalahan – permasalahan yang kompleks sedemikian rupa sehingga lebih mudah depelajari dan dipahami menurut Nugroho, A. (2010).
Jika digambarkan dalam bentuk diagram UML
adalah sebagai berikut,
Gambar 2.8 UML Diagram (Rosa, Shalahuddin,2011) Penjelasan dari gambar diatas adalah sebagai berikut:
Structure
diagram
yaitu kumpulan diagram yang dilakukan untuk
menggambarkan suatu struktur statis dari sistem yang dimodelkan.
48
Behaviour diagram
yaitu kumpulan diagram yang digunakan untuk
menggambarkan kelakuan sistem atau rangkaian perubahan yang terjadi pada sebuah sistem.
Interaction diagram yaitu kumpulan diagram yang digunakan untuk menggambarkan interaksi sistem dengan sistem lain maupun interaksi antar subsistem pada suatu sistem.
Kelebihan dari UML adalah dapat menggambarkan pemetaan (gambaran) dari tahap analisis ke dalam tahap perancangan dan akhirnya implentasi. UML memberikan notasi - notasi yang konsisten dan ini memudahkan model tersebut untuk berkomunikasi dengan pengguna. Gambar berikut menampilkan view dalam UML. (Nugroho, 2010)
Component View
Logical View
Use Case View
Dev loy ment View
Concurency View
Gambar 2. 9 View dalam UML (Rosa, Shalahuddin,2011)
49
1. Usecase view mendeskripsikan secara fungsional sistem terhadap aktor ekternal yang berinteraksi dengan sistem. Aktor eksternal tersebut dapat berupa sistem lain atau user. View yang memperlihatkan fungsionalitas dari sistem. 2. Logical view yang memperlihatkan bagaimana fungsionalitas tersebut dirancang kedalam sistem ( static structure dan dynamic behavior ). 3. Component view mendeskripsikan bagaimana sistem memberikan layanan secara fungsionalitas dilihat dari dalam sistem. Struktur statis digambarkan dalam
diagram
kelas
dan
objek,
sedangkan
model
dinamisnya
digambarkan dalam state, sequence dan activity diagram. 4. Concurrency view menggambarkan transaksi dan pembagian dari sistem menjadi proses-proses dan pemrosesannya. 5. Deployment
view
yang memperlihatkan penyebaran sistem kedalam
arsitektur fisik ( komputer dan alat-alat ). Grafik aktual yang mengilustrasikan bagian-bagian dari sistem di gambarkan dalam tipe-tipe diagram. UML memiliki 9 tipe diagram yaitu : usecase diagram, activity digram, class diagram, object diagram, sequence diagram, statechart diagram, collaboration diagram, component diagram dan deployment diagram. Tetapi pada kasus penelitian ini saya mengambil beberapa diagram untuk memecahkan kasus tersebut, diantaranya:
50
2.12.1 Usecase Diagram Usecase diagram memperlihatkan hubungan diantara aktor dan usecase. Aktor merepresentasaikan seorang user atau sub sistem lain yang akan berinteraksi dengan sistem. Sedangkan usecase merupakan urutan kejadian
yang
menggambarkan
interaksi antara
user
dengan
sistem
fungsionalitas sistem didefinisikan ke dalam usecase dari sudut eksternal sistem yang berguna untuk uji kelayakan fungsionalitas.
Gambar 2. 10 UseCase Diagram (Rosa, Shalahuddin,2011) Terdapat tiga jenis hubungan yang terjadi antara usecase yaitu : 1. Extends relationship: Hubungan generalization dimana satu usecase memperluas usecase yang lain dengan cara penambahan aksi-aksi pada usecase yang umum 2. Uses relationship: Hubungan generalization dimana satu usecase menggunakan usecase yang lain, ini menandakan sebagai bagian dari specilized usecase, tingkah laku dari usecase yang umum akan diikutsertakan. 3. Grouping: Ketika sejumlah usecase menangani fungsi yang sama atau dalam beberapa cara berhubungan satu dengan yang lainnya, mereka dapat diikat (bundle) dalam UML Package.
51
Tabel 2. 1 Relasi–relasi dalam use case (Rosa, Shalahuddin,2011)
2.12.2 Activity Diagram Diagram ini menjelaskan alur kerja sebuah sistem. Activity diagram mirip dengan state diagram karena sejumlah aktivitas menggambarkan keadaan
suatu
proses
dengan
memperlihatkan
urutan aktivitas yang
dijalankan baik berupa pilihan maupun paralel. Diagram ini juga berguna untuk menganalisa sebuah usecase dengan menggambarkan aksi-aksi yang diperlukan dan kapan aksi-aksi tersebut dijalankan, menjelaskan urutan algoritma yang komplek dan memodelkan sejumlah aplikasi dengan proses paralel. 2.12.3 Sequence Diagram Diagram ini menjelaskan bagaimana objek berinteraksi dengan lainnya dengan cara mengirim dan menerima pesan. Sequence diagram memiliki dua sumbu : sumbu vertikal dan sumbu horizontal. Sumbu vertikal putus-putus merepresentasikan “lifetime” objek
dan sumbu horizontal
menunjukan sekumpulan objek. Diagram ini juga menyatakan interaksi
52
khusus diantara objek yang terjadi pada beberapa tempat selama fungsi tertentu dijalankan. Komunikasi diantara objek direpresentasikan dengan garis horizontal disertai dengan nama operasinya. 2.12.4 Class Diagram Digunakan untuk menggambarkan tipe-tipe objek dan hubungannya dalam sebuah sistem. Class diagram memodelkan struktur class dan isinya dengan menggunakan elemen-elemen model seperti class, package dan objek. Class terdiri dari tiga bagian yaitu Nama class, atribut dan operasi. Class yang didefinisikan secara global dapat diakses oleh objek diluar class tersebut.
nama
atribut
operasi
Gambar 2. 10 Class Diagram (Rosa, Shalahuddin,2011) Keterangan : 1.
Nama: Bagian yang paling atas berisi nama kelas, ditulis dalam huruf tebal dan diletakkan di tengah-tengah. Nama diambil dari domain
53
permasalahan dan harus sejelas mungkin. Oleh karena itu nama kelas haruslah berupa kata benda. 2.
Attribut kelas memiliki atribut yang menggambarkan karakteristik dari objek. Atribut kelas yang benar adalah yang dapat mencakup informasiinformasi yang dilukiskan dan mengenali instance tertentu dari kelas. Tipe dari atribut dapat berupa primitif atribut atau tipe lainnya.
3.
Operasi:
Operasi
digunakan
untuk
memanipulasi
atribut
atau
menjalankan aksi-aksi. Operasi biasanya disebut dengan fungsi, tetapi mereka terdapat di dalam kelas dan dapat diaplikasikan hanya pada objek dalam kelas tersebut. (Rosa, Shalahuddin,2011) 2.13 Pengujian Software Perangkat lunak dapat diuji dengan dua cara, yaitu : 1. Pengujian dengan menggunakan data uji untuk menguji semua elemen program (data internet, loop, logika, keputusan dan jalur). Data uji dibangkitkan dengan mengetahui struktur internet (kode sumber) dari perangkat lunak. 2. Pengujian dilakukan dengan mengekseku si data uji dan mengecek apakah fungsional perangkat lunak
bekerja dengan baik. Data uji
dibangkitkan dari spesifikasi perangkat lunak. 2.13.1. Black Box Testing Pengujian Black Box adalah pengujian aspek fundamental sistem tanpa memperhatikan struktur logika internal perangkat lunak. Metode ini digunakan
54
untuk mengetahui apakah perangkat lunak berfungsi dengan benar. Pengujian black box merupakan metode perancangan data uji yang didasarkan pada spesifikasi perangkat lunak. Data uji dieksekusi pada perangkat lunak dan kemudian keluar dari perangkat lunak dicek apakah telah sesuai yang diharapkan. Pengujian Black Box berusaha menemukan kesalahan dalam kategori : 1. Fungsi-fungsi yang tidak benar atau hilang 2. Kesalahan interface 3. Kesalahan dalam struktur data atau akses database eksternal 4. Kesalahan kinerja 5. Inisialisasi dan kesalahan terminasi 2.14. Penelitian Terdahulu Penelitian Pramuko Tri Prastowo(2012) membahas Perancangan Aplikasi Pencari Masjid Menggunakan Global Positioning System (GPS) Pada Platform Android. Aplikasi tersebut menggunakan web server dengan php sebagai bahasa pemograman dan MySQL sebagai basis data pada database server serta Android sebagai clientnya. Pada penelitian itu perancangan perangkat lunak object oriented menggunakan use case dan class diagram. Dalam penelitian ini teknik algoritma yang digunakan di aplikasi ini tidak begitu dijelaskan dan pada penelitian ini memakai teknologi GPS untuk dapat mencari lokasi masjid terdekat namun penelitian tersebut sangat mendukung penelitian yang akan dilakukan. Penelitian Diaz Hendrianto (2011) membahas Implementasi Augmented Reality Memanfaatkan Sensor Akselerometer, Kompas dan GPS Pada Penentuan Lokasi Masjid Berbasis Android. Penelitian tersebut terdapat kesamaan dengan
55
apa yang dilakukan oleh Pramuko Tri Prastowo(2012) yakni pengembangan aplikasi
tersebut
menggunakan
web
server
dengan
php
sebagai bahasa
pemograman dan MySQL sebagai basis data pada database server dan Android sebagai clientnya serta memakai teknologi GPS. Namun ada beberapa kajian yang menjadikan kelebihan pada aplikasi tersebut, Proses pencarian masjid dapat menggunakan dengan metode pada penelitian ini aplikasi memakai metode sudut azimut yang di dukung dengan teknologi augmented reality. Penelitian tersebut memberikan gambaran tentang penentuan lokasi masjid. Penelitian Siti Rachmi Wulandarai (2012) membahas Evaluasi Algoritma pencarian jalur pada aplikasi e-iTrip guna menetukan rute pariswisata kota bandung berbasis perangkat mobile android. Aplikasi tersebut menggunakan web server dengan php sebagai bahasa pemograman dan MySQL sebagai basis data pada database server serta
Android sebagai clientnya.
Pada penelitian itu
perancangan perangkat lunak object oriented menggunakan use case,activity diagram dan sequence diagram. Dalam penelitian ini teknik algoritma yang digunakan di aplikasi ini algorita a* dan BFS. Penelitian tersebut memberikan gambaran tentang metode algoritma yang akan digunakan.
56
Tabel 2.2 Penelitian Terdahulu No
Peneliti
Judul
Teknologi
Metode
Keterangan lain
1
Pramuko Tri Prastowo (2012)
Perancangan Aplikasi Pencari Masjid Menggunakan Global Positioning System (GPS) Pada Platform Android.
Web (php dan mysql) dan Android
Metode perancangan Object Oriented menggunakan use case, gambaran aplikasi terlihat jelas
Tidak menggunakan metode algoritma
2
Diaz Hendrianto (2011)
Implementasi Augmented Reality Memanfaatkan Sensor Akselerometer, Kompas dan GPS Pada Penentuan Lokasi Masjid Berbasis Android
Web (php dan mysql) dan Android.
Perancangan Object Oriented dan tidak begitu digambarkan rancangannya.
Menggunakan Augmented Reality. Memakai perhitungan sudut azimut untuk menghitung jarak terdekat
3
Siti Rachmi Evaluasi Algoritma Web (PHP Wulandarai pencarian jalur dan (2012) pada aplikasi eMySQL) iTrip guna menetukan rute pariswisata kota bandung berbasis perangkat mobile android.
Metode perancangan Object Oriented menggunakan use case, gambaran aplikasi terlihat jelas
Metode algoritma yang digunakan di aplikasi ini algorita a* dan BFS
4
Hikmat Hidayat (2012)
Aplikasi Location Based Service Masjid Menggunakan Algoritma A* Untuk Pencarian Rute Terdekat Berbasis Android
Web (php Menggunakan dan mysql) metode perancangan dan RUP. Android.
57
Metode algoritma yang digunakan di aplikasi ini algoritma a*.