skripsi emergency security caller berbasis android untuk situasi perampokan di wilayah yogyakarta
DESCRIPTION
Skripsi tentang penerapan konsep client server dan real time information. Source code https://github.com/yusufmufti/Emergency-Security-Caller-Android-2012TRANSCRIPT
RANCANG BANGUN EMERGENCY SECURITY CALLER
BERBASIS ANDROID UNTUK SITUASI PERAMPOKAN
Skripsi
untuk memenuhi sebagian persyaratan
mencapai derajat Sarjana S-1
Program Studi Teknik Informatika
disusun oleh
Yusuf Mufti
09650038
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS ISLAM NEGERI SUNAN KALIJAGA
YOGYAKARTA
2013
ii
iii
iv
v
KATA PENGANTAR
Puji syukur kehadirat Allah SWT yang telah memberikan rahmat dan
hidayah-NYA kepada kita, sehingga kita masih dapat merasakan segala nikmat dan
anugerah yang diberikan dalam penyelesaian skripsi yang berjudul "Rancang
Bangun Emergency Security Caller Berbasis Android untuk Situasi Perampokan".
Sholawat serta salam semoga senantiasa tercurahkan kepada Nabi Muhammad
SAW.
Skripsi ini disusun untuk memenuhi sebagian persyaratan guna
mendapatkan gelar Sarjana Teknik Informatika pada Program Studi Teknik
Informatika Fakultas Sains dan Teknologi Universitas Islam Negeri Sunan Kalijaga
Yogyakarta.
Dalam kesempatan ini penulis menyampaikan terima kasih yang sebesar-
besarnya kepada:
1. Bapak Prof. Dr. H. Musa Asy’arie, M.A., selaku Rektor UIN Sunan Kalijaga
Yogyakarta.
2. Bapak Prof. Drs. H. Akh. Minhaji, M.A, Ph.D., selaku Dekan Fakultas Sains dan
Teknologi UIN Sunan Kalijaga Yogyakarta.
3. Bapak Agus Mulyanto, M.Kom. selaku selaku Ketua Program Studi Teknik
Informatika Fakultas Sains dan Teknologi UIN Sunan Kalijaga Yogyakarta.
4. Bapak Nurochman, M.Kom. selaku Dosen Pembimbing yang telah memberikan
ilmu, bimbingan, dan semangat dengan penuh kesabaran.
vi
5. Bapak Agung Fatwanto, S.Si., M.Kom., Ph.D., selaku Dosen Pembimbing
Akademik Teknik Informatika angkatan 2009.
6. Bapak dan Ibu dosen Program Studi Teknik Informatika Fakultas Sains dan
Teknologi yang telah memberikan banyak ilmu dan pengalaman.
7. Ibu Anita, M.Si., Bapak Bejo, M.Hum dan Bapak Budhi, M.Hum. selaku
pembimbing lapangan di Polda DI. Yogyakarta yang telah membimbing dan
mendampingi selama penelitian.
8. Teman-teman mahasiswa Teknik Informatika angkatan 2009 yang selalu
memberikan doa, motivasi, dan masukan dalam penyelesaian skripsi ini.
9. Teman-teman mahasiswa Teknik Informatika angkatan 2006, 2007, 2008, 2010,
dan 2011 yang telah memberikan dorongannya.
10. Semua pihak yang telah membantu terselesaikannya penyusunan skripsi dari
awal hingga akhir.
Penulis menyadari bahwa dalam penyusunan skripsi ini masih jauh dari
sempurna, maka penulis menerima segala saran dan kritik yang sifatnya
membangun dari semua pihak demi kesempurnaan di masa mendatang. Semoga
skripsi ini dapat bermanfaat bagi pembaca khususnya teman-teman, adik-adik, dan
pihak-pihak yang bersangkutan.
Yogyakarta, 15 Januari 2013
Penyusun
Yusuf Mufti
NIM. 09650038
vii
MOTTO
“Sesungguhnya ibadahku, hidupku, dan matiku hanya untuk Allah SWT”
“Man Jadda Wajada, Siapa yang bersungguh-sungguh, Pasti akan Berhasil”
“Selalu Semangat , Yakin, Doa, dan Positive Thinking, Pasti Bisa”
viii
PERSEMBAHAN
Puji Syukur kehadirat Alloh SWT, Tuhan pemilik jiwa dan semesta alam. Sholawat
serta salam semoga senantiasa tercurahkan kepada Nabi Muhammad SAW.
Kupersembahkan karya ini untuk
Bapak H. Ahmad Muzammil dan ibu Hj. Umi Zuhripah, S.Pd, orang tua
terbaik yang selalu memberikan do’a dan kepercayaan.
Mas Jazim dan mba Ni’mah yang selalu memberikan motivasi untuk tetap
bisa meraih cita-cita.
Siti Fatimah yang senantiasa saran dan motivasi konstruktif.
Aufa yang selalu membuat lilik gembira.
Keluarga besar di Kebumen dan Langen terima kasih atas doanya.
Sahabat-sahabat terbaikku, Ahdi, Saladin, Fadli, Hafidh, Anik, Kichi, Ian,
Icha, dan Joko, terima kasih atas dukungan dan semangatnya.
Senior yang banyak berbagi ilmu, mba Ema, mba Lala, dan mas Fathan
Hidayatullah,
Teman-teman, Pengurus, dan Ustadz di Pondok Pesantren Nurul Ummah
Kotagede, terima kasih atas kebersamaan dan ketulusan yang diberikan.
Khususnya, teman-teman kamar C1, Bahrudin, Basith, Fauzin, Taqin,
Syarif, Yasin, Baini, Eko, Rohman, Farid, Heru, Surur, yang super kocak
dan menyenangkan.
Teman-teman organisasi di Majalah Tilawah, PPK Saintek, ESC Saintek,
Infinity Saintek, KSL UINSUKA, SPBA, EOC 2009, terima kasih atas
kebersamaan dan pengalaman yang diberikan.
Teman-teman Teknik Informatika angkatan 2009, terima kasih atas
persahabatan, kebersamaan, dan kekompakannya.
Almamaterku Teknik Informatika UIN Sunan Kalijaga beserta Segenap
angkatan.
Teman-teman KKN 77 Bausasran RW 7, Jundan, Arman, Fajar, Aim, Tika,
Winda, Febi, Ririn, dan Yanti, semoga silaturahim kita terjaga.
Segenap rekan-rekan yang telah memberikan do’a dan dukungan.
ix
Rancang Bangun Emergency security Caller Berbasis Android
untuk Situasi Perampokan
Yusuf Mufti
NIM. 09650038
INTISARI
Pada tahun 2012 media massa cukup sering memberitakan adanya
perampokan di berbagai wilayah di Yogyakarta. Seperti kasus perampokan di
kampus Akademi Teknologi Kulit (ATK) Yogyakarta, jalan Lingkar Selatan
Panggungharjo Sewon Bantul, pada hari Senin (16/7) dini hari dan kasus
perampokan warnet Euro Net yang berada di depan Kampus UKDW, Jalan Dr
Wahidin, Klitren, Gondokusuman, Yogyakarta pada Rabu (25/7) dini hari
pukul 03.30 WIB. Perampokan tersebut terjadi dalam situasi yang mencekam,
sehingga para pemilik warnet atau petugas kampus tidak sempat menghubungi
aparat keamanan dengan cara konvensional. Kasus perampokan di DI
Yogyakarta sebanyak 222 laporan dari kasus kriminal yang terjadi sampai
dengan akhir November tahun 2012. Kasus perampokan di instansi sebanyak 39
kasus.
Sistem ini menerapkan konsep klien server yang memanfaatkan fitur
internet dan GPS. Adapun pengembangan sistem ini menggunakan IDE Eclipse,
Notepad++, dan XAMPP. Metode pengembangan sistem yang digunakan dalam
pembuatan sistem ini adalah metode Software Develpoment Life Cycle (SDLC).
Metode tersebut terdapat lima tahap, yaitu analisis kebutuhan sistem,
perancangan antarmuka sistem, implementasi sistem, pengujian sistem dan
pemeliharaan sistem.
Sistem ini mampu mengirimkan data lokasi kejadian perampokan ke web
server polisi via internet dan ke nomor seluler polisi via SMS dengan menekan
shortcut aplikasi. Berdasarkan hasil kuisioner pengujian atas aspek
fungsionalitas dan interface, sistem klien menunjukkan tingkat keberhasilan
sebesar 95,23%. Hasil pengujian atas aspek fungsionalitas dan interface sistem
server menunjukkan tingkat keberhasilan sebesar 100%. Adapun hasil kuisioner
pengujian kemanfaatan atas sistem klien dan server menunjukkan bahwa tingkat
keberhasilan sebesar 98,14 %.
Kata kunci : Android, web, SDLC, GPS, perampokan.
x
Rancang Bangun Emergency security Caller Berbasis Android
untuk Situasi Perampokan
Yusuf Mufti
NIM. 09650038
ABSTRACT
In 2012 the media quite often preach a robbery in different areas in
Yogyakarta. As the robbery on the campus of the Akademi Teknologi Kulit (ATK)
Yogyakarta, the South Rim Panggungharjo Sewon Bantul, on Monday (16/7)
morning and robbery Euro Net cafe in front UKDW Campus, Jalan Dr. Wahidin,
Klitren, Gondokusuman , Yogyakarta on Wednesday (25/7) morning at 03.30 hrs.
The robbery took place in a tense situation, so that the owner of the cafe or
university officials had not contacted the security forces in a conventional manner.
Robbery in Yogyakarta as many as 222 reports of criminal cases that occurred until
the end of November 2012. Institution robberies in as many as 39 cases.
The system implements the concept of client server that utilizes the internet
and GPS features. The development of this system using the Eclipse IDE, Notepad
+ +, and XAMPP. System development methods are used in the manufacture of this
system is a method Develpoment Software Life Cycle (SDLC). Such methods are
five stages, namely the analysis of system requirements, system interface design,
system implementation, system testing and system maintenance.
The system is capable of transmitting data to the robbery scene police web
server via internet and mobile number to the police via SMS by pressing the
shortcut application. Based on the results of testing the questionnaire on aspects of
functionality and interface, the client system show a success rate of 95.23%. The
results of testing the functionality and interface aspects of the server system show a
success rate of 100%. The results of the questionnaire testing the usefulness of
client and server systems showed that the success rate of 98.14%.
Keyword : Android, web, SDLC, GPS, the robbery.
xi
DAFTAR ISI
HALAMAN JUDUL ................................................................................................. i
HALAMAN PERSETUJUAN ................................................................................ ii
HALAMAN PENGESAHAN ................................................................................. iii
HALAMAN PERNYATAAN ................................................................................. iv
KATA PENGANTAR .............................................................................................. v
MOTTO ................................................................................................................... vi
PERSEMBAHAN .................................................................................................. viii
INTISARI ................................................................................................................ ix
ABSTRACT ............................................................................................................... x
DAFTAR ISI ............................................................................................................ xi
DAFTAR TABEL ................................................................................................. xiv
DAFTAR GAMBAR .............................................................................................. xv
DAFTAR LAMPIRAN ........................................................................................ xvii
BAB I PENDAHULUAN ........................................................................................ 1
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 ................................................................................. 3
1.6 Keaslian Penelitian ................................................................................ 3
xii
BAB II TINJAUAN PUSTAKA DAN LANDASAN TEORI .............................. 5
2.1 Tinjauan Pustaka .................................................................................... 5
2.2 Landasan Teori ....................................................................................... 7
2.2.1 Sistem Operasi Android ................................................................ 7
2.2.2 Eclipse .................................................................................... 15
2.2.3 Location Based Services (LBS) ................................................... 16
2.2.4 Global Positioning System (GPS) .............................................. 16
2.2.5 Google Maps ................................................................................. 17
2.2.6 PHP ................................................................................................ 18
2.2.7 DBMS (Database Management System) .................................... 20
2.2.8 AJAX (Asynchronous JavaScript & XML) ............................... 23
2.2.9 UML (Unified Modelling Language) ........................................ 25
BAB III METODE PENGEMBANGAN SISTEM ........................................... 33
3.1 Pendahuluan ......................................................................................... 33
3.2 Pengembangan Sistem ................................................................................. 36
3.2.1 Identifikasi kebutuhan sistem ..................................................... 36
3.2.2 Inisiasi dan perencanaan proyek .................................................. 36
3.2.3 Desain sistem ................................................................................ 36
3.2.4 Implementasi sistem ..................................................................... 37
3.2.5 Pemeliharaan Sistem .................................................................... 37
BAB IV ANALISIS DAN PERANCANGAN SISTEM ..................................... 38
4.1 Analisis Masalah .......................................................................................... 38
4.2 Analisis Kebutuhan Sistem ......................................................................... 38
xiii
4.3 Analisis Kebutuhan Fungsional dan Non Fungsional ............................ 39
4.4 Perancangan Sistem .................................................................................... 41
BAB V IMPLEMENTASI DAN PENGUJIAN SISTEM .................................. 59
5.1 Implementasi ........................................................................................ 59
5.1.1 Implementasi Server .............................................................. 59
5.1.2 Implementasi Klien ................................................................. 66
5.2 Pengujian ............................................................................................. 69
5.2.1 Pengujian Alpha ..................................................................... 69
5.2.2 Pengujian Beta ........................................................................ 70
BAB VI HASIL DAN PEMBAHASAN .............................................................. 72
6.1 Proses Pengujian Sistem ....................................................................... 72
6.2 Hasil dan Pembahasan Pengujian Alpha .............................................. 73
6.3 Hasil dan Pembahasan Pengujian Beta ................................................ 73
6.4 Kendala Pengujian ................................................................................ 77
BAB VII PENUTUP .............................................................................................. 79
7.1 Kesimpulan ........................................................................................... 79
7.2 Saran ..................................................................................................... 80
DAFTAR PUSTAKA ........................................................................................... 81
LAMPIRAN-LAMPIRAN .................................................................................. 84
xiv
DAFTAR TABEL
Tabel 2.1 Daftar Perbandingan Penelitian ................................................................ 6
Tabel 4.1 Aktor ....................................................................................................... 44
Tabel 4.2 Use case .................................................................................................. 45
Tabel 4.3 Admin ...................................................................................................... 51
Tabel 4.4 Panggilan ................................................................................................. 52
Tabel 4.5 Polsek ...................................................................................................... 52
Tabel 4.6 User ......................................................................................................... 53
Tabel 5.1 Rencana Pengujian Alpha Sistem Server ................................................ 69
Tabel 5.2 Rencana Pengujian Alpha Sistem Klien ................................................. 69
Tabel 5.3 Tabel Pengujian Fungsional Aplikasi Klien ........................................... 70
Tabel 5.4 Tabel Pengujian Fungsional Sistem Server ............................................ 70
Tabel 5.5 Tabel Pengujian Interface Aplikasi Klien ............................................... 71
Tabel 5.6 Tabel Pengujian Interface Web Server ................................................... 71
Tabel 5.7 Tabel Pengujian Kemanfaatan Sistem .................................................... 71
Tabel 6.1 Tabel Daftar Penguji ............................................................................... 72
Tabel 6.2 Daftar Penguji Server .............................................................................. 73
Tabel 6.3 Tabel Hasil Pengujian Fungsional Aplikasi Klien .................................. 73
Tabel 6.4 Tabel Hasil Pengujian Fungsional Sistem Server ................................... 74
Tabel 6.5 Tabel Hasil Pengujian Interface Aplikasi Klien ..................................... 74
Tabel 6.6 Tabel Hasil Pengujian Interface Web Server .......................................... 74
Tabel 6.7 Tabel Hasil Pengujian Kemanfaatan Sistem ........................................... 75
Tabel 6.7. Klasifikasi skor angket kemanfaatan ………………………………...76
xv
DAFTAR GAMBAR
Gambar 2.1 Struktur Android .................................................................................. 13
Gambar 2.2 Siklus Activity ....................................................................................... 13
Gambar 2.3 Use Case Diagram .............................................................................. 27
Gambar 2.4 Komponen Activity Diagram .............................................................. 27
Gambar 2.5 Penggambaran Sequence Diagram ...................................................... 28
Gambar 2.6 Collaboration Diagram ....................................................................... 29
Gambar 2.7 Pembuatan Class Diagram .................................................................. 31
Gambar 2.8 Contoh pembuatan Statechart Diagram .............................................. 31
Gambar 2.9 Penggambaran diagram komponen ..................................................... 32
Gambar 2.10 Contoh penggambaran Deployment Diagram ................................... 33
Gambar 4.1 Diagram Blok Sistem Emergency Security Caller .............................. 42
Gambar 4.2 Use case Sistem Emergency Security Caller ........................................ 44
Gambar 4.3 Activity Login Server ........................................................................... 46
Gambar 4.4 Activity pengolahan data user .............................................................. 47
Gambar 4.5 Activity pada pengolahan data polsek .................................................. 48
Gambar 4.6 Class diagram sistem Emergency Security Caller .............................. 49
Gambar 4.7 Desain antarmuka home website ......................................................... 54
Gambar 4.8 Desain antarmuka halaman panggilan ................................................. 55
Gambar 4.9 Desain antarmuka daftar polsek .......................................................... 55
Gambar 4.10 Desain antarmuka daftar user ............................................................ 56
Gambar 4.11 Desain antarmuka utama ................................................................... 56
xvi
Gambar 4.12 Desain antarmuka panggil kantor polisi ............................................ 57
Gambar 4.13 Desain antarmuka set PIN ................................................................. 57
Gambar 4.14 Desain antarmuka menu petunjuk ..................................................... 58
Gambar 4.15 Desain antarmuka menu informasi .................................................... 58
Gambar 5.1.a Database Sistem ............................................................................... 60
Gambar 5.1.b Tabel Admin ..................................................................................... 60
Gambar 5.1.c Tabel Panggilan ................................................................................ 61
Gambar 5.1.d Tabel Polsek ..................................................................................... 61
Gambar 5.1.e Tabel User ........................................................................................ 61
Gambar 5.2 Halaman utama web server ESC of DIY ............................................ 62
Gambar 5.3 Halaman daftar kantor polsek ............................................................. 63
Gambar 5.4 Halaman daftar panggilan ................................................................... 63
Gambar 5.5 Daftar user terdaftar ............................................................................ 64
Gambar 5.6 Halaman login admin .......................................................................... 64
Gambar 5.7 Halaman olah data kantor polsek ........................................................ 65
Gambar 5.8 Halaman olah data user ....................................................................... 65
Gambar 5.9 Halaman utama aplikasi ...................................................................... 66
Gambar 5.10 Menu Set PIN .................................................................................... 67
Gambar 5.11 Daftar polsek ..................................................................................... 67
Gambar 5.12 Menu Bantuan ................................................................................... 68
Gambar 5.13 Menu Informasi Umum ..................................................................... 68
xvii
DAFTAR LAMPIRAN
Lampiran 1 Kode Program Server ........................................................................... 84
Lampiran 2 Kode Program Klien ............................................................................ 99
Lampiran 3 Kuisioner Pengujian Klien Emergency Security Caller of DIY ....... 114
Lampiran 4 Kuisioner Pengujian Server Emergency Security Caller of DIY ...... 115
Lampiran 5 Informasi Umum Aplikasi ESC of DIY ............................................ 117
1
BAB I
PENDAHULUAN
1.1 Latar Belakang
Perkembangan sistem operasi handphone telah mengalami kemajuan.
Sebagaimana kita kenal saat ini ada iOs, PalmOs, Symbian, Java, dan
Android. Adapun sistem yang sedang dikembangkan oleh Google adalah
Android , yang saat ini sangat populer di masyarakat dan mendukung fitur
touch screen beserta fitur canggih lainnya.
Menurut hasil survei dari Gartner, sebuah perusahaan riset dan
konsultan Teknologi Informasi (TI) ternama, terlihat adanya peningkatan
pangsa pasar Android lebih dari 700 % dalam tahun 2010 yang memiliki
nominal smartphone terjual sebanyak 67.224.500. Hal ini menunjukkan
besarnya potensi Android di masa depan.
Pada tahun 2012 media massa cukup sering memberitakan adanya
perampokan di berbagai tempat di wilayah Yogyakarta. Misalnya kasus
perampokan di Kampus Akademi Teknologi Kulit (ATK) Yogyakarta, Jalan
Lingkar Selatan Panggungharjo Sewon Bantul, pada hari Senin (16/7) dini
hari dan kasus perampokan warnet Euro Net yang berada di depan Kampus
UKDW, Jalan Dr Wahidin, Klitren, Gondokusuman, Yogyakarta pada Rabu
(25/7) dini hari pukul 03.30 WIB. Perampokan tersebut terjadi dalam situasi
yang mencekam, sehingga para pemilik warnet atau petugas kampus tidak
sempat menghubungi aparat keamanan dengan cara konvensional.
2
Oleh karena itu, dibutuhkanlah suatu aplikasi emergency yang mampu
menghubungi polisi tanpa diketahui oleh para penjahat yang tengah beraksi.
1.2 Rumusan Masalah
Berdasarkan latar belakang di atas maka rumusan masalah dalam
penelitian ini adalah korban perampokan di suatu gedung yang berada dalam
situasi terancam keselamatannya terkendala dalam hal pelaporan kepada
pihak kepolisian. Hal tersebut mengakibatkan transfer informasi tentang
terjadinya perampokan tersebut tidak tersampaikan dengan cepat dan
penanganan kasus perampokan itu pun menjadi kurang efisien.
1.3 Batasan Masalah
Batasan masalah dalam penelitian ini disebutkan sebagai berikut.
a. Kebutuhan masyarakat DI. Yogyakarta terhadap media pengiriman
informasi kejadian perampokan yang mempercepat transfer informasi
kepada pihak kepolisian.
b. Informasi yang diterima pihak kepolisian untuk ditindaklanjuti dengan
penanganan perampokan secara cepat membutuhkan data yang valid atau
dapat dipertanggungjawabkan.
c. Obyek penelitian ini dikhususkan untuk wilayah DI. Yogyakarta.
1.4 Tujuan Penelitian
Penelitian ini memiliki tujuan merancang sistem berbasis klien server dengan
media smartphone berbasis Android untuk pelaporan dan pemanggilan
kepada pihak kepolisian untuk mendapatkan penanganan tindak perampokan
yang terjadi di wilayah DI. Yogyakarta.
3
1.5 Manfaat Penelitian
Penelitian Emergency Security Caller untuk situasi perampokan ini
memiliki beberapa manfaat, yaitu
a. Untuk pihak kepolisian, manfaat yang diperoleh adalah penerimaan
informasi yang berisi PIN korban dan lokasi terjadinya kriminalitas
perampokan akan lebih cepat dan akurat, sehingga memudahkan pihak
kepolisian dalam memaksimalkan penanganan kasus perampokan.
b. Untuk korban tindakan perampokan dapat menghubungi pihak kepolisian
tanpa resiko dicurigai pihak perampok dan mendapatkan penanganan yang
maksimal atas kejadian kriminal yang dialami.
c. Untuk masyarakat dapat menggunakan aplikasi ini untuk memberikan
informasi tindak kriminal tanpa harus datang langsung ke kepolisian atau
digunakan menelepon kantor polisi se-DIY secara efektif.
d. Sebagai bahan rujukan bagi peneliti lain dalam mengembangkan aplikasi
yang berorientasi pada manfaat untuk masyarakat.
1.6 Keaslian Penelitian
Penelitian yang berhubungan dengan Rancang Bangun Emergency
Security Caller Berbasis Android untuk Situasi Perampokan di Fakultas Sains
dan Teknologi Universitas Islam Negeri Sunan Kalijaga Yogyakarta belum
pernah dilakukan. Selain itu sistem yang menjadi media pemanggilan pihak
kepolisian dalam situasi perampokan belum pernah ditemukan oleh peneliti.
4
BAB II
TINJAUAN PUSTAKA DAN LANDASAN TEORI
2.1. Tinjauan Pustaka
Penelitian Didik Heru Purnomo, Mahasiswa UGM, membahas tentang
Aplikasi Pencarian Toko berbasis Java Mobile Phone via GPRS tahun 2007.
Penelitian ini membuat aplikasi pencarian toko berbasis Java Mobile Phone
via GPRS yang bertujuan untuk memberikan pelayanan akses informasi suatu
toko dengan menggunakan sarana handphone sebagai mobile device. Terbagi
atas dua, yakni klien dan server. Klien menggunakan bahasa J2ME,
sedangkan server menggunakan PHP.
Penelitian Christian Wisnu Purnaadi, Mahasiswa UGM, tentang
Aplikasi Peta Mobile untuk Pencarian Jalur Terpendek Pada Sistem Operasi
Android ( Mobile Map Application For The Shortest Path Searching On
Android Operating System) tahun 2010. Penilitian ini membuat Aplikasi
untuk mencari jalur terpendek para pengguna Android menggunakan metode
Djikstra
Penelitian Ignatius Dimas Nugroho, Mahasiswa UGM, tentang
Pengembangan Aplikasi Pencarian Lokasi Fasilitas Umum Berbasis
Foursquare APIv2 pada Sistem Operasi Android tahun 2012. Penelitian ini
mengembangkan aplikasi yang dapat melakukan pencarian lokasi fasilitas
umum di sekitar pengguna memanfaatkan teknologi LBS. Aplikasi ini
menggunakan data dari Foursquare dimana data tersebut akan terus
5
berkembang seiring berjalannya waktu. Dalam pengembangan aplikasi ini
dibuat 2 buah fitur yaitu filter terhadap data dari Forsquare dan sistem auto
check in. Adapun yang membedakan antara penelitian yang dilakukan dengan
penelitian-penelitian sebelumnya dapat dilihat pada tabel 2.1.
Tabel 2.1. Daftar Perbandingan Penelitian
Purnomo
(2007)
Purnaadi
(2010)
Nugroho
(2012)
Mufti
(2013)
Penelitian
Aplikasi
Pencarian
Toko
berbasis Java
Mobile
Phone Via
GPRS
Aplikasi Peta
Mobile untuk
Pencarian
Jalur
Terpendek
Pada Sistem
Operasi
Android
Pengembangan
Aplikasi
Pencarian
Lokasi Fasilitas
Umum Berbasis
Foursquare
APIv2 pada
Sistem Operasi
Android
Pemanggilan
kepada Polisi
pada situasi
perampokan
Tool J2ME, PHP,
MySQL Eclipse Eclipse
Eclipse,
MySQL,
PHP
Metode Klien Server Djikstra LBS LBS
Hasil
memberikan
pelayanan
akses
informasi
suatu toko
dengan
menggunaka
n sarana
handphone
sebagai
mobile
device
mencari jalur
terpendek para
pengguna
Android di
Yogyakarta
melakukan
pencarian lokasi
fasilitas umum
di sekitar
pengguna
memanfaatkan
teknologi LBS.
Aplikasi ini
menggunakan
data dari
Foursquare
pengiriman
data lokasi
kejadian
perkara ke
server Polisi
6
2.2. Landasan Teori
2.2.1. Sistem Operasi Android
1. Pengenalan Sistem Operasi Android
Android dalam buku karya Andry (2011) adalah sistem operasi untuk
telepon seluler yang merupakan hasil modifikasi Linux. Sejauh ini Android
termasuk sistem operasi yang cepat sekali memperbarui software mereka.
Android menyediakan kesempatan terbuka bagi para pengembang (developer)
untuk menciptakan aplikasi kreasi sendiri untuk ditanamkan pada sistem
operasi ini.
Awalnya, Google Inc. membeli perusahaan Android Inc., perusahaan
start up yang saat itu tengah fokus membuat peranti lunak untuk ponsel.
Kemudian untuk mengembangkan Android, dibentuklah Open Handset
Alliance, konsorsium dari 34 perusahaan peranti keras, peranti lunak, dan
telekomunikasi, termasuk Google, HTC, Intel, Motorola, Qualcomm, T-
Mobile, dan Nvidia.
Pada saat konferensi perdana terkait Android, 5 November 2007,
Android bersama Open Handset Alliance menyatakan mendukung
pengembangan standar terbuka pada perangkat seluler. Di lain pihak, Google
merilis kode–kode Android di bawah lisensi Apache, sebuah lisensi perangkat
lunak dan standar terbuka perangkat seluler. Di dunia ini terdapat dua jenis
distributor sistem operasi Android. Pertama yang mendapat dukungan penuh
dari Google atau Google Mail Services (GMS) dan kedua adalah yang benar
7
– benar bebas distribusinya tanpa dukungan langsung Google atau dikenal
sebagai Open Handset Distribution (OHD).
2. Sejarah Sistem Operasi Android
Dalam bukunya, Andry menjelaskan Android pada mulanya perusahaan
kecil yang berada di Palo Alto. Pada Juli 2000, Google bekerjasama dengan
Android Inc., perusahaan yang berada di Palo Alto, California Amerika
Serikat. Para pendiri Android Inc. bekerja pada Google, di antaranya Andy
Rubin, Rich Miner, Nick Sears, dan Chris White. Saat itu banyak yang
menganggap fungsi Android Inc. hanyalah sebagai perangkat lunak pada
telepon seluler. Sejak saat itu muncul rumor bahwa Google hendak memasuki
pasar telepon seluler. Di perusahaan Google, tim yang dipimpin Rubin
bertugas mengembangkan program perangkat seluler yang didukung oleh
kernel Linux. Hal ini menunjukkan indikasi bahwa Google mulai melirik
untuk terjun dalam persaingan pasar telepon seluler. Perkembangan Android
terbagi menjadi beberapa versi hingga saat ini. Beberapa versi Android
tersebut antara lain:
a) Android versi 1.1
Google merilis Android versi 1.1, pada 9 Maret 2009. Android
versi ini dilengkapi dengan pembaruan estetis pada aplikasi, jam alarm,
pencarian suara, pengiriman pesan dengan gmail, dan pemberitahuan
email.
8
b) Android versi 1.5 (Cupcake)
Google merilis telepon seluler dengan menggunakan Android dan
SDK (Software Development Kit) pada pertengahan Mei 2009, yaitu
versi 1.5 (Cupcake). Pada versi ini ada beberapa tambahan dan
pembaruan fitur yaitu kemampuan merekam dan menonton video dengan
modus kamera, mengunggah video ke Youtube dan gambar ke Picasa
langsung dari telepon, dukungan Bluetooth A2DP, kemampuan
terhubung secara otomatis ke headset Bluetooth, animasi layar, dan
keyboard pada layar yang dapat disesuaikan dengan sistem.
c) Android versi 1.6 (Donut)
Google merilis Donut (versi 1.6) pada September dengan
menampilkan proses pencarian yang lebih baik dibanding sebelumnya,
penggunaan baterai indikator dan kontrol applet VPN. Fitur lainnya
adalah galeri yang memungkinkan pengguna untuk memilih foto yang
akan dihapus; kamera, camcorder dan galeri yang dintegrasikan; CDMA
/ EVDO, 802.1x, VPN, Gestures, dan Text-to-speech engine;
kemampuan dial kontak; teknologi text to change speech (tidak tersedia
pada semua ponsel; pengadaan resolusi VWGA.
d) Android versi 2.0/2.1 (Eclair)
Pada 3 Desember 2009 kembali diluncurkan ponsel Android
dengan versi 2.0/2.1 (Eclair), perubahan yang dilakukan adalah
pengoptimalan hardware, peningkatan Google Maps 3.1.2, perubahan UI
9
dengan browser baru dan dukungan HTML 5, daftar kontak yang baru,
support kamera 3,2 MP, digital Zoom, dan Bluetooth 2.1.
e) Android versi 2.2 (Froyo: Frozen Yoghurt)
Pada 20 Mei 2010, Android versi 2.2 (Froyo) diluncurkan.
Perubahan-perubahan umumnya terhadap versi-versi sebelumnya antara
lain dukungan Adobe Flash 10.1, kecepatan kinerja dan aplikasi 2 sampai
5 kali lebih cepat, intergrasi V8 JavaScript engine yang dipakai Google
Chrome yang mempercepat kemampuan rendering pada browser,
pemasangan aplikasi dalam SD Card, kemampuan WiFi Hotspot
portabel, dan kemampuan auto update dalam aplikasi Android Market.
f) Android versi 2.3 (Gingerbread)
Pada 6 Desember 2010, Android versi 2.3 (Gingerbread)
diluncurkan. Perubahan-perubahan umum yang didapat dari Android
versi ini antara lain peningkatan kemampuan permainan (gaming),
peningkatan fungsi copy paste, layar antarmuka (User Interface) didesain
ulang, dukungan format video VP8 dan WebM, efek audio baru (reverb,
equalization, headphone virtualization, dan bass boost), dukungan
kemampuan Near Field Communication (NFC), dan dukungan jumlah
kamera yang lebih dari satu.
g) Android versi 3.0/3.1 (Honeycomb)
Android Honeycomb dirancang khusus untuk tablet. Android versi
ini mendukung ukuran layar yang lebih besar. User interface pada
Honeycomb juga berbeda karena sudah didesain untuk tablet.
10
Honeycomb juga mendukung multi prosesor dan juga akselerasi
perangkat keras (hardware) untuk grafis. Tablet pertama yang dibuat
dengan menjalankan Honeycomb adalah Motorola Xoom. Perangkat
tablet dengan platform Android 3.0 akan segera hadir di Indonesia.
Perangkat tersebut bernama Eee Pad Transformer produksi dari Asus.
Rencana masuk pasar Indonesia pada Mei 2011.
h) Android versi 4.0 (ICS :Ice Cream Sandwich)
Diumumkan pada tanggal 19 Oktober 2011, membawa fitur
Honeycomb untuk smartphone dan menambahkan fitur baru termasuk
membuka kunci dengan pengenalan wajah, jaringan data pemantauan
penggunaan dan kontrol, terpadu kontak jaringan sosial, perangkat
tambahan fotografi, mencari email secara offline, dan berbagi informasi
dengan menggunakan NFC.
3. Sistem Android
Dalam buku 24 Jam Pintar Pemrograman Android #1 dijelaskan
Platform Android adalah kernel Linux versi 2.6 yang cukup responsible
untuk berbagai driver device, sumber daya akses, manajemen daya, dan tugas
lainnya. Driver perangkat yang disediakan meliputi display, kamera, keypad,
WiFi, kartu memori, audio, dan IPC (interprocess comunication). Meskipun
inti dari Android adalah Linux, namun tidak semuanya, contohnya seperti T-
Mobile G1 yang dikembangkan menggunakan bahasa Java dan dijalankan
melalui VM Dalvik.
11
Sejumlah C/C++ librari berada di tingkat berikutnya, yakni di atas
kernel seperti OpenGL, WebKit, FreeType, Secure Socket Layer (SSL), C
runtime library (libc), SQLite, dan Media. Librari Sistem C berdasarkan
Berkeley Software Distribution (BSD) disetel (untuk kira-kira setengah
ukuran aslinya) untuk tertanam berbasis Linux perangkat. Media librari
berdasarkan pada OpenCORE PacketVideo itu. Librari ini mampu untuk
merekam dan pemutaran format audio dan video.
Perangkat berbasis android hanya mempunyai satu layar foreground.
Normalnya saat menghidupkan android, yang pertama terlihat adalah home.
Kemudian bila menjalankan sebuah aplikasi, misalnya catur, User
Interfacenya (UI) akan menumpuk di atas layar sebelumnya (home).
Kemudian bila melihat help-nya catur, maka UI help akan menimpa UI
sebelumnya (catur), begitu seterusnya. Semua proses diatas direkam di
application stack oleh sistem Activity manager. Menekan tombol back hanya
kembali ke halaman sebelumnya. Analoginya mirip dengan browser dimana
ketika meng-klik tombol back browser akan kembali menampilkan halaman
sebelumnya.
Setiap User Interface diwakili oleh kelas Activity (Activity class).
Setiap activity mempunyai siklus, dapat dilihat di gambar 2.2. Sebuah aplikasi
dapat terdiri dari satu atau lebih activity yang diproses dalam Linux.
12
Gambar 2.1. Gambar struktur Android
Gambar 2.2. Siklus Activity
13
a. Activity
Normalnya setiap activity menampilkan satu buah user
interface kepada pengguna. Misalnya sebuah activity menampilkan
daftar menu minuman, kemudian pengguna dapat memilih satu
jenis minuman. Contoh lainnya pada aplikasi sms, dimana satu
activity digunakan untuk menulis pesan, activity berikutnya untuk
menampilkan nomor kontak tujuan, atau activity lainnya digunakan
untuk menampilkan pesan-pesan lama. Meskipun activity-activity
diatas terdapat dalam satu aplikasi sms, namun masing-masing
activity berdiri sendiri. Untuk pindah dari satu activity ke activity
lainnya dapat melakukan suatu even misalnya tombol diklik atau
melalui trigger tertentu.
b. Service
Service tidak memiliki user interface, namun berjalan di
belakang layar. Misalnya music player, sebuah activity digunakan
untuk memilih lagu kemudian di-play. Agar music player bisa
berjalan di belakang aplikasi lain maka harus menggunakan service.
c. Intens
Intens adalah mekanisme untuk menggambarkan sebuah
action secara detail seperti bagaimana cara mengambil sebuah foto.
d. Content Providers
Menyediakan cara untuk mengakses data yang dibutuhkan
oleh suatu activity, misalnya kita menggunakan aplikasi berbasis
peta (MAP). Activity membutuhkan cara untuk mengakses data
kontak untuk prosedur navigasi. Di sinilah peran content providers.
14
e. Resource
Resource digunakan untuk menyimpan file-file non-coding
yang diperlukan pada sebuah aplikasi misalnya file icon, file
gambar, file audio, file video atau yang lain. Gambar berformat JPG
atu PNG sebuah aplikasi biasanya disimpan dalam folder
res/drawable, icon applikasi disimpan dalam res/drawable-ldpi dan
file audio disimpan dalam folder res/raw. File XML untuk
membentuk sebuah user interface disimpan dalam folder res/layout.
2.2.2. Eclipse
Hal yang harus dimiliki sebelum mendevelop aplikasi di handphone
Android ada 3 buah file sebagaimana disebutkan di bawah ini.
1. Eclipse
2. ADT 16.0.1 Plugin
3. Android-SDK_r16
Eclipse merupakan sebuah editor, secara default editor ini
belum bisa dipakai untuk mendevelop android. Agar bisa digunakan
untuk membuat aplikasi android maka harus diinstal plugin ADT
(Android Development Tools). Setelah terinstal, maka Eclipse sudah
siap digunakan, namun belum dilengkapi library dan emulator. Untuk
memenuhinya, sehingga perlu diinstal SDK Android (StKamurt
Development Kit).
15
2.2.3. Location Based Services (LBS)
LBS merupakan Layanan IP nirkabel yang menggunakan
informasi geografis untuk memberikan layanan informasi lokasi
kepada pengguna. Beberapa layanan aplikasi yang memberikan
petunjuk posisi/lokasi piranti mobile berada (Ardiansyah 2011).
Location Based Service (LBS) memberikan layanan personalisasi
kepada pengguna perangkat bergerak (mobile device) yang
disesuaikan dengan lokasi mereka saat ini.
LBS adalah layanan informasi yang dapat diakses melalui
mobile device dengan mengunakan mobile network, yang dilengkapi
kemampuan untuk memanfaatkan lokasi dari mobile device tersebut.
LBS memberikan kemungkinan komunikasi dan interaksi dua arah.
Oleh karena itu pengguna memberitahu penyedia layanan untuk
mendapatkan informasi yang dia butuhkan, dengan referensi posisi
pengguna tersebut.
2.2.4. Global Positioning System (GPS)
GPS adalah sistem radio navigasi dan penentuan posisi dengan
menggunakan satelit yang dimiliki dan dikelola oleh Departemen
Pertahanan Keamanan Amerika Serikat. Sistem ini didesain untuk
memberikan posisi dan kecepatan tiga dimensi dan informasi
mengenai waktu secara kontinu. GPS terdiri dari tiga segmen utama,
segmen angkasa (space segment) yang terdiri dari satelit-satelit GPS,
segemen sistem control (control segment) yang terdiri dari stasion-
16
stasion pemonitor dan pengontrol satelit, dan segmen pemakai (user
segment) yang terdiri dari pemakai GPS termasuk alat-alat penerima
dan pengolah sinyal data GPS. Sistem GPS terdiri dari 24 satelit.
Konsep dasar pada penentuan posisi dengan GPS adalah reseksi
(pengikatan ke belakang) dengan jarak, yaitu dengan pengukuran jarak
secara simultan ke beberapa satelit GPS yang koordinatnya telah
diketahui. Pada pelaksanaan pengukuran penentuan posisi dengan
GPS, pada dasarnya ada dua jenis alat penerima sinyal satelit
(receiver) GPS yang dapat digunakan, yaitu:
1. Tipe navigasi digunakan untuk penentuan posisi yang tidak
menuntut ketelitian tinggi
2. Tipe geodetik digunakan untuk penentuan posisi yang menuntut
ketelitian tinggi.
2.2.5. Google Maps
Google Maps adalah sebuah jasa peta globe virtual gratis dan
online yang disediakan oleh Google dan dapat ditemukan di
http://maps.google.com/. Google Map API merupakan aplikasi
interface yang dapat diakses menggunakan Javascript agar Google
Map dapat ditampilkan pada halaman web yang sedang kita bangun.
Untuk dapat mengakses Google Map, kita harus melakukan
pendaftaran API Key terlebih dahulu dengan data pendaftaran berupa
nama domain web yang kita bangun.
17
2.2.6. PHP
1. Pengertian PHP
Dalam buku karya Andi Sunyoto (2007) dijelaskan PHP
adalah kependekan dari PHP:Hypertext Preprocessor. PHP
pertama kali dikembangkan pada tahun 1995 oleh Rasmus Lerdorf
yang didesain sebagai alat tracking pengunjung web site Lerdrof.
PHP memiliki kemampuan mengakses database dan diintegrasikan
dengan HTML. PHP bersifat open source dan mirip dengan bahasa
Perl dan C. PHP biasanya digunakan bersama dengan web server
Apache di beragam sistem operasi.
PHP merupakan program server-side, yaitu script yang
membuat dokumen hyper text markup language (html) secara on
the fly. Berikut ini adalah contoh penulisan kode PHP:
<html>
<head>
<title> contoh
</title>
</head>
<body>
<?php
echo ―ini contoh PHP yang disisipkan‖;
?>
</body>
</html>
18
2. Script PHP
Setiap kode program PHP disebut dengan script. Script
berupa file teks, yang dapat dibuat dengan menggunakan program
editor file teks biasa. Ciri yang membedakan script PHP dengan
script lainnya yaitu: setiap baris perintah yang dituliskan harus
diakhiri dengan tanda titik koma (;) dan setiap perintah dituliskan
dalam satu baris. Menurut cara penulisannya, script PHP dibagi
menjadi dua, yaitu:
a. Embedded Script
Merupakan jenis script PHP yang cara penulisannya
disisipkan ke dalam script HTML. Script PHP digunakan
apabila isi dari suatu dokumen HTML diinginkan dari hasil
eksekusi suatu script PHP.
b. Non Embedded Script
Merupakan jenis script PHP yang penulisannya yang cara
penulisannya murni memakai tag-tag PHP. Untuk memulai
penulisan script PHP terdapat empat sintaks yang berbeda,
yaitu:
a) Cara I: <?echo(―script PHP‖);?>
b) Cara II: <?php echo(―script PHP‖);?>
c) Cara III: <%echo(―script PHP‖);%>
d) Cara IV: <%=$namaVariabel;%>
19
3. Konsep Kerja PHP
Telah dijelaskan diatas bahwa PHP merupakan program
serverside, yaitu script yang membuat dokumen hyper text markup
language (html) secara on the fly. Dokumen HTML yang
dihasilkan dari suatu aplikasi bukan dokumen HTML, hal ini
disebabkan script PHP dapat dituliskan dalam dua cara yaitu secara
embedded dan nonembedded.
Pada dasarnya PHP digunakan untuk memanggil database
yang ada dalam pihak server dengan menggunakan script khusus
yang mirip dengan C++. Setelah data yang dipanggil ditampilkan,
maka script PHP tersebut akan berubah menjadi script HTML
murni dalam source code web brower yang digunakan.
Dalam pemanggilan data tersebut, PHP tidak berdiri sendiri
dan harus disokong oleh aplikasi lain, misalnya: HTML (sebagai
pengatur tampilan) dan MySQL (sebagai aplikasi database yang
terintegrasi dengan PHP).
Dari seorang client melakukan request ke web server untuk
dapat menjalankan dokumen *.php-nya menggunakan PHP Engine
untuk dijalankan sesuai dengan format dokumen, apakah *.html,
*.jpg, *.gif, *.png, *.pdf atau *.swf.
2.2.7. DBMS (Database Management System)
DBMS merupakan suatu perangkat lunak komputer yang
dirancang secara khusus untuk memudahkan dalam pengelolaan
20
database (Kadir : 2003). DBMS (Database Management System)
merupakan perantara bagi pemakai dengan basis data dalam media
penyimpanan. Bahasa basis data dibagi menjadi dua bentuk, yaitu:
1. Data Definition Language (DDL)
Jenis bahasa ini menspesifikasikan struktur/skema data yang
menggambarkan/mewakili desain basis data secara keseluruhan.
Dengan bahasa ini kita dapat membuat tabel baru, membuat indeks,
mengubah tabel, dan lain-lain. Hasil kompilasi perintah DDL
adalah kumpulan tabel yang disimpan dalam file khusus yang
disebut kamus data. Kamus data adalah suatu metadata (superdata)
yaitu data yang mendeskripsikan data sesungguhnya.
2. Data Manipulation Language (DML)
Merupakan bentuk bahasa basis data yang berguna untuk
melakukan manipulasi dan pengambilan data pada suatu basis data.
Data Manipulation Languange (DML) merupakan bahasa yang
memudahkan pemakai dalam mengakses data yang dipresentasikan
oleh model data.
DML terdiri dari dua jenis, yaitu:
a) Prosedural
Jenis ini mensyaratkan agar pemakai menentukan data apa yang
diinginkan serta bagaimana cara mendapatkannya.
b) Non procedural
Jenis ini membuat pemakai dapat menentukan data apa yang
21
diinginkan tanpa menyebutkan bagaimana cara
mendapatkannya.
3. Database Server dengan MySQL
MySQL dikembangkan oleh sebuah perusahaan Swedia
bernama MySQLAB, yang kala itu bernama TcX DataKonsult AB,
sejak sekitar 1994–1995, meski cikal bakal kodenya bisa disebut
sudah ada sejak 1979. Tujuan mula-mula TcX membuat MySQL
pada waktu itu juga memang untuk mengembangkan aplikasi web
untuk klien-TcX adalah perusahaan pengembang software dan
konsultan database. Kala itu Michael Widenius, atau ―Monty‖,
pengembang satu-satunya di TcX, memiliki aplikasi UNIREG dan
rutin ISAM yang dibuat sendiri dan sedang mencari antarmuka SQL
untuk ditempelkan di atasnya. Mula-mula TcX memakai mSQL,
atau ―mini SQL‖. Barangkali mSQL adalah satu-satunya kode
database open source yang tersedia dan cukup sederhana saat itu,
meskipun sudah ada Postgre. Namun ternyata, menurut Monty,
mSQL tidaklah cukup cepat maupun fleksibel. Versi pertama
mSQL bahkan tidak memiliki indeks. Setelah mencoba
menghubungi David Hughes, pembuat mSQL dan ternyata
mengetahui bahwa David tengah sibuk mengembangkan versi dua,
maka keputusan yang diambil Monty yaitu membuat sendiri mesin
SQL yang antar mukanya mirip dengan mSQL tapi memiliki
kemampuan yang lebih sesuai kebutuhan. Maka lahirlah MySQL.
22
MySQL merupakan software DBMS yang sangat popular di
kalangan pemrograman web, khususnya yang berbasis open source.
Hal ini disebabkan karena kemudahannya untuk digunakan.
Disamping dukungannya ke dalam berbagai platform, kecepatan
aksesnya dapat diandalkan. MySQL mudah digunakan (easy-to-
use) sebagai sistem manajemen database relasional (RDBMS)
yang digunakan untuk database pada website. Selain itu,
kemudahannya dalam integrasi ke berbagai aplikasi web dapat
membantu dalam pengembangan sistem informasi online. MySQL
mempunyai dua lisensi, yaitu open source dibawah GNU General
Public License (GPL) dan commercial dibawah MySQLAB. Pada
awalnya MySQL hanya dapat dioperasikan pada satu platform saja.
Namun dalam perkembangannya, MySQL dapat dioperasikan
dalam berbagai platform seperti Windows, FreeBSD, ataupun Linux
(Sanjaya 2005).
2.2.8. AJAX (Asynchronous JavaScript & XML)
AJAX diperkenalkan pertama kali pada tahun 2005 oleh Jesse
Garret dari Adaptive Path. Aplikasi AJAX adalah aplikasi yang
bekerja secara asynchronously, yakni dalam proses pengiriman dan
penerimaan data dari user ke server tidak perlu me-reload kembali
seluruh halama, melainkan hanya melakukan penggantian pada bagian
web yang hendak diubah. Dalam penggunaanya, AJAX menggunakan
obyek XMLHttpRequest.
23
Adapun keuntungan menggunakan AJAX dalam pengembangan
web site sebagai berikut.
1. High Interactivity, aplikasi AJAX lebih interaktif
dibandingkan aplikasi konvensional
2. High Usability, update data tidak me-reload keseluruhan
halaman.
3. High Speed, aplikasi AJAX lebih cepat dibandingkan dengan
aplikasi web konvensional.
Cara membuat obyek XMLHttpRequest yang merupakan
penerapan AJAX antara browser Internet Explorer dengan lainnya
berbeda.
Untuk browser Internet Explorer pembuatan XMLHttpRequest
dengan cara var xmlhttp=new
ActiveXObject(―Microsof.XMLHTTP‖).
Untuk browser Mozilla, Safari, Chrome pembuatan
XMLHttpRequest dengan cara var xmlhttp=new
XMLHttpRequest();
Obyek XMLHttpRequest memiliki properti sebagai berikut:
Onreadystatechange, untuk menangani even yang bekerja setiap
kali status berubah.
Readystate, untuk mengembalikan status obyek.
ResponseText, untuk mengembalikan response dalam bentuk
string
24
ResponseXML, untuk mengembalikan response dalam bentuk
XML.
Status, mengembalikan status sebuah nomor.
StatusText, mengembalikan status sebagai string text.
2.2.9. UML (Unified Modelling Language)
Menurut Sholiq (2006) UML adalah salah satu tool
permodelan sistem berorientasi objek yang digunakan untuk
memperlihatkan banyak pandangan terhadap suatu sistem yang akan
dibangun. Beberapa diagram UML yang digunakan untuk
menunjukkan berbagai aspek dalam sistem yaitu :
Diagram use case
Diagram aktivitas
Diagram sekuensial
Diagram kolaborasi
Diagram kelas
Diagram statechart
Diagram komponen
Diagram deployment
25
Adapun penjelasan masing-masing diagram UML akan dijelaskan
dengan rinci sebagai berikut.
1. Diagram Use Case (Use case Diagram)
Diagram use case terdiri atas tiga komponen, yaitu use case,
aktor, dan relasi, yang menunjukkan interaksi antara use case dan
aktor dalam suatu sistem.
Pengertian aktor di sini adalah seseorang atau apa saja yang
berhubungan dengan sistem yang sedang dibangun. Adapun use
case menggambarkan semua yang ada dalam ruang lingkup sistem
dan bagaimana seseorang menggunakan sistem. Aktor dan use
case dihubungkan dengan relasi.
Jenis relasi secara umum terbagi menjadi tiga, yakni
1. Relasi asosiasi, yakni relasi antara aktor dengan use case.
2. Relasi include, dan extend, yakni relasi antar use case.
3. Relasi generalisasi, yakni relasi antar aktor.
Penggambaran aktor, use case, dan relasi ditunjukkan pada
gambar 2.3. Adapun untuk relasi menggunakan tanda panah.
26
Gambar 2.3. Use Case Diagram
2. Diagram Aktivitas (Activity Diagram)
Activity Diagram salah satu diagram UML yang
menggambarkan aliran kejadian dalam use case sistem. Adapun
penggambarannya ditunjukkan gambar 2.4 berikut ini.
Gambar 2.4. Komponen Activity Diagram
27
3. Diagram Sekuensial (Sequence Diagram)
Sequence Diagram digunakan untuk menunjukkan aliran
fungsionalitas dalam use case. Sequence diagram termasuk dalam
kategori diagram interaksi yang lebih fokus menampilkan pusat
pengaturan. Ada tiga langkah dalam pembuatan diagram interaksi,
termasuk dalam hal ini sequence diagram.
a. Menemukan obyek-obyek.
b. Menemukan aktor.
c. Menambahkan beberapa pesan ke diagram.
Gambar 2.5. Penggambaran Sequence Diagram
Gambar 2.5 menunjukkan contoh pembuatan sequence
diagram yang menggunakan tiga obyek dan tiga class. Dalam
class tersebut dapat ditambahkan pula dengan beberapa pesan
untuk penjelasan.
4. Diagram Kolaborasi (Collaboration Diagram)
Diagram kolaborasi termasuk dalam kategori diagram
interaksi sebagaiamana sequence diagram, namun lebih fokus
28
untuk menampilkan aliran data. Pembuatan diagram kolaborasi
sama dengan sequence diagram yakni menemukan aktor, obyek,
dan menambahkan pesan.
Gambar 2.6. Collaboration Diagram
Gambar 2.6 menunjukkan contoh pembuatan collaboration
diagram yang menggunakan dua obyek dan terdapat dua pesan
satu arah dari aktor menuju obyek 2.
5. Diagram Kelas (Class Diagram)
Class diagram digunakan untuk menampilkan kelas-kelas
atau paket-paket di dalam sistem dan relasi antar kelas tersebut.
Diagram ini membantu pengembangan mendapatkan struktur
sistem sebelum menuliskan kode program dan memastikan bahwa
sistem adalah rancangan terbaik.
Dalam class diagram terdapat empat hal yang perlu
ditampilkan, yaitu nama kelas, daftar atribut, daftar operasi, dan
daftar relasi. Nama kelas yaitu nama kelas yang memiliki atribut
dan operasi. Daftar atribut adalah informasi yang berhubungan
29
dengan kelas dan merupakan variabel-variabel yang digunakan
oleh kelas tersebut. Adapun pengertian operasi di sini adalah
perilaku yang berhubungan dengan suatu kelas dan terkadang
merupakan fungsi tertentu. Penggambaran class diagram
ditunjukkan pada gambar 2.7.
Relasi dalam class diagram ada lima jenis sebagai berikut.
1. Assosiasi, yakni koneksi yang saling terkait antar kelas.
2. Depedensi, yakni menghubungkan dua buah kelas tetapi
dengan cara selalu searah (unidirectional) dan menunjukkan
suatu kelas tidak instanisasi (sebagai variabel instan) oleh
kelas lain.
3. Aggregasi, yakni relasi antara keseluruhan dengan bagian.
4. Realisasi, yakni relasi antara kelas dan interface-nya, paket
dan interface-nya, suatu komponen dengan interface-ya atau
antar sebuah use case dan use case realization.
5. Generalisasi, yakni relasi pewarisan antara dua elemen-
elemen model yang memungkinkan satu kelas mewarisi
atribut dan operasi yang didefinisikan secara publik.
30
Gambar 2.7. Pembuatan class diagram
6. Diagram Statechart (Statechart Diagram)
Diagram statechart menunjukkan siklus hidup sebuah
obyek tunggal, dari saat dibuat sampai obyek tersebut dihapus.
Diagram ini lebih tepat digunakan untuk memodelkan perilaku
dinamis sebuah kelas.
Gambar 2.8. Contoh pembuatan statechart diagram
Gambar 2.8 menunjukkan contoh pembuatan statechart
diagram yang terdiri atas tiga aksi dalam satu kelas tertentu. Untuk
31
membuat membuat statechart diagram diawali dengan initial state
dan diakhiri dengan final state.
7. Diagram Kompoen (Component Diagram)
Diagram komponen adalah diagram UML yang
menampilkan komponen dalam sistem dan hubungan antara
mereka. Seseorang yang bertanggung jawab untuk mengkompilasi
dan men-deploy sistem akan mengetahui source code mana yang
terlebih dahulu harus dikompilasi menggunakan diagram ini.
Diagram komponen akan menunjukkan adanya
ketergantungan suatu komponen dengan komponen lainnya, atau
diistilahkan dengan dependensi.
Gambar 2.9. Penggambaran Component Diagram
8. Diagram Deployment (Deployment Diagram)
Diagram deployment menampilkan semua titik (node) dalam
suatu jaringan, hubungan antar komponen, dan proses-proses yang
dijalankan pada masing-masing titik. Gambar 2.10 menunjukkan
contoh sebuah diagram deployment.
32
Gambar 2.10. Contoh penggambaran Deployment Diagram
33
BAB III
METODE PENGEMBANGAN SISTEM
3.1. Pendahuluan
Penelitian ini menggunakan metode pengembangan sistem.
Pengembangan sistem merupakan penyusunan suatu sistem yang baru untuk
menggantikan sistem yang lama secara keseluruhan atau memperbaiki sistem
yang telah ada. Tahap pengembangan sistem dapat didefinisikan sebagai
serangkaian aktivitas yang dilaksanakan oleh profesional dan pemakai sistem
informasi untuk mengembangkan dan mengimplementasikan sistem
informasi. (Widianti, 2009).
Penelitian ini terdiri atas tiga tahap pendahuluan, yakni ini tahap
pengumpulan data, olah data, dan analisis data. Tahap pengumpulan data
yang dilakukan peneliti ada tiga cara yaitu dengan melakukan studi literatur
atau kepustakaan, wawancara, dan observasi langsung terhadap obyek
penelitian.
a. Studi Literatur atau Kepustakaan
Metode pengumpulan data dilakukan melalui membaca dan
mempelajari referensi-referensi berupa makalah, jurnal ilmiah, skripsi,
atau buku. Fasilitas internet juga digunakan sebagai media untuk mencari
data atau informasi yang dipublikasikan di dunia maya yang berkaitan
dengan obyek penelitian. Teori yang berhubungan dengan penelitian ini
antara lain konsep aplikasi berbasis Location Based System, GPS, Google
34
Maps, DBMS MySQL, PHP, Ajax, dan permodelan data berupa
UML(Unified Modelling Language).
b. Wawancara
Metode pengumpulan data dilakukan dengan tanya jawab yang
diajukan secara langsung kepada pihak yang menangani kasus perampokan
di Kepolisian Daerah DI. Yogyakarta. Wawancara dilakukan untuk
mendapatkan data atau informasi yang berkaitan dengan obyek penelitian.
Adapun hasil wawancara bersama Bapak Budi atas nama Bareskrim
Polda DI. Yogyakarta menghasilkan kesimpulan bahwa saat ini alur
penanganan kasus perampokan masih menggunakan perangkat
konvesional, yakni menggunakan melalui handytalkie (HT), telepon, dan
SMS. Adapun sistem monitoring kasus perampokan yang terintegrasi
secara digital belum diimplementasikan di kepolisian daerah DI.
Yogyakarta.
c. Observasi
Metode pengumpulan data dilakukan pula dengan melakukan
peninjauan atau pengamatan langsung terhadap sampel obyek penelitian.
Observasi ini memiliki dua macam obyek, yakni data laporan kasus
perampokan di DI. Yogyakarta selama tahun 2012 dan data laporan
pemberitaan kasus perampokan yang dirilis oleh media cetak.
35
d. Olah data
Data-data yang telah dihimpun dari Bagian Reskrim dan Biro
Operasi Polda DI. Yogyakarta memberikan prosentase berapa besar data
yang memberikan informasi segala hal terkait laporan kasus perampokan.
e. Analisis
Setelah mencermati kumpulan data yang telah dihimpun dari studi
literatur, observasi, dan olah data maka dapat diambil beberapa
kesimpulan.
1). Kasus perampokan di DI Yogyakarta sebanyak 222 laporan dari kasus
kriminal yang terjadi sampai dengan akhir November tahun 2012.
Kasus perampokan di instansi sebanyak 39 kasus. Adapun jumlah
kasus yang telah tuntas dalam penanganan sebanyak 96 kasus.
2). Penanganan kasus perampokan dilakukan setelah ada laporan dari
korban. Tenggang waktu pelaporan dari waktu kejadian perampokan
bervariasi mulai dari sepuluh menit, tiga puluh menit, satu jam, hingga
beberapa jam.
3). Kronologi situasi perampokan berdasarkan keselamatan korban ada
dua macam, yakni korban dalam sangat terancam sehingga tidak bisa
melakukan perlawanan maupun pelaporan kepada polisi dan korban
kurang terancam sehingga masih dapat melawan atau pelaporan
kepada polisi.
36
3.2. Pengembangan Sistem
Pengembangan sistem ini dilakukan dengan menggunakan metode
metode SDLC (Software Development Life Cycle) ( Al Fatta : 2007) yang
akan dirinci sebagai berikut.
3.2.1 Identifikasi kebutuhan sistem
Tahap identifikasi atau analisis kebutuhan dilakukan dengan
mengumpulkan data dan informasi yang berkaitan dengan penelitian.
Tahap ini juga bertujuan untuk mendapatkan informasi yang kompleks
mengenai definisi masalah dan memberikan kesimpulan tentang
tujuan yang ingin dicapai pada situasi kejadian perampokan.
3.2.2 Inisiasi dan perencanaan proyek
Tahapan ini menentukan secara detail rencana kerja, sumber
daya manusia, perangkat lunak, perangkat keras dan pelaksanaan
projek dilaksanakan. Tahap ini merupakan langkah yang menentukan
bagaimana proses berikutnya minim resiko dan memperkirakan
deadline sistem akan dapat diimplementasikan.
3.2.3 Desain sistem
Tahapan awal dalam perancangan sistem adalah membuat
desain dan rancangan sistem, yakni seperti rancangan use case, class
diagram, activity diagram, dan desain database. Tahap ini juga
merupakan tahap perancangan antarmuka (interface) sistem yang akan
dibuat dengan mengacu pada hasil analisis kebutuhan yang sudah
dilakukan pada tahap sebelumnya.
37
3.2.4 Implementasi sistem
Tahap implementasi adalah tahap pengembangan dari
perancangan yang telah dibuat untuk diterjemahkan menjadi
kumpulan kode dan fungsi menggunakan bahasa pemrograman
tertentu sehingga tercipta aplikasi yang telah direncanakan. Adapun
tahap ini terdiri atas dua hal penting, yaitu :
a. Pengujian / Testing sistem
Tahap ini merupakan tahap uji coba terhadap sistem yang telah
dibuat dengan tujuan agar dapat diketahui kelemahan atau
kesalahan dari sistem tersebut. Hal ini dapat dijadikan sebagai
bahan evaluasi yang digunakan untuk memperbaiki perangkat
lunak yang sudah dibangun.
b. Instalasi
Setelah tahap testing sukses, maka tahap yang dilakukan
selanjutnya adalah memasang sistem pada perangkat sebenarnya,
baik itu di perusahaan maupun di lembaga pendidikan.
3.2.5 Pemeliharaan Sistem
Tahap ini merupakan tahap akhir dari pembangunan sebuah
perangkat lunak, di mana perangkat lunak yang dibangun dapat
mengalami perubahan atau penambahan sesuai dengan permintaan
pengguna.
38
BAB IV
ANALISIS DAN PERANCANGAN SISTEM
4.1 Analisis Masalah
Tahap analisis masalah akan memberikan data dan opini atas
permasalahan yang dibidik dan dicarikan solusinya. Pada tahap ini kita
melibatkan beberapa stakeholder (pihak terkait) dalam menentukan tingkat
kompleksitas masalah.
Pada penelitian ini bidikan analisis masalah difokuskan pada proses
pelaporan tindak kriminal perampokan kepada pihak berwajib yang masih
terkendala oleh jarak dan sarana komunikasi. Aplikasi yang dibutuhkan adalah
memiliki fitur secara langsung mampu memberikan data lokasi tempat
kejadian perkara kepada pihak yang berwajib dengan kevalidan data yang
terakui dan langkah operasional yang simple.
4.2 Analisis Kebutuhan Sistem
Tahap analisis sistem merupakan salah satu usaha mengidentifikasi
kebutuhan dan spesifikasi sistem yang akan diciptakan. Di dalamnya akan
dijabarkan apa saja entitas yang dilibatkan, proses yang dijalankan, serta
output yang dihasilkan.
Berdasarkan hasil analisis masalah yang telah dijabarkan sebelumnya,
solusi yang ditawarkan adalah pembuatan aplikasi Emergency Security Caller
dengan spesifikasi sistem sebagai berikut :
1. Sistem terdiri atas server dan klien. Server bekerja berbasis web site,
39
sedangkan untuk klien berbasis mobile dengan platform Android.
2. Sistem pada server dapat mengelola data polsek se-DI. Yogyakarta, data
user yang terdaftar, dan data laporan kejadian perkara dari user.
3. Sistem pada klien dapat menampilkan posisinya dalam peta Google Map,
posisi kantor polsek terdekat, serta mengirim data laporan kejadian perkara
kriminal ke server melalui internet dan sms ke nomor kepolisian secara
otomatis.
4. Sistem klien bekerja dengan fasilitas layanan internet dan GPS.
5. Sistem klien menyediakan fitur list kontak kantor polisi yang digunakan
untuk menelepon kantor polisi secara manual
4.3 Analisis Kebutuhan Fungsional dan Non Fungsional
1. Analisis Kebutuhan Fungsional
Mengidentifikasi apa saja (fasilitas dan aktivitas) yang seharusnya
dikerjakan oleh sistem server dan sistem klien. Adapun kebutuhan
fungsional sistem server dan klien dalam penelitian ini menghasilkan
rincian sebagai berikut.
a. Server
1. Fungsi login untuk admin
2. Fungsi pengolahan data user
3. Fungsi pengolahan data kantor polsek
4. Fungsi monitoring data panggilan
5. Fungsi melihat lokasi korban dalam peta
6. Fungsi melihat kantor polisi terdekat dengan lokasi
40
b. Klien
1. Fungsi input PIN
2. Fungsi melihat informasi umu aplikasi
3. Fungsi melihat petunjuk penggunaan aplikasi
4. Fungsi menelepon kantor polsek secara manual
5. Fungsi mengirim informasi perampokan ( PIN user dan lokasi )
2. Analisa Kebutuhan Non Fungsional
Mengidentifikasi batasan dari fasilitas yang disediakan oleh sistem.
a. Response time
Server bekerja secara real time dalam menunjukkan data laporan
dari klien. Adapun aplikasi klien langsung dapat menjalankan
fungsinya ketika shortcut aplikasi ditekan.
b. Validitas data
Server harus menampilkan informasi yang valid dan dapat
dipertanggungjawabkan terkait pelaporan perampokan dari aplikasi
klien.
c. Security need
Server dan aplikasi klien harus memiliki tingkat keamanan,
sehingga sistem akan dapat berjalan dengan prosedurnya. Server
harus memiliki autentifikasi untuk menjaga pengolahan data oleh
pihak tidak berhak. Klien menggunakan fitur set PIN agar data
memiliki nilai kevalidan ketika dikirimkan ke server.
41
d. Akses user
Pihak kepolisian dapat menggunakan fungsi login, fungsi
pengolahan data user, fungsi pengolahan data kantor polsek, dan
dapat mengakses laporan dari klien.
Pihak klien (korban) dapat menggunakan fungsi melihat
informasi aplikasi, melihat petunjuk, mengganti PIN, menelepon
kantor polsek secara manual melalui daftar kantor polsek, dan
mengirimkan informasi ( user dan lokasi) dengan menekan tombol
shortut aplikasi.
4.4 Perancangan Sistem
Perancangan sistem yang merupakan analisis kebutuhan fungsional ini
akan mencakup diagram blok sistem, UML, desain tabel, desain interface.
1. Diagram Blok Sistem
Berikut ini adalah diagram blok sistem yang menggambarkan garis
besar sistem Emergency Security Caller. Pada gambar 4.1 di bawah ini
ditunjukkan proses alur data dalam aplikasi Emergency Security Caller.
42
Gambar 4.1. Diagram Blok Sistem Emergency Security Caller
Keterangan Diagram Blok Sistem Emergency Security Caller (ESC) :
a. Proses 1 merupakan proses mendapatkan data longitude dan
latitude menggunakan fitur GPS. Pada proses ini internet
diperlukan untuk menampilkan Map Google dan pengambilan data
alamat yang disesuaikan dengan longitude dan latitude yang
diterima.
b. Proses 2 merupakan proses pengiriman data yang berupa longitude,
latitude, PIN user, dan alamat kejadian ke web server ESC via
internet.
c. Proses 3 merupakan proses input data laporan dari user ke dalam
database web server ESC.
d. Proses 4 merupakan proses menampilkan data laporan yang telah
43
diverifikasi PIN usernya melalui halaman web ESC.
e. Proses 5 merupakan proses pengiriman data yang berupa longitude,
latitude, dan PIN user ke nomor polisi via SMS yang ditransferkan
melalui BTS provider seluler.
f. Proses 6 merupakan proses pengiriman SMS data longitude,
latitude, dan PIN user ke nomor polisi yang telah ditentukan.
g. Proses 7 merupakan proses menelepon kantor polisi yang telah
disediakan dalam menu aplikasi. Fitur ini dapat menjadi solusi
apabila smartphone tidak berhasil mendapatkan data longitude,
latitude, dan data alamat dari internet.
2. Use Case
Use Case berguna sebagai langkah awal untuk memodelkan interaksi
tunggal antara pengguna dengan sistem. Suatu aspek yang mendasar dari
pendekatan use case adalah adanya proses interaktif dengan pengguna
akhir, yang harus mengarah pada spesifikasi kebutuhan diterima oleh para
pengguna. Penggambar persyaratan fungsional menggunakan diagram use
case tersebut, seperti yang didefinisikan oleh UML. Diagram use case
tersebut dimaksudkan sebagai model aktor utama dan komponen
fungsional dari sistem. Berikut ini merupakan gambaran dari desain sistem
Emergency Security Caller.
44
Gambar 4.2. Use case Sistem Emergency Security Caller
a) Definisi aktor
Dalam use case diidentifikasi dua aktor utama sebagai pengguna
sistem. Definisi dari aktor tersebut dapat dilihat pada tabel 4.1.
Tabel 4.1. Aktor
No. Aktor Fungsionalitas
1. Admin Pihak yang mengoperasikan server
2. Pengguna Pihak korban perampokan yang menjadi klien
dan mengirimkan data ke server.
b) Definisi Use case
Beberapa definisi use case yang digambarkan dapat dilihat pada
tabel 4.2.
45
Tabel 4.2. Use case
No. Nama Usecase Deskripsi
1. Olah data user
Admin mempunyai wewenang
manambah, mengubah, menghapus data
user pengguna sistem.
2. Olah data polsek
Admin mengolah data polsek baik
karena ada penambahan, pengubahan,
maupun penghapusan data.
3. Lihat panggilan
Admin memiliki kewenangan melihat
laporan dari user pengguna melalui situs
ESC dan nomor handphone ESC
4. Ganti user
User pengguna bisa mengisi atau
mengganti nama user yang terdaftar
dalam aplikasi tersebut.
5. Lihat posisi
User pengguna memiliki fasilitas
melihat lokasinya berada dengan
bantuan internet dan GPS.
6. Kirim laporan
User pengguna mengirimkan data
laporan kejadian kriminal yang berupa
longitude, latitude, PIN, dan alamat
melalui internet. Adapun pengiriman
laporan via SMS tidak menyertakan
alamat.
7. Panggil polisi User pengguna dapat menelepon secara
langsung kepada kantor polisi terdekat.
b. Activity Diagram
Activity diagram memodelkan alur kerja (workflow) sebuah
proses bisnis dan urutan aktifitas dalam suatu proses. Diagram ini
sangat mirip dengan sebuah flowchart karena dapat memodelkan
sebuah alur kerja dari suatu aktifitas ke aktifitas lainnya atau dari satu
aktifitas kedalam keadaan sesaat (state). Adapun beberapa diagram
aktifitas dari sistem ini adalah sebagai berikut:
46
Gambar 4.3. Activity Login Server
a) Proses Login
Gambar 4.3 memperlihatkan aktivitas admin menginput
username dan password, kemudian sistem melakukan proses validasi
apakah username dan password sesuai. Jika sesuai, sistem akan
menampilkan menu dan admin akan melanjutkan dengan proses
yang diinginkan.
b) Proses pengolahan data user
Gambar 4.4 adalah beberapa proses pengolahan data pada tabel
user. Pengolahan data meliputi penambahan data, pengeditan data,
dan penghapusan data.
47
Gambar 4.4. Activity pengolahan data user
c) Proses Pengolahan data Polsek
Gambar 4.5 adalah beberapa proses pengolahan data pada tabel
polsek. Pengolahan data meliputi penambahan data, pengeditan
data, dan penghapusan data.
48
Gambar 4.5. Activity pada pengolahan data polsek
c. Class Diagram
Dalam proses analisis dan perancangan awal sampai dengan
tahap implementasi terdapat perubahan desain class diagram
disebabkan source code yang dapat digunakan terdapat revisi
dengan memperhatikan efektivitas kinerja aplikasi. Gambar 4.6a
menunjukkan class diagram sebelum terjadi perubahan analisis
source code.
49
Gambar 4.6a Class diagram awal aplikasi Emergency Security
Caller
Adapun desain class diagram untuk aplikasi Emergency
Security Caller setelah mengalami perubahan analisis source code
ditunjukkan pada gambar 4.6b.
Gambar 4.6b. Class diagram akhir aplikasi Emergency Security
Caller
50
Berdasarkan gambar 4.6b ada satu class utama dan delapan
class tambahan lainnya agar proses pada sistem sesuai dengan
planning, yaitu
a. tunjukLokasi.java,
b. about.java,
c. myItemizedOverlay.java,
d. lokasi.java,
e. EditTextPreference.java,
f. CustomHttpClient.java,
g. SplashActivty.java, dan
h. PolsekDialer.java.
Adapun untuk class diagram pada web server ditunjukkan
oleh gambar 4.6c.
Gambar 4.6c Class diagram server
51
3. Desain Tabel
Aplikasi mobile phone Emergency Security Caller (ESC) berkaitan
langsung dengan web server pelaporan data kejadian perkara yang
menggunakan database server MySQL. Database tersebut berisi beberapa
tabel yang mendukung berjalannya layanan penerimaan pelaporan secara
real time dari aplikasi klien ESC. Adapun desain tabel pada database
server sebagai berikut.
a. Tabel Admin
Tabel ini berisi username dan password yang dapat bertindak
sebagai administrator dan digunakan sebagai database login admin.
Tabel admin ditunjukkan oleh tabel 4.3.
Tabel 4.3. Admin
No. Nama Kolom Tipe Data Contraint Keterangan
1. Id int (11) primary key id auto increment
2. Username varchar(15) untuk login
3. Password varchar (20) untuk login
4. Level varchar(5)
untuk identifikasi
admin atau super
admin
b. Tabel Panggilan
Tabel ini akan menampung laporan dari aplikasi klien setelah
memiliki data longitude dan latitude lokasi kejadian perampokan.
Apabila data tidak lengkap maka tidak tersimpan di dalam tabel
panggilan yang ditunjukkan pada oleh tabel 4.4.
52
Tabel 4.4. Panggilan
No. Nama Kolom Tipe Data Contraint Keterangan
1. Id int (11) primary key id auto
increment
2. Username varchar(15) Reference tabel
user(username)
nama pelapor
3. Longitude varchar(13)
Digunakan
untuk sistem
GPS
4. Latitude varchar(13)
Digunakan
untuk sistem
GPS
5. Tkp text
Alamat yang
diambil dari
Google Map
dengan bantuan
GPS dan
internet
6. Tanggal varchar(30)
Waktu
masuknya
pelaporan
c. Tabel Polsek
Tabel ini akan menyimpan data kantor polsek di DI. Yogyakarta
dengan dilengkapi data longitude dan latitude serta nomor telepon yang
dapat dihubungi.
Tabel 4.5. Polsek
No. Nama Kolom Tipe Data Contraint Keterangan
1. Id int (11) primary
key
auto increment id
2. nama_polsek varchar(20) Nama kantor
polsek
3. alamat_polsek varchar(100) Alamat kantor
polsek
4. no_telp varchar(11) Nomor telepon
5. no_hp varchar(12) Nomor
handphone
6. Longitude varchar(20)
Alamat koordinat
lokasi kantor
berdasarkan
fasilitas GPS
53
Lanjutan tabel 4.5
7. Latitude varchar(20)
Alamat koordinat
lokasi kantor
berdasarkan
fasilitas GPS
8. Kab vachar(15)
Id untuk
mengindukkan
kantor tersebut
kepada kabupaten
mana.
d. Tabel User
Tabel ini akan menampung daftar user yang telah terdaftar.
Fungsinya adalah sebagai filter atas pelaporan kriminalitas palsu yang
merepotkan pihak polisi. Tabel user ini akan menampilkan laporan
hanya dari user yang terdaftar dan tabel ini digambarkan pada tabel 4.6.
Tabel 4.6. User
No. Nama Kolom Tipe Data Contraint Keterangan
1. Username varchar(10) Primary
key
Sebagai identitas
user terdaftar dan
identitas
pelaporan
kejadian
2. Nama varchar(30) Nama lengkap
pelapor / korban
3. Alamat Text Alamat dari
pelapor/ korban
4. no_ktp varchar(20)
Nomor ktp korban
untuk kevalidan
data
5. no_hp varchar(12)
Nomor
handphone
korban untuk
memudahkan
transfer informasi
6. Email Varchar(20) Alamat email
korban/ pelapor.
54
4. Desain Antarmuka
Antarmuka atau biasa disebut interface adalah tampilan aplikasi
maupun website yang bersentuhan langsung dengan pengguna dalam
menjalankan fungsi-fungsi yang dibutuhkan oleh pengguna.
a. Desain Antarmuka Sistem Server
1) Desain Antarmuka Home
Tampilan home berisi menu website beserta Google Map
dengan pusat kota Yogyakarta. Di sini juga tersedia fasilitas login
administrator untuk mencegah penggunaan oleh pihak yang tidak
berhak.
Gambar 4.7. Desain antarmuka home website
2) Desain Antarmuka Panggilan
Tampilan ini akan berisi daftar panggilan dari klien yang
diurutkan berdasarkan waktu terbaru. Selain itu ada fasilitas lihat
lokasi tempat kejadian perkara di peta. Desain antarmuka panggilan
ditunjukkan oleh gambar 4.8.
55
Gambar 4.8. Desain antarmuka halaman panggilan
3) Desain Antarmuka Polsek
Gambar 4.9 adalah desain tampilan antarmuka polsek
digunakan untuk menampilkan data kantor polsek di DI. Yogyakarta.
Gambar 4.9. Desain antarmuka daftar polsek
4) Desain Antarmuka User
Gambar 4.10 memberikan desain tampilan pada halaman daftar
user yang terdaftar pada sistem.
56
Gambar 4.10. Desain antarmuka daftar user
b. Desain Antarmuka Sistem Klien
1) Desain antarmuka menu utama
Desain antarmuka menu utama sistem klien akan diawali
dengan splash screen dan kemudian menampilkan peta lokasi
terjadinya perkara dan beberapa kantor polsek terdekat.
Gambar 4.11. Desain antarmuka utama
2) Desain Panggil Kantor Polisi
Desain antarmuka panggil kantor polisi digunakan untuk
merancang pemanggilan kantor polisi secara manual sesuai nama
kantor polisi yang diinginkan. Daftar kantor polisi yang ditampilkan
57
menggunakan fitur list view yang mendukung scroll ke atas dan ke
bawah.
Gambar 4.12. Desain antarmuka panggil kantor polisi
Gambar 4.12 adalah desain dari panggil kantor polisi, yakni
pemanggilan nomor telepon polsek berdasarkan nama kantor polsek
yang diinginkan.
3) Desain Set PIN
Desain antarmuka Set PIN adalah untuk menyimpan PIN yang
didapatkan dari pendaftaran di kepolisian dan digunakan untuk
verifikasi laporan data yang akan dimunculkan di web server
ditunjukkan pada gambar 4.13.
Gambar 4.13. Desain antarmuka verifikasi akun
58
4) Desain Menu Petunjuk
Desain antarmuka menu petunjuk adalah untuk memberikan
informasi dasar tentang cara penggunaan aplikasi ESC. Desain
antarmuka menu petunjuk yang menggunakan teks standar ini
diperlihatkan pada gambar 4.14.
Gambar 4.14. Desain antarmuka menu petunjuk
5) Desain Menu Informasi Umum
Desain antarmuka menu informasi umum adalah untuk
memberikan informasi umum tentang aplikasi ESC. Desain menu
informasi umum ini ditunjukkan pada gambar 4.15.
Gambar 4.15. Desain antarmuka menu informasi umum
59
BAB V
IMPLEMENTASI DAN PENGUJIAN SISTEM
5.1 Implementasi
Implementasi merupakan salah satu tahap dalam pengembangan sebuah
perangkat lunak. Dalam SDLC implementasi merupakan tahapan kelima yang
memiliki dua hal yang harus dilakukan, yakni testing dan instalasi. Testing
adalah menguji hasil kode program yang telah dihasilkan dari tahapan desain
fisik. Tujuan pengujian adalah untuk menjamin bahwa kode yang dihasilkan
bebas dari kesalahan sintaks dan menguji kemampuan penyelesaian masalah
yang dimiliki klien. Selain itu pengujian bertujuan mengetahui apakah sistem
mudah dipahami dan digunakan atau tidak oleh pengguna akhir.
Adapun instalasi dalam implementasi dilaksanakan setelah tahap testing
(pengujian). Tahap instalasi dalam hal ini adalah pemasangan secara resmi
perangkat lunak yang telah lulus testing dan menggantikan sistem lama.
5.1.1. Implementasi Server
Server beserta databasenya telah dipasang secara online pada
domain http://seeyou.web.id/polisi/. Implementasi pada server dibagi
dua kategori. Pertama implementasi database menggunakan MySQL.
Kedua implementasi interface dengan menggunakan bahasa HTML
dan PHP.
60
1. Implementasi Database
Pada sistem ini database memiliki nama MAP yang berisi
empat buah tabel ; tabel admin, tabel laporan, tabel polsek, dan
tabel user. Database MAP ini diakses melalui Phpmyadmin.
Adapun tabel-tabel yang digunakan dalam database ditunjukkan
oleh gambar 5.1a , gambar 5.1b, gambar 5.1c, gambar 5.1d, dan
gambar 5.1e.
Gambar 5.1a. Database System
Gambar 5.1b. Tabel Admin
61
Gambar 5.1c. Tabel Panggilan
Gambar 5.1d. Tabel Polsek
Gambar 5.1e. Tabel User
62
2. Implementasi Web Server
a. Implementasi koneksi PHP dan MySQL
Dalam mengolah data yang tersimpan dalam database
MySQL dibuatlah file konfigurasi untuk menghubungkan server
dengan tabel-tabel yang akan diolah datanya. File tersebut diberi
nama koneksi.php yang menggunakan fungsi PHP
mysql_connect() dan mysql_select_db(). Adapun source code
lengkap koneksi.php terlampir.
b. Implementasi Halaman Utama
Halaman utama pada server adalah menu-menu utama
yang disertai peta posisi keseluruhan kantor polsek se-DIY.
Gambar 5.2 menunjukkan tampilan halaman utama server.
Gambar 5.2. Halaman utama web server ESC of DIY
c. Implementasi Halaman Daftar Polsek se-DIY
Halaman daftar kantor polisi se-DIY menampilkan data
63
kantor polisi beserta nomor telepon yang dapat dihubungi.
Interface halaman ini berbentuk tabel. Adapun halaman daftar
polsek se-DIY ditunjukkan oleh gambar 5.3.
Gambar 5.3. Halaman daftar kantor polsek.
d. Implementasi Halaman Laporan Perampokan
Halaman laporan perampokan yang ditunjukkan gambar
5.4 ini menampilkan daftar laporan dari user yang masuk server.
Data tersebut merupakan input secara online dengan
menggunakan fasilitas internet.
Gambar 5.4. Halaman daftar panggilan
64
e. Implementasi Halaman Daftar User Terdaftar
Laporan kriminal yang ditampilkan adalah disesuaikan
dengan user yang terdaftar. Sehingga dapat disimpulkan hanya
laporan dari user yang terdaftarlah yang dapat diakses
laporannya. Halaman daftar user terdaftar ini ditunjukkan oleh
gambar 5.5.
f. Halaman login admin
Halaman login admin akan meminta username dan
password untuk autentifikasi user admin. Halaman login admin
dapat dilihat pada gambar 5.6.
Gambar 5.6. Halaman login admin
Gambar 5.5. Daftar user terdaftar
65
g. Halaman Pengelolaan Daftar Polsek
Pengelolaan data pada tabel daftar polsek dapat dilakukan
pada halaman editing tabel daftar polsek sebagaimana
ditampilkan gambar 5.7.
Gambar 5.7. Halaman olah data kantor polsek
h. Halaman Pengelolaan Daftar User
Pengelolaan data pada tabel user dapat dilakukan pada
halaman editing user sebagaimana diperlihatkan gambar 5.8.
Gambar 5.8. Halaman olah data user
66
5.1.2. Implementasi Klien
1. Implementasi Halaman Utama
Halaman utama sebagaimana ditunjukkan gambar 5.9 ini
memberikan tampilan aplikasi tentang lokasi kejadian perkara yang
menggunakan data longitude dan latitude. Adapun posisi kejadian
perampokan dilengkapi dengan alamat yang diambil dari Google
Map.
Gambar 5.9. Halaman utama aplikasi
2. Menu Set PIN
Menu Set PIN berfungsi untuk menambahkan data PIN yang
digunakan ketika pengiriman data ke web server. PIN user
merupakan PIN yang terdaftar di web server. Manfaat adanya PIN
user tersebut adalah untuk filtering data yang akan ditampilkan di
web server. Halaman menu set PIN ditunjukkan oleh gambar 5.10.
67
Gambar 5.10. Menu Set PIN
3. Implementasi Menu Panggil Kantor Polisi
Menu daftar kantor polisi ini menampilkan kantor polisi se-
DIY. Menu ini akan membantu user menelepon kantor polisi yang
diinginkan. Halaman daftar kantor polisi dapat dilihat pada gambar
5.11.
Gambar 5.11. Daftar polsek
68
4. Menu Petunjuk
Menu Bantuan akan menunjukkan langkah-langkah dasar
penggunaan aplikasi Emergency Security Caller agar dapat berjalan
dengan normal.
Gambar 5.12. Menu Bantuan
5. Menu Informasi Umum
Menu ini untuk memberikan informasi umum tentang
aplikasi Emerrgency Security Caller.Adapun tampilan menu ini
dapat dilihat pada gambar 5.13.
Gambar 5.13. Menu Informasi Umum
69
5.2 Pengujian
Pengujian sistem merupakan tahapan terakhir pada penelitian ini, yang
menguji kemampuan keseluruhan yang disediakan sistem. Pada tahap ini,
pengujian sistem akan menggunakan metode black box. Teknik black box
merupakan metode pengujian dengan memfokuskan pada fungsional sistem
yang telah dibangun serta memperhatikan hasil dari sistem apakah telah
berjalan sesuai yang diharapkan.
5.2.1 Pengujian Alpha
Pengujian alpha adalah pengujian sistem yang dilakukan secara
langsung oleh pengembang sistem dengan cara uji coba data, yaitu
dengan memasukkan data yang benar dan data yang salah. Berikut
rencana pengujian Alpha yang akan dilakukan
Tabel 5.1. Rencana Pengujian Alpha Sistem Server
No. Item Uji Detail Pengujian
1. Proses Login Verifikasi Login
2. Proses Pengolahan Data Kantor Polsek Tambah, ubah, hapus
3. Proses Pengolahan Data User Tambah, ubah, hapus
4. Proses Pengolahan Data Panggilan Tambah, ubah, hapus
5. Proses Logout Verifikasi Logout
Tabel 5.2. Rencana Pengujian Alpha Sistem Klien
No. Item Uji Detail Pengujian
1. Proses Set PIN Edit, hapus
2. Proses Pemanggilan Kantor Polsek Mengoperasikan
3. Proses Pengiriman Data ke Server Mengoperasikan
70
5.2.2 Pengujian Beta
Pengujian beta adalah pengujian sistem yang dilakukan secara
obyektif, yaitu pengujian langsung ke lapangan (masyarakat luas) untuk
mengetahui pendapat responden terhadap sistem yang dibangun.
Pengujian sistem dilakukan oleh 27 responden yang terdiri atas 20
responden untuk pengujian aplikasi klien dan 5 responden untuk
pengujian web server. kemudian hasil dari pengujian itu akan dituliskan
pada kuisoner yang telah diberikan. Pengujian dilakukan terhadap
fungsional, antarmuka, dan kemanfaatan sistem. Pengujian fungsional,
antarmuka, dan kemanfaatan sistem dapat dilihat pada tabel 5.2, dan
pengujian antarmuka dapat dilihat pada berikut ini.
Tabel 5.3. Tabel Pengujian Fungsional Aplikasi Klien
No Pernyataan Penilaian
Ya Tidak
1. Aplikasi ESC dapat mengirimkan laporan ke web polisi
2. Aplikasi ini dapat mengirim laporan kejadian perampokan
via SMS ke nomor polisi
3. Aplikasi ini dapat menampilkan posisi kejadian di peta
4. Aplikasi ini dapat menelepon kantor polsek secara manual
menggunakan fitur menu panggil polsek
Tabel 5.4. Tabel Pengujian Fungsional Sistem Server
No Pernyataan Penilaian
Ya Tidak
1. Web ESC dapat menerima data laporan dari korban
(pengguna aplikasi ESC) yang berupa longitude, latitude,
PIN user, dan alamat kejadian perampokan (pencurian
dengan kekerasan).
2. Sistem dapat menampilkan posisi kejadian perampokan di
peta.
3. Sistem dapat menampilkan laporan kejadian perampokan
dengan peringatan suara dan tanda warna untuk laporan yang
71
belum dibaca.
4. Admin dapat mengolah (menambah, menghapus, mengubah)
data user terdaftar
5. Admin dapat mengolah (menambah, menghapus, mengubah)
data kantor polsek DIY
Tabel 5.5. Tabel Pengujian Interface Aplikasi Klien
No Pernyataan Penilaian
Ya Tidak
1. Tampilan interface (antarmuka) aplikasi Emergency Security
Caller nyaman dilihat.
2. Cara penggunaan aplikasi ini beserta fitur tambahannya
mudah.
3. Bahasa dan petunjuk dalam aplikasi ini mudah dipahami
Tabel 5.6. Tabel Pengujian Interface Web Server
No Pernyataan Penilaian
Ya Tidak
1. Tampilan interface (antarmuka) web Emergency Security
Caller nyaman dilihat.
2. Cara penggunaan web ini beserta fitur tambahannya mudah.
3. Bahasa dan petunjuk dalam web ESC ini mudah dipahami
Tabel 5.7. Tabel Pengujian Kemanfaatan Sistem
No Pernyataan Penilaian
SS S N TS STS
1. Aplikasi ESC ini sangat berguna di masyarakat.
2.
Aplikasi ini mempermudah korban perampokan
dalam melaporkan kejadian perampokan dalam
situasi ketika korban berada di dalam ruangan dan
disandera, namun tangan korban memungkinkan
untuk menggunakan handphone.
3. Polisi mendapatkan informasi kejadian
perampokan lebih cepat.
4. Aplikasi ini layak untuk digunakan di Polda DIY
72
BAB VI
HASIL DAN PEMBAHASAN
6.1 Proses Pengujian Sistem
Tahap pengujian aplikasi Emergency Security Caller melibatkan 27
responden yang terdiri atas 6 penguji sistem server dan 21 penguji sistem klien.
Adapun daftar penguji sistem ini tercantum dalam tabel 6.1 dan tabel 6.2.
Untuk kuisioner hasil pengujian secara lengkap dapat dilihat pada lampiran.
Tabel 6.1. Tabel Daftar Penguji
No Nama Penguji Instansi Wilayah
1 Wiwit Retno Owner Toko A3 G. Kidul
2 Dwi Kuntari S. Owner Vino-Net G. Kidul
3 Susilowati Wiraswasta Warnet G. Kidul
4 Joko Yuono Account Officer Bank Swamitra G. Kidul
5 Yogi Yodaswara Marketing Efisiensi : Sleman
6 Jarodah Karyawan BPR Danagung Bakti Sleman
7 Dwi Gadang R. Karyawan Minimarket Danaz Sleman
8 Derry Apriyanto Karyawan Alfamart Balecatur Sleman
9 Rian Mandar Sari Karyawan BPR Profidana, Sedayu Bantul
10 Yudi Karyawan Minimarket Manggala Bantul
11 Eko Karyawan Alfamart Sedayu Bantul
12 Arif Wibowo Karyawan minimarket Ana Bantul
13 Utoyo Bagian Umum BPR : Kulonprogo
14 Budi Cahyono Security Bank Pasar Kulon Progo
15 Yudhi Pamungkas Karyawan BPR Nusamba, Temon Kulon Progo
16 Aprilia Karyawan Alfamart Kulon Progo
17 Suryono Karyawan Swasta Kulon Progo
18 Tia Operator warnet Clique Kota
19 Sudaryanto Karyawan Indomaret Kota
20 Afri Operator warnet Warney Kota
21 Lamda Hermino Manajer Hazel internet & Playstation Kota
73
Tabel 6.2. Daftar Penguji Server
No Nama Penguji Server Jabatan
1 Imam S. Bamit Polda
2 Singgih Bamit Polda
3 Candra Banum Polda
4 Muryadi Bamit Polda
5 Hartono Bamit Polda
6 Donny Kamit Jatan Ras Polda DIY
6.2 Hasil dan Pembahasan Pengujian Alpha
Berdasarkan hasil pengujian alpha, secara keseluruhan sistem Emergency
Security Caller dapat dikatakan berhasil atau diterima, karena secara
fungsional sudah dapat bekerja dan menghasilkan output yang diharapkan.
Sistem server maupun sistem klien dapat bekerja dengan baik.
6.3 Hasil dan Pembahasan Pengujian Beta
Pengujian yang melibatkan 27 orang responden menilai aspek fungsional,
interface, dan kemanfaatan sistem server dan klien. Hasil pengujian fungsional
sistem dapat dilihat pada tabel 6.3 dan tabel 6.4. Hasil pengujian interface
sistem dapat dilihat pada tabel 6.5 dan tabel 6.6. Adapun tabel 6.7
menunjukkan hasil pengujian kemanfaatan sistem.
Tabel 6.3. Tabel Hasil Pengujian Fungsional Aplikasi Klien
No Pernyataan Penilaian
Ya Tidak
1. Aplikasi ESC dapat mengirimkan laporan ke web polisi 20 1
2. Aplikasi ini dapat mengirim laporan kejadian perampokan
via SMS ke nomor polisi 20 1
3. Aplikasi ini dapat menampilkan posisi kejadian di peta 20 1
4. Aplikasi ini dapat menelepon kantor polsek secara manual
menggunakan fitur menu panggil polsek 21 0
74
Tabel 6.4. Tabel Hasil Pengujian Fungsional Sistem Server
No Pernyataan Penilaian
Ya Tidak
1.
Web ESC dapat menerima data laporan dari korban
(pengguna aplikasi ESC) yang berupa longitude, latitude,
PIN user, dan alamat kejadian perampokan (pencurian
dengan kekerasan).
6 0
2. Sistem dapat menampilkan posisi kejadian perampokan di
peta. 6 0
3.
Sistem dapat menampilkan laporan kejadian perampokan
dengan peringatan suara dan tanda warna untuk laporan yang
belum dibaca.
6 0
4. Admin dapat mengolah (menambah, menghapus, mengubah)
data user terdaftar 6 0
5. Admin dapat mengolah (menambah, menghapus, mengubah)
data kantor polsek DIY 6 0
Tabel 6.5. Tabel Hasil Pengujian Interface Aplikasi Klien
No Pernyataan Penilaian
Ya Tidak
1. Tampilan interface (antarmuka) aplikasi Emergency Security
Caller nyaman dilihat. 19 2
2. Cara penggunaan aplikasi ini beserta fitur tambahannya
mudah. 20 1
3. Bahasa dan petunjuk dalam aplikasi ini mudah dipahami 20 1
Tabel 6.6. Tabel Hasil Pengujian Interface Web Server
No Pernyataan Penilaian
Ya Tidak
1. Tampilan interface (antarmuka) web Emergency Security
Caller nyaman dilihat. 6 0
2. Cara penggunaan web ini beserta fitur tambahannya mudah. 6 0
3. Bahasa dan petunjuk dalam web ESC ini mudah dipahami 6 0
75
Tabel 6.7. Tabel Hasil Pengujian Kemanfaatan Sistem
No Pernyataan Penilaian
SS S N TS STS
1. Aplikasi ESC ini sangat berguna di masyarakat.
2.
Aplikasi ini mempermudah korban perampokan
dalam melaporkan kejadian perampokan dalam
situasi ketika korban berada di dalam ruangan dan
disandera, namun tangan korban memungkinkan
untuk menggunakan handphone.
3. Polisi mendapatkan informasi kejadian
perampokan lebih cepat.
4. Aplikasi ini layak untuk digunakan di Polda DIY
Analisis Kuisioner Keberhasilan Pengujian dari Sistem Klien
skor kriterium = 147 (skor tertinggi x jumlah butir x jumlah responden)
skor tertinggi = 1
skor terendah = 0
Jadi, tingkat keberhasilan aplikasi ESC berdasarkan data kuisioner adalah =
𝑗𝑢𝑚𝑙𝑎 ℎ 𝑠𝑘𝑜𝑟 𝑦𝑎𝑛𝑔 𝑑𝑖𝑑𝑎𝑝𝑎𝑡𝑘𝑎𝑛
𝑠𝑘𝑜𝑟 𝑘𝑟𝑖𝑡𝑒𝑟𝑖𝑢𝑚 x 100% =
140
147 x 100% = 95,23%
Analisis Kuisioner Keberhasilan Pengujian dari Sistem Server
skor kriterium = 48
skor tertinggi = 1
skor terendah = 0
Jadi, tingkat keberhasilan aplikasi ESC berdasarkan data kuisioner adalah =
𝑗𝑢𝑚𝑙𝑎 ℎ 𝑠𝑘𝑜𝑟 𝑦𝑎𝑛𝑔 𝑑𝑖𝑑𝑎𝑝𝑎𝑡𝑘𝑎𝑛
𝑠𝑘𝑜𝑟 𝑘𝑟𝑖𝑡𝑒𝑟𝑖𝑢𝑚 x 100% =
48
48 x 100% = 100%
76
Analisis Kuisioner Keberhasilan Pengujian dari Segi Kemanfaatan
Jumlah skor kriterium (bila setiap butir mendapat skor tertinggi)
= 5 x 4 x 20 penguji = 400.
Untuk skor tertinggi adalah 5, jumlah butir adalah 4, dan jumlah responden
adalah 20.
Jumlah skor terendah = 1 x 4 x 20 =80.
Jumlah skor hasil pengumpulan data = 352.
Jumlah kelas interval = (400-80)/5 = 64
Tabel 6.7. Klasifikasi skor angket kemanfaatan
Jumlah Skor Jawaban Klasifikasi Sikap
336 -400 SS
272-335 S
208-271 N
144-207 TS
80-143 STS
Kesimpulan : Jumlah skor yang diperoleh responden adalah termasuk
klasifikasi sangat setuju karena terletak antara 336-400.
Hasil kuisioner pengujian atas aspek fungsionalitas dan interface sistem
klien menunjukkan tingkat keberhasilan sebesar 95,23%. Hasil pengujian atas
aspek fungsionalitas dan interface sistem server menunjukkan tingkat
keberhasilan sebesar 100%. Adapun hasil kuisioner pengujian kemanfaatan
(advantagement) atas sistem klien dan server menunjukkan bahwa tingkat
keberhasilan sebesar 88 %.
Berdasarkan hasil pengujian tersebut, dapat disimpulkan bahwa sistem
Emergency Sistem Caller yang memanfaatkan device smartphone android
77
layak digunakan di wilayah DI. Yogyakarta. Namun, untuk mendapatkan hasil
yang lebih optimal perlu adanya pengembangan sistem lebih lanjut.
6.4 Kendala Pengujian
Pelaksanaan pengujian beta sistem yang menggunakan sample di lima
wilayah di DI. Yogyakarta ini mendapatkan beberapa kendala dalam
pengujian.
1. Kendala birokrasi dalam pengurusan surat izin. Beberapa instansi unit
pada level desa dan kecamatan tidak berkenan berpartisipasi dalam
pengisian kuisioner meskipun sudah dijelaskan bahwa kuisioner tidak
membahas terkait instansi mereka sebelum ada izin dari instansi cabang
yang lokasinya ada di luar kota Yogyakarta.
2. Kendala sinyal GPS di warnet dengan fasilitas hotspot. Pada percobaan
penggunaan aplikasi klien di warnet Clique tanpa fasilitas hotspot yang
berjarak kurang lebih 300 meter dari warnet Hazel berjalan dengan baik.
Namun, aplikasi tidak dapat mendapatkan sinyal GPS ketika digunakan di
warnet Hazel di wilayah Kota Yogyakarta yang memiliki fasilitas hotspot.
78
BAB VII
PENUTUP
7.1 Kesimpulan
Penelitian Rancang Bangun Emergency Security Caller Berbasis
Android untuk Situasi Perampokan telah berhasil menciptakan sistem
pelaporan dan pemanggilan pihak kepolisian menggunakan media
smartphone Android. Dalam praktek di lapangan cara menjalankan aplikasi
Emergency Security Caller (ESC) membutuhkan tiga langkah setelah fitu
GPS dan internet aktif, yakni menekan tombol menu, membuka kunci layar,
dan menekan shortcut aplikasi ESC.
Berdasarkan hasil pengujian di lapangan yang telah dilakukan
terhadap sistem ESC maka dapat diambil kesimpulan bahwa penelitian
rancang bangun sistem Emergency Security Caller (ESC) berbasis Android
dapat memberikan informasi kejadian perampokan cukup cepat, yakni dalam
rentang waktu kurang lebih tiga puluh detik hingga tiga menit. Informasi
yang ditampilkan di website ESC dapat dipercaya kevalidannya karena
adanya fitur filtering user terdaftar.
79
7.2 Saran
Pengembangan sistem Emergency Security Caller masih terdapat
kekurangan, oleh karena itu perlu pengembangan lebih lanjut agar sistem ini
lebih bermanfaat. Adapun untuk penelitian selanjutnya ada beberapa hal
yang disarankan.
1. Sistem untuk server yang masih terpusat ini disarankan memiliki fitur
SMS sender yang saling terintegrasi sehingga informasi perampokan dapat
disebarkan lebih cepat.
2. Sistem untuk klien belum mampu dijalankan untuk kondisi korban masih
terancam. Oleh karena itu, disarankan untuk penelitian selanjutnya dapat
menggunakan trigger yang menjalankan sistem meskipun korban dalam
kondisi terancam.
Demikian hasil penelitian ini beserta pembahasannya. Semoga
penelitian ini dapat memberikan wawasan dan wacana untuk mendukung
perkembangan sistem-sistem lain yang dapat menjadi solusi dalam mengatasi
problematika masyarakat.
80
DAFTAR PUSTAKA
Al Fatta, Hanif, 2007, Analisis dan Perancangan Sistem Informasi untuk
Keunggulan Bersaing Perusahaaan dan Organisasi Modern. Andi Offset
,Yogyakarta.
Andry, 2011, Android A sampai Z. PT Prima Infosarana Media, Jakarta.
Ardiansyah, Mengenal Location Based Service (LBS). April 4, 2011.
http://blog.uad.ac.id/ardi/2011/04/04/mengenal-location-based-service-lbs/
(diakses pada April 18, 2012).
Harnindito, Andreas, 2012, Aplikasi Peta Mobile Pada sistem Operasi Android
Untuk Pencarian Lokasi Wisata.Program Studi Ilmu Komputer. FMIPA
UGM, Yogyakarta.
Haryanto, Agus. Belajar Android – Pengenalan Google Map . Oktober 29, 2010.
http://agusharyanto.net/wordpress/?p=269 diakses pada tanggal 8 Agustus
2012.
—. Belajar Android – Pengenalan GPS. Oktober 24, 2010.
http://agusharyanto.net/wordpress/?p=258 diakses pada tanggal 8 Agustus
2012.
—. Tutorial Android Menampilkan Lokasi GPS pada Google Map. Mei 4, 2011.
http://agusharyanto.net/wordpress/?p=480 diakses pada tanggal 8 Agustus
2012.
Hashimi , Sayed Y. and Satya Komatineni, 2009, Pro Android. Appear, USA
81
Huda, Arif Akbarul, 2012, 24 Jam!!! Pintar Pemrograman Android #1.ebook
diperoleh melalui http ://omayib.com
Kadir, A., 2003, Pemrogaman WEB : mencakup: HTML CSS Javascript dan
PHP. Penerbit Andi, Yogyakarta.
Madcoms, 2004, Aplikasi Program PHP dan MySQL untuk Membuat Website
Interaktif. Andi Offset, Yogyakarta.
Nugroho, Ignatius Dimas, 2012, Pengembangan Aplikasi Pencarian Lokasi
Fasilitas Umum Berbasis Foursquare APIv2 Pada Sistem Operasi Android.
Skripsi FMIPA UGM, Yogyakarta.
Purnaadi, Christian Wisnu, 2010, Aplikasi Peta Mobile untuk Pencarian Jalur
Terpendek Pada Sistem Operasi Android ( Mobile Map Application For The
Shortest Path Searching On Android Operating System). Skripsi Ilmu
Komputer FMIPA UGM, Yogyakarta.
Purnomo , Didik Heru, 2007, Aplikasi Pencarian Toko berbasis Java Mobile
Phone Via GPRS. Skripsi Ilmu Komputer FMIPA UGM, Yogyakarta.
Sanjaya, R., 2005, Pengolahan Database MSQL 5 dengan Java 2. Yogyakarta:
Penerbit Andi,.
Sholiq, 2006, Permodelan Sistem Informasi Berorientasi Obyek dengan UML,
Graha Ilmu, Yogyakarta.
Suntoyo, Andi, 2007, AJAX Membangun Web dengan Teknologi Asynchronouse
JavaScript dan XML, Penerbit Andi, Yogyakara.
82
Widianti, Santi, 2009, Pengembangan Sistem. Diakses pada 16 Januari 2013
melalui ,
http://santiw.staff.gunadarma.ac.id/Downloads/files/7689/pengembangansiste
m.doc
http://www.jagoannews.com/blog/2012/07/17/kasus-perampokan-sepanjang-
2012-di-yogyakarta/ diakses pada 6 Agustus 2012 pukul 12.00 WIB
http://jogja.okezone.com/read/2012/07/30/510/670307/kawanan-perampok-
warnet-bercelurit-diringkus-polisi diakses pada 6 Agustus 2012 pukul 12.00
WIB
http://krjogja.com/read/135864/kasus-perampokan-kampus-atk-belum-ada-titik-
terang.kr diakses pada 6 Agustus 2012 pukul 12.00 WIB
83
Lampiran 1
Kode Program Sistem Server
a. Olah data Polsek
<?php
$filename = 'database.class.php';
if (!file_exists($filename)){
echo "File Konfigurasi tidak ditemukan";
die();
}
include $filename;
$cn = new mySql();
if(!$cn->openKoneksi()){
echo "Tidak Bisa Konek";
die();
}
if (!isset($_REQUEST["mode"])){
$action = "simpan";
}else{
$id = $_POST["id"];
$nama_polsek = $_POST["nama_polsek"];
$alamat_polsek = $_POST["alamat_polsek"];
$no_telp = $_POST["no_telp"];
$no_hp = $_POST["no_hp"];
$longitude = $_POST["longitude"];
$latitude = $_POST["latitude"];
$kab = $_POST["kab"];
switch ($_REQUEST["mode"]) {
case "simpan":
$action = "simpan";
$values =
"'".$id."','".$nama_polsek."','".$alamat_polsek."','".$no_telp."',
'".$no_hp."','".$longitude."','".$latitude."','".$kab."
'";
$field =
"id,nama_polsek,alamat_polsek,no_telp,no_hp,longitude,
latitude,kab";
if($cn-
>insertRows('polsek',$field,$values)){
echo "Data Tersimpan";
}
break;
case "edit":
$action ="update";
$sql = "SELECT * FROM polsek WHERE
id='".$_REQUEST["id"]."'";
84
$alamat_polsek = $row[2];
$no_telp = $row[3];
$no_hp = $row[4];
$longitude = $row[5];
$latitude = $row[6];
$kab = $row[7];
}
break;
case "update":
$action = "simpan";
$where = "id='".$id."'";
$field =
"nama_polsek='".$nama_polsek."',alamat_polsek='".$alamat_polsek."',
no_telp='".$no_telp."',no_hp='".$no_hp."',
longitude='".$longitude."',latitude='".$latitude."',kab='".$kab."',
foto='".$foto."'";
if($cn->updateRows('polsek',$field,$where)){
echo "Data Tersimpan";
}
$id = "";
$nama_polsek = "";
break;
case "hapus":
$action = "simpan";
$where = "id='".$_REQUEST["id"]."'";
$cn->deleteRows('polsek',$where);
break;
}
}
?>
<a href="<?php echo "index3.php";?>">REFRESH/HOME</a> || <a
href="<?php echo "../index.php";?>">KEMBALI</a>
<hr/>
<hr/>
<form method="POST" action="<?php echo $PHP_SELF;?>?mode=<?php echo
$action;?>">
<table>
<tr>
<td>Nama Polsek</td>
<td>:</td>
<td><input type="text" name="nama_polsek"
id="nama_polsek" value="<?php echo $nama_polsek;?>" /></td>
</tr>
<tr>
<td>Alamat Polsek</td>
<td>:</td>
<td><input type="text" name="alamat_polsek" id="alamat_polsek"
value="<?php echo $alamat_polsek;?>" /></td>
85
<td>Alamat Polsek</td>
<td>:</td>
<td><input type="text" name="alamat_polsek"
id="alamat_polsek" value="<?php echo $alamat_polsek;?>" /></td>
</tr>
<tr>
<td>Telp</td>
<td>:</td>
<td><input type="text" name="no_telp" id="no_telp"
value="<?php echo $no_telp;?>" /></td>
</tr>
<tr>
<td>No HP</td>
<td>:</td>
<td><input type="text" name="no_hp" id="no_hp"
value="<?php echo $no_hp;?>" /></td>
</tr>
<tr>
<td>Longitude</td>
<td>:</td>
<td><input type="text" name="longitude" id="longitude"
value="<?php echo $longitude;?>" /></td>
</tr>
<tr>
<td>Latitude</td>
<td>:</td>
<td><input type="text" name="latitude" id="latitude"
value="<?php echo $latitude;?>" /></td>
</tr>
<tr>
<td>Kabupaten</td>
<td>:</td>
<td><input type="text" name="kab" id="kab" value="<?php
echo $kab;?>" /></td>
</tr>
<tr>
<td> </td>
<td> </td>
<td><input type="submit" value="simpan" /> <input
type="reset" value="reset" /></td>
</tr>
</table>
</form>
<?php
/*******************************************************************************/
?>
<?php
?>
<table>
<tr>
<td>
<form action="<?php $PHP_SELF;?>" method="post">
86
<?php
/******************************************************************
*************/ ?>
<?php
?>
<table>
<tr>
<td>
<form action="<?php $PHP_SELF;?>" method="post">
<input type="text" name="cari_polsek"/><input
type="submit" value="cari !"/>
</form>
</td>
</tr>
</table>
<table width="100%" color="blue">
<tr>
<td>No</td>
<td>Nama Polsek</td>
<td>Alamat</td>
<td>No telp</td>
<td>No HP</td>
<td>Longitude</td>
<td>Latitude</td>
<td>Kabupaten</td>
<td></td>
</tr>
<tr>
<td colspan="11"><hr/></td>
</tr>
<?php
$pencarian=$_POST['cari_polsek'];
$limit = 5;
if (isset($pencarian)){
$cari = "WHERE nama_polsek LIKE
'%".$pencarian."%'";
}else{
$cari = "";
}
$sql = "SELECT * FROM polsek ".$cari;
$exec = $cn->execute($sql);
$totalRecords = $cn->record_count();
if (!isset($_REQUEST["page"]) ||
trim($_REQUEST["page"]="") ){
$offset = 0;
}else{
$offset =$_REQUEST["offset"];
}
//$offset = (isset($_REQUEST["page"])? $_REQUEST["offset"]:0);
$sql = "SELECT * FROM polsek ".$cari." LIMIT ".$offset.", ".$limit;
$exec = $cn->execute($sql);
87
//$offset = (isset($_REQUEST["page"])?
$_REQUEST["offset"]:0);
$sql = "SELECT * FROM polsek ".$cari." LIMIT
".$offset.", ".$limit;
$exec = $cn->execute($sql);
$i = $offset;
while($r = $cn->getArray()):
$i++; ?>
<tr>
<td><?php echo $i;?></td>
<td><?php echo $r[1];?></td>
<td><?php echo $r[2];?></td>
<td><?php echo $r[3];?></td>
<td><?php echo $r[4];?></td>
<td><?php echo $r[5];?></td>
<td><?php echo $r[6];?></td>
<td><?php echo $r[7];?></td>
<td><a href="<?php echo $PHP_SELF;?>?mode=edit&id=<?php
echo $r[0];?>">EDIT</a> - <a href="<?php echo
$PHP_SELF;?>?mode=hapus&id=<?php echo $r[0];?>">HAPUS</a></td>
</tr>
<td colspan="11"><hr/></td>
<?php endwhile; ?>
<tr>
<td colspan="4">
<?php echo $cn->recordsetNav($totalRecords,
$PHP_SELF."?nama_polsek=".$_REQUEST["nama_polsek"]."&page=".$offset
,$offset,$limit,'10%','yes');?>
</td>
</tr>
</table>
88
b. Olah data user
<?php
$filename = 'database.class.php';
if (!file_exists($filename)){
echo "File Konfigurasi tidak ditemukan";
die();
}
include $filename;
$cn = new mySql();
if(!$cn->openKoneksi()){
echo "Tidak Bisa Konek";
die();
}
if (!isset($_REQUEST["mode"])){
$action = "simpan";
}else{
$username = $_POST["username"];
$password = $_POST["password"];
$nama_lengkap = $_POST["nama_lengkap"];
$jekel = $_POST["jekel"];
$alamat = $_POST["alamat"];
$email = $_POST["email"];
$no_hp = $_POST["no_hp"];
$no_ktp = $_POST["no_ktp"];
$foto = $_POST["foto"];
switch ($_REQUEST["mode"]) {
case "simpan":
$action = "simpan";
$values =
"'".$username."','".$password."','".$nama_lengkap."','".$jekel
."','".$alamat."','".$email."','".$no_hp."','".$no_ktp."','".$
foto."'";
$field =
"username,password,nama_lengkap,jekel,alamat,no_tlp,no_hp,no_k
tp,foto";
if($cn-
>insertRows('user',$field,$values)){
echo "Data Tersimpan";
}
break;
case "edit":
$action ="update";
$sql = "SELECT * FROM user WHERE
username='".$_REQUEST["username"]."'";
$exec = $cn->execute($sql);
while ($row = $cn->getArray()){ $username = $row[0]; $password = $row[1]; $nama_lengkap = $row[2]; $jekel = $row[3]; $alamat = $row[4]; $email = $row[5]; $no_hp = $row[6]; $no_ktp = $row[7]; $foto = $row[8]; }
89
$username = $row[0];
$password = $row[1];
$nama_lengkap = $row[2];
$jekel = $row[3];
$alamat = $row[4];
$email = $row[5];
$no_hp = $row[6];
$no_ktp = $row[7];
$foto = $row[8];
}
break;
case "update":
/* script insert */
$action = "simpan";
$where = "username='".$username."'";
$field =
"password='".$password."',nama_lengkap='".$nama_lengkap."',jek
el='".$jekel."',alamat='".$alamat."',no_tlp='".$email."',no_hp
='".$no_hp."',no_ktp='".$no_ktp."',foto='".$foto."'";
if($cn-
>updateRows('user',$field,$where)){
echo "Data Tersimpan";
}
$username = "";
$password = "";
break;
case "hapus":
$action = "simpan";
$where =
"username='".$_REQUEST["username"]."'";
$cn->deleteRows('user',$where);
break;
}
}
?>
<html>
<body >
<a href="<?php echo "index2.php";?>">REFRESH/HOME</a> || <a
href="<?php echo "../index.php?edit=user";?>">KEMBALI</a>
<hr/>
<form method="POST" action="<?php echo $PHP_SELF;?>?mode=<?php
echo $action;?>">
<table >
<tr>
<td>Username</td>
<td>:</td>
<td><input type="text" name="username"
id="username" value="<?php echo $username;?>" /></td>
</tr>
<tr>
<td>Password</td>
<td>:</td> <td><input type="text" name="password" id="password" value="<?php echo $password;?>" /></td> </tr> <tr> <td>Nama Lengkap</td> <td>:</td> <td><input type="text" name="nama_lengkap" id="nama_lengkap" value="<?php echo $nama_lengkap;?>" /></td>
90
<td>Password</td>
<td>:</td>
<td><input type="text" name="password"
id="password" value="<?php echo $password;?>" /></td>
</tr>
<tr>
<td>Nama Lengkap</td>
<td>:</td>
<td><input type="text" name="nama_lengkap"
id="nama_lengkap" value="<?php echo $nama_lengkap;?>" /></td>
</tr>
<tr>
<td>Jenis Kelamin</td>
<td>:</td>
<td><input type="text" name="jekel" id="jekel"
value="<?php echo $jekel;?>" /> [Laki-laki/Perempuan]
</td>
</tr>
<tr>
<td>Alamat</td>
<td>:</td>
<td><input type="text" name="alamat" id="alamat"
value="<?php echo $alamat;?>" /></td>
</tr>
<tr>
<td>Email</td>
<td>:</td>
<td><input type="text" name="email" id="email"
value="<?php echo $email;?>" /></td>
</tr>
<tr>
<td>No Handphone</td>
<td>:</td>
<td><input type="text" name="no_hp" id="no_hp"
value="<?php echo $no_hp;?>" /></td>
</tr>
<tr>
<td>No KTP</td>
<td>:</td>
<td><input type="text" name="no_ktp" id="no_ktp"
value="<?php echo $no_ktp;?>" /></td>
</tr>
<tr>
<td>Foto</td>
<td>:</td>
<td><input type="text" name="foto" id="foto"
value="<?php echo $foto;?>" /></td>
</tr>
<tr>
<td> </td> <td> </td> <td><input type="submit" value="simpan" /> <input type="reset" value="reset" /></td> </tr> </table> </form> <?php /*******************************************************************************/ ?> <?php ?> <table>
91
<td> </td>
<td> </td>
<td><input type="submit" value="simpan" /> <input
type="reset" value="reset" /></td>
</tr>
</table>
</form>
<?php
/*************************************************************
******************/ ?>
<?php
?>
<table>
<tr>
<td>
<form action="<?php $PHP_SELF;?>"
method="post">
<input type="text"
name="cari_user"/><input type="submit" value="cari !"/>
</form>
</td>
</tr>
</table>
<table width="100%" >
<tr bgcolor="#ffffff">
<td>No</td>
<td>Username</td>
<td>Password</td>
<td>Nama Lengkap</td>
<td>Jenis Kelamin</td>
<td>Alamat</td>
<td>Email</td>
<td>No Handphone</td>
<td>No KTP</td>
<td>Foto</td>
<td></td>
</tr>
<tr>
<td colspan="11"><hr/></td>
</tr>
<?php
$pencarian=$_POST['cari_user'];
$limit = 5;
if (isset($pencarian)){
$cari = "WHERE nama_lengkap LIKE
'%".$pencarian."%'";
}else{
$cari = "";
}
$sql = "SELECT * FROM user ".$cari;
$exec = $cn->execute($sql); $totalRecords = $cn->record_count(); if (!isset($_REQUEST["page"]) || trim($_REQUEST["page"]="") ){ $offset = 0; }else{ $offset =$_REQUEST["offset"]; } //$offset = (isset($_REQUEST["page"])? $_REQUEST["offset"]:0); $sql = "SELECT * FROM user ".$cari." LIMIT ".$offset.", ".$limit;
92
$exec = $cn->execute($sql);
$totalRecords = $cn->record_count();
if (!isset($_REQUEST["page"]) ||
trim($_REQUEST["page"]="") ){
$offset = 0;
}else{
$offset =$_REQUEST["offset"];
}
//$offset = (isset($_REQUEST["page"])?
$_REQUEST["offset"]:0);
$sql = "SELECT * FROM user ".$cari." LIMIT
".$offset.", ".$limit;
$exec = $cn->execute($sql);
$i = $offset;
while($r = $cn->getArray()):
$i++;
?>
<tr >
<td><?php echo $i;?></td>
<td><?php echo $r[0];?></td>
<td><?php echo $r[1];?></td>
<td><?php echo $r[2];?></td>
<td><?php echo $r[3];?></td>
<td><?php echo $r[4];?></td>
<td><?php echo $r[5];?></td>
<td><?php echo $r[6];?></td>
<td><?php echo $r[7];?></td>
<td><?php echo $r[8];?></td>
<td><a href="<?php echo
$PHP_SELF;?>?mode=edit&username=<?php echo $r[0];?>">EDIT</a>
- <a href="<?php echo $PHP_SELF;?>?mode=hapus&username=<?php
echo $r[0];?>">HAPUS</a></td>
</tr>
<td colspan="11"><hr/></td>
<?php endwhile; ?>
<tr>
<td colspan="4">
<?php echo $cn->recordsetNav($totalRecords,
$PHP_SELF."?nama_lengkap=".$_REQUEST["nama_lengkap"]."&page=".
$offset,$offset,$limit,'10%','yes');?>
</td>
</tr>
</table>
</body>
</html>
93
c. Database class
<?php
class mySql {
private $DBhost;
//your internet address of the mySQL database your going
to use.
private $DBusername;
//your mysql User name of the mySQL database your going
to use.
private $DBpassword;
//your mysql password of the mySQL database your going
to use.
private $DBname;
//name of database
private $link_id;
private $sql;
private $result;
private $num_rows;
private $row;
private $l_field;
private $field_define;
private $NOL;
function mySql(){//__construct
$this->DBhost = "localhost";
//$this->DBusername = "seeyouw1_root";
//$this->DBpassword = "353535";
$this->DBusername = "root";
$this->DBpassword = "";
$this->DBname = "seeyouw1_map";
$this->NOL="0";
}
function
recordsetNav($totalrecords,$page_url,$offset=0,$limit=0,$table
width='25%',$verbiage='yes'){
# EXAMPLE USAGE:
recordsetNav($mysql_link,$users_query,$PHP_SELF,$offset,$limit
,'75%',0); #
$pagenumber = ($offset + $limit) /
$limit;
$totalpages = intval($totalrecords/$limit);
if ($totalrecords%$limit > 0) $totalpages++;
$navstring = "<table align=\"center\"
width=\"".$tablewidth."\" cellspacing=\"0\" cellpadding=\"1\"
border=\"0\" align=center>";
// only show <<PREV NEXT>> row if
$totalrecords is greater than $limit
if ($totalrecords > $limit){
$navstring .= "<tr>";
if ($offset != 0){
$navstring .= "<td
valign='middle' width='25%' nowrap><a class='small'
href='".$page_url."&offset=".($offset-$limit)."'> <<
PREVIOUS </a></td>";
}else{
$navstring .= "<td width='25%' nowrap> </td>"; } if($totalrecords-$offset <= $limit){ $navstring .= "<td width='25%'
94
$navstring .= "<td width='25%'
nowrap> </td>";
}
if($totalrecords-$offset <= $limit){
$navstring .= "<td width='25%'
nowrap> </td>";
}else{
$navstring .= "<td align='right'
valign='middle' width='25%' nowrap border=0><a class='small'
href='".$page_url."&offset=".($offset+$limit)."'> NEXT
>> </a></td>";
}
$navstring .= "</tr>";
}
//$navstring .= "<tr><td colspan='3'
align='center'> </td></tr>";
if ($verbiage=="no"){
$navstring .= "";
}else{
$navstring .= "<tr><td colspan='3'
align='center' nowrap>";
$navstring .= "<span
class='RGBsmall'>Pages:
<b>".$pagenumber."</b>/<b>".$totalpages."</b>";
$navstring .= " total
Record(s): <b>".$totalrecords."</b></span>";
$navstring .= "</td></tr>";
}
$navstring .= "</table>";
return $navstring;
}
public function getDBuid(){
return $this->DBusername;
}
public function getDBhost(){
return $this->DBhost;
}
public function getDBpass(){
return $this->DBpassword;
}
public function getDBname(){
return $this->DBname;
}
public function openKoneksi(){
$this->link_id=mysql_connect($this-
>DBhost,$this->DBusername,$this->DBpassword);
return mysql_select_db($this-
>DBname,$this->link_id);
}
function execute($query){
$this->sql=$query;
$this->result=mysql_query($this->sql) or die(mysql_error()."<br>".$query); } function deleteRows($isTable,$isCriteria){ return $this->execute("DELETE FROM ".$isTable." WHERE ".$isCriteria); } function updateRows($isTable,$isValues,$isCriteria){ return $this->execute("UPDATE ".$isTable." SET ". $isValues." WHERE ".$isCriteria); }
95
$this->result=mysql_query($this->sql) or
die(mysql_error()."<br>".$query);
}
function deleteRows($isTable,$isCriteria){
return $this->execute("DELETE FROM
".$isTable." WHERE ".$isCriteria);
}
function
updateRows($isTable,$isValues,$isCriteria){
return $this->execute("UPDATE
".$isTable." SET ". $isValues." WHERE ".$isCriteria);
}
function
insertRows($isTable,$isField,$isValues){
$tmp="INSERT INTO
".$isTable."(".$isField.") VALUES (".$isValues.")";
return $this->execute($tmp);
}
function getArray(){
$this->row=mysql_fetch_array($this-
>result,MYSQL_NUM);
return $this->row;
}
function
getField($thisField,$thisTable,$thisCriteria,$thisValue){
$Q=$this->execute("SELECT $thisField
FROM $thisTable WHERE $thisCriteria='$thisValue'");
$R=$this->getArray();
return $R[0];
}
function record_count(){
$this->num_rows=mysql_num_rows($this-
>result);
return $this->num_rows;
}
function list_field($table_name){
$this-
>l_field=mysql_list_fields($this->DBname,$table_name);
$this->l_field;
}
function num_fields(){
$this-
>field_count=mysql_num_fields($this->l_field);
return $this->field_count;
}
function back_up_this($into_file){
$into_file =
fopen("backup\\".$into_file,"w+");
$i=0;$x=0;$counter=0;
$this->execute("show tables");
$list_table="";
while($row=$this->getArray()){
$list_table.=$row['0']."#";
} $list_table=substr($list_table,0,strlen($list_table)-1); $sTable=explode("#",$list_table); $cBackUp=count($sTable); for($counter=0;$counter<$cBackUp;$counter++) { $this->execute(" Select * From ".$sTable[$counter]);
96
}
fclose($fp);
}
function
auto_number($field,$table,$key,$Parse,$Digit_Count){
$this->NOL="0";
$this->execute("Select $field from
$table where $key like '$Parse%' order by $key DESC");
$counter=2;
if($this->record_count()==0)
{
while($counter < $Digit_Count)
{
$this->NOL="0".$this->NOL;
$counter++;
}
return $Parse.$this->NOL."1";
}
else
{
$R = $this->getArray();
$K = sprintf("%d",substr($R[0],-
$Digit_Count));
$K = $K + 1;
$L = $K;
while(strlen($L)!=$Digit_Count)
{
$L = $this->NOL.$L;
}
return $Parse.$L;
}
}
}
?>
97
}
$list_table=substr($list_table,0,strlen($list_table)-1);
$sTable=explode("#",$list_table);
$cBackUp=count($sTable);
for($counter=0;$counter<$cBackUp;$counter++)
{
$this->execute(" Select * From
".$sTable[$counter]);
$this-
>list_field($sTable[$counter]);
$field_count=$this-
>num_fields();
//mysql_num_fields($this-
>result)
for($i=0;$i<$this-
>record_count();$i++){
while($R=$this-
>getArray()){
$X = "Insert Into
$sTable[$counter] Values(";
for($x=0;$x<$field_count;$x++){
if ($x==($field_count-1)){
$X .="'$R[$x]'";
}else{
$X .= "'$R[$x]',";
}
}
$X .= ")\n";
fwrite($into_file,$X);
}
}
}
fclose($into_file);
}
function load_to_combo($r,$data_showed){
$var="";
$tampil="";
$j_array=count(explode("#",$r));
while($data=$this->getArray()){
$var.="<option value=\"";
for($i=0;$i<=$j_array;$i++){
$var.=$data[$i]."#";
}
$var.="\">$data[$data_showed]</option>";
}
return $var;
}
function restore_this($from_file){
copy($from_file,"backup\\i".$from_file);
$fp = fopen("backup\\$from_file",
"r");
while(!feof($fp)){
$x = fgets($fp, 4096);
$this->execute($x);
} fclose($fp); } function auto_number($field,$table,$key,$Parse,$Digit_Count){ $this->NOL="0";
98
Lampiran 2
Kode Program Klien
1. PolisiActivity.java
2. SplashActivity.java
Polsek Dialer.java
package com.android.polisi;
import android.app.Activity;
import android.os.Bundle;
public class PolisiActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
package com.android.polisi;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
public class SplashActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.splash);
Thread timer = new Thread() {
public void run() {
try {
sleep(3000);
} catch (InterruptedException e) {
// TODO: handle exception
e.printStackTrace();
} finally {
Intent i = new Intent(SplashActivity.this,TunjukLokasi.class);
startActivity(i);
}
}
};
timer.start();
}
}
99
3. TunjukLokasi.java
package com.android.polisi;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import android.app.PendingIntent;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.SharedPreferences;
import android.graphics.drawable.Drawable;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.location.Address;
import android.location.Geocoder;
import android.location.LocationProvider;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewManager;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.preference.EditTextPreference;
import android.preference.Preference;
import android.preference.PreferenceActivity;
import android.preference.PreferenceManager;
import android.preference.PreferenceScreen;
import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapView;
import com.google.android.maps.Overlay;
import com.google.android.maps.OverlayItem;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URI;
import java.util.ArrayList;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
private MapView mapView; private LocationManager locManager; private LocationListener locListener; private ArrayList<Lokasi> list_lokasi = new ArrayList<Lokasi>(); private Geocoder geocoder; private PolsekDialer panggil; String noTujuan, hasil, hasil2, hasil3; String tempat,latitudeS,longitudeS,latitudeX,longitudeX,waktu; TextView y1,y2,y3,error,y4,y5,user1,nama;
100
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.conn.params.ConnManagerParams;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.params.HttpConnectionParams;
import org.apache.http.params.HttpParams;
import android.telephony.SmsManager;
public class TunjukLokasi extends MapActivity {
private MapView mapView;
private LocationManager locManager;
private LocationListener locListener;
private ArrayList<Lokasi> list_lokasi = new
ArrayList<Lokasi>();
private Geocoder geocoder;
private PolsekDialer panggil;
String noTujuan, hasil, hasil2, hasil3;
String
tempat,latitudeS,longitudeS,latitudeX,longitudeX,waktu;
TextView y1,y2,y3,error,y4,y5,user1,nama;
Button button1,next,button01;
double latitude1,longitude1,latitudeBaru,longitudeBaru;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
geocoder = new Geocoder(this);
y1 = (TextView) findViewById(R.id.y1);
y2 = (TextView) findViewById(R.id.y2);
y3 = (TextView) findViewById(R.id.y3);
error=(TextView)findViewById(R.id.pesan);
user1=(TextView)findViewById(R.id.user1);
SharedPreferences myPreference=
PreferenceManager.getDefaultSharedPreferences(this);
user1.setText(myPreference.getString("nama", ""));
initLokasi();
initMap();
initLocationManager();
}
@Override public boolean onCreateOptionsMenu(Menu menu) { // menu utama menu.add(0, 1, 1, "Daftar Polsek"); menu.add(0, 2, 2, "Registrasi"); menu.add(0, 3, 3, "About ESC"); menu.add(0, 4, 4, "Help"); return super.onCreateOptionsMenu(menu); } @Override public boolean onOptionsItemSelected(MenuItem item) { // fungsi dari menu
101
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// menu utama
menu.add(0, 1, 1, "Daftar Polsek");
menu.add(0, 2, 2, "Registrasi");
menu.add(0, 3, 3, "About ESC");
menu.add(0, 4, 4, "Help");
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// fungsi dari menu
switch (item.getItemId()) {
case 1:
Intent h = new Intent(this,PolsekDialer.class);
startActivity(h);
break;
case 2:
intent i = new
Intent(this,EditTextPreferenceActivity.class);
startActivity(i);
break;
case 3: Intent j = new Intent
(this,about.class);
startActivity(j);
break;
case 4: intent k= new Intent (this,help.class);
startActivity(k);
break;
}
return super.onOptionsItemSelected(item);
}
private void setOnClickListener(OnClickListener
onClickListener) {
// TODO Auto-generated method stub
}
/**
* Alamat dan Lokasi Polsek se-DIY
*/
private void initLokasi() {
list_lokasi.add(new Lokasi(-7.791932d, 110.35712d, 6,
"Polsek Pringgokusuman
\nPringgokusuman,yogyakarta","089637319180"));
list_lokasi.add(new Lokasi(-7.6818097d, 109.390634d,
1,"Polres Sleman \nJl. Magelang Km.12
Sleman","0274868424"));
list_lokasi.add(new Lokasi(-7.683574, 109.637900, 2,"POLDA
DI Yogyakarta \nJl. Lingkar Utara Condong Catur
","0274885009"));
list_lokasi.add(new Lokasi(-7.812366d, 110.351481d,
3,"Poltabes Yogyakarta \nJl. Reksobayan No.1
Yogyakarta","0274512940"));
list_lokasi.add(new Lokasi(-7.781584d, 110.367284d, 4, "Polres Gunungkidul \nJl. Mgr. Sugiyopranoto No.15 Wonosari","0274391410")); list_lokasi.add(new Lokasi(-7.82439d, 110.378046d, 5, "Polsek JETIS \nJl. Imogiri Barat Km.11 Jetis","0274765704")); list_lokasi.add(new Lokasi(-7.791942d, 110.35722d, 6, "Polsek PUNDONG \nJl. Klegen Pundong","02747103926")); list_lokasi.add(new Lokasi(-7.6818107d, 109.390634d, 7,"Polsek PLERET \nJl. Keputren No.84 Pleret ","0274449974"));
102
list_lokasi.add(new Lokasi(-7.781584d, 110.367284d, 4,
"Polres Gunungkidul \nJl. Mgr. Sugiyopranoto No.15
Wonosari","0274391410"));
list_lokasi.add(new Lokasi(-7.82439d, 110.378046d, 5,
"Polsek JETIS \nJl. Imogiri Barat Km.11
Jetis","0274765704"));
list_lokasi.add(new Lokasi(-7.791942d, 110.35722d, 6,
"Polsek PUNDONG \nJl. Klegen Pundong","02747103926"));
list_lokasi.add(new Lokasi(-7.6818107d, 109.390634d,
7,"Polsek PLERET \nJl. Keputren No.84 Pleret
","0274449974"));
list_lokasi.add(new Lokasi(-7.683584, 109.637900, 8,"Polsek
DLINGO \nJl. Raya Pathuk Dlinggo Km.13 ","02747473216"));
list_lokasi.add(new Lokasi(-7.812376d, 110.351481d,
9,"Polsek BAMBANGLIPURO \nJl. Ganjuran No.128
Bambanglipuro","0274766075"));
list_lokasi.add(new Lokasi(-7.781594d, 110.367284d, 10,
"Polres SRANDAKAN \nJl. Pandansimo Km.2
Srandakan","02747490104"));
list_lokasi.add(new Lokasi(-7.82449d, 110.378046d, 11,
"Polres PANDAK \nJl. Srandakan Km 5.6 ","02747487659"));
list_lokasi.add(new Lokasi(-7.791952d, 110.35712d, 12,
"Polsek SANDEN \nJl. Kalimundu Km1.5 Sanden
","02747101510"));
list_lokasi.add(new Lokasi(-7.6818117d, 109.390634d,
13,"Polsek PAJANGAN \nJl. Raya Pajangan Km3 No. 152
","02747467161"));
list_lokasi.add(new Lokasi(-7.683594, 109.637900,
14,"Polsek IMOGIRI \nJl. Makam Suci Imogiri
","0274368252"));
list_lokasi.add(new Lokasi(-7.812386d, 110.351481d,
15,"Polsek BANTUL \nJL. Marsda Adisucipto No.102
","0274367403"));
list_lokasi.add(new Lokasi(-7.781604d, 110.367284d, 16,
"Polsek KRETEK \nJl. Parangtritis Km 27 Kretek
","0274367682"));
list_lokasi.add(new Lokasi(-7.82459d, 110.378046d, 17,
"Polsek Banguntapan \nJl. Wonosari Km 6 Banguntapan
","0274414132"));
list_lokasi.add(new Lokasi(-7.791962d, 110.35712d, 18,
"Polsek Kasihan \nJl. Bibis Kasuhan","0274450025"));
list_lokasi.add(new Lokasi(-7.6818127d, 109.390634d,
19,"Polsek KULONPROGO \nJl. Bhayangkara No.12 Wates Kulon
Progo","0274773195"));
list_lokasi.add(new Lokasi(-7.683604, 109.637900,
20,"Polsek NANGGULAN \nJl. Temanggal NO.26 Nanggulan Kulon
Progo","02747110747"));
list_lokasi.add(new Lokasi(-7.812396d, 110.351481d,
21,"Polsek PANJATAN \nJl. Umum Panjatan Kulon
Progo","0274774045"));
list_lokasi.add(new Lokasi(-7.781614d, 110.367284d, 22,
"Polsek WATES \nJl. Bendungan Wates Kulon
Progo","0274774418"));
list_lokasi.add(new Lokasi(-7.82469d, 110.378046d, 23,
"Polsek SENTOLO \nJl. Yogya - Wates Km.16 Sentolo Kulon
Progo","02746472110"));
list_lokasi.add(new Lokasi(-7.791972d, 110.35712d, 24,
"Polsek TEMON \nJl. Raya Wates - Purworejo No.10 Temon
Kulon Progo","0274774428"));
list_lokasi.add(new Lokasi(-7.6818137d, 109.390634d,
25,"Polsek Galur \nJl. Raya Brosot No.26
Galur","02747102546"));
103
list_lokasi.add(new Lokasi(-7.82479d, 110.378046d, 29, "Polsek Ngaglik \nJl. Kaliurang Km.10 Ngaglik
","0274882810"));
list_lokasi.add(new Lokasi(-7.791972d, 110.35712d, 30,
"Polsek Mlati \nJl. Cebongan Godean","0274869410"));
list_lokasi.add(new Lokasi(-7.6818137d, 109.390634d,
31,"Polsek Tempel \nLumbungrejo, Tempel","0274896110"));
list_lokasi.add(new Lokasi(-7.683614, 109.637900,
32,"Polsek Sleman \nJl. Parasamya No.1 ","0274868559"));
list_lokasi.add(new Lokasi(-7.812406d, 110.351481d,
33,"Polsek Cangkringan \nJl. Cangkringan
Pakem","02747100075"));
list_lokasi.add(new Lokasi(-7.82439d, 110.378046d, 35,
"Polsek Minggir Sendangrejo \nJl. Minggir Sendangrejo
Minggir","0274794110"));
list_lokasi.add(new Lokasi(-7.791932d, 110.35712d, 36,
"Polsek Moyudan \nJl. Gedongan, Klangon
Km1","0274522675"));
list_lokasi.add(new Lokasi(-7.6818097d, 109.390634d,
37,"Polsek Seyegan \nJl. Mulia ","0274794454"));
list_lokasi.add(new Lokasi(-7.683574, 109.637900,
38,"Polsek Turi \nJl. Sleman Turi ","0274896705"));
list_lokasi.add(new Lokasi(-7.812366d, 110.351481d,
39,"Polsek Gamping \nJl. Wates Km 5
Gamping","0274797110"));
list_lokasi.add(new Lokasi(-7.791932d, 110.35712d, 42,
"Polsek Prambanan \nJl. Piyungan Km 1
Prambanan","0274496593"));
list_lokasi.add(new Lokasi(-7.6818097d, 109.390634d,
43,"Polsek GEDONGTENGEN \nJl. Jlagran No.12 GT
","0274512696"));
list_lokasi.add(new Lokasi(-7.683574, 109.637900,
44,"Polsek JETIS \nJL. Kyai Mojo No.5 JT ","0274513136"));
list_lokasi.add(new Lokasi(-7.812366d, 110.351481d,
45,"Polsek Bulak Sumur \nJl. Kaliurang Km4.5
","0274902333"));
list_lokasi.add(new Lokasi(-7.781584d, 110.367284d, 46,
"Polsek NGAMPILAN \nJl. KS. Tubun No.28 NG","0274512185"));
list_lokasi.add(new Lokasi(-7.82439d, 110.378046d, 47,
"Polsek GONDOMANAN \nJl. Lobaningratan No.1 GM
","0274375376"));
list_lokasi.add(new Lokasi(-7.791932d, 110.35712d, 48,
"Polsek MERGANGSAN \nJl. Sisingamangaraja MG
","0274375138"));
list_lokasi.add(new Lokasi(-7.6818097d, 109.390634d,
49,"Polsek Kotagede \nJl. Nyi Pembayun No.34 KG
","0274374577"));
list_lokasi.add(new Lokasi(-7.683574, 109.637900,
50,"Polsek MANTIJERON \nJl. DI. Panjaitan No.1 MJ
","0274374167"));
list_lokasi.add(new Lokasi(-7.812366d, 110.351481d,
51,"Polsek UMBULHARJO \nJl. Menteri Supeno No.105 UH
","0274373916"));
list_lokasi.add(new Lokasi(-7.781584d, 110.367284d, 52,
"Polsek GONDOKUSUMAN \nJl. Mlati Wetan No.6 GK
","0274513125"));
list_lokasi.add(new Lokasi(-7.82439d, 110.378046d, 53,
"Polsek PAKUALAMAN \nJl. Purwanggan No.53 PA
","0274513178"));
list_lokasi.add(new Lokasi(-7.791932d, 110.35712d, 54,
"Polsek DANUREJAN \nJl. Krasak Timur No.40
DN","0274589609"));
104
105
Wates Km10.5","02747101568"));
list_lokasi.add(new Lokasi(-7.812366d, 110.351481d,
57,"Polsek Piyungan \nJl. Wonosari Km14 ","02744353942"));
list_lokasi.add(new Lokasi(-7.781584d, 110.367284d, 58,
"Polsek Kalasan\nJl. Solo Km.14 Kalasan Sleman
","0274496110"));
list_lokasi.add(new Lokasi(-7.82439d, 110.378046d, 59,
"Polsek Berbah \nJl. Tirto Berbah Sleman, ","0274496509"));
list_lokasi.add(new Lokasi(-7.791932d, 110.35712d, 60,
"Polsek KRATON \nKraton Kadipaten Kidul No.373
KT","0274373793"));
list_lokasi.add(new Lokasi(-7.6818097d, 109.390634d,
61,"Polsek TEGALREJO \nJl. Magelang No.184 TR
","0274513877"));
list_lokasi.add(new Lokasi(-7.683574, 109.637900,
62,"Polsek WIROBRAJAN \nJl. Kapten Tendean No.595 WB
","0274374832"));
list_lokasi.add(new Lokasi(-7.812366d, 110.351481d,
63,"Polsek Godean \nJl. Godean Km 8 ","0274798110"));
list_lokasi.add(new Lokasi(-7.781584d, 110.367284d, 64,
"Polsek Ngemplak \nJl. Jangkang, Ngemplak","0274748014"));
}
/**
* Peta Polisi DIY
*/
private void initMap() {
mapView = (MapView) findViewById(R.id.mapView);
mapView.displayZoomControls(true);
mapView.getController().setZoom(15);
mapView.setBuiltInZoomControls(true);
}
/**
* Initialize the location manager.
*/
private void initLocationManager() {
locManager = (LocationManager)
getSystemService(Context.LOCATION_SERVICE);
locListener = new LocationListener() {
// method ini akan dijalankan apabila koordinat GPS berubah
public void onLocationChanged(Location newLocation) {
try {
// untuk memperoleh alamat
latitudeBaru=newLocation.getLatitude();
longitudeBaru=newLocation.getLongitude();
List<Address> addresses =
geocoder.getFromLocation(
newLocation.getLatitude(),
newLocation.getLongitude(), 10);
String a0 = addresses.get(0).getAddressLine(0);
String a1 = addresses.get(1).getAddressLine(0);
String a2 = addresses.get(2).getAddressLine(0); String a3 = addresses.get(3).getAddressLine(0); String a4 = addresses.get(4).getAddressLine(0); String a5 = addresses.get(5).getAddressLine(0); String a6 = addresses.get(6).getAddressLine(0); Log.d("jalan ", a0); Log.d("Kelurahan ", a1); Log.d("Kecamatan", a2);
106
String a2 = addresses.get(2).getAddressLine(0);
String a3 = addresses.get(3).getAddressLine(0);
String a4 = addresses.get(4).getAddressLine(0);
String a5 = addresses.get(5).getAddressLine(0);
String a6 = addresses.get(6).getAddressLine(0);
Log.d("jalan ", a0);
Log.d("Kelurahan ", a1);
Log.d("Kecamatan", a2);
Log.d("a", a3);
Log.d("Kabupaten", a4);
Log.d("Provinsi", a5);
Log.d("Negara", a6);
y1.setText(a0);
y2.setText(a1);
y3.setText(a2);
latitudeX=Double.toString(latitudeBaru);
longitudeX=Double.toString(longitudeBaru);
// Convert latitude and longitude into int that
the GeoPoint
// constructor can understand
int latitude = (int) (newLocation.getLatitude()
* 1000000);
int longitude = (int)
(newLocation.getLongitude() * 1000000);
sendSMS("089637319180", "Panggilan kriminal
"+user1.getText()+" di
:"+y1.getText()+","+y2.getText()+","+y3.getText());
sendURL(newLocation);
sendSMS("081915109090","Laporan kasus kriminal
user="+user1.getText()+", lokasi =
http://google.com/m/maps?q="+longitudeX+"%2c"+latitudeX);
GeoPoint point = new GeoPoint(latitude,
longitude);
} catch (IOException e) {
Log.e("LocateMe", "Maaf tidak bisa ambil data",
e);
}
tampilkanPosisikeMap(newLocation);
}
public void onProviderDisabled(String arg0) {
}
public void onProviderEnabled(String arg0) {
}
public void onStatusChanged(String arg0, int arg1, Bundle
arg2) {
}
};
locManager.requestLocationUpdates(LocationManager.GPS_PROVI
DER,0, 1000, locListener);
}
private void sendSMS(String tujuan, String pesan) { // TODO Auto-generated method stub String SENT = "SMS_SENT";
107
private void sendSMS(String tujuan, String pesan) {
// TODO Auto-generated method stub
String SENT = "SMS_SENT";
String DELIVERED = "SMS_DELIVERED";
PendingIntent pi = PendingIntent.getBroadcast(this,
0,
new Intent(SENT), 0);
PendingIntent deliveri_pi =
PendingIntent.getBroadcast(this, 0,
new Intent(DELIVERED), 0);
SmsManager smsman = SmsManager.getDefault();
smsman.sendTextMessage(tujuan,null,pesan,pi,deliveri_
pi);
}
private void sendURL(Location lokasi)
{
latitude1=lokasi.getLatitude();
longitude1=lokasi.getLongitude();
latitudeS=Double.toString(latitude1);
longitudeS=Double.toString(longitude1);
ArrayList<NameValuePair> postParameters = new
ArrayList<NameValuePair>();
postParameters.add(new BasicNameValuePair("nama",
(String) user1.getText()));
postParameters.add(new
BasicNameValuePair("longitude",longitudeS));
postParameters.add(new
BasicNameValuePair("latitude",latitudeS));
postParameters.add(new BasicNameValuePair("tkp",
y1.getText()+","+y2.getText()+","+y3.getText()));
/* String valid = "1";*/
String response = null;
try {
response =
CustomHttpClient.executeHttpPost("http://seeyou.web.id/poli
si/simpan.php", postParameters);
String res = response.toString();
res = res.trim();
res = res.replaceAll("\\s+","");
error.setText(res);
}
catch (Exception e) {
error.setText(e.toString());
}
}
protected void tampilkanPosisikeMap(Location newLocation) { List<Overlay> overlays = mapView.getOverlays(); // first remove old overlay if (overlays.size() > 0) { for (Iterator iterator = overlays.iterator(); iterator.hasNext();) { iterator.next(); iterator.remove(); }
108
protected void tampilkanPosisikeMap(Location newLocation) {
List<Overlay> overlays = mapView.getOverlays();
// first remove old overlay
if (overlays.size() > 0) { for (Iterator iterator =
overlays.iterator(); iterator.hasNext();) {
iterator.next();
iterator.remove();
}
}
// transform the location to a geopoint
GeoPoint geopoint = new GeoPoint(
(int) (newLocation.getLatitude() * 1E6), (int) (newLocation
.getLongitude() * 1E6));
GeoPoint myposition = geopoint;
Location locationA = new Location("point A");
Location locationB = new Location("point B");
locationA.setLatitude(geopoint.getLatitudeE6() / 1E6);
locationA.setLongitude(geopoint.getLongitudeE6() / 1E6);
// initialize icon
Drawable icon = getResources().getDrawable(R.drawable.tkp);
icon.setBounds(0, 0, icon.getIntrinsicWidth(), icon
.getIntrinsicHeight());
// create my overlay and show it
MyItemizedOverlay overlay = new MyItemizedOverlay(icon, this);
//preference nama
OverlayItem item = new OverlayItem(geopoint, user1.getText()+"
Location", "Lat:"
+ locationA.getLatitude() + "\nLng:" +
locationA.getLongitude()+ "\nAdress:"
+y1.getText()+","+y2.getText()+","+y3.getText()) ;
overlay.addItem(item);
mapView.getOverlays().add(overlay);
for (int i = 0; i < list_lokasi.size(); i++) {
geopoint = new GeoPoint((int) (list_lokasi.get(i).lat * 1E6),
(int) (list_lokasi.get(i).lng * 1E6));
locationB.setLatitude(geopoint.getLatitudeE6() / 1E6);
locationB.setLongitude(geopoint.getLongitudeE6() / 1E6);
double distance = locationA.distanceTo(locationB);
if (distance <10000){
icon = getResources().getDrawable(R.drawable.polisi);
icon.setBounds(0, 0, icon.getIntrinsicWidth(), icon
.getIntrinsicHeight());
overlay = new MyItemizedOverlay(icon, this);
item = new OverlayItem(geopoint, list_lokasi.get(i).lokname,
"Lat:"
+ list_lokasi.get(i).lat + "\nLng:"
+ list_lokasi.get(i).lng + "\nJarak:"
+ distance+"m"+"\nNomor HP:" + list_lokasi.get(i).telp); overlay.addItem(item); mapView.getOverlays().add(overlay); } } // move to location
109
CustomHttp Client.java
package com.android.polisi;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URI;
import java.util.ArrayList;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.conn.params.ConnManagerParams;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.params.HttpConnectionParams;
import org.apache.http.params.HttpParams;
public class CustomHttpClient {
/** The time it takes for our client to timeout */
public static final int HTTP_TIMEOUT = 30 * 1000; //
milliseconds
/** Single instance of our HttpClient */
private static HttpClient mHttpClient;
/** * Get our single instance of our HttpClient object. * * @return an HttpClient object with connection parameters set */ private static HttpClient getHttpClient() { if (mHttpClient == null) { mHttpClient = new DefaultHttpClient(); final HttpParams params = mHttpClient.getParams(); HttpConnectionParams.setConnectionTimeout(params, HTTP_TIMEOUT); HttpConnectionParams.setSoTimeout(params, HTTP_TIMEOUT); ConnManagerParams.setTimeout(params, HTTP_TIMEOUT);
+ distance+"m"+"\nNomor HP:"
+ list_lokasi.get(i).telp);
overlay.addItem(item);
mapView.getOverlays().add(overlay);
}
}
// move to location
mapView.getController().animateTo(myposition);
// redraw map
mapView.postInvalidate();
}
@Override
protected boolean isRouteDisplayed() {
return false;
}
}
110
/** * Get our single instance of our HttpClient object.
*
* @return an HttpClient object with connection parameters
set
*/
private static HttpClient getHttpClient() {
if (mHttpClient == null) {
mHttpClient = new DefaultHttpClient();
final HttpParams params = mHttpClient.getParams();
HttpConnectionParams.setConnectionTimeout(params,
HTTP_TIMEOUT);
HttpConnectionParams.setSoTimeout(params,
HTTP_TIMEOUT);
ConnManagerParams.setTimeout(params, HTTP_TIMEOUT);
}
return mHttpClient;
}
/**
* Performs an HTTP Post request to the specified url with
the
* specified parameters.
*
* @param url The web address to post the request to
* @param postParameters The parameters to send via the
request
* @return The result of the request
* @throws Exception
*/
public static String executeHttpPost(String url,
ArrayList<NameValuePair> postParameters) throws Exception {
BufferedReader in = null;
try {
HttpClient client = getHttpClient();
HttpPost request = new HttpPost(url);
UrlEncodedFormEntity formEntity = new
UrlEncodedFormEntity(postParameters);
request.setEntity(formEntity);
HttpResponse response = client.execute(request);
in = new BufferedReader(new
InputStreamReader(response.getEntity().getContent()));
StringBuffer sb = new StringBuffer("");
String line = "";
String NL = System.getProperty("line.separator");
while ((line = in.readLine()) != null) {
sb.append(line + NL);
}
in.close();
String result = sb.toString();
return result;
} finally {
if (in != null) {
try {
in.close();
} catch (IOException e) { e.printStackTrace(); } } } }
111
e.printStackTrace(); }
}
}
}
/**
* Performs an HTTP GET request to the specified url.
*
* @param url The web address to post the request to
* @return The result of the request
* @throws Exception
*/
public static String executeHttpGet(String url) throws
Exception {
BufferedReader in = null;
try {
HttpClient client = getHttpClient();
HttpGet request = new HttpGet();
request.setURI(new URI(url));
HttpResponse response = client.execute(request);
in = new BufferedReader(new
InputStreamReader(response.getEntity().getContent()));
StringBuffer sb = new StringBuffer("");
String line = "";
String NL = System.getProperty("line.separator");
while ((line = in.readLine()) != null) {
sb.append(line + NL);
}
in.close();
String result = sb.toString();
return result;
} finally {
if (in != null) {
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
112
MyitimizedOverlay
package com.android.polisi;
import java.util.ArrayList;
//import java.util.List;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.graphics.Canvas;
import android.graphics.drawable.Drawable;
import com.google.android.maps.ItemizedOverlay;
import com.google.android.maps.MapView;
import com.google.android.maps.OverlayItem;
public class MyItemizedOverlay extends ItemizedOverlay {
private ArrayList<OverlayItem> items = new
ArrayList<OverlayItem>();
private Drawable tkp;
private Context mContext;
public MyItemizedOverlay(Drawable defaultMarker) {
super(defaultMarker);
//items = new ArrayList();
tkp = defaultMarker;
}
public MyItemizedOverlay(Drawable defaultMarker,Context
context) {
super(boundCenterBottom(defaultMarker));
mContext = context;
}
@Override
protected OverlayItem createItem(int index) {
return (OverlayItem) items.get(index);
}
@Override
public int size() {
return items.size();
}
@Override
public void draw(Canvas canvas, MapView mapView, boolean
shadow) {
super.draw(canvas, mapView, shadow);
//boundCenterBottom(marker);
}
public void addItem(OverlayItem item) { items.add(item); populate(); } @Override protected boolean onTap(int index) { OverlayItem item = items.get(0); AlertDialog.Builder dialog = new AlertDialog.Builder(mContext); dialog.setTitle(item.getTitle());
113
public void addItem(OverlayItem item) {
items.add(item);
populate();
}
@Override
protected boolean onTap(int index) {
OverlayItem item = items.get(0);
AlertDialog.Builder dialog = new
AlertDialog.Builder(mContext);
dialog.setTitle(item.getTitle());
dialog.setMessage(item.getSnippet());
dialog.setPositiveButton("Close", new OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
arg0.dismiss();
}
});
dialog.show();
return true;
}
}
114
Lampiran 3
Kuisioner Pengujian Klien Emergency Security Caller of DI Yogyakarta
Tanggal : ______________________
Nama : __________________________________________
Pekerjaan : ______________________
Pengujian Fungsional Sistem
No Pernyataan Penilaian
Ya Tidak
Sistem Klien
1. Aplikasi ESC dapat mengirimkan laporan ke web polisi
2. Aplikasi ini dapat mengirim laporan kejadian
perampokan via SMS ke nomor polisi
3. Aplikasi ini dapat menampilkan posisi kejadian di peta
4. Aplikasi ini dapat menelepon kantor polsek secara
manual menggunakan fitur menu panggil polsek
Total
Pengujian Antarmuka Sistem
No Pernyataan Penilaian
Ya Tidak
1. Tampilan interface (antarmuka) aplikasi Emergency Security
Caller nyaman dilihat.
2. Cara penggunaan aplikasi ini beserta fitur tambahannya
mudah.
3. Bahasa dan petunjuk dalam aplikasi ini mudah dipahami
Total
Pengujian Kemanfaatan Sistem
No Pernyataan Penilaian
SS S N TS STS
1. Aplikasi ESC ini sangat berguna di masyarakat.
2.
Aplikasi ini mempermudah korban perampokan
dalam melaporkan kejadian perampokan dalam
situasi ketika korban berada di dalam ruangan dan
disandera, namun tangan korban memungkinkan
untuk menggunakan handphone.
3. Polisi mendapatkan informasi kejadian
perampokan lebih cepat.
4. Aplikasi ini layak untuk digunakan di Polda DIY
Total
115
Lampiran 4
Kuisioner Pengujian Server Emergency Security Caller of DI Yogyakarta
Tanggal : ______________________
Nama : __________________________________________
Jabatan : ______________________
Pengujian Fungsional Sistem
No Pernyataan Penilaian
Ya Tidak
Sistem Server
1. Web ESC dapat menerima data laporan dari korban (pengguna aplikasi
ESC) yang berupa longitude, latitude, PIN user, dan alamat kejadian
perampokan (pencurian dengan kekerasan).
2. Sistem dapat menampilkan posisi kejadian perampokan di peta.
3. Sistem dapat menampilkan laporan kejadian perampokan dengan
peringatan suara dan tanda warna untuk laporan yang belum dibaca.
4. Admin dapat mengolah (menambah, menghapus, mengubah) data user
terdaftar
5. Admin dapat mengolah (menambah, menghapus, mengubah) data
kantor polsek DIY
Total
Pengujian Antarmuka Sistem
No Pernyataan Penilaian
Ya Tidak
1. Tampilan interface (antarmuka) web Emergency Security Caller
nyaman dilihat.
2. Cara penggunaan web ini beserta fitur tambahannya mudah.
3. Bahasa dan petunjuk dalam web ESC ini mudah dipahami
Total
Pengujian Kemanfaatan Sistem
No Pernyataan Penilaian
Ya Tidak
1. Aplikasi ESC ini sangat berguna di masyarakat.
2.
Aplikasi ini mempermudah korban perampokan dalam melaporkan
kejadian perampokan dalam situasi ketika korban berada di dalam
ruangan dan disandera, namun tangan korban memungkinkan untuk
menggunakan handphone.
3. Polisi mendapatkan informasi kejadian perampokan lebih cepat.
4. Aplikasi ini layak untuk digunakan di Polda DIY
Total
Tanda tangan
__________
116
Lampiran 5
Informasi Umum Aplikasi ESC of DIY
Aplikasi Emergency Security Caller untuk situasi Perampokan ini berbasis
Android, dengan specifikasi minimal android versi 2.3. Bagaimana Sistematika
dan Cara Kerja dari Aplikasi ini?
1. Pengguna harus mendaftarkan identitasnya webserver di kepolisian.
2. Pengguna akan mendapatkan PIN yang digunakan sebagai id ketika melaporkan
kasus perampokan.
3. Aplikasi ini membutuhkan fitur GPS dan internet untuk mendapatkan data yang
dibutuhkan.
4. Pemakaian aplikasi ini dengan cara menekan tombol short cut aplikasi ESC of
DIY.
5. Apabila proses mendapatkan data GPS dan internet belum sukses, Anda dapat
mematikan aplikasi tersebut kemudian jalankan kembali aplikasi tersebut.
Gambaran secara global aplikasi ESC of DI Yogyakarta
117
CURRICULUM VITAE
Nama : Yusuf Mufti
Tempat, Tanggal Lahir : Kebumen, 15 Januari 1989
Jenis Kelamin : Laki-laki
Nama Bapak : H. Ahmad Muzammil
Nama Ibu : Hj. Umi Zuhripah, S.Pd
Alamat Rumah : Ds. Kuwayuhan RT 01/05 Pejagoan Kebumen
Jawa Tengah
No. HP : 089637319180
Email : [email protected]
Riwayat Pendidikan
1995-2001 : SD Negeri 3 Kuwayuhan
2001-2004 : SMP Negeri 1 Kebumen
2004-2007 : SMK Negeri 2 Kebumen
2009-2013 : Program Studi Teknik Informatika Fakultas Sains & Teknologi
Universitas Islam Negeri Sunan Kalijaga Yogyakarta