Institutional Repository | Satya Wacana Christian University: Perancangan Aplikasi Pemantau Lokasi Anak dan Widget Panic Button dengan Fused Location Provider API dan Google Cloud Messaging pada Android Platform
Perancangan Aplikasi Pemantau Lokasi Anak dan Widget Panic
Button dengan Fused Location Provider API dan Google 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
Salatiga
April 2015
Perancangan Aplikasi Pemantau Lokasi Anak dan Widget Panic
Button dengan Fused Location Provider API dan Google Cloud
1) 2)Messaging pada Android Platform
Ricky Oktavianus Lazuardy, Hendro Steven Tampake
Fakultas Teknologi Informasi
Universitas Kristen Satya Wacana
1) 2)Jl. Diponegoro 52-60, Salatiga 50711, Indonesia
Email: [email protected], [email protected]
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
2) Wacana, Salatiga. Staff Pengajar Fakultas Teknologi Informasi, Universitas Kristen Satya Wacana, SalatigaPendahuluan 1
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 platform smartphone 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 mobile platform 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 panic button 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 Google Cloud Messaging pada Android platform.
Tinjauan Pustaka 2
Pada penelitian sebelumnya yang berjudul Monitoring Lokasi Anak Menggunakan Handphone ber-GPS yang membahas mengenai pembuatan aplikasi monitoring lokasi anak di handphone berbasis symbian sebagai server 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 receiver GCM 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 google play
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 dengan konfigurasi BEST_EFFORT dan one fix yang akan mendeteksi lokasi dengan tingkat akurasi medium dengan hanya 1 kali akses yang akan dilakukan 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 GCM registeration id 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 data JSON tersebut ke device orang tua.
Metode Penelitian 3
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]
Dalam penelitian ini tahapan penggunakan R&D dilakukan hanya sampai dengan uji coba produk atau uji coba terbatas saja. Tahapan penelitian dapat 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
google play services, smart location untuk penggunakan fused location provider,
library Sugar ORM 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.Pada tahap perancangan sistem dibuat rancangan arsitektur sistem. Arsitektur dari sistem dapat dilihat pada Gambar 2.
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).
Registration id yang di dapat di rubah menjadi QR code (2). Modul kamera pada
device client membaca QR code 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 push message ke device parent (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
HTTP POST (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
user pengguna sistem. Actor terdiri dari user dari aplikasi dan subsistem lain
yang dapat berinteraksi dengan sistem yang dibuat. Klasifikasi Actor dari sistem dapat dilihat pada Tabel 1.
Tabel 1 Daftar Pengguna Sistem
Keterangan ActorParent 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
buttonBSC Background Services 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 Background Services ParentApp (BSP) adalah services yang berjalan
dibelakang layar pada aplikasi ParentApp yang akan mendapatkan data push 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 Actor1. Proses registerasi id aplikasi ParentApp Parent
2. Proses penyandingan atau pairing Parent, BSP
3. Proses pengiriman data lokasi secara berkala BSC Parent
4. Melihat data lokasi di Maps pada aplikasi ParentApp
5. Penambahan filter Safe Zone pada Maps Parent
6. Menerima dan mengolah push message dari GCM BSP
7. Menyalakan dan Mematikan Panic Button Child
8. Proses penyimpanan data lokasi berkala dan panic button BSP Parent
9. Menerima peringatan dan lokasi Child saat Panic Button diaktifkan Use case diagram menjelaskan apa yang dapat dilakukan atau dikerjakan
oleh sistem menurut pandangan pengguna. Use case diagram berhubungan dengan scenario atau sebuah kejadian yang terjadi ketika user berinteraksi dengan aplikasi [12]. Use case diagram sistem dapat dilihat pada Gambar 3.
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, View Location Log, Pairing Device Child and Parent. 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 case View Child Location Parent dapat menambahkan Safe Zone. Case View Location Log digunakan untuk menampilkan
data lokasi Child dan dapat digunakan untuk menambahkan Safe Zone. Receive
Panic Button Start Notification adalah penerimaan notifikasi yang menunjukan
bahwa panic button telah dinyalakan di device Child. Case Receive Panic Button
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 QR code 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,
Notify Child Register Attempt, Child Confirmation Attempt, Notify Panic Button
Start Signal, Notify Panic Button Location Update, dan Notify Panic Button Stop
Signal. Case Notify Location Update adalah proses penyimpanan data lokasi,
memunculkan notifikasi lokasi dan notifikasi warning ketika berada diluar zona aman. Case Notify Child Register Attempt adalah proses memunculkan notifikasi yang menandakan ada aplikasi ChildApp yang ingin mendaftarkan diri ke ParentApp. Case Child Confirmation Attempt adalah proses memunculkan notifikasi yang memberitahukan bahwa ada aplikasi ChildApp yang sudah melakukan konfirmasi dan ditambahkan ke database. Case Notify Panic Button
Start Signal untuk memunculkan notifikasi menandakan panic button telah di
aktifkan dan membuka jendela lokasi dan memutar suara peringatan. Case Notify
Panic Button Location update untuk memunculkan notifikasi serta mengupdate
data lokasi terakhir di jendela lokasi Case Notify Panic Button Stop Signal untuk memunculkan notifikasi dan menutup jendela lokasi dan mematikan suara.
Child hanya memiliki 1 use case utama yaitu menyalakan panic button 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 use case utama yang akan dijalankan ketika device
booting (Receive BOOT_COMPLETED Action). Case tersebut akan menjalankan
AlarmManager untuk menjalankan case send location update 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 use case 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 Class diagram entity, Class diagram data
access object dan Class diagram application action.
Gambar 4 Class Diagram Entity
Class diagram entity berisi object yang terdapat dalam aplikasi. ClassChild 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
Desain class diagram Data Access Object (DAO) adalah obyek-obyek yang akan digunakan oleh aplikasi untuk memanipulasi data di database. Segala 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 (Object Relational Mapping).
Gambar 6 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 broadcast receiver merupakan proses yang dijalankan oleh background process.
Sequence diagram adalah suatu diagram yang menggambarkan interaksi antar obyek serta menunjukan proses komunikasi di antara obyek-obyek tersebut.
Diagram sequence juga menunjukan rangkaian pesan yang ditukarkan oleh obyek- obyek yang melakukan proses atau fungsi tertentu [12].
Gambar 7 Sequence Diagram Pairing Process
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 Periodic Location Update
Gambar 8 menunjukan sequence diagram proses update lokasi berkala ClientApp. Langkah awal dimulai ketika device selesai booting maka BroadcastReceiver AutoStart akan menangkap aksi tersebut dan akan mendaftarkan alarm manager yang akan membuat aksi yang diulang secara berkala. Aksi yang berulang tersebut di eksekusi oleh AlarmReceiver dan akan menjalankan prosesnya pada AlarmIntentService. AlarmIntentService akan mengirim lokasi, nama, tanggal,waktu ke GCM yang kemudian akan diteruskan 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 Panic Button
Gambar 9 menunjukan sequence diagram panic button yang menggambarkan proses kerja panic button. Aktor Child menyalakan panic button, dan widget tersebut akan melakukan pengiriman dengan tipe panic button start 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 panic button, maka widget panic button akan mengirimkan
sinyal stop ke GCM yang kemudian akan di proses oleh GCMReceiver dan GCMIntentService untuk mematikan Activity WidgetPanicButtonActivity dan alert sound.
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.
Gambar 10 Deployment Diagram Sistem 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 QR Code 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 Layout Widget Panic Button dan MainActivity ClientApp
Gambar 12 Rancangan Layout MainActivity, RegisterConfirm, ChildMonitor,
WidgetPanicButtonActivity
Hasil pembahasan dan implementasi 4
Penelitian ini menghasilkan sistem pemantauan anak yang terdiri dari dua aplikasi ClientApp dan ParentApp. Langkah pertama dalam menggunakan aplikasi adalah melakukan proses pairing antar device. Proses pairing antar device digunakan agar device ClientApp mengerti id GCM dari device ParentApp dan ParentApp agar dapat melakukan autentikasi filtering pada pesan agar hanya menerima pesan GCM dari device yang terdaftar di database lokal.
Gambar 13 Antar muka MainActivity ParentApp
Gambar 9 menampilkan QR code id 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 ChildApp, setelah itu lakukan scan pada confirmation code yang ditampilka oleh 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.
Widget Panic Button adalah fitur yang dapat digunakan saat anak merasa
dalam bahaya yang bisa dieksekusi oleh aktor Child untuk memberikan peringatan kepada device ParentApp dengan menggunakan suara peringatan yang keras dan memberikan update lokasi terbaru dengan hampir mendekati waktu nyata.
Gambar 19 Widget Panic Button dan PanicButtonActivity
Gambar 19 menunjukan tampilan Widget Panic 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 Server GCM
Baris 1 berisi deklarasi method, Baris 2-4 merupakan proses pengaksesan
Shared Preference untuk mendapatkan parent gcm registration id 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 Browser Key yang didapatkan melalui aktivasi GCM API dan content type yang mengindikasikan bahwa data request post yang dikirim berupa json. Baris 9-26 merupakan proses penyusunan data json yang akan di sisipkan ke dalam pengiriman data. Baris 27-29 merupakan proses memasukan konfigurasi request post seperti restApiUrl yang merupakan alamat request gcm,
entity yang berisi message yang dikirim dan method callback untuk pengecekan
hasil request.Periodic Location Update Menyimpan update lokasi ke database lokal
Dipicu oleh
Pengujian beta adalah pengujian yang dilakukan oleh orang yang tidak ikut dalam pembuatan aplikasi, Pengujian beta dilakukan dengan pengisian
Dari hasil pengujian blackbox tersebut didapati bahwa setiap fungsi valid, sehingga dapat disimpulkan bahwa sistem berjalan dengan baik dan sesuai yang diharapkan.
Panic Button Konfirmasi menutup PanicButtonActiviy dan mematikan suara peringatan
Mematikan panic
button di ClientApp Suara peringatan berhasil dihentikan dan memunculkan dialog konfirmasi penutupan √
Location Listener
interval 500 ms,
jarak minimal 0
Map fragment Activity berhasil di update √√ Panic Button Mengirimkan lokasi update dan menambahkan ke Map di Panic Button Activity
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
Melihat lokasi berdasarkan tanggal Membuka notifikasi atau memilih child
di main activity
Lokasi berhasil ditampilkan sesuai tanggal √√ Periodic Location Update
Dipicu oleh GCM
Receiver Notifikasi berhasil ditampilkanPeriodic Location Update Memunculkan notifikasi biasa dan warning ketika lokasi diluar zona aman
GCMReceiver
Lokasi berhasil di simpan ke database √
Dipicu oleh
AlarmManager
Lokasi berhasil dikirim dan diterima oleh ParentApp sesuai interval √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.
Periodic Location Update Mengirim lokasi , tanggal, dan waktu ke device parent sesuai interval yang di setting
Menekan tombol
simpan Informasi berhasil di simpan di sharedpreferences √Device Pairing Menyimpan informasi registerasi ClientApp di SharedPreference
Pesan diterima dan child berhasil di tambahkan ke database √
√ Device Pairing Menyimpan data child di database Pesan gcm tipe konfirmasi dengan nama child
Device Pairing Pesan gcm untuk registerasi untuk mendapatkan confirmation code yang kemudian akan di scan
Menekan tombol
registerasi Pesan diterima dan confirmation code berhasil di tampilkan dan di scanScan Registeration id qr code Scan qr code
menggunakan
kamera Registeration id berhasil di dapat √
Tabel 3 Hasil Pengujian Blackbox
Fungsi Skenario Input Hasil Validitas
Device Pairingujicoba blackbox memungkinkan pengembang software untuk membuat himpunan kondisi input yang akan melatih seluruh syarat-syarat fungsional suatu program.
blackbox memfokuskan pada keperluan fungsional dari software. Karna itu
Pengujian alpha adalah pengujian aplikasi yang dilakukan oleh pembuat aplikasi dan orang-orang yang ikut membantu dalam pembuatan. Metode ujicoba