IMPLEMENTASI NODE.JS DAN MONGODB SEBAGAI CLOUD APPLICATION MOBILE SERVER
TUGAS AKHIR
Disusun Oleh : ROUDHOTUL JANNAH 09560026
JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNIK UNIVERSITAS MUHAMMADIYAH MALANG 2013
LEMBAR PERSETUJUAN
IMPLEMENTASI NODE.JS DAN MONGODB SEBAGAI CLOUD APPLICATION MOBILE SERVER
TUGAS AKHIR
Diajukan Untuk Memenuhi Persyaratan Guna Meraih Gelar Sarjana Strata 1 Teknik Informatika Universitas Muhammadiyah Malang
Mengetahui/Menyetujui
Dosen Pembimbing I
Yuda Munarko , S.Kom., M.Sc NIP. 108 0611 0443
Dosen Pembimbing II
Agus Eko Minarno, S.Kom NIDN. 072 911 8203
LEMBAR PENGESAHAN
IMPLEMENTASI NODE.JS DAN MONGODB SEBAGAI CLOUD APPLICATION MOBILE SERVER TUGAS AKHIR Diajukan Untuk Memenuhi Persyaratan Guna Meraih Gelar Sarjana Strata 1 Teknik Informatika Universitas Muhammadiyah Malang Disusun Oleh : ROUDHOTUL JANNAH 09560026 Tugas Akhir ini telah diuji dan dinyatakan lulus oleh tim penguji pada tanggal 27 April 2013 Mengetahui/Menyetujui Penguji I
Penguji II
Machmud Effendy, ST, M.Eng NIP. 108.0203.0363
Galih Wasis Wicaksono, S.Kom NIDN. 072.302.88 Mengtahui
Ketua Jurusan Teknik Informatika
Eko Budi Cahyono, S.Kom, MT NIP. 108.9504.0330
SURAT PERNYATAAN Yang bertanda tangan dibawah ini, Nama
: Roudhotul Jannah
Tempat, Tgl Lahir
: Malang, 10 Oktober 1991
NIM
: 09560026
Fakultas/Jurusan
: Teknik/ Informatika
Dengan ini saya menyatakan bahwa Tugas Akhir dengan judul “IMPLEMENTASI NODE.JS DAN MONGODB SEBAGAI CLOUD APPLICATION MOBILE SERVER” beserta seluruh isinya adalah karya saya sendiri dan bukan merupakan karya tulis orang lain, baik sebagian maupun seluruhnya, kecuali dalam bentuk kutipan yang telah disebutkan sumbernya. Demikian surat pernyataan ini saya buat dengan sebenar-benarnya, apabila kemudian ditemukan adanya pelanggalaran terhadap etika keilmuan dalam karya saya ini, atau ada klaim dari pihak lain terhadap keaslian karya saya ini maka saya siap menanggung segala bentuk resiko/sanksi yang berlaku.
Mengetahui, Dosen Pembimbing
Malang, 10 April 2013 Yang Menyatakan
Yuda Munarko, S.Kom, M.Sc
Roudhotul Jannah
KATA PENGANTAR Alhamdulillah, segala puji bagi Allah SWT yang telah memberi petunjuk dan serta melancarkan jalan sehingga penulis dapat menyelesaikan tugas akhir yang berjudul : ”IMPLEMENTASI NODE.JS DAN MONGO.DB SEBAGAI CLOUD APPLICATION MOBILE SERVER” Di dalam tulisan ini disajikan pokok-pokok bahasan yang meliputi perancangan sistem, pembuatan web server, koneksi Node.JS dan mongoDB, installasi aplikasi, serta pengujian sistem yang sudah dibuat. Penulis menyadari bahwa penelitian ini masih jauh dari kesempurnaan. Oleh karena itu penulis mengaharapkan saran dan kritik yang membangun agar tulisan ini dapat bermanfaat bagi pengembangan ilmu pengetahuan kedepan. Perangkat lunak ini juga masih membutuhkan pengembangan lebih lanjut sehingga dapat lebih bermanfaat. Akhir kata penulis mengucapkan terima kasih kepada semua pihak yang telah membantu hingga tugas akhir ini terselesaikan.
Malang, April 2013
Penulis
DAFTAR ISI HALAMAN JUDUL .......................................................................................
i
LEMBAR PERSETUJUAN ............................................................................
ii
LEMBAR PENGESAHAN ............................................................................
iii
HALAMAN PERNYATAAN KEASLIAN ...................................................
iv
ABSTRAK ......................................................................................................
v
ABSTRACT ....................................................................................................
vi
HALAMAN PERSEMBAHAN ......................................................................
vii
KATA PENGANTAR ....................................................................................
viii
DAFTAR ISI ..................................................................................................
ix
DAFTAR GAMBAR ......................................................................................
xii
DAFTAR TABEL ...........................................................................................
xiv
BAB I
PENDAHULUAN 1.1.
Latar Belakang Masalah ........................................................
1
1.2. Rumusan Masalah ..................................................................
2
1.3. Tujuan ....................................................................................
2
1.4. Batasan Masalah.....................................................................
2
1.5. Metodologi Penyelesaian Masalah .........................................
3
1.5.1. Studi Pustaka ................................................................
3
1.5.2. Merancang Desain Sistem ............................................
3
1.5.3. Mengimplementasikan Metode ke dalam Bahasa
BAB II
Pemrograman ...............................................................
4
1.5.4. Pengujian Tahap Sistem ...............................................
4
1.6. Sistematika Penulisan.............................................................
5
LANDASAN TEORI 2.1. Cloud Computing ...................................................................
6
2.1.1. Kategori Layanan Cloud Computing ...........................
7
2.1.2. Kelebihan Cloud Computing disbanding Server Konversional ................................................................
8
2.1.3. Mekanisme akses Cloud Computing ............................
9
2.2. MongoDB ...............................................................................
9
2.3. Node.JS...................................................................................
11
BAB III PERANCANGAN SISTEM 3.1. Analisa Sistem ........................................................................
15
3.1.1. Analisa dari sisi Web Browser Client ..........................
16
3.1.2. Analisa dari sisi Web Server ........................................
16
3.1.3. Analisa dari sisi Database Server .................................
17
3.2. Analisa Kebutuhan Sistem .....................................................
17
3.2.1. Spesifikasi Perangkat Keras .........................................
17
3.2.2. Spesifikasi Kebutuhan Software ..................................
19
3.2.2.1. Kebutuhan dari sisi Web Browser Client .........
19
3.2.2.2. Kebutuhan dari sisi Web Server.......................
19
3.2.2.3. Kebutuhan dari sisi Database Server ..............
20
3.3. Perancangan Arsitektur Sistem ..............................................
20
3.3.1. Perancangan Arsitektur Web Browser Client...............
22
3.3.2. Perancangan Arsitektur Web Server.............................
23
3.3.3. Perancangan Arsitektur Database Server ....................
23
3.4. Perancangan Proses Sistem ....................................................
24
3.4.1. Perancangan Web Browser Client ................................
24
3.4.2. Perancangan Web Server ..............................................
26
3.4.3. Perancangan Database Server......................................
27
3.5. Perancangan Interface ............................................................
28
3.6. Perancangan Data ...................................................................
30
3.6.1. Perancangan Database Setiap Aplikasi .......................
30
3.7. Tools Pengujian ......................................................................
30
BAB IV IMPLEMENTASI DAN PENGUJIAN 4.1. Implementasi Sistem ..............................................................
32
BAB V
4.1.1. Cloud Application Server .............................................
32
4.1.2. Web Server ...................................................................
33
4.1.2.1. Installasi Node.JS.............................................
33
4.1.2.2. Pembuatan Web Server ....................................
35
4.2.2. Database Server ...........................................................
37
4.2.2.1. Installasi MongoDB .........................................
37
4.2.2.2. Koneksi Node.JS dan MongoDB .....................
37
4.2.3. Installasi Aplikasi .........................................................
39
4.3. Pengujian Sistem ....................................................................
41
4.3.1. Pengaksesan Web Server ..............................................
41
4.3.2. Penggunaan Aplikasi dan Akses Database ..................
42
4.3.2.1. Aplikasi Chatting .............................................
42
4.3.2.2. Aplikasi Railway Upload.................................
45
4.3.2.3. Aplikasi Game Math Race ...............................
47
4.3.3. Monitoring Performa Sistem ........................................
49
4.3.3.1. Monitoring Server............................................
49
4.3.3.1.1. Akses Aplikasi Upload .....................
50
4.3.3.1.2. Akses Aplikasi Chatting ...................
52
4.3.3.1.3. Akses Aplikasi Game........................
54
4.3.3.2. Monitoring Performa Aplikasi.........................
55
4.3.3.2.1. Aplikasi Upload ................................
55
4.3.3.2.2. Aplikasi Chatting ..............................
56
4.3.3.2.3. Aplikasi Game ..................................
57
4.3.3.3. Monitoring Performa Web server ....................
57
4.3.3.3.2. Pengujian Web server(Performa) ......
59
KESIMPULAN DAN SARAN 5.1. Kesimpulan ............................................................................
58
5.2. Saran.......................................................................................
59
DAFTAR PUSTAKA
DAFTAR GAMBAR
Gambar 1.1.
Diagram Alir Kegiatan User ...................................................
3
Gambar 2.1. Cloud Computing......................................................................
6
Gambar 2.2. Model sederhana dari Cloud Computing ..................................
7
Gambar 2.3. coba.js .......................................................................................
12
Gambar 3.1. Request Client, Response Server ..............................................
21
Gambar 3.2. Arsitektur Sistem Cloud Application Mobile Server ................
22
Gambar 3.3. Proses sinkronisasi....................................................................
22
Gambar 3.4. Proses web server .....................................................................
23
Gambar 3.5. Proses real time aplikasi ...........................................................
24
Gambar 3.6. Flow chart web browser client – Kegiatan user .......................
25
Gambar 3.7. Flow chart web server ..............................................................
25
Gambar 3.8. Flow chart database aplikasi....................................................
27
Gambar 3.10. Sitemap web server ...................................................................
28
Gambar 3.11. UI form daftar aplikasi..............................................................
29
Gambar 3.12. UI Real time application ..........................................................
29
Gambar 3.13. Monitoring Nodetime................................................................
31
Gambar 4.1. Konfigurasi ip address .............................................................
33
Gambar 4.2. Kode Web Server ......................................................................
35
Gambar 4.3. Aplikasi Mongoose ...................................................................
38
Gambar 4.4. file.sh ........................................................................................
41
Gambar 4.5. Akses web server ......................................................................
42
Gambar 4.6. Tampilan Awal Aplikasi Chatting............................................
43
Gambar 4.7. Login Aplikasi Chatting ...........................................................
43
Gambar 4.8. Proses Chatting Users ..............................................................
44
Gambar 4.9. Disconnect user ........................................................................
45
Gambar 4.10. Upload file ................................................................................
46
Gambar 4.11. Editting file ...............................................................................
47
Gambar 4.12. Input user name ........................................................................
47
Gambar 4.13. Play Game ................................................................................
48
Gambar 4.14. Jawaban benar atau salah..........................................................
48
Gambar 4.15. Result Game..............................................................................
49
Gambar 4.16. Monitoring akses aplikasi upload (free memory) .....................
50
Gambar 4.17. Monitoring akses aplikasi upload (load average) ....................
51
Gambar 4.18. Monitoring akses aplikasi upload (CPU time) .........................
51
Gambar 4.19. Monitoring akses aplikasi chatting (free memory) ...................
52
Gambar 4.20. Monitoring akses aplikasi chatting (load average) ..................
53
Gambar 4.21. Monitoring akses aplikasi chating (CPU time) ........................
53
Gambar 4.22. Monitoring akses aplikasi game (load average) ......................
54
Gambar 4.23. Monitoring akses aplikasi game (CPU time)............................
55
Gambar 4.24. Performa aplikasi upload .........................................................
56
Gambar 4.25. Performa aplikasi chatting........................................................
56
Gambar 4.26. Performa aplikasi game ............................................................
57
Gambar 4.27. Monitoring web server (load average) .....................................
58
Gambar 4.28. Monitoring web server (CPU time) ..........................................
58
Gambar 4.29. Monitoring web server (free memory) ......................................
59
Gambar 4.30. Detail Pengujian web server .....................................................
59
Gambar 4.31. Protocol Times for all URLs.....................................................
60
Gambar 4.32. Server and User Bandwidth......................................................
60
Gambar 4.33. Transferred data & System Memory & CPU Load ..................
61
Gambar 4.34. Open Requests & Transferred data ..........................................
62
DAFTAR TABEL
Tabel 3.1. Spesifikasi Server ..........................................................................
17
Tabel 3.2. Spesifikasi Access Point ................................................................
18
Tabel 3.3. Spesifikasi Smartphone .................................................................
18
Tabel 4.1. Daftar Aplikasi Node.JS ................................................................
40
Tabel 4.2. Results per User ............................................................................
62
DaftarPustaka [1] Tilkov, S., Vinovki, S., Node.js: Using JavaScript to Build High-Performance Network Programs, 2010. [2] Singh Ajith, N., Hemalatha, M., Cloud Computing for Academic Environment, Karpagam University, 2012. [3] Sullivan, Bryan., Senior Security Researcher, Adobe Secure Software Engineering Team. Server-Side JavaScript Injection. 2011. [4] Chodorow, K., dan Dirolf, M. 2010. MongoDB: The Definitive Guide. United States of America : O'Reilly Media, Inc. [5] Croucher, Tom Hughes., dan Wilson, Mike. 2012. Node: Up and Running. United States of America : O'Reilly Media, Inc. [6] Hurwitz, Judith., Bloor, Robin., dan Kaufman, Marcia. 2010. Cloud Computing for Dummies. Indianapolis : Wiley Publishing, Inc. [7] Purbo, Onno W. (2011). Petunjuk Peraktis Cloud Computing menggunakan Opensource. Jakarta : ODC. [8] --, Apa Itu Blaast, 2012, http://www.blaast.com, (diakses 14 September 2012).