SINKRONISASI OTOMATIS STATUS DOSEN DENGAN RASPBERRY PI MELALUI FACEBOOK GRAPH API
SKRIPSI
Oleh
Kevin Dwi Utomo 1401108515
Muhammad Adi Yulian 1401110904
Muhammad Ariel Dwi Putra 1401110993
School of Computer Science Universitas Bina Nusantara
Jakarta 2014
ii
SINKRONISASI OTOMATIS STATUS DOSEN DENGAN RASPBERRY PI MELALUI FACEBOOK GRAPH API
SKRIPSI
diajukan sebagai salah satu syarat untuk gelar kesarjanaan pada
Program Teknik Informatika School of Computer Science Jenjang Pendidikan Strata-1
Oleh
Kevin Dwi Utomo 1401108515
Muhammad Adi Yulian 1401110904
Muhammad Ariel Dwi Putra 1401110993
School of Computer Science Universitas Bina Nusantara
Jakarta 2014
iii
SINKRONISASI OTOMATIS STATUS DOSEN DENGAN RASPBERRY PI MELALUI FACEBOOK GRAPH API
SKRIPSI
Disusun oleh :
Kevin Dwi Utomo Muhammad Adi Yulian Muhammad Ariel Dwi Putra
1401108515 1401110904 1401110993
Disetujui oleh :
Pembimbing dan Ketua Jurusan
Dr. Widodo Budiharto, S.Si., M.Kom, D2637
Fredy Purnomo, S.Kom., M.Kom. Ketua Jurusan Teknik Informatika
Universitas Bina Nusantara Jakarta
vii
PERNYATAAN
Dengan ini saya,
Nama : Kevin Dwi Utomo Muhammad Adi Yulian Muhammad Ariel Dwi Putra
NIM : 1401108515 1401110904 1401110993 Judul Skripsi : Sinkronisasi Otomatis Status Dosen dengan Raspberry Pi melalui Facebook Graph Api
Memberikan kepada Universitas Bina Nusantara hak non-eksklusif untuk menyimpan, memperbanyak, dan menyebarluaskan Skripsi karya saya, secara keseluruhan atau hanya sebagian atau hanya ringkasan saja, dalam bentuk format tercetak dan atau elektronik.
Menyatakan bahwa saya, akan mempertahankan hak eksklusif saya, untuk menggunakan seluruh atau sebagian isi Skripsi saya, guna pengembangan karya di masa depan, misalnya bentuk artikel, buku, perangkat lunak, ataupun sistem informasi.
Jakarta, 25 Maret 2014
Kevin Dwi Utomo Muhammad Adi Yulian Muhammad Ariel Dwi Putra
viii
UNIVERSITAS BINA NUSANTARA
School of Computer Science Program Teknik Informatika Skripsi Sarjana Komputer Semester Ganjil 2013/2014
SINKRONISASI OTOMATIS STATUS DOSEN DENGAN
RASPBERRY PI MELALUI FACEBOOK GRAPH API
Kevin Dwi Utomo 1401108515
Muhammad Adi Yulian 1401110904
Muhammad Ariel Dwi Putra 1401110993
ABSTRAK
Tujuan penelitian ini adalah untuk mengembangkan sistem pemantauan status Facebook secara otomatis yang akan digunakan sebagai sumber informasi berupa keberadaan dosen dengan menggunakan pesan status di situs Facebook. Sistem dikembangkan dengan metode penelitian yang terdiri dari metode analisis dan metode perancangan. Metode analisis terdiri dari studi literatur, penyebaran kuesioner, dan wawancara narasumber. Metode perancangan menggunakan Waterfall
model. Hasil yang dicapai dari penelitian ini adalah sebuah embedded system yang
akan menampilkan pesan dalam layar LCD 20x4 dengan sebuah keypad 3x4 yang digunakan untuk mengkonfigurasi sistem yang sudah berjalan. Pengendali utama merupakan sebuah single board mini PC Raspberry Pi Model B yang memiliki
system on a chip (SoC) Broadcom BCM2835. Sistem operasi yang digunakan adalah
Raspbian,dan bahasa pemrograman utama sistem ini adalah Python 2. Facebook Graph API digunakan untuk mengakses status update dari dosen yang nantinya akan ditampilkan ke layar LCD. Pada pengujian aspek data usage, sistem ini hanya mengkonsumsi data dengan rata-rata 1.566 KB/s. Dengan menggunakan Wi-Fi, alat ini dapat tetap terhubung dengan jarak access point hingga 30 meter. Simpulan yang diperoleh dari hasil penelitian ini adalah sistem dapat mempermudah mahasiswa untuk melakukan pencarian dosen dan mempermudah dosen untuk memberikan informasi melalui teknologi yang sudah ada.
Kata Kunci: Sinkronisasi, Raspberry Pi, Facebook Graph API, Raspbian, Embedded
ix
KATA PENGANTAR
Puji dan syukur dipanjatkan kepada Tuhan Yang Maha Esa, atas segala berkat dan rahmat yang dianugerahkan-Nya, sehingga skripsi yang berjudul “Sinkronisasi Otomatis Status Dosen dengan Raspberry Pi melalui Facebook Graph API” dapat selesai dengan baik. Adapun tujuan penulisan skripsi ini adalah untuk memenuhi persyaratan dalam menyelesaikan jenjang studi Strata-1 di Universitas Bina Nusantara.
Dalam penyusunan skripsi ini, penulis tidak terlepas dari bantuan berbagai pihak yang telah mendukung dalam proses penyelesainnya. Oleh karena itu penulis hendak mengucapkan terima kasih kepada :
1. Bapak Prof. Dr. Ir. Harjanto Prabowo, MM selaku Rektor Universitas Bina Nusantara.
2. Bapak Fredy Purnomo, S.Kom, M.Kom, selaku Dean of School of Computer Science Universitas Bina Nusantara.
3. Ibu Yen Lina Prasetio, S.Kom, MCompSc. selaku Head of Computer Science Program Universitas Bina Nusantra.
4. Bapak Franky Hadinata Marpaung, S.Kom., M.M., selaku Deputy Head of Computer Science Department School –
Student & Alumni Universitas Bina Nusantara.
5. Bapak Dr. Widodo Budiharto, S.Si., M.Kom. selaku Pembimbing yang telah memberikan petunjuk, saran, dukungan, dan bimbingan dalam penyusunan skripsi ini.
6. Bapak Bayu Kanigoro, S.Kom., M.T. yang telah memberikan masukan dan kritik terhadap skripsi ini.
7. Ibu Anita Rahayu S.Si., M.Si. yang telah memberikan petunjuk, saran, dukungan, dan bimbingan dalam penyusunan skripsi ini.
8. Seluruh staff pengajar Universitas Bina Nusantara yang telah memberikan bekal ilmu selama perkuliahan.
x
9. Orang tua, Keluarga, dan rekan-rekan yang telah memberi berbagai macam dukungan baik moral maupun materi dalam penyusunan skripsi ini.
10.Teman-teman yang telah memberikan saran, pendapat, kritik serta dukungan lainnya.
11.Pihak-pihak lain yang tidak dapat disebutkan satu-persatu yang telah turut membantu dalam penulisan skripsi.
Akhir kata, penulis menyadari dalam penulisan skripsi ini belum sempurna dan masih banyak kekurangan. Oleh karena itu penulis menghargai adanya kritik dan saran yang membangun sebagai bahan perbaikan di kemudian hari. Besar harapan penulis agar penulisan skripsi ini dapat berguna bagi semua pihak.
Jakarta , 26 Januari 2014
xi
DAFTAR ISI
Halaman Judul Luar ... i
Halaman Judul Dalam ... ii
Halaman Persetujuan Dosen Pembimbing ... iii
Halaman Pernyataan Dosen Penguji ... iv
Halaman Pernyataan Persetujuan Publikasi Skripsi ... vii
Halaman Abstrak ... viii
Kata Pengantar ... ix
Daftar Isi ... xi
Daftar Tabel ... xiii
Daftar Gambar ... xv
Daftar Lampiran ...xxi
BAB 1 PENDAHULUAN 1.1 Latar Belakang ... 1
1.2 Rumusan Masalah ... 3
1.3 Ruang Lingkup ... 3
1.4 Tujuan dan Manfaat ... 4
1.5 Metodologi Penelitian ... 5
1.6 Sistematika Penulisan ... 6
BAB 2 TINJAUAN PUSTAKA 2.1 API (Application Programming Interface ... 9
2.2 REST (Representational State Transfer) ... 12
2.3 Facebook Graph API ... 13
2.3.1 Authentication & Authorization pada Facebook Graph API ... 16
2.3.2 Proses Graph API Call ... 20
2.4 Raspberry Pi Model B ... 22
2.5 Sistem Operasi Linux ... 24
2.5.1 Debian ... 25
2.6 Raspbian ... 26
2.7 JSON (JavaScript Object Notation) ... 27
2.8 UML (Unified Modeling Language) ... 27
2.8.1 Use Case Diagram ... 28
2.8.2 Activity Diagram ... 33
2.8.3 Class Diagram ... 34
2.8.4 Sequence Diagram... 37
2.9 I2C ... 38
2.10 GPIO (General Purpose Input/Output) ... 40
2.11 Python... 41 2.12 SSH (Secure Shell) ... 43 2.13 Socket Programming ... 43 2.14 Wi-Fi ... 44 2.15 Model Waterfall ... 44 2.16 Pengujian Hipotesis... 46
2.17 Hasil Penelitian Terkait Sebelumnya ... 49
2.17.1 Facebook Linked Data via the Graph API ... 49
xii
2.17.3 MicroLab: A Web-based Multi-user Remote Microcontroller
Laboratory for Engineering Education... 50
BAB 3 METODOLOGI 3.1 Kerangka Metodologi ... 51
3.2 Analisis Sistem ... 53
3.2.1 Analisis Kebutuhan User ... 54
3.2.2 Kesimpulan Analisis Kebutuhan User ... 64
3.2.3 Solusi Permasalahan ... 66
3.3 Perencanaan Pengembangan Sistem ... 68
3.3.1 Alokasi Sumber Daya Manusia ... 68
3.3.2 Jadwal Pengerjaan Sistem ... 69
3.4 Alur Kerja Sistem ... 70
3.4.1 Alur Kerja Perangkat Lunak ... 70
3.4.2 Alur Kerja Perangkat Keras ... 74
3.5 Rancangan Perangkat Lunak ... 80
3.5.1 Perancangan Use Case Diagram ... 80
3.5.2 Use Case Narrative... 81
3.5.3 Perancangan Activity Diagram ... 90
3.5.4 Perancangan Class Diagram ... 99
3.5.5 Perancangan Sequence Diagram ... 100
3.5.6 Perancangan Storyboard ... 109
BAB 4 HASIL DAN PEMBAHASAN 4.1 Spesifikasi Sistem ... 113
4.1.1 Perangkat Keras ... 113
4.1.2 Perangkat Lunak ... 114
4.2 Prosedur Operasi ... 115
4.2.1 Penggunaan aplikasi “Raspberry Pi Facebook Authenticator” ... 115
4.2.2 Menampilkan pesan pada LCD ... 119
4.2.3 Konfigurasi saat sistem berjalan ... 120
4.2.3.1 Display Mode ... 121
4.2.3.2 Edit Mode ... 122
4.3 Evaluasi Sistem ... 124
4.3.1 Evaluasi Alat ... 124
4.3.1.1 Processing Overhead ... 124
4.3.1.2 Pengujian Signal Strength ... 126
4.3.1.3 Pengujian Data Usage ... 129
4.3.1.4 Pengujian Pengambilan Status ... 132
4.3.2 Evaluasi Berdasarkan Kuesioner ... 135
BAB 5 SIMPULAN DAN SARAN 5.1 Simpulan ... 145 5.2 Saran ... 145 Daftar Pustaka ... 146 Riwayat Hidup Lampiran Surat Survei
xiii
DAFTAR TABEL
Tabel 2.1 Kategori API ... 11
Tabel 2.2 Atribut pada Tipe Objek User ... 15
Tabel 2.3 Atribut pada Objek Statuses ... 21
Tabel 2.4 Notasi pada Activity Diagram ... 33
Tabel 2.5 Multiplicity pada Class Diagram ... 36
Tabel 2.6 Statistik Uji untuk Varians Diketahui ... 47
Tabel 2.7 Statistik Uji untuk Varians Tidak Diketahui dan Dianggap Sama .. 47
Tabel 2.8 Statistik Uji untuk Varians Tidak Diketahui dan Berbeda ... 48
Tabel 3.1 Tabel Jawaban Pertanyaan Nomor 1 ... 55
Tabel 3.2 Tabel Jawaban Pertanyaan Nomor 2 ... 56
Tabel 3.3 Tabel Jawaban Pertanyaan Nomor 3 ... 57
Tabel 3.4 Tabel Jawaban Pertanyaan Nomor 4 ... 58
Tabel 3.5 Tabel Jawaban Pertanyaan Nomor 5 ... 59
Tabel 3.6 Tabel Jawaban Pertanyaan Nomor 6 ... 60
Tabel 3.7 Tabel Jawaban Pertanyaan Nomor 7 ... 61
Tabel 3.8 Tabel Jawaban Pertanyaan Nomor 8 ... 62
Tabel 3.9 Tabel Jawaban Pertanyaan Nomor 9 ... 63
Tabel 3.10 Tabel Alokasi Sumber Daya Manusia ... 68
Tabel 3.11 Gantt Chart ... 69
Tabel 3.12 Daftar Sumber Daya yang Digunakan ... 69
Tabel 3.13 Tabel LCD Register Operations ... 76
Tabel 3.14 Tabel Return Code Keypad ... 76
Tabel 3.15 Tabel Use Case Narrative untuk Authenticate User ... 81
Tabel 3.16 Tabel Use Case Narrative untuk Toggle Display Visibility ... 82
Tabel 3.17 Tabel Use Case Narrative untuk Configure Display ... 83
Tabel 3.18 Tabel Use Case Narrative untuk Ticker Scroll Speed ... 84
xiv
Tabel 3.20 Tabel Use Case Narrative untuk Toggle Availability ... 86
Tabel 3.21 Tabel Use Case Narrative untuk Delete User ... 87
Tabel 3.22 Tabel Use Case Narrative untuk Display Message ... 88
Tabel 3.23 Tabel Use Case Narrative untuk Receive Access Token ... 89
Tabel 4.1 Tabel Overhead Melalui Media Wi-Fi ... 125
Tabel 4.2 Tabel Overhead Melalui Media Ethernet ... 125
Tabel 4.3 Tabel Pengujian Signal Strength ... 127
Tabel 4.4 Jumlah Besar Ukuran Paket Data yang Digunakan Aplikasi ... 130
Tabel 4.5 Tabel Jawaban Pertanyaan Nomor 1 ... 135
Tabel 4.6 Tabel Jawaban Pertanyaan Nomor 2 ... 136
Tabel 4.7 Tabel Jawaban Pertanyaan Nomor 3 ... 137
Tabel 4.8 Tabel Jawaban Pertanyaan Nomor 4 ... 138
Tabel 4.9 Tabel Jawaban Pertanyaan Nomor 5 ... 139
Tabel 4.10 Tabel Jawaban Pertanyaan Nomor 6... 140
Tabel 4.11 Tabel Jawaban Pertanyaan Nomor 7... 141
Tabel 4.12 Tabel Jawaban Pertanyaan Nomor 8... 142
Tabel 4.13 Tabel Jawaban Pertanyaan Nomor 9... 143
xv
DAFTAR GAMBAR
Gambar 1.1 Bagan Waterfall System Development ... 5
Gambar 2.1Analogi API pada Pembangunan Rumah ... 9
Gambar 2.2 Skema Konektivitas API Antar Software ... 10
Gambar 2.3 Mapping Method Calls ke URI ... 13
Gambar 2.4 Ilustrasi Social Graph ... 14
Gambar 2.5 HTTP Request &Response Graph API ... 16
Gambar 2.6 Proses Otentikasi dan Otorisasi ... 18
Gambar 2.7 Raspberry Pi Model B... 22
Gambar 2.8 Raspberry Pi Model B... 23
Gambar 2.9 Struktur Sistem Operasi dari Linux ... 24
Gambar 2.10 Contoh JSON Response dari Facebook Graph API ... 27
Gambar 2.11 Diagram Use Case ... 28
Gambar 2.12 Simbol Actor pada Use Case ... 29
Gambar 2.13 Associations pada Use Case ... 30
Gambar 2.14 Extension Relationship ... 30
Gambar 2.15 Uses Relationship ... 31
Gambar 2.16 Depends on Relationship ... 32
Gambar 2.17 Inheritance Relationship ... 32
Gambar 2.18 Object Class ... 34
Gambar 2.19 Class Relationship ... 35
Gambar 2.20 Aggregation Relationship ... 35
Gambar 2.21 Composition Relationship ... 36
Gambar 2.22 Generalization Relationship ... 36
xvi
Gambar 2.24 I2C Bus yang Dipakai oleh Enam Komponen secara Bersamaan ... 39
Gambar 2.25 Bagan Waterfall System Development ... 44
Gambar 2.26 Diagram Alur Protokol OAuth 2.0 ... 49
Gambar 2.27 Diagram sofware architecture dari MicroLab ... 50
Gambar 3.1 Kerangka Metodologi ... 51
Gambar 3.2 Pie Chart Jawaban Pertanyaan Nomor 1 ... 55
Gambar 3.3 Pie Chart Jawaban Pertanyaan Nomor 2 ... 56
Gambar 3.4 Histogram Jawaban Pertanyaan Nomor 3 ... 57
Gambar 3.5 Histogram Jawaban Pertanyaan Nomor 4 ... 58
Gambar 3.6 Histogram Jawaban Pertanyaan Nomor 5 ... 59
Gambar 3.7 Histogram Jawaban Pertanyaan Nomor 6 ... 60
Gambar 3.8 Histogram Jawaban Pertanyaan Nomor 7 ... 61
Gambar 3.9 Histogram Jawaban Pertanyaan Nomor 8 ... 62
Gambar 3.10 Histogram Jawaban Pertanyaan Nomor 9 ... 63
Gambar 3.11 Arsitektur Sistem ... 70
Gambar 3.12 Flowchart Proses Authentication ... 71
Gambar 3.13 Modul monitoring subsystem ... 72
Gambar 3.14 Flowchart Proses Monitoring ... 73
Gambar 3.15 Block diagram perangkat keras ... 74
Gambar 3.16 Konfigurasi LCD ke board Raspberry Pi ... 75
Gambar 3.17 Konfigurasi Koneksi I2C ke Keypad ... 77
Gambar 3.18 Konfigurasi Keypad Pins ... 77
Gambar 3.19 Project Enclosure ... 78
xvii
Gambar 3.21 Use Case Diagram Raspberry Pi Facebook Synchronization System.
... 80
Gambar 3.22 Authenticate User Activity Diagram ... 90
Gambar 3.23 Toggle Display Activity Diagram [show] ... 91
Gambar 3.24 Toggle Display Activity Diagram [hide] ... 91
Gambar 3.25 Configure Display Activity Diagram ... 92
Gambar 3.26 Toggle LCD Backlight Activity Diagram [off] ... 93
Gambar 3.27 Toggle LCD Backlight Activity Diagram [on] ... 93
Gambar 3.28 Change Message Scroll Speed Activity Diagram [faster] ... 94
Gambar 3.29 Change Message Scroll Speed Activity Diagram [slower] ... 94
Gambar 3.30 Toggle Availability Activity Diagram ... 95
Gambar 3.31 Delete User Activity Diagram ... 96
Gambar 3.32 Receive Access Token Activity Diagram ... 97
Gambar 3.33 Synchronize & Display Message Activity Diagram ... 98
Gambar 3.34 Class diagram Raspberry Pi Facebook Synchronization System ... 99
Gambar 3.35 Authenticate User Sequence Diagram ... 100
Gambar 3.36 Toggle Display Sequence Diagram [hide] ... 101
Gambar 3.37 Toggle Display Sequence Diagram [show] ... 101
Gambar 3.38 Configure Display Sequence Diagram ... 102
Gambar 3.39 Toggle LCD Backlight Sequence Diagram [off] ... 103
Gambar 3.40 Toggle LCD Backlight Sequence Diagram [on] ... 103
Gambar 3.41 Change Message Scroll Speed Sequence Diagram [slower] ... 104
xviii
Gambar 3.43 Toggle Availability Sequence Diagram ... 105
Gambar 3.44 Delete User Sequence Diagram ... 106
Gambar 3.45 Receive Access Token Sequence Diagram ... 107
Gambar 3.46 Synchronize and Display Message Sequence Diagram ... 108
Gambar 3.47 Storyboard Authenticator Software ... 109
Gambar 3.48 Storyboard Monitoring Software (Initialization Screen) ... 109
Gambar 3.49 Storyboard Monitoring Software (IP Information Screen) ... 110
Gambar 3.50 Storyboard Monitoring Software (Connection Testing Screen) .... 110
Gambar 3.51 Storyboard Monitoring Software (Authorization Needed Screen) ... ... 110
Gambar 3.52 Storyboard Monitoring Software (Welcome Screen) ... 111
Gambar 3.53 Storyboard Monitoring Software (Display Mode) ... 111
Gambar 3.54 Storyboard Monitoring Software (Configuration Mode) ... 112
Gambar 3.55 Storyboard monitoring software (Access Token Deletion Screen) ... ... 112
Gambar 4.1 Tampilan Splash Screen Instruksi Otentikasi ... 115
Gambar 4.2 Button “Login to Facebook” ... 116
Gambar 4.3 Login Screen Facebook ... 116
Gambar 4.4 Tampilan Permission Asking ... 117
Gambar 4.5 Tampilan Pada Browser Setelah Permission Asking ... 117
Gambar 4.6 Kolom IP Address ... 118
Gambar 4.7 Tombol Send ... 118
Gambar 4.8 Tampilan Welcome Screen ... 118
Gambar 4.9 Tampilan LCD Pada Display Mode ... 119
xix
Gambar 4.11 Simulasi Sinkronisasi Status Facebook ... 120
Gambar 4.12 Keypad 3x4 ... 120
Gambar 4.13 Tampilan LCD Pada Display Mode ... 121
Gambar 4.14 Tampilan LCD Pada Edit Mode ... 122
Gambar 4.15 Tampilan LCD Saat Konfirmasi Delete Access Token ... 123
Gambar 4.16 Denah Pengujian Sistem ... 127
Gambar 4.17 Grafik Interferensi pada Lokasi Pengujian ... 128
Gambar 4.18 Grafik Interferensi pada Lokasi Pengujian ... 128
Gambar 4.19 Diagram Total Ukuran Paket Data yang Digunakan Aplikasi ... ... 131
Gambar 4.20 Pesan ASCII yang Dikirim ke Raspberry Pi ... 132
Gambar 4.21 Tampilan LCD dari Hasil Pengiriman Status Update berupa karakter ASCII ... 132
Gambar 4.22 Pesan Unicode yang Dikirim ke Raspberry Pi ... 133
Gambar 4.23 Tampilan LCD dari Hasil Pengiriman Status Update berupa karakter Unicode ... 133
Gambar 4.24 Pesan yang Dikirim dengan panjang 251 karakter ... 133
Gambar 4.25 Tampilan LCD yang dilengkapi dengan nama user ... 134
Gambar 4.26 Pie Chart Jawaban Pertanyaan Nomor 1 ... 135
Gambar 4.27 Pie Chart Jawaban Pertanyaan Nomor 2 ... 136
Gambar 4.28 Pie Chart Jawaban Pertanyaan Nomor 3 ... 137
Gambar 4.29 Pie Chart Jawaban Pertanyaan Nomor 4 ... 138
Gambar 4.30 Pie Chart Jawaban Pertanyaan Nomor 5 ... 139
Gambar 4.31 Pie Chart Jawaban Pertanyaan Nomor 6 ... 140
Gambar 4.32 Pie Chart Jawaban Pertanyaan Nomor 7 ... 141
xx
Gambar 4.34 Pie Chart Jawaban Pertanyaan Nomor 9 ... 143 Gambar 4.35 Histogram Jawaban Pertanyaan Nomor 10 ... 144
xxi
DAFTAR LAMPIRAN
Daftar Pertanyaan Kuesioner Awal ... L1 Daftar Pertanyaan Kuesioner Evaluasi ... L3 Cuplikan Code dari LCD Display ... L5 Cuplikan code dari Pengambilan Facebook Status ... L7 Pengujian Hipotesis ... L8 Wawancara Responden ... L10