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 Dosen Pembimbing II Yuda Munarko, S.Kom., M.Sc Agus Eko Minarno, S.Kom NIP. 108 0611 0443 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, Malang, 10 April 2013 Dosen Pembimbing 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... LEMBAR PERSETUJUAN... LEMBAR PENGESAHAN... HALAMAN PERNYATAAN KEASLIAN... ABSTRAK... ABSTRACT... HALAMAN PERSEMBAHAN... KATA PENGANTAR... DAFTAR ISI... DAFTAR GAMBAR... DAFTAR TABEL... i ii iii iv v vi vii viii ix xii xiv BAB I BAB II 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 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).