BERBASIS ANDROID
http://digilib.mercubuana.ac.id/
NOTIFIKASI KERUSAKAN PERANGKAT JARINGAN
BERBASIS ANDROID
Oleh :
http://digilib.mercubuana.ac.id/
http://digilib.mercubuana.ac.id/
http://digilib.mercubuana.ac.id/
KATA PENGANTAR
Puji syukur penulis ucapkan kepada Tuhan YME yang telah melimpahkan
karunia-Nya sehingga penulis dapat menyelesaikan laporan tugas akhir ini dengan
judul “Notifikasi Kerusakan Perangkat Jaringan berbasis Android”.
Penulis mengucapkan terima kasih kepada semua pihak atas bantuan dan
bimbingan dalam pembuatan tugas akhir ini, sehingga penulis dapat menyelesaikan
laporan tugas akhir ini tepat waktu. Dengan kerendahan hati, pada kesempatan ini
penulis mengucapkan terima kasih yang sebesar-besarnya kepada :
1. Bapak Leonard Goeirmanto, ST., Msc selaku Dosen Pembimbing yang telah
memberikan bimbingan dan dukungan dlam penyusunan skripsi ini.
2. Bapak Sabar Rudiarto, S.Kom., M.Kom selaku Ketua Program Studi Teknik
Informatika
3. Ibu Umniy, ST., MMSI selaku Sekretaris Program Studi Teknik Informatika
dan sebagai Koordinator Tugas Akhir Teknik Informatika.
4. Orang tua dan Keluarga selaku pendukung dan motivasi tertinggi dalam hidup.
5. Seluruh teman-teman mahasiswa Teknik Informatika Universitas Mercu Buana
angkatan 2013/2014.
6. Semua pihak yang telah membantu dalam penelitian dan penyusunan tugas
akhir ini.
Penulis menyadari bahwa dalam menyelesaikan laporan tugas akhir ini masih
jauh dari sempurna. Oleh karena itu saran dan kritik membangun sangat dibutuhkan
guna menyempurnakan laporan tugas akhir ini. Semoga laporan tugas akhir ini
dapat bermanfaat bagi siapa saja yang membacanya.
Jakarta, Juni 2015
Penulis
iii
http://digilib.mercubuana.ac.id/
DAFTAR ISI
vi
http://digilib.mercubuana.ac.id/
2.4 Google Cloud Messaging (GCM) ............................................................... 16
2.5 Android Studio ............................................................................................ 17
2.6 HTML5 ........................................................................................................ 18
2.7 JSON (JavaScript Object Notation) ............................................................ 20
BAB III ANALISA DAN PERANCANGAN ...................................................... 22
3.1 Gambaran Umum Notifikasi Status Perangkat ........................................... 22
3.2 Identifikasi Masalah .................................................................................... 25
3.3 Analisa Usulan Sistem................................................................................. 25
3.3.1 Analisa Kebutuhan Sistem.................................................................... 25
3.3.2 Analisa Basis Data ................................................................................ 31
3.4 Perancangan interface aplikasi .................................................................... 33
BAB IV IMPLEMENTASI DAN PENGUJIAN .................................................. 36
4.1 Implementasi ............................................................................................... 36
4.1.2 Implementasi Push notification ............................................................ 36
4.1.3 Implementasi menampilkan Status perangkat di Android .................... 41
4.1.4 Implementasi Aplikasi .......................................................................... 44
4.2 Pengujian Aplikasi ...................................................................................... 48
4.2.1 Skenario Pengujian ............................................................................... 49
4.2.2 Hasil Pengujian ..................................................................................... 51
4.2.3 Analisa Hasil Pengujian........................................................................ 53
BAB V KESIMPULAN DAN SARAN ................................................................ 54
5.1 Kesimpulan .................................................................................................. 54
5.2 Saran ............................................................................................................ 54
DAFTAR PUSTAKA ........................................................................................... 55
vii
http://digilib.mercubuana.ac.id/
DAFTAR GAMBAR
viii
http://digilib.mercubuana.ac.id/
DAFTAR TABEL
ix
http://digilib.mercubuana.ac.id/
ABSTRACT
Internet already part of our lives. The fast internet access is possible because the development
of the network equipment nowadays. So does the development of mobile devices like smartphone.
The network devices has to work all the time. Generally the alert notification will send via email,
but its a pain with the possibility of hundreds mail per-day to find the notification that mixed with
other emails. Therefore the application to receive the message contain status of the devices was
built. The notification alert will send to an Android Based application that receives the
information contain the devices status. The application was built using HTML5 and Jquery mobile
for its interfaces. In the application we can see the recent status of the devices, The push
notification system is using Google Cloud Messaging Service. In the server side, PHP script is
used to send the message to GCM server through HTTP-Connection request. The important things
that needs is Google API Key and Sender ID. The application is develop by learn how the
conventional notification which using email works, then made the alternative notification using
push notification system. The implementation of the application is using existing database that
owned by Cacti.
http://digilib.mercubuana.ac.id/
ABSTRAK
Internet sudah menjadi bagian penting dalam kehidupan sehari-hari.. Kehadiran internet
cepat yang kita rasakan sekarang salah satunya karena perkembangan teknologi pada perangkat
jaringan. Perangkat tersebut tentu harus dijaga agar tetap menyala sepanjang waktu.Pada
umumnya notifikasi dikirimkan melalui email, namun membaca alert status perangkat melalui
email dismartphone akan sulit mengingat banyaknya email per hari yang diterima. Karena itu
tujuan aplikasi Notifikasi Kerusakan Perangkat Jaringan berbasis Android dibuat untuk
memudahkan jika ada perangkat jaringan yang mati alert notifikasinya akan dikirim ke aplikasi
ini. Aplikasi ini dibangun menggunakan HTML5 dengan plugin Jquery mobile untuk desain
antarmukanya. Pada aplikasi kita dapat melihat status terbaru dari perangkat yang di monitoring.
Untuk sistem push notification-nya memanfaatkan layanan Google Cloud Messaging (GCM).
Pada sisi server digunakan script PHP untuk mengirimkan pesan ke server GCM menggunakan
HTTP Connection-request untuk kemudian diteruskan dalam bentuk notifikasi ke aplikasi. Yang
diperlukan untuk melakukan ini adalah Google API Key dan Sender ID. Metode yang digunakan
untuk membangun aplikasi ini adalah dengan melakukan observasi bagaimana notifikasi melalui
email bekerja untuk kemudian dibuatkan alternatifnya melalui sistem push notification.
Implementasi untuk aplikasi Notifikasi Kerusakan Perangkat Jaringan berbasis Android ini
memanfaatkan database yang sudah ada, yaitu replikasi dari database server monitoring yang
menggunakan aplikasi Cacti.
http://digilib.mercubuana.ac.id/
1 BAB I
PENDAHULUAN
http://digilib.mercubuana.ac.id/
1. Bagaimana caranya ketika ada perangkat yang mati atau down ada notifikasi yang dikirimkan
ke aplikasi pada perangkat android.
2. Berapa lama interval pengecekan status perangkat.
3. Bagaimana menampilkan status terbaru dari perangkat tersebut pada aplikasi android.
http://digilib.mercubuana.ac.id/
a. Menganalisa bagaimana aplikasi membaca status perangkat, apakah langusng ke perangkat
atau memerlukan satu server untuk membaca sensor perangkat yang di monitor.
b. Merancang desain antarmuka dari aplikasi.
c. Mengimplementasikan rancangan dalam bentuk kode.
d. Melakukan ujicoba fungsi-fungsi yang dibuat.
e. Penerapan aplikasi
http://digilib.mercubuana.ac.id/
1 BAB II
LANDASAN TEORI
http://digilib.mercubuana.ac.id/
menggunakan power seminimum mungkin. Ketika sebuah aplikasi pada
android tak lagi digunakan, aplikasi tersebut bakal dimatikan penggunaan
memorynya,
Android mengatur ketika memory yang tersisa tinggal sedikit, sistem akan
mematikan aplikasi yang statusnya jalan di background untuk sementara.
Proses ini tidak terlihat oleh user.
http://digilib.mercubuana.ac.id/
Layer yang membuat aplikasi Android dapat dijalankan dimana dalam
prosesnya menggunakan Implementasi Linux. Dalvik Virtual Machine
(DVM) merupakan mesin yang membentuk dasar kerangka aplikasi
Android.
5. Linux Kernel.
Linux Kernel adalah layer dimana inti dari system operasi android itu
berada. Berisi file-file sistem yang mengatur system processing, memory,
resource, drivers, dan sistem-sistem operasi android lainnya.
http://digilib.mercubuana.ac.id/
c. Android versi 1.6 (Donut)
Dirilis pada September 2009. Pembaruan yang terdapat pada versi ini
diantaranya adalah proses pencarian yang lebih baik, penggunaan baterai
indikator dan kontrol applet VPN. Fitur lainnya adalah memungkinkan
pengguna untuk memilih foto yang akan dihapus, kamera, camcorder dan
galeri yang diintegrasikan, CDMA/EVDO, 802.1x, VPN, Gestures, Text-
to-speech engine.
d. Android versi 2.1 (Éclair)
Dirilis pada 3 Desember 2009. Perubahan yang dilakukan adalah
pengoptimalan hardware, peningkatan Google Maps 3.1.2, perubahan UI
dengan browser baru dan dukungan HTML5, daftar kontak yang baru,
dukungan flash untuk kamera 3.2 MP, digital zoom dan bluetooth 2.1.
e. Android versi 2.2 (Froyo)
Dirilis pada 20 Mei 2010. Versi Android inilah yang sekarang banyak
digunakan sebagai standar sistem operasi mereka. Terdapat perubahan yang
cukup signifikan dari versi sebelumnya diantaranya adalah kerangka
aplikasi memungkinkan penggunaan dan penghapusan komponen yang
tersedia, Dalvik Virtual Machine (DVM) yang dioptimalkan untuk
perangkat mobile, grafik di 2D dan 3D berdasarkan libraries OpenGL,
SQLite, mendukung berbagai format audio dan video, GSM, bluetooth,
EDGE, 3G, Wifi, kamera, Global Positioning System (GPS), kompas dan
accelerometer.
f. Android versi 2.3 (GingerBread)
Dirilis pada 6 Desember 2010. Beberapa perbaikan fitur dari versi
sebelumnya adalah SIP-based VoIP, Near Field Communications (NFC), 12
gyroscope dan sensor, multiple cameras support, mixable audio effect dan
download manager.
g. Android versi 3.0 (Honeycomb)
Dirilis tahun 2011. Android versi ini dirancang khusus untuk tablet,
sehingga terdapat perbedaan dari fitur UI (User Interface). Honeycomb
sengaja dibuat untuk layar yang lebih besar dan juga dapat mendukung
multiprocessor.
http://digilib.mercubuana.ac.id/
h. Android versi 4.0 (Ice Cream)
Versi ini masih dalam pengembangan. Dari berbagai informasi
menyebutkan bahwa versi Ice Cream merupakan gabungan antara versi
Gingerbread dengan Honeycomb. Sehingga bisa digunakan untuk ponsel
maupun tablet. Dan kemungkinan dirilis pada quarter ke 4 tahun 2011.
i. Android versi 4.1, 4.2, 4.3 (Jelly Bean)
Versi android ini diumumkan pada Google I/O 2012. Beberapa
pengembangan yang ditawarkan ada pada pemberdayaan, home screen
management yang lebih cerdas, input dan accesibility, kamera, android
beam, notification, dan google now.
j. Android versi 4.4 (Kit Kat)
Android versi 4.4 dengan desain yang lebih cantik, performance yang makin
hebat, dan banyak fitur baru yang menarik, akan membuat dominasi
Android. Jika handheld sedang di homescreen atau Google Now, tanpa
perlu menyentuh layar, pengguna bisa mengirim SMS, memainkan musik,
meminta petunjuk jalan, atau melakukan voice search hanya dengan
mengatakan Ok Google. Dalam rilisan Android terbaru ini, jika memutar
lagu atau memproyeksikan film ke Chromecast, saat smartphone terkunci,
pengguna akan melihat full screen album/album art. Pengguna juga bisa
langsung menekan pause, skip, atau lainnya dari lockscreen.
k. Android versi 5.0, 5.0.1, 5.0.2, 5.1 (Lollipop)
Lollipop adalah update Android paling besar dan ambisius dengan lebih dari
5.000 API baru untuk para pengembang. Android 5.0 Lollipop
memperkenalkan bahasa desain baru yang mereka sebut sebagai Material
Design. Desain ini mengedepankan tipografi yang bersih, jelas, dan
mempunyai warna-warna yang cerah dengan animasi yang sangat mengalir.
Mengambil tema datar secara keseluruhan, bahasa desain ini tetap
mengedepankan konteks nyata dalam animasi yang digunakan. Elemen-
elemen yang ada mempunyai bayangan sehingga memberi kesan hidup
ketika dioperasikan. Dengan bantuan sistem runtime ART, kini semua
aplikasi Android dapat berjalan dalam arsitektur 64-bit. Hal ini membuka
kemungkinan yang lebih luas. Bahkan, bukan tidak mungkin sistem operasi
http://digilib.mercubuana.ac.id/
telepon genggam di masa depan dapat menggantikan sistem operasi
desktop. Hal ini juga merupakan kabar baik bagi para produsen perangkat
Android. Karena dengan Lollipop akan dapat membuat sebuah perangkat
Android yang menggunakan prosesor sekelas prosesor desktop PC.
http://digilib.mercubuana.ac.id/
Jaringan berkabel (Wired Network). Pada jaringan ini, untuk
menghubungkan satu komputer dengan komputer lain diperlukan
penghubung berupa kabel jaringan.
Jaringan nirkabel(Wi-Fi). Merupakan jaringan dengan medium
berupa gelombang elektromagnetik.
http://digilib.mercubuana.ac.id/
seperti, switch, router, pc , printer dan perangkat network lainnya. SNMP manager
adalah aplikasi network management yang berjalan pada PC, dan agent adalah
software yang berjalan pada perangkat yang akan di manage. SNMP agent bekerja
untuk mengambil variabel yang berada pada database variabel atau yang sering
disebut MIB (management Information Base) dan membuatkan parameter untuk
perangkat tersebut.
Pengambilan informasi dari SNMP agent disebut GET message, dan
message yang menulis variabel disebut SET message. Selain SNMP GET message,
untuk pengambilan value SNMP lewat MIB ada juga SNMP Trap yaitu message
bila suatu perangkat terjadi masalah maka perangkat tersebut akan mengirimkan
pesan SNMP trap, contohnya ketika suatu perangkat interfacenya mati.
http://digilib.mercubuana.ac.id/
message integrity : ini membantu meyakinkan bawhwa paket yang
dikirmakn tidak rusak/berubah pada saat diperjalanan.
authentication : membantu meyakinkan bahwa paket datang dari source
yang dapat dipercaya.
encryption : membantu bahwa data yang kirimkan tidak bisa dibaca jika
ada orang yang ingin mengcapture data saat pengiriman.
Dari 3 fitur ini perangkat hanya dapat mengimplementasikan fitur tersebut pada saat
konfigurasi.
2.2.3 ICMP (Internet Control Message Protocol)
ICMP (Internet Control Message Protocol) adalah protokol yang bertugas
mengirimkan pesan-pesan kesalahan dan kondisi lain yang memerlukan perhatian
khusus. Pesan / paket ICMP dikirim jika terjadi masalah pada layer IP dan layer
atasnya (TCP/UDP). Pada konsisi normal, protokol IP berjalan dengan baik. Namun
ada beberapa kondisi dimana koneksi IP terganggu, misalnya karena Router crash,
putusnya kabel, atau matinya host tujuan. Pada saat ini ICMP membantu
menstabilkan kondisi jaringan, dengan memberikan pesan-pesan tertentu sebagai
respons atas kondisi tertentu yang terjadi pada jaringan tersebut. Contoh : hubungan
antar router A dan B mengalami masalah, maka router A secara otomatis akan
mengirimkan paket ICMP Destination Unreachable ke host pengirim paket yang
berusaha melewati host B menuju tujuannya. Dengan adanya pemberitahuan ini
maka host tujuan tidak akan terus menerus berusaha mengirimkan paketnya
melewati router B.
Ada dua tipe pesan yang dapat dihasilkan ICMP :
1. ICMP Error Message (dihasilkan jika terjadi kesalahan jaringan)
2. ICMP Query Message (dihasilkan jika pengirim paket mengirimkan
informasi tertentu yang berkaitan dengan kondisi jaringan.
ICMP Error Message dibagi menjadi beberapa jenis :
1. Destination Unreachable, dihasilkan oleh router jika pengirim paket
mengalami kegagalan akibat masalah putusnya jalur baik secara fisik
maupun logic.
2. Time Exceeded, dikirimkan jika isi field TTL dalam paket IP sudah habis
dan paket belum juga sampai ke tujuannya. Tiap kali sebuah
http://digilib.mercubuana.ac.id/
paket IP melewati satu router, nilai TTL dalam paket tsb, dikurangi satu.
TTL ini diterapkan untuk mencegah timbulnya paket IP yang terus menerus
berputar-putar di network karena suatu kesalahan tertentu. sehingga
menghabiskan sumber daya yang ada. Field TTL juga digunakan oleh
program traceroute untuk melacak jalannya paket dari satu host ke host lain.
Program traceroute dapat melakukan pelacakan rute berjalannya IP dengan
cara mengirimkan paket kecil UDP ke IP tujuan, dengan TTL yang di set
membesar.
Saat paket pertama dikirim, TTL diset satu, sehingga router pertama akan
membuang paket ini dan mengirimkan paket ICMP Time Exceeded,
kemudian paket kedua dikirim, dengan TTL dinaikan. Dengan naiknya TTL
paket ini sukses melewati router pertama namun dibuang oleh router kedua,
router ini pun mengirim paket ICMP time Exceeded.
3. Parameter Problem, paket ini dikirim jika terdapat kesalahan parameter
pada header paket IP.
4. Source Quench, Paket ICMP ini dikirimkan jika router tujuan mengalami
kongesti. Sebagai respons atas paket ini pihak pengirim paket harus
memperlambat pengiriman paketnya.
5. Redirect, paket ini dikirimkan jika router merasa host mengirimkan
paket IP melalui router yang salah. Paket ini seharusnya dikirimkan melalui
router lain.
Sedangkan ICMP Query Message Terdiri atas :
1. Echo dan Echo Reply, Bertujuan untuk memeriksa apakah sistem tujuan
dalam keadaan aktif. Program ping merupakan program pengisi paket ini.
Responder harus mengembalikan data yang sama dengan data yang
dikirimkan.
2. Timestamp dan Timestamp Reply, Menghasilkan informasi waktu yang
diperlukan sistem tujuan untuk memproses suatu paket.
3. Address mask, untuk mengetahui beberapa netmask yang harus digunakan
suatu host dalam suatu network.
http://digilib.mercubuana.ac.id/
membebani network. Karenanyapaket ICMP tidak boleh dikirim saat terjadi
problem yang disebabkan oleh :
Kegagalan pengririman paket ICMP
Kegagalan pengiriman paket broadcast atau multicast.
ICMP 1
http://digilib.mercubuana.ac.id/
server laangsung mengirimkan notifikasi kapanpun ada informasi baru tanpa klien
perlu melakukan request terlebih dahulu. Teknologi ini dianggap lebih hemat daya.
http://digilib.mercubuana.ac.id/
Gambar 1.1 Google Cloud Messaging
http://digilib.mercubuana.ac.id/
Tabel 1.2 System requirement Android Studio
Windows OS X Linux
Mac OS X 10.8.5
GNOME or KDE
or higher, up to
or Unity desktop
Microsoft Windows 10.10 to up
on Ubuntu or
OS version 10/8.1/8/7/Vista/2003/Xp 10.10.2 up
Fedora or
(32 or 64 bit) 10.10.3 on
GNU/Linux
10.10.5
Debian
(Yosemite)
Space for
At least 1 GB for Android SDK, emulator system images, and
Android
caches
SDK
JDK
Java Development Kit (JDK) 7 or higher
version
Screen
1280x800 minimum screen resolution
resolution
2.6 HTML5
HTML5 merupakan penyempurnaan dari HTML yang dikeluarkan oleh
W3C(World Wide Web Consortium). Yang salah satu tujuannya adalah agar
teknologi HTML mudah mendukung teknologi multimedia baru. HTML5 memiliki
beberapa fitur tambahan yang memungkinkan untuk memutar video dan audio.
HTML5 memungkinkan untuk membuat aplikasi mobile cross-platform (Wahana
Komputer. 2014). HTML5 memiliki script khusus sebagai tambahan pada API
http://digilib.mercubuana.ac.id/
(application programming interface) nya. Yang bisa digunakan dengan javascript.
Dalam API baru pada HTML5 diantaranya :
Pemutar media dengan waktu
Aplikasi web offline
Edit dokumen
Drag and drop
Web Storage
Kalender
Tujuan dibuatnya HTML5 diantaranya :
Mengurangi kebutuhan plugin external seperti Flash.
Penaganan kesalahan yang baik
HTML5 merupakan perangkat yang mandiri
Proses pembangunan terlihat umum
Kelebihan HTML5 diantaranya :
Dapat ditulis dalam sintaks HTML dan XML
Dalam penulisan code akan lebih efisien
Konten pada situs mudah ter-indeks oleh search engine
Memiliki integrasi yang bagus terhadap aplikasi web
Integrasi dengan doctype lebih sederhana
Dapat dideteksi oleh browser lama
http://digilib.mercubuana.ac.id/
dijumpai banyak memiliki kelemahan untuk mendukung aplikasi web yang
interaktif. Akibat hal ini banyak orang menambahkan fitur baru baik disisi aplikasi
web ataupun disisi browser. Solusi ini dikenal dengan plugin dan salah satunya
adalah Flash dan Silverlight. Semakin menjamurnya plugin didalam aplikasi atau
browser membuat aplikasi web ini susah untuk menembus banyak browser. Hal ini
dikarenakan setiap plugin mempunyai cara yang berbeda-beda.
http://digilib.mercubuana.ac.id/
b. Array adalah kumpulan nilai yang terurutkan. Larik dimulai dengan [
(kurung kotak buka) dan diakhiri dengan ] (kurung kotak tutup). Setiap nilai
dipisahkan oleh , (koma).
c. Nilai (value) adalah berupa sebuah string dalam tanda kutip ganda, atau
angka, atau true atau false atau null, atau sebuah objek atau sebuah larik.
Struktur-struktur tersebut dapat disusun bertingkat.
d. String adalah kumpulan dari nol atau lebih karakter Unicode, yang
dibungkus dengan tanda kutip ganda. Di dalam string dapat digunakan
backslash escapes "\" untuk membentuk karakter khusus. Sebuah karakter
mewakili karakter tunggal pada string. String sangat mirip dengan string C
atau Java.
e. Number adalah sangat mirip dengan angka di C atau Java, kecuali format
oktal dan heksadesimal tidak digunakan
http://digilib.mercubuana.ac.id/
http://digilib.mercubuana.ac.id/
BAB III
ANALISA DAN PERANCANGAN
1
http://digilib.mercubuana.ac.id/
Notifikasi email bisa dikirim dengan atau tanpa autentikasi ke mail server,
bergantung pada aplikasi monitoring
Perangkat yang dimonitor berupa switch, router, dan juga Access Point
Interface yang dimonitoring adalah management interface-nya
Server Monitoring menggunakan Software Cacti
Database menggunakan Mysql
Server Push Notification menggunakan script php untuk mengirim pesan
ke server Google Cloud Messaging
http://digilib.mercubuana.ac.id/
informasi jaringan yang dibawa oleh paket data yang disebut PDU (Protocol
Data Unit)
Secara background server monitoring mengirimkan paket data melalui ping
ke perangkat yang dipantau. Jika hasil ping ke perangkat yang di pantau
reply (lengkap dengan besaran latency dalam satuan ms), maka status
perangkat yang dipantau tersebut akan ditulis pada database server
monitoring dengan status UP. Jika tidak reply, baik itu request time out
ataupun destination host unreachable maka status akan di tulis DOWN.
Untuk Availability (dalam satuan %) perangkat dihitung berdasarkan
uptime(didapat melalui snmp agent) dan total time (total waktu sejak
dimonitoring). Rumusnya : (uptime / total time ) x 100%.
Data yang ditulis pada database master oleh Cacti di replikasi ke slave
database menggunakan SQL synchronization.
Proses replikasi dilakukan dengan cara, setiap perubahan pada master
database akan di tulis sebuah binary log. Log ini yang dibaca oleh slave
database untuk kemudian dieksekusi sehingga data pada master sama
dengan data pada slave.
Pada sisi server push notification, database yang berisi informasi tentang
status perangkat di baca menggunakan script PHP yang diparsing
menggunakan JSON dan dimuat pada pada aplikasi android menggunakan
Ajax. Informasi seperti IP, Status, dan Availibility ini lah yang dimuat
pada aplikasi android.
Untuk pengiriman push notification, sebuah script PHP menggunakan
cURL untuk mengirim HTTP connection-request ke server Google Cloud
Messaging (GCM). Pada Script ini juga dilakukan pengecekan status
perangkat yang tertulis di database. Jika status perangkat adalah down,
maka akan dikirimlah notifikasi.
Pada sisi server juga disimpan Google API Key sebagai credential key
terhadap server GCM. Notifikasi berupa paket yang dikirim ke GCM
berisi informasi status dan hostname perangkat yang down dan juga Reg
ID sebagai pengenal perangkat android yang dituju.
http://digilib.mercubuana.ac.id/
Dari Server GCM lalu diteruskan notifikasi berdasarkan Reg ID perangkat
Android.
http://digilib.mercubuana.ac.id/
Database untuk menyimpan Register ID. Register ID inilah yang di beritahu
oleh server kepada server GCM agar notifikasi dikirmkan ke perangkat
dengan register ID tersebut.
Script untuk mengirimkan notifikasi
Koneksi Internet
http://digilib.mercubuana.ac.id/
4. Registration ID inilah yang disimpan di database, sebagai pengenal dari
perangkat android.
Pengiriman Notifikasi :
A. Push notification akan ditrigger berdasarkan perangkat yang kondisinya
Down pada database. Status ini diperiksa setiap 5 menit dalam sebuah script
PHP. Lalu notifikasi akan di kirim kan ke server GCM
B. Server GCM kan mengirimkan notifikasi ke perangkat android yang sudah
teregistrasi.
http://digilib.mercubuana.ac.id/
Login
<<extend>>
Menu Utama
<<extend>>
Melihat Availability
Menerima Notifikasi
Perangkat
http://digilib.mercubuana.ac.id/
5 Menerima notifikasi Menerima Notifikasi dari
server
http://digilib.mercubuana.ac.id/
Aksi Aktor Reaksi Sistem
Memilih salah satu menu Tampil menu yang dipilih
Kondisi Akhir User masuk ke menu yang dipilih
http://digilib.mercubuana.ac.id/
1.3.4 Algoritma Aplikasi
Berikut Algoritma aplikasi mulai dari apliasi dijalankan hingga notifikasi
dikirimkan :
http://digilib.mercubuana.ac.id/
Gambar 3.0.5 Aplikasi – Database Replika
Proses replikasi database pada mysql :
Master database
1. Master menulis replications event pada sebuah log yang disebut binary
log. Binary log ini yang nantinya akan dibaca oleh slave database
2. Master akan membuat thread baru setiap kali slave database terkoneksi
ke master, dengan cara memberikan event-event yang tercatat pada
binary log dan memberi notifikasi kepada slave database setiap ada
perubahan yang tercatat pada binary log.
Slave database
Ketika replikasi mulai dilakukan, ada 2 thread yang bekerja pada slave
database :
1. Input-Output thread (IO thread)
Pada proses ini slave membaca binary log dari master dan
menyimpannya pada log lokalnya sendiri yang disebut relay log. IO
thread sendiri bisa dicek dengan menggunakan perintah “show slave
status\G” pada log file :
Master_Log_File
Read_Master_Log_Pos
http://digilib.mercubuana.ac.id/
Hasil pada pengecekan diatas bisa di bandingkan dengan log “show
master status\G” pada Master database.
2. SQL thread
Proses SQL thread membaca file relay log dan mengeksekusin
perubahan yang terjadi pada database master ke database slave. Status
thread ini bisa di cek pada log file :
Relay_Master_Log_File
Exec_Master_Log_Pos
http://digilib.mercubuana.ac.id/
Gambar 3.0.7 Rancangan Menu Login
b. Menu Utama
Nama APP
Devices Status
Availability
http://digilib.mercubuana.ac.id/
Devices
Devices
IP Desc Availibility
http://digilib.mercubuana.ac.id/
http://digilib.mercubuana.ac.id/
1 BAB IV
IMPLEMENTASI DAN PENGUJIAN
Pada bab ini akan dilakukan implementasi dan pengujian terhadap sistem. Tahapan ini
dilakukan setelah perancangan selesai dilakukan dan selanjutnya akan diimplementasikan
menggunakan HTML5, Java Script, dan Ajax. Hal – hal yang akan diuji adalah status perangkat
yang ditampilkan pada aplikasi, serta notifikasi jika ada perubahan status pada perangkat.
Pengujian dilakukan untuk melihat kekurangan – kekurangan yang muncul pada aplikasi.
Selanjutnya bisa didapatkan kesimpulan untuk pengembangan aplikasi selanjutnya.
4.1 Implementasi
Setela system dianalisa dan antarmuka sudah didesain, maka tahap selanjutnya adalah
tahap implementasi. Tahap implentasi adaah tahap menerjemahkan rancangan kedalam baris kode
yang akan diterapkan pada perangkat lunak sesuai kebutuhan dan hasil analisa. Untuk
melakukannya dibutuhkan smartphone berbasis android dan Android Studi untuk menulis baris
kode HTML5.
console.log("Inside Try-Catch");
pushNotification = window.plugins.pushNotification;
if (device.platform == 'android' || device.platform == 'Android') {
$("#app-status-ul").append('<li>registering android</li>');
pushNotification.register(successHandler, errorHandler,
{"senderID":"44209098920","ecb":"onNotificationGCM"}); // required!
}
http://digilib.mercubuana.ac.id/
44209098920 merupakan sender ID yang didapat dari google. Saat aplikasi dijalankan sender ID
akan dikirmkan ke google, dan dibalas google dengan memberikan registration ID atau bisa
disebut juga GCM ID. Lalu registration ID ini yang dikirimkan ke database. Berikut potongan
kode-nya :
Pada sisi server digunakan script PHP yang menyimpan Google API key agar server dikenali oleh
server GCM untuk mengirim reg ID yang sudah disimpan di database. Berikut potongan kode-nya
untuk menyimpan google API Key:
<?php
define("DB_HOST", "localhost");
define("DB_USER", "root");
define("DB_PASSWORD", "devmon");
define("DB_DATABASE", "gcm");
define("GOOGLE_PUBLIC_API_KEY", "AIzaSyCZYICgNajeekSd4IbVG42X87EC6UsgoEM");
http://digilib.mercubuana.ac.id/
Hasilnya pada database telah terisi dengan Register ID dari perangkat android :
http://digilib.mercubuana.ac.id/
die('Curl failed: ' . curl_error($ch));
return false;
}
echo '<pre>';
var_dump($result);
curl_close($ch);
return true;
}
function insertDevice($username, $gcm_id){
$db = dbConnectGcm();
$result = mysql_query('insert into gcm_users(username, gcm_id, created_at)
values("'.$username.'", "'.$gcm_id.'", NOW())');
}
function getDevice($where = array()){
$db = dbConnectGcm();
$query = "select * from gcm_users";
$result = mysql_query($query);
if(mysql_num_rows($result) > 0){
while(true == $data = mysql_fetch_assoc($result)){
$row[] = $data;
}
return $row;
}else{
return null;
}
}
function dbConnectGcm(){
$con = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
mysql_select_db(DB_DATABASE);
return $con;
}
Berikut Potongan Kode berisi fungsi untuk mendapatkan kondisi ketika device mati/down :
function dbConnectCacti(){
$con = mysql_connect('localhost', 'root', 'devmon');
mysql_select_db('cacti');
http://digilib.mercubuana.ac.id/
return $con;
}
function getDownDevice(){
$db = dbConnectCacti();
$query = "select id, description, hostname, status from host where status != 3";
$result = mysql_query($query);
if(mysql_num_rows($result) > 0){
while(true == $data = mysql_fetch_assoc($result)){
$row[] = $data;
}
return $row;
}else{
return null;
}
}
Terakhir potongan kode untuk mengirimkan push notification berdasarkan kondisi device :
$devices = getDownDevice();
if(!empty($devices)){
foreach ($devices as $device) {
$title = $device['description'];
$message = $device['hostname'].' status DOWN';
send_notification($title, $message);
}
}
Reg ID yang sudah ada di dalam database akan dikirim ke server GCM dan dari server GCM akan
dikirim ke device. Berikut contoh hasil push notification yang terkirim ke perangkat android :
http://digilib.mercubuana.ac.id/
Gambar 4.0.2 Notifikasi Masuk ke Android
Untuk melakukan pengecekan setiap 5 menit, dan jika ada perangkat yang down notifikasi
dikirimkan. Di lakukan dengan men-set cron job script pengecekan pada sisi server dijalankan
setiap 5 menit :
*/5 * * * * /usr/bin/php /var/www/html/devmon/send_notification.php
http://digilib.mercubuana.ac.id/
PHP
Database
JSON
JQUERY/AJAX
Android App
http://digilib.mercubuana.ac.id/
}
if ($time > 3600) {
$hours = floor($time/3600);
$time %= 3600;
}else{
$hours = 0;
}
$minutes = floor($time/60);
$new_status_rec_date = $days . "d " . $hours . "h " . $minutes . "m";
$hostname = $row["hostname"];
$description = $row["description"];
$status = $row["status"];
$records[] = array('hostname' => $hostname, 'description' => $description,'status' => $status, 'time' =>
$new_status_rec_date);
}
echo $_GET['jsoncallback'] . '(' . json_encode($records) . ');';
#echo json_encode($records);
?>
Kemudian data pada JSON tersebut akan ditangkap menggunakan Ajax pada sisi aplikasi android
dan ditampilkan dalam bentuk tabel :
<script type="text/javascript" charset="utf-8">
$(document).ready(function(){
$.ajax({
url: 'http://192.168.10.163/parsing.php',
dataType: 'jsonp',
jsonp: 'jsoncallback',
timeout: 5000,
success: function(data, status){
var trHTML = '';
$.each(data, function(i,item){
if(item.statusnya == 'DOWN'){
trHTML += '<tr><td>' + item.hostname + '</td><td>' + item.description + '</td><td><font color=red>'
+ item.status + '</font></td> <td>' + item.time + '</td> </tr>';
} else {
http://digilib.mercubuana.ac.id/
trHTML += '<tr><td>' + item.hostname + '</td><td>' + item.description + '</td><td><font
color=green>' + item.status + '</font></td> <td>' + item.time + '</td> </tr>'; }
});
$("#devices").append(trHTML);
},
error: function(){
alert('Check Your Connection'); }
}); });
</script>
Dari baris kode diatas didapat hasil seperti ini :
http://digilib.mercubuana.ac.id/
</fieldset>
<fieldset data-role="fieldcontain">
<label for="password">Password:</label>
<input type="password" name="password" id="password">
</fieldset>
<input type="submit" value="Login" >
<a href="#pagetwo" data-role="button" >Next</a>
</form>
</div>
</div>
<div data-role="page" id="pagetwo">
<div data-role="header">
<h1>Device Monitor</h1>
</div>
<div data-role="content">
<ul data-role="listview" data-inset="true" data-theme="c" data-dividertheme="a">
<li data-role="list-divider">Main Menu</li>
<li><a href="#pagethree"> <h1> Devices </h1></a></li>
<li><a href="#pagefour"> <h1> Help </h1></a></li>
</ul>
</div>
</div>
<div data-role="page" id="pagethree">
<div data-role="header">
<a href="#pageone" data-role="button" data-icon="home">Back</a>
<h1>Devices</h1>
<button onclick="myFunction()" data-icon="refresh">Reload</button>
<script>
function myFunction() {
location.reload();
}
</script>
</div>
<div data-role="content">
<table id="devices" border='1' width='100%' >
http://digilib.mercubuana.ac.id/
<tr>
<th>IP</th>
<th>Description</th>
<th>Status</th>
<th>In State</th>
</tr>
</table>
</div>
</div>
<div data-role="page" id="pagefour">
<div data-role="header">
<a href="#pageone" data-role="button" data-icon="home">Back</a>
<h1>Availability</h1>
<button onclick="myFunction()" data-icon="refresh">Reload</button>
<script>
function myFunction() {
location.reload();
}
</script>
</div>
<div data-role="content">
<table id="devices2" border='1' width='100%' >
<tr>
<th>IP</th>
<th>Description</th>
<th>Availability</th>
</tr>
</table>
</div
</div>
Dari baris kode diatas, didapat hasil seperti ini :
a. Halaman Login
Pada halaman ini pengguna menginput username dan password.
http://digilib.mercubuana.ac.id/
Gambar 4.0.5 Menu Login
http://digilib.mercubuana.ac.id/
Pada halaman ini dapat dilihat status perangkat yang di monitor dalam bentuk tabel dan
juga berapa lama perangkat tersebut mempunyai status tersebut.
http://digilib.mercubuana.ac.id/
4.2.1 Skenario Pengujian
Pengujian akan dilakukan dengan menguji fungsi-fungsi yang ada di dalam aplikasi.
Pengujian dilakukan dengan secara Black-Box, yaitu dengan memastikan fungsi yang diinginkan
berjalan sesuai keinginan.
http://digilib.mercubuana.ac.id/
/com.devmon.app D/CordovaLog﹕ file:///android_asset/www/js/myapp.js: Line
36 : regID =
APA91bFRo1RkvWWVz81g_UEVkj8EmolLJnn7Nklixg_UBS8tUh1wWTod5ul1eBby
Tm_Rvw2YNR7tfVuEc3PWvc0lWPNtuKsN4WWf6_DKY_UIwJIKKTCFLVAVEn-
lt4B1Wy4VMN1ATFnV
$username = $_POST['username']
insertDevice($username, $gcm_id);
}
3. Melakukan Push notification secara dengan cara menjalankan script secara manual pada
server :
[root@slave ~]# php /var/www/html/devmon/send_notification.php
<pre>string(143)
"{"multicast_id":9154774585956862612,"success":1,"failure":0,"canonical_id
s":0,"results":[{"message_id":"0:1435208353672820%e260a117f9fd7ecd"}]}"
http://digilib.mercubuana.ac.id/
4.2.3 Hasil Pengujian
Berikut adalah hasil pengujian dengan menggunakan metode black-box. Dengan menguji
fungsi-fungsi dari aplikasi :
http://digilib.mercubuana.ac.id/
Mengirim Reg Membuat script ID yang baru
ID ke database mengirimkan reg ID dikirim
http://digilib.mercubuana.ac.id/
Tabel 4.2 Hasil Pengujian
Dari hasil pengujian dengan 2 cara diatas notifikasi berhasil masuk ke perangkat android yang
diinstall aplikasi tersebut.
http://digilib.mercubuana.ac.id/
1 BAB V
KESIMPULAN DAN SARAN
5.1 Kesimpulan
Kesimpulan yang diperoleh dari pembuatan aplikasi notifikasi kerusakan
perangkat jaringan berbasis android ini adalah :
1. Aplikasi ini dijalankan pada perangkat mobile berbasis Android dan
digunakan untuk menerima notifikasi jika ada perangkat jaringan yang
down sehingga dapat membantu para personel operasional untuk segera
mengetahui jika ada perangkat yang down.
2. Notifikasi akan dikirim 5 menit setelah perangkat down, dan notifikasi akan
terus dikirimkan hingga perangkat tersebut up kembali. Di sisi server ada
script yang dijalankan setiap 5 menit sekali menggukan crontab
3. Pengguna aplikasi bisa melihat status terbaru dari perangkat jaringan yang
dimonitor. Data ini dibaca dari database aplikasi montoring existing,
menggunakan PHP-JSON.
5.2 Saran
Setelah membangun apikasi ini, ada beberapa saran untuk mengembangkan
aplikasi ini selanjutnya :
http://digilib.mercubuana.ac.id/
http://digilib.mercubuana.ac.id/
DAFTAR PUSTAKA
Al-Mukhtar, M. 2012. A System for An Enterprise Remote Network Monitoring and Fault
Management Based on SMS and WAP. Page 1 – 5, October 2012.
http://ieeexplore.ieee.org/xpl/login.jsp?tp=&arnumber=6552445 (diakses Maret 2015
Engage your users across Android, iOS and Chrome via Google Cloud Messaging.
https://developers.google.com/cloud-messaging/ (diakses 21 April 2015).
Srivastava, Shashank dan G.C Nandi. 2010. Enhancing the Efficiency of Secure Network
Monitoring Through Mobile Agents. Page 141-148, September 2010.
http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=5640412 (diakses Maret 2015).
Wahana Komputer. 2014. Mobie App Development With Phonegap. Yogyakarta : Andi.
Xingyua, Li. 2014. Design and Implementation of the Campus Network Monitoring System.
Page 117 – 119, May 2014.
http://ieeexplore.ieee.org/xpl/articleDetails.jsp?tp=&arnumber=6845571 (diakses Maret
2015)
http://digilib.mercubuana.ac.id/