SKRIPSI
IMPLEMENTASI PUSH NOTIFICATION SCHEDULER PADA FIREBASE CLOUD MESSAGING UNTUK APLIKASI PENGINGAT KEGIATAN ORGANISASI MENGGUNAKAN FLUTTER BERBASIS
MOBILE
RIFQI DARMAWAN Nomor Mahasiswa : 155410125
PROGRAM STUDI TEKNIK INFORMATIKA
SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER AKAKOM
YOGYAKARTA 2019
i SKRIPSI
IMPLEMENTASI PUSH NOTIFICATION SCHEDULER PADA FIREBASE CLOUD MESSAGING UNTUK APLIKASI PENGINGAT KEGIATAN ORGANISASI MENGGUNAKAN FLUTTER BERBASIS
MOBILE
Diajukan sebagai salah satu syarat untuk memperoleh gelar Sarjana Komputer Studi Teknik Informatika
Sekolah Tinggi Manajemen Informatika dan Komputer Akakom Yogyakarta
Disusun Oleh: RIFQI DARMAWAN Nomor Mahasiswa : 155410125
PROGRAM STUDI TEKNIK INFORMATIKA SEKOLAH TINGGI MANAJEMEN INFORMATIKA
DAN KOMPUTER AKAKOM YOGYAKARTA 2019
iv
HALAMAN PERSEMBAHAN
SKRIPSI ini saya persembahkan untuk:
Allah SWT atas segala limpahan karunia yang telah Ia berikan, sehingga SKRIPSI ini dapat diselesaikan dengan baik.
Orang Tua yang selalu mendoakan, memberi semangat, menyayangi dan mencintai saya sepenuh hati serta meridhoi segala sesuatu yang saya kerjakan.
Dosen Pembimbing Pak Pius Dian Widi Anggoro S.Si., M.Cs. yang selalu mendukung dan memberikan semangat selama proses penyelesaian skripsi ini.
Teman Seperjuangan di Kampus STMIK AKAKOM Yogyakarta yang membantu, mendukung, dan memberi semangat kepada saya.
v MOTTO
"I’ve always believed in one phrase… and my entire life… has always proven this phrase… in this world… nothing is impossible!" ― Ni Tian Xie Shen
"Never give up. Today is hard, tomorrow will be worse, but the day after tomorrow will be sunshine." ― Jack Ma
"It's ineffective to deal with many problems at once." ― Hishiro Chizuru
vi INTISARI
Agenda harian sering dijumpai dalam bentuk kertas, note pada komputer/notebook, dan memo pada telepon seluler sebagai alat pengingat atau sebagai alat pencatat kebutuhan sehari-hari. Seseorang biasanya mencatat agenda pada suatu buku khusus untuk meng agendakan suatu hal yang penting, misalnya rapat. Tetapi pencatatan memo pada bentuk kertas sangat kurang efektif sebagai alat pengingat, karena selain kertas itu tipis kertas juga mudah hilang, sobek, maupun basah. Sedangkan untuk aplikasi memo pada smartphone biasanya hanya mencantumkan kegiatan atau janji saja, sangat jarang yang memiliki fitur seperti reminder dalam bentuk notifikasi. Atau jika dalam suatu organisasi akan melakukan kegiatan biasanya akan diumumkan ke anggota nya melalui lisan, surat, ataupun sosial media saja sehingga risiko untuk lupa sangat besar karena biasanya hanya diumumkan sekali saja. Oleh karena itu sangat diperlukan aplikasi yang bisa menyajikan catatan sekaligus reminder sebagai fitur untuk memberi notifikasi kepada seseorang.
Push Notification adalah sebuah layanan yang banyak digunakan untuk
keperluan pemberitahuan melalui pesan pendek yang ada di smartphone. Dengan adanya layanan Push Notification tersebut, pengguna dapat terbantu dalam hal yang bersifat pemberitahuan secara singkat. Pada implementasinya Push Notification dapat dimanfaatkan dalam berbagai keperluan sehari-hari misalnya untuk monitoring absensi, update berita terbaru, dan sebagainya.
Berdasarkan masalah tersebut maka penulis membuat dan meneliti aplikasi Pengingat Kegiatan Organisasi yang dibangun diatas platform android dengan menggunakan SDK Flutter yang mengimplementasikan Cron Job pada Firebase Cloud Messaging untuk scheduler, yang diharapkan dapat mempermudah dan bermanfaat bagi pengurus organisasi dalam menyampaikan informasi ke anggota.
vii
KATA PENGANTAR
Assalamu’alaikum warahmatullahi wabarakatuh.
Bismillahirrohmanirrohim, segala puji syukur kehadirat Allah SWT yang melimpahkan rahmat dan hidayah-Nya sehingga penulis dapat menyelesaikan Skripsi dengan judul “Implementasi Push Notification Scheduler pada Firebase Cloud Messaging untuk Aplikasi Pengingat Kegiatan Organisasi Menggunakan Flutter Berbasis Mobile”. Laporan Skripsi ini disusun untuk memenuhi salah satu syarat dalam memperoleh gelar Sarjana Komputer pada Sekolah Tinggi Manajemen Informatika dan Komputer Yogyakarta.
Dengan melakukan penelitian dan penyusunan Tugas Akhir ini penulis telah mendapatkan banyak dukungan dan bantuan dari berbagai pihak. Penulis mengucapkan terima kasih yang tak terhingga kepada:
1. Allah SWT yang telah memberikan ridho, bimbingan , berkah , rahmat , hidayah dan inayah kepada penulis selama melakukan penelitian dan menyusun laporan skripsi ini.
2. Keluarga tercinta, Ayah, Ibu dan saudara yang selalu mendukung dalam menyelesaikan Skripsi ini.
3. Terima kasih untuk seluruh teman-teman yang telah membantu kelancaran pembuatan Skripsi, Terima kasih atas bantuan dan kerjasamanya selama ini. 4. Ir.Totok Suprawoto., MM., MT, selaku Ketua Sekolah Tinggi Manajemen
Informatika dan Komputer yang telah berkenan memberikan izin dalam pembuatan skripsi ini.
viii
5. Dini fakta Sari S.T., M.T, selaku Ketua Program Studi Strata 1 Teknik Informatika Sekolah Tinggi Manajemen Informatika dan Komputer pembimbing yang telah berkenan memberikan izin untuk mengikuti ujian skripsi ini.
6. Pius Dian Widi Anggoro S.Si., M.Cs. selaku dosen pembimbing yang telah berkenan memberikan izin untuk mengikuti ujian skripsi ini dan yang telah penuh kesabaran dan ketulusan memberikan ilmu dan bimbingan terbaik kepada penulis.
7. Para dosen Program Studi Strata 1 Teknik Informatika Sekolah Tinggi Manajemen Informatika dan Komputer yang telah memberikan bekal ilmu kepada penulis.
Penulis menyadari sepenuhnya bahwa laporan skripsi ini masih jauh dari sempurna. Untuk itu, semua jenis saran, kritik dan masukkan yang bersifat membangun sangat penulis harapkan. Akhir kata, semoga tulisan ini dapat memberikan manfaat dan memberikan wawasan tambahan bagi pembaca dan khususnya bagi penulis sendiri.
Wassalamualaikum warahmatullahi wabarakatuh.
Yogyakarta, Agustus 2019
ix
DAFTARISI
HALAMAN JUDUL ... i
HALAMAN PENGESAHAN ... iii
HALAMAN PERSEMBAHAN ... iv
MOTTO ... v
INTISARI ... vi
KATA PENGANTAR ... vii
DAFTAR ISI ... ix
DAFTAR GAMBAR ... xi
DAFTAR TABEL ... xiii
BAB I PENDAHULUAN ... 1 1.1 Latar Belakang ... 1 1.2 Rumusan Masalah ... 2 1.3 Ruang Lingkup ... 2 1.4 Tujuan Penelitian ... 3 1.5 Manfaat ... 4 1.6 Sistematika Penulisan ... 4
BAB II TINJAUAN PUSTAKA DAN LANDASAN TEORI ... 7
2.1 Tinjauan Pustaka ... 7
2.2 Dasar Teori ... 11
2.1.1 Pesan ... 11
2.1.2 Notifikasi ... 11
2.1.3 Flutter ... 11
2.1.4 Firebase Cloud Messaging ... 12
2.1.5 Push Notification ... 13
2.1.6 Android Studio ... 13
2.1.7 Cron Job ... 14
2.1.8 RESTful API ... 14
BAB III METODE PENELITIAN... 15
x
3.2 Bahan/Data ... 16
3.2.1 Kebutuhan Input ... 16
3.2.2 Kebutuhan Proses ... 16
3.2.3 Kebutuhan Output ... 16
3.2.4 Kebutuhan Perangkat Lunak ... 17
3.2.5 Kebutuhan Perangkat Keras ... 17
3.3 Perancangan Sistem ... 18
3.3.1 Usecase Diagram ... 18
3.3.2 Sequence Diagram ... 19
3.3.3 Activity Diagram ... 22
3.3.4 Class Diagram ... 25
3.3.5 Rancangan Antarmuka Aplikasi ... 26
BAB IV IMPLEMENTASI DAN PEMBAHASAN SISTEM ... 31
4.1 Implementasi dan Uji Coba Sistem ... 31
4.1.1 Kode Program Authentication Menggunakan Google ... 31
4.1.2 Kode Program Authentication Menggunakan Anonymous ... 32
4.1.3 Kode Program Menyimpan Data Pesan ... 32
4.1.4 Kode Program Cron Job Scheduling Setiap 1 Menit Sekali ... 33
4.1.5 Kode Program Menampilkan Pesan ... 33
4.1.6 Kode Program Untuk Dapat Menerima Notifikasi ... 33
4.2 Pembahasan ... 34
4.2.1 Tampilan Sign In ... 34
4.2.2 Tampilan Sign Up ... 35
4.2.3 Tampilan Isi Grup ... 36
4.2.4 Tampilan Daftar Pesan ... 37
4.2.5 Tampilan Menambah Pesan ... 38
4.2.6 Tampilan Daftar Kehadiran... 39
4.2.7 Tampilan Notifikasi ... 40 4.2.9 Hasil Pengujian ... 41 BAB V PENUTUP ... 46 5.1 Kesimpulan ... 46 5.2 Saran ... 46 DAFTAR PUSTAKA ... 47
xi
DAFTAR GAMBAR
Gambar 2.1 Arsitektur Firebase Cloud Messaging ... 12
Gambar 3.1 Desain Sistem Keseluruhan ... 15
Gambar 3.2 Usecase Aplikasi ... 18
Gambar 3.3 Sequence Diagram Membuat Grup ... 19
Gambar 3.4 Sequence Diagram Membuat Pesan Notifikasi ... 20
Gambar 3.5 Sequence Diagram Timeline ... 21
Gambar 3.6 Activity Diagram Authentication ... 22
Gambar 3.7 Activity Diagram Timeline ... 23
Gambar 3.8 Activity Diagram Membuat Pesan ... 24
Gambar 3.9 Class Diagram ... 25
Gambar 3.10 Rancangan Halaman Home/Timeline ... 26
Gambar 3.11 Rancangan Detail Pesan ... 26
Gambar 3.12 Rancangan Alasan Ketidakhadiran ... 27
Gambar 3.13 Rancangan Halaman Grup ... 27
Gambar 3.14 Rancangan Membuat Grup (Menambah Anggota) ... 28
Gambar 3.15 Rancangan Membuat Grup (Mengatur Nama Grup dan Foto Grup) ... 28
Gambar 3.16 Rancangan Isi Grup ... 29
Gambar 3.17 Rancangan Membuat Pesan ... 29
Gambar 3. 18 Rancangan Tampilan Notifikasi ... 30
Gambar 4.1 Kode Program Authentication Menggunakan Google ... 31
Gambar 4.2 Kode Program Authentication Menggunakan Anonymous ... 32
Gambar 4.3 Kode Program Menyimpan Data Pesan ... 32
Gambar 4.4 Kode Program Cron Job Scheduling Setiap 1 Menit Sekali ... 33
Gambar 4.5 Kode Program Menampilkan Pesan ... 33
Gambar 4.6 Kode Program Untuk Dapat Menerima Notifikasi ... 34
Gambar 4.7 Tampilan Sign In ... 34
xii
Gambar 4.9 Tampilan Timeline ... 35
Gambar 4.10 Tampilan Isi Grup ... 36
Gambar 4.11 Tampilan Daftar Pesan ... 37
Gambar 4.12 Tampilan Menambah Pesan ... 38
Gambar 4.13 Tampilan Daftar Kehadiran ... 39
xiii
DAFTAR TABEL
Tabel 2.1 Tinjauan Pustaka ... 10 Tabel 4.1 Pengujian Kecepatan Penerimaan Notifikasi Berdasarkan Perangkat .. 44 Tabel 4.2 Pengujian Kecepatan Penerimaan Notifikasi Berdasarkan Jaringan .... 44 Tabel 4.3 Pengujian Penerimaan Notifikasi Setelah Dalam Kondisi Online Dari Offline ... 45