Perancangan Aplikasi
Pemantau Lokasi Anak dan
Widget
Panic
Button
dengan
Fused Location Provider API
dan
Cloud
Messaging
pada Android
Platform
Artikel Ilmiah
Diajukan kepada Fakultas Teknologi Informasi
untuk memperoleh Gelar Sarjana Komputer
Peneliti:
Ricky Oktavianus Lazuardy (672011050) Hendro Steven Tampake, S.Kom., M.Cs.
Program Studi Teknik Informatika
Fakultas Teknologi Informasi
Universitas Kristen Satya Wacana
Perancangan Aplikasi
Pemantau Lokasi Anak dan
Widget
Panic
Button
dengan
Fused Location Provider API
dan
Cloud
Messaging
pada Android
Platform
1)Ricky Oktavianus Lazuardy, 2)Hendro Steven Tampake Fakultas Teknologi Informasi
Universitas Kristen Satya Wacana Jl. Diponegoro 52-60, Salatiga 50711, Indonesia Email: 1)dragonyui92@gmail.com, 2) hendro.steven@gmail.com
Abstract
Monitoring the location of children by parents is very important because the neighbourhood and the lack of parental supervision is a factor the juvenile delinquency. Therefore there is a need for applications that can help working parent in monitoring the location of children. Applications built by using Fused Location Provider API that can use the best provider to get the location of the child device periodically. The location is then sent using the GCM child to have a parent device. Further, the application also features a panic button widget that can be activated when the child feels in danger. parents find the application is helpful for monitoring their child.
Keyword: Child Tracking, GPS, Panic Button, Android, Location API, Android
Abstrak
Pemantauan lokasi anak oleh orang tua merupakan hal yang sangat penting karena lingkungan dan kurangnya pengawasan dari orang tua merupakan faktor timbulnya kenakalan remaja. Oleh karena itu dibutuhkan sebuah aplikasi untuk membantu orang tua yang berkerja dalam membantu pemantauan lokasi anak. Aplikasi dibangun dengan memanfaatkan Fused Location Provider API yang dapat menggunakan provider terbaik untuk mendapatkan lokasi device anak secara berkala. Lokasi kemudian anak dikirim dengan menggunakan GCM ke device miliki orang tua. Selain itu aplikasi juga dilengkapi widget panic button yang dapat diaktifkan ketika anak merasa dalam bahaya. Dengan adanya aplikasi ini orang tua merasa terbantu untuk melakukan pemantauan terhadap anaknya.
Kata Kunci : Pemantauan Anak, GPS, Tombol Panik, Android, Location API
______________________
1) Mahasiswa Fakultas Teknologi Informasi Jurusan Teknik Informatika, Universitas Kristen Satya
Wacana, Salatiga.
1 1. Pendahuluan
Kurangnya pengawasan oleh orang tua pada lingkungan pergaulan anak dapat berakibat fatal. Santrock dalam bukunya yang berjudul Adolescence
menuliskan bahwa kurangnya pengawasan orang tua dan pengaruh buruk lingkungan merupakan faktor yang menyebabkan kenakalan anak [1]. Oleh karena itu, orang tua harus memantau dan menyeleksi tempat pergaulan anak. Akan tetapi, orang tua yang bekerja kurang memiliki waktu dalam memantau anaknya seperti yang di tulis di situs swa.co.id menyatakan bahwa, empat dari 10 orang tua mengaku lebih mudah mengatur jadwal pekerjaan di kantor dibandingkan dengan mengatur jadwal untuk berkegiatan dengan anak-anak mereka [2]. Selain itu, bahaya kejahatan penculikan anak semakin tahun semakin meningkat. Ketua Komnas PA, Arist Merdeka Sirait mengatakan Jumlah penculikan yang terjadi di tahun 2011 ialah, sekitar 121 kasus. Pada 2012 angkanya meningkat, menjadi 182 kasus di jabodetabek saja [3]. Untuk itu dibutuhkan sebuah alternatif dalam mengawasi pergaulan anak dan sarana untuk mengantisipasi penculikan anak yang mungkin terjadi.
Android merupakan platformsmartphone yang paling populer saat ini. Di seluruh dunia saat ini terdapat 1 milyar device android melebihi jumlah iphone , blackberry dan sebagainya, selain itu Indonesia juga terdaftar sebagai Negara pengguna smartphone peringkat 5 di dunia [4]. Kepopuleran android tersebut dapat kita manfaatkan sebagai alternatif pemantauan anak. Salah satu fitur dari android yang dapat dimanfaatkan adalah Fused Location Provider API, fitur ini dapat mendeteksi lokasi device anak yang kemudian dapat dikirim dengan layanan
Google Cloud Messaging yang dapat mengirimkan pesan berisi lokasi device yang dipantau ke device milik orang tua.
Untuk menyelesaikan masalah tersebut, maka dapat dibangun sebuah aplikasi mobileplatform android yang dapat mengecek lokasi anak secara berkala. Aplikasi yang dibangun juga dapat memberikan notifikasi kepada orang tua apabila anak keluar dari wilayah yang di anggap aman oleh orang tua. Aplikasi yang dibangun ada 2, Satu aplikasi untuk orang tua untuk melihat lokasi anak dan aplikasi disisi anak yang berjalan dibelakang layar mengirimkan data lokasi, dan dilengkapi dengan fitur panicbutton untuk keadaan darurat.
Berdasarkan uraian tersebut, maka rumusan masalah dalam penelitian ini adalah bagaimana merancang dan membangun sebuah sistem yang dapat membantu orang tua dalam melakukan pemantauan anak dengan aplikasi berbasis Android dengan menggunakan teknologi Fused Location Provider API dan
GoogleCloudMessaging padaAndroid platform.
2. Tinjauan Pustaka
2
yang akan mengirimkan lokasi anak berdasarkan sms yang di kirim dari
handphone milik orang tua dan akan mengirimkan link google map berisi lokasi anak melalui sms. Berdasarkan penelitian, aplikasi tersebut dapat mendapatkan lokasi anak tanpa anak mengetahui [5]. Melalui hasil penelitian ini dapat diambil kesimpulan bahwa system pemantauan lokasi anak yang dibangun harus dapat menjadi server yang mengirimkan lokasi anak tanpa diketahui oleh anak.
Pada penelitian yang berjudul Rancang Bangun Aplikasi Pemantauan Posisi Anggota Keluarga Berbasis Android yang membahas tentang pembangunan aplikasi untuk melacak posisi anggota keluarga pada smartphone berbasis android. Berdasarkan penelitian, aplikasi tersebut dapat mendapatkan lokasi dari
device anggota keluarga lainnya, melakukan photo sharing, dan messenger antar anggota keluarga. Penelitian di nilai berhasil dan mendapat respon yang positif dari para respondennya [6]. Melalui hasil penelitian ini dapat diambil kesimpulan bahwa keluarga dapat saling mengirimkan lokasi device melalui GPS yang kemudian ditampilkan menggunakan Google Maps API.
Family Location Tracking merupakan aplikasi pada Android platform
yang yang memberikan layanan lokasi anak secara real-time dan notifikasi ketika anak masuk atau keluar dari safe-zone [7]. Perbedaan aplikasi yang dirancang dengan aplikasi ini adalah adanya fitur pengiriman lokasi berkala yang dikirimkan oleh aplikasi pada device anak sehingga orang tua tidak harus meluangkan waktu untuk melakukan pengecekan lokasi anak secara berkala, orang tua hanya perlu melihat history lokasi anak yang telah tersimpan di aplikasi ketika memiliki waktu.
Berdasarkan penelitian-penelitian yang telah dilakukan terkait dengan pemantauan lokasi anak dan aplikasi yang serupa, maka dilakukan penelitian yang membahas tentang perancangan dan pengembangan sistem yang dapat membantu orang tua dalam melakukan pemantauan terhadap anak pada Android platform.
Aplikasi dibangun menggunakan teknologi Fused Location Provider dan Google Cloud Messaging (GCM). Sistem terbagi menjadi 2 yaitu aplikasi ClientApp pada
device anak dan ParentApp pada device orang tua. Aplikasi ClientApp akan berfungsi sebagai server yang akan secara berkala mengirimkan lokasi yang didapat melalui Fused Location Provider melalui GCM ke device orang tua yang akan diterima oleh aplikasi ParentApp yang berfungsi sebagai receiverGCM yang akan menyimpan lokasi yang dikirimkan menggunakan Sugar ORM dan dapat menampilkan history lokasi yang dikirimkan menggunakan Google Maps API. Selain itu aplikasi ClientApp juga dilengkapi dengan widget panic button yang dapat mengirimkan pesan melalui GCM dan juga memberikan update lokasi secara real-time yang akan diterima oleh aplikasi ParentApp dengan memutar suara yang menandakan bahaya diikuti dengan menampilkan lokasi device anak yang diterima.
Fused Location Provider adalah library yang terdapat didalam googleplay services yang secara pintar mengatur teknologi lokasi yang memberikan lokasi terbaik sesuai kebutuhan user [8]. Aplikasi ClientApp mendeteksi lokasi menggunakan Fused Location Provider dengan bantuan library smart-location
3
secara berkala pada update lokasi berkala dan NAVIGATION yang akan mendeteksi lokasi dengan tingkat akurasi high dengan jarak minimum 0 meter dan interfal 0.5 detik pada saat panic button diaktifkan. Lokasi yang dideteksi didapatkan dalam bentuk objek location yang berisi latitude yang merupakan garis lintang, longitude yang merupakan garis bujur, dan accuracy yang menandakan keakuratan dari lokasi yang didapatkan.
Google Cloud Messaging (GCM) Merupakan layanan yang memperbolehkan pengiriman data dari server ke device android milik pengguna dan juga untuk pengerimaan data dari alat yang sama. GCM menangani semua aspek dari pengantrian pesan dan pengiriman ke aplikasi android yang berjalan di alat target dan secara gratis [9]. Pada aplikasi ParentApp, GCM digunakan untuk menerima lokasi yang dikirimkan oleh aplikasi ClientApp setelah proses pairing dilakukan dengan menampilkan QRCode GCMregisterationid yang akan dibaca oleh ClientApp sebagai alamat pengiriman lokasi melalui GCM. Pada aplikasi ClientApp pesan gcm dikirimkan dengan menggunakan koneksi http-post dengan
content-type JSON.
JavaScript Object Notation (JSON) adalah format perubahan data yang ringan, mudah dibaca oleh manusia dan mudah untuk diurai dan dibuat [10].
JSON merupakan tipe kontent yang dikirimkan oleh aplikasi ClientApp ke server
GCM yang kemudian akan mengirimkan dataJSON tersebut ke device orang tua.
3. Metode Penelitian
Metode penelitian yang digunakan untuk penelitian ini adalah metode
Research and Development (R&D). Metode ini merupakan metode penelitian yang digunakan untuk menghasilkan produk tertentu dan menguji keefektifan produk tersebut. Tahapan-tahapan yang dilakukan dalam metode penelitian ini dapat dilihat pada Gambar 1.
Gambar 1 Tahapan Penelitian Research and Development [11]
4
dijelaskan sebagai berikut : 1) Tahap Potensi dan Masalah, pada tahap ini dilakukan observasi/penelitian dan pengamatan terhadap masalah yang ditemui oleh orang tua-orang tua yang berkerja dalam melakukan pemantauan terhadap anak mereka, sehingga dibuatlah sebuah sistem yang dapat membantu orang tua dalam melakukan pemantauan lokasi anak. 2) Tahap Pengumpulan Data, pada tahap ini dilakukan penentuan kebutuhan-kebutuhan sesuai identifikasi masalah dengan menentukan dengan menentukan fitur-fitur apa saja yang dibutuhkan oleh orang tua dalam melakukan pemantauan lokasi terhadap anaknya. Pengumpulan data ini dilakukan dengan melakukan wawancara langsung terhadap orang tua yang berkerja dan memiliki anak. 3) Tahap Desain Produk, pada tahap ini dilakukan pembuatan desain sistem dengan menggunakan diagram Unified Modelling Language (UML). Desain sistem berupa diagram yang meliputi :
usecase diagram, class diagram, sequence diagram,dan deployment diagram. Selain desain sistem menggunakan UML dilakukan juga pembuatan arsitektur aplikasi, penentuan user pengguna sistem dan analisis kebutuhan fungsional. 4) Tahap Validasi Desain, proses validasi desain merupakan proses pengecekan antara fitur yang diperlukan dengan desain aplikasi yang dibuat. Revisi desain akan dilakukan apabila tidak sesuai dengan fitur yang diinginkan. 5) Tahap Implementasi, proses perealisasian desain sistem yang telah dirancang. Terdapat 2 aplikasi dalam sistem yang dibuat ClientApp yang akan mengirimkan lokasi
device anak ke device orang tua, lokasi tersebut kemudian diterima oleh aplikasi ParentApp yang kemudian akan menyimpan data lokasi tersebut ke database device. Kedua aplikasi mobile tersebut dibuat dengan menggunakan java native (Android Studio) dan dibantu dengan Gradle yang mengatur proses importlibrary
googleplayservices, smartlocation untuk penggunakan fused location provider,
librarySugarORM yang mengatur penyimpanan lokasi ke database, dan library xzing untuk pembuatan QR Code. 6) Tahap Uji Coba produk, pada tahap ini dilakukan pengujian sistem. Pada pengujian alpha, metode pengujian yang digunakan adalah blackbox testing dimana pengujian berfokus pada spesifikasi fungsional dari perangkat lunak, tester mendefinisikan kondisi input dan melakukan pengujian. Selanjutkan dilakukan pengujian penerimaan atau beta testing dimana pengujian dilakukan oleh pengguna sistem dalam hal ini orang tua yang berkerja dan memiliki anak. 7) Tahap ini merupakan tahap akhir dimana dilakukan analisis dari hasil pengujian dan pemberian kesimpulan dari penelitian.
Pada proses pengumpulan data dilakukan proses wawancara kepada orang tua untuk menentukan fitur-fitur yang harus dimiliki dari aplikasi yang dibangun. Fitur-fitur tersebut meliputi update lokasi berkala, melihat history lokasi anak,
safe zone, dan widget panic button. Fitur-fitur tersebut yang kemudian akan menjadi dasar dari perancangan sistem yang dibangun.
5
Gambar 2.Arsitektur Aplikasi
Sesuai arsitektur sistem pada Gambar 2, aplikasi ParentApp melakukan proses registerasi melalui internet ke server GCM untuk mendapatkan id registerasi untuk melakukan pengiriman ke aplikasi ParentApp melalui GCM (1).
Registrationid yang di dapat di rubah menjadi QRcode (2). Modul kamera pada
device client membaca QRcode melalui pembaca QR code lalu data registration id digunakan untuk menyandingkan dua device tersebut (3). Data nama dikirimkan ke server GCM dengan registration id yang sudah didapat dengan menggunakan metode HTTP POST melewati internet (4). GCM menerima, mengatur antrian dan melakukan proses pushmessage ke deviceparent (5). GCM Receiver menerima message dan data pengguna device client di tambahkan ke dalam database local device parent dan proses penyandingan pun selesai (6). Dalam jangka waktu tertentu alarm manager akan berjalan dan melakukan
request lokasi melalui fused location provider yang kemudian akan menerima lokasi dari salah satu provider yang kemudian akan di kirim melalui metode
HTTPPOST (7). Proses pengiriman data lokasi dijalankan melalui proses (4),(5), dan data lokasi di simpan melalui proses (6).
Dari arsitektur sistem yang dibangun maka dilakukan perancangan sistem menggunakan diagram UML yang merupakan bahasa notasi yang telah menjadi standar dalam industri perangkat lunak. Untuk desain aplikasi yang akan dibuat dalam penelitian ini digunakan 3 buah diagram UML yaitu use case diagram,
sequence dan class diagram.
Dalam pembuatan use case diagram perlu dilakukan penentuan actor atau
6
Tabel 1 Daftar Pengguna Sistem
Actor Keterangan
Parent Pengguna sistem yang melakukan proses instalasi, konfirgurasi dan penyandingan / pairing antara 2 device. Parent memiliki hak akses penuh terhadap 2 aplikasi dan akan mendapat data lokasi yang akan dikirimkan oleh device child.
Child Pengguna sistem yang hanya dapat menggunakan widget android panic button
BSC BackgroundServices ChildApp (BSC) adalah services yang berjalan dibelakang layar pada aplikasi ChildApp yang akan melakukan proses pengiriman lokasi ke aplikasi ParentApp sesuai interval yang telah di atur, menyembunyikan dan memunculkan aplikasi, dan lain lain
BSP BackgroundServices ParentApp (BSP) adalah services yang berjalan dibelakang layar pada aplikasi ParentApp yang akan mendapatkan datapush message dari GCM dan akan mengolah data yang diterima agar dapat digunakan oleh parent.
Pada Tabel 1 terdapat 2 aktor pengguna yang merupakan pengguna aplikasi dan dapat berinteraksi langsung dengan aplikasi dan 2 aktor subsistem yang bertugas menjalankan aplikasi dibelakang layar. Setelah penentuan actor
dilakukan analisis kebutuhan fungsional dari fitur yang harus disediakan oleh sistem yang dibangun. Hasil dari analisis kebutuhan fungsional beserta dengan
actor yang menggunakan fitur tersebut dapat ditunjukan pada Tabel 2.
Tabel 2 Daftar Fungsional Sistem
No. Kebutuhan Fungsional Actor
1. Proses registerasi id aplikasi ParentApp Parent
2. Proses penyandingan atau pairing Parent, BSP
3. Proses pengiriman data lokasi secara berkala BSC
4. Melihat data lokasi di Maps pada aplikasi ParentApp Parent
5. Penambahan filterSafeZone pada Maps Parent
6. Menerima dan mengolah pushmessage dari GCM BSP
7. Menyalakan dan Mematikan PanicButton Child
8. Proses penyimpanan data lokasi berkala dan panicbutton BSP
9. Menerima peringatan dan lokasi Child saat PanicButton diaktifkan Parent
7
Gambar 3 Use Case Diagram
Gambar 3 menunjukan use case diagram untuk pengguna Parent, BSP,
Child, dan BSC pada 2 aplikasi ClientApp dan ParentApp. Parent memiliki 4 fungsi case utama yaitu Receive Location Update, Receive Panic Button Start Notification, ViewLocationLog, Pairing DeviceChildandParent. Case Receive Location Update adalah proses penerimaan notifikasi lokasi anak yang apabila notifikasi tersebut disentuh akan membuka case View Child Location Log yang akan menampilkan data lokasi Child. Pada caseView Child Location Parent dapat menambahkan SafeZone. CaseViewLocationLog digunakan untuk menampilkan
data lokasi Child dan dapat digunakan untuk menambahkan Safe Zone. Receive Panic Button Start Notification adalah penerimaan notifikasi yang menunjukan bahwa panicbutton telah dinyalakan di device Child. CaseReceivePanicButton Start Signal akan secara otomatis memutar sound alert dan menunjukan lokasi terakhir yang akan dilakukan update oleh receive panic button location update
dan akan dihentikan oleh receive panic button stop notification. Case Pairing
device ChildApp and ParentApp adalah proses untuk mengenalkan antara device
ChildApp dan ParentApp menggunakan QRcode dan GCM.
BSP memiliki hanya 1 case utama yang akan menerima pesan dari GCM
yang kemudian akan diambil tipe dari pesan yang didapat akan dijalankan case
lainnya. Sub-case dari case utama tersebut ada 6 yaitu Notify Location Update,
8
Panic Button Location update untuk memunculkan notifikasi serta mengupdate data lokasi terakhir di jendela lokasi CaseNotify Panic ButtonStop Signal untuk memunculkan notifikasi dan menutup jendela lokasi dan mematikan suara.
Child hanya memiliki 1 usecase utama yaitu menyalakan panicbutton yang akan mengirim data ke ParentApp bahwa panic button telah aktif serta akan mengirim lokasi secara real-time. Setelah Child merasa aman dengan kondisinya Child dapat menonaktifkan panic button dan secara langsung akan mengirim pesan ke ParentApp untuk menghentikan proses terkait.
BSC hanya memiliki 1 usecase utama yang akan dijalankan ketika device booting (ReceiveBOOT_COMPLETEDAction). Case tersebut akan menjalankan
AlarmManager untuk menjalankan casesendlocationupdate secara berkala.
Class diagram memberikan overview tentang sebuah sistem dengan menampilkan class-class yang terdapat dalam sistem serta relasinya. Class
diagram menunjukan interaksi antar kelas tetapi tidak menunjukan apa yang terjadi saat class-class tersebut berinteraksi [12]. Cara menganalisis class
diagram adalah dengan menganalisa uraian skenario masing-masing usecase yang ada. Dari uraian tersebut dicoba mencari object atau class apa yang ada di dalamnya. Kemudian dilanjutnya dengan menganalisa attribute dan method apa yang relevan untuk masing-masing class yang telah ditemukan.
Berdasarkan hasil analisis scenario yang ada maka ditentukan kelas diagram yang dibagi menjadi 3 yaitu Classdiagram entity, Classdiagram data accessobject dan Classdiagramapplicationaction.
Gambar 4 Class Diagram Entity
Class diagram entity berisi object yang terdapat dalam aplikasi. Class
Child adalah struktur dasar dari sebuah informasi child, class ChildLocation
adalah struktur dasar sebuah informasi lokasi keberadaan aktor Child. Class SafeZone adalah struktur dasar sebuah informasi zona aman sebagai filter.
Gambar 5 Class Diagram DAO
9
dao ke database SQLite di atur oleh Sugar ORM dengan cara extend kelas
SugarReport<T> dengan T di rubah dengan tipe kelas masing masing kelas entity
dan semua proses akan diatur oleh ORM (ObjectRelationalMapping).
Gambar6 Class Diagram Action
Gambar 6 adalah class diagram pada sisi aplikasi ClientApp dan ParentApp yang saling terhubung dengan qr code scanner(ParentApp ke Client App) dan GCM(ClientApp ke ParentApp). Pada class diagram ini broadcast receiver dan activity merupakan berbagai titik awal proses dimulai, activity untuk proses yang dijalankan oleh user dan broadcastreceiver merupakan proses yang dijalankan oleh background process.
10
Gambar 7Sequence Diagram PairingProcess
Gambar 7 adalah sequence diagram yang menunjukan proses pairing
antara 2 aplikasi ChildApp dan ParentApp yang dilakukan oleh aktor Parent. Proses pairing dimulai dengan membuka aplikasi ParentApp yang secara otomatis akan melakukan pengambilan id registrasi dari GCM yang kemudian akan disimpan ke dalam shared preferences dan di tampilkan dalam bentuk QR code. Setelah itu Parent membuka MainActivity dari ClientApp untuk menscan QR code yang terdapat pada ParentApp lalu melakukan proses request melalui GCM
yang akan diterima oleh GCMReceiver, kemudian GCMReceiver akan melakukan generate QR code confirmation yang kemudian akan melakukan scan untuk autentikasi. Setelah QR code confirmation dideteksi aplikasi ClientApp akan melakukan pengiriman kode konfirmasi tersebut ke ParentApp melalui GCM, GCMReceiver dan kemudian apabila cocok akan dilakukan penambahan ke
database di device ParentApp.
Gambar 8 Sequence Diagram PeriodicLocationUpdate
11
ke GCMReceiver pada kelas ParentApp. Pesan kemudian akan diolah pada GCMIntentServices untuk memunculkan notifikasi yang apabila di klik akan membuka halaman ChildMonitor. Pada halaman child monitor parent dapat menambahkan SafeZone selain itu pada bagian GCMIntentServices apabila lokasi yang dikirimkan berada di luar SafeZone maka akan ada notifikasi pemberitahuan dengan suara.
Gambar 9 Sequence Diagram PanicButton
Gambar 9 menunjukan sequence diagram panic button yang menggambarkan proses kerja panic button. Aktor Child menyalakan panicbutton, dan widget tersebut akan melakukan pengiriman dengan tipe panicbuttonstart ke
GCM dan akan dilanjutkan ke GCMReceiver , GCMReceiver berhasil menerima memberikan hasil dari GCM ke GCMIntentService Untuk diolah dan menghasilkan notifikasi. GCMIntentServices membuat notifikasi dan membuka
Activity PanicButtonActivity. Setelah pengiriman sinyal start oleh widget, widget
juga menjalankan proses perulangan untuk mengirimkan update lokasi ke GCM yang dilanjutkan ke GCMReceiver dan GCMIntentService yang kemudian digunakan untuk update lokasi terakhir yang ada di activity PanicButtonActivity. Setelah itu apabila Child sudah merasa tidak membutuhkan panic button maka
child akan mematikan panicbutton, maka widgetpanicbutton akan mengirimkan sinyal stop ke GCM yang kemudian akan di proses oleh GCMReceiver dan GCMIntentService untuk mematikan Activity WidgetPanicButtonActivity dan
alertsound.
Deployment/physical diagram menggambarkan susunan fisik sebuah sistem, menunjukkan bagian perangkat lunak mana yang berjalan pada perangkat keras mana [12]. Deployment diagram sistem ini dapat dilihat pada Gambar 10.
12
Gambar 10 menggambarkan deployment diagram sistem pemantauan anak. Pada deployment diagram tersebut terdapat 2 macam perangkat lunak yaitu ClientApp pada device anak dan ParentApp pada device orang tua. Kedua perangkat lunak itu dihubungkan dengan menggunakan QRCode dan GCM API. Server GCM berada di internet sehingga server GCM tersebut diakses menggunakan HTTP POST yang kemudian server GCM akan melakukan push message yang dikirim dari device anak ke device orang tua.
Setelah melakukan perancangan terhadap arsitektur dan obyek yang ada di dalam aplikasi ini, selanjutnya perlu dilakukan perancangan antar muka yang digunakan untuk aplikasi ini. Antar muka ini merupakan media dimana user akan berkomunikasi dengan aplikasi. Perancangan antar muka untuk aplikasi ini antara lain
Gambar 11 Rancangan LayoutWidget Panic Button dan MainActivity ClientApp
Gambar 12 Rancangan Layout MainActivity, RegisterConfirm, ChildMonitor,
WidgetPanicButtonActivity
4. Hasil pembahasan dan implementasi
Penelitian ini menghasilkan sistem pemantauan anak yang terdiri dari dua aplikasi ClientApp dan ParentApp. Langkah pertama dalam menggunakan aplikasi adalah melakukan proses pairing antardevice. Proses pairing antar device
13
Gambar 13 Antar muka MainActivity ParentApp
Gambar 9 menampilkan QRcodeid registerasi GCM dan daftar child yang terdaftar.
Gambar 14 QR Code Registerasi dan Confirmation
Gambar 15 Antar muka MainActivity ClientApp
Gambar 10 merupakan tampilan QR Code pada MainActivity ParentApp dan QR code untuk konfirmasi pada proses registerasi child pada Gambar 11. Langkah registerasinya adalah mengisi nama, lalu sentuh tombol scan QR code
untuk melakukan scan QR code dari ParentApp, lalu sentuh tombol register
14
ParentApp, dan setelah proses berhasil sentuh tombol save settings and start services.
Setelah proses pairing berhasil maka service update lokasi berkala akan diaktifkan. Update lokasi berkala merupakan proses pengiriman lokasi secara berkala dengan interval yang telah di setting pada MainActivity ClientApp. Proses ini tidak terlihat dari layar karena berjalan di belakang layar. Sedangkan pada device ParentApp update lokasi terlihat pada notifikasi dan Activity
ChildMonitor untuk melihat history lokasi.
Gambar 16 Notifikasi Biasa
Gambar 17 Notifikasi dengan Suara Ketika diluar SafeZone
Terdapat 2 jenis notifikasi pada update lokasi berkala. Gambar 16 merupakan notifikasi biasa yang hanya ditampilkan saja dan Gambar 17 notifikasi dengan suara yang terjadi ketika ChildApp keluar dari zona aman yang telah di setting sebelumnya. Apabila notifikasi di tekan maka user akan dibawa ke
Activity ChildMonitor
Gambar 18 Activity ChildMonitor
Activity ChildMonitor menampilkan semua data yang telah diterima oleh
device ParentApp yang ditampilkan berdasarkan tanggal, dan list untuk memilih lokasi yang ingin dilihat pada bagian atas yang akan otomatis memindahkan kamera ketika di tekan. Area zona aman ditandai dengan area hijau yang bisa ditambahkan dan edit dengan cara melakukan long-click pada map.
15
Gambar 19WidgetPanicButton dan PanicButtonActivity
Gambar 19 menunjukan tampilan WidgetPanic Button saat keadaan non aktif dan aktif. Saat widget tersebut aktif maka aplikasi ParentApp akan membuka PanicButtonActivity dan memutar efek suara peringatan yang keras untuk mendapatkan perhatian aktor Parent. Activity ini juga akan melakukan update
lokasi anak dengan hampir mendekati waktu nyata.
Dalam Perancangan sistem ini, ChildApp berfungsi sebagai server yang melakukan request HTTP POST ke server GCM untuk mengirimkan lokasi secara berkala. Kode pengiriman data lokasi dapat dilihat pada Kode Program 1
Kode Program 1 Pengiriman Lokasi Device ChildApp ke ServerGCM
Baris 1 berisi deklarasi method, Baris 2-4 merupakan proses pengaksesan
SharedPreference untuk mendapatkan parent gcm registrationid dan nama. Baris 5-7 merupakan deklarasi library untuk pengiriman request HTTP POST dengan penambahan header authorization sebagai syarat gcm untuk menerima request
dengan menggunakan BrowserKey yang didapatkan melalui aktivasi GCM API
16
konfigurasi requestpost seperti restApiUrl yang merupakan alamat request gcm,
entity yang berisi message yang dikirim dan method callback untuk pengecekan hasil request.
Pengujian aplikasi dilakukan dengan menguji fungsi-fungsi dari aplikasi yang telah dibuat untuk mencari kesalahan/bug pada sistem agar sistem berjalan sesuai dengan yang diharapkan dan dapat memenuhi kebutuhan pengguna. Pengujian sistem pemantau anak ini menggunakan dua teknik pengujian yaitu pengujian alpha dan pengujian beta.
Pengujian alpha adalah pengujian aplikasi yang dilakukan oleh pembuat aplikasi dan orang-orang yang ikut membantu dalam pembuatan. Metode ujicoba
blackbox memfokuskan pada keperluan fungsional dari software. Karna itu ujicoba blackbox memungkinkan pengembang software untuk membuat himpunan kondisi input yang akan melatih seluruh syarat-syarat fungsional suatu program.
Tabel 3 Hasil Pengujian Blackbox
Fungsi Skenario Input Hasil Validitas
Device
Pairing Scan Registeration id qr code Scan qr code menggunakan kamera
Registeration id berhasil di
dapat √
Device
Pairing Pesan gcm untuk registerasi untuk mendapatkan confirmationcode
yang kemudian akan di scan
Menekan tombol
registerasi Pesan diterima dan confirmation code berhasil di tampilkan dan di scan
√
Device
Pairing Menyimpan data child di database Pesan gcm tipe konfirmasi dengan nama child
Pairing Menyimpan informasi registerasi ClientApp di SharedPreference Menekan tombol simpan Informasi berhasil di simpan di sharedpreferences
AlarmManager Lokasi berhasil dikirim dan diterima oleh ParentApp sesuai interval
√
Periodic Location Update
Menyimpan update lokasi ke
database lokal Dipicu oleh GCMReceiver Lokasi berhasil di simpan ke database √
Periodic
Receiver Notifikasi berhasil ditampilkan √
Periodic Location Update
Melihat lokasi berdasarkan tanggal Membuka notifikasi atau memilih child di main activity
Lokasi berhasil
ditampilkan sesuai tanggal √
Panic
Button Membuka Panic Button Activity dan memutar Suara peringatan di ParentApp
Menyalakan panic
button di ClientApp Activity berhasil berjalan dan suara peringatan berhasil di putar
√
Panic
Button Mengirimkan lokasi update dan menambahkan ke Map di Panic Button Activity
Button Konfirmasi menutup PanicButtonActiviy dan mematikan suara peringatan
Mematikan panic
button di ClientApp Suara peringatan berhasil dihentikan dan memunculkan dialog konfirmasi penutupan
√
Dari hasil pengujian blackbox tersebut didapati bahwa setiap fungsi valid,
sehingga dapat disimpulkan bahwa sistem berjalan dengan baik dan sesuai yang diharapkan.
Pengujian beta adalah pengujian yang dilakukan oleh orang yang tidak ikut dalam pembuatan aplikasi, Pengujian beta dilakukan dengan pengisian
17
memiliki anak. Survey dirancang dengan skala pembobotan likert. Daftar pernyataan pada survey dapat dilihat pada Tabel 4.
Tabel 4 Daftar Pernyataan Survey No Pernyataan
1 Proses pairing aplikasi mudah.
2 Fitur history lokasi anak mudah digunakan.
3 Fitur SafeZone mudah digunakan.
4 Fitur WidgetPanicButton mudah digunakan
5 Fitur history lokasi anak membantu dalam memantau lokasi anak
6 Fitur SafeZone membantu dalam memantau lokasi anak
7 Fitur Widget Panic Button berguna saat anak merasa terancam.
Pernyataan tersebut memiliki 5 opsi jawaban yaitu Sangat Setuju, Setuju, Netral, Tidak Setuju,dan Sangat Tidak Setuju. Hasil dari survey tersebut dapat
Dari hasil survey yang didapat dilakukan penghitungan menggunakan penskoran skala likert dengan semakin positif opsi jawaban yang dipilih maka semakin tinggi skornya sehingga, opsi jawaban Sangat Setuju bernilai 5, Setuju bernilai 4, Netral bernilai 3, Tidak Setuju bernilai 2, dan Sangat Tidak Setuju bernilai 1. Hasil dari perhitungan survey dapat dilihat di Tabel 6.
Tabel 6 Hasil Perhitungan Survey
Poin Pertanyaan P.1 P.2 P.3 P.4 P.5 P.6 P.7
Jumlah 142 146 144 144 146 145 144
Nilai Max 150 150 150 150 150 150 150
Skor Hasil 94.67% 97.33% 96.00% 96.00% 97.33% 96.67% 96.00%
18 5. Simpulan
Aplikasi yang dibangun dapat membantu orang tua dalam melakukan pemantauan lokasi anak, dan fitur widgetpanicbutton yang dapat membantu anak untuk memberitahukan lokasinya secara real-time orang tua pada saat dibutuhkan. Selain itu aplikasi juga dinilai mudah digunakan. Dengan aplikasi ini orang tua dapat melakukan pemantauan lokasi anak ditengah kesibukannya berkerja dan dapat membantu mengantisipasi penculikan anak. Saran untuk pengembangan aplikasi ini adalah dapat ditambahkannya kombinasi key untuk mengaktifkan
panic button dan diperluasnya fitur seperti request lokasi real-time dari aplikasi
ParentApp dan navigasi.
6. Daftar Pustaka
[1] Santrock. J. W., AdolescenceFifteenthEdition, 2013, Halaman 454. [2] Ellyzar, Zachra., 2012, Jangan Sibuk Kerja, Perhatikan Kepentingan
Anak!, http://swa.co.id/business-research/jangan-sibuk-kerja-perhatikan-kepentingan-anak diakses tanggal 10 Maret 2015.
[3] Zuraya, Nidia., 2015.,“Komnas PA: Kasus Penculikan Anak Meningkat”, http://www.republika.co.id/berita/nasional/umum/13/02/03/mhn2fm-komnas-pa-kasus-penculikan-anak-meningkat, di akses tanggal 7 April 2015
[4] Heriyanto, Trisno., 2014, Indonesia Masuk 5 Besar Negara Pengguna
Smartphone,http://inet.detik.com/read/2014/02/03/171002/2485920/317/in donesia-masuk-5-besar-negara-pengguna-smartphone, diakses tanggal 10 Maret 2015.
[5] Hakim, Muhammad Amrin., 2011, ”Monitoring Lokasi Anak Menggunakan Handphone ber-GPS”, Surabaya : Jurusan Tehnik Informatika, Institut Teknologi Sepuluh November.
[6] Khairani, Latifa, 201, ”Rancang Bangun Aplikasi Pemantauan Posisi Anggota Keluarga Berbasis Android”, Palembang: Jurusan Tehnik Informatika, STMIK MDP
[7] Android Informer, April 2015, Family Location Tracking, http://positioning-our-kids.android.informer.com/, diakses pada tanggal 5 April 2015
[8] Developer.android.com, Location APIs, https://developer.android.com /google/play-services/location.html diakses tanggal 4 April 2015.
[9] Developer.android.com, GCM, https://developer.android.com/google/ gcm/index.html diakses tanggal 4 April 2015.
[10] JSON, JSON, http://www.json.org/, diakses tanggal 10 April 2015.
[11] Prof. Dr. Sugiyono., Metode Penelitian Kuantitatif, Kualitatif, dan R&D, 2012, halaman 298