![Page 1: Slide Seminar Open Source (CodeLabs UNIKOM Bandung)](https://reader035.vdocuments.net/reader035/viewer/2022062304/559843321a28ab0a328b46e1/html5/thumbnails/1.jpg)
a Simple Powerful Platform
Hendri KarismaCodeLabs UNIKOM
2014
![Page 2: Slide Seminar Open Source (CodeLabs UNIKOM Bandung)](https://reader035.vdocuments.net/reader035/viewer/2022062304/559843321a28ab0a328b46e1/html5/thumbnails/2.jpg)
What is NodeJS?
“Node.js is a platform built on Chrome’s JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-
intensive real-time applications that run across distributed devices.”
![Page 3: Slide Seminar Open Source (CodeLabs UNIKOM Bandung)](https://reader035.vdocuments.net/reader035/viewer/2022062304/559843321a28ab0a328b46e1/html5/thumbnails/3.jpg)
How Fast
Against Python3, JavaScript V8 Engine has a median benchmark 13 times as fast with
a roughly similar code size. 3 Against Ruby 1.9, the median benchmark is eight
times as fast
![Page 4: Slide Seminar Open Source (CodeLabs UNIKOM Bandung)](https://reader035.vdocuments.net/reader035/viewer/2022062304/559843321a28ab0a328b46e1/html5/thumbnails/4.jpg)
Theory• Build Google’s V8
JavaScript engine• I/O Latency
![Page 5: Slide Seminar Open Source (CodeLabs UNIKOM Bandung)](https://reader035.vdocuments.net/reader035/viewer/2022062304/559843321a28ab0a328b46e1/html5/thumbnails/5.jpg)
![Page 6: Slide Seminar Open Source (CodeLabs UNIKOM Bandung)](https://reader035.vdocuments.net/reader035/viewer/2022062304/559843321a28ab0a328b46e1/html5/thumbnails/6.jpg)
I/O Latency
![Page 7: Slide Seminar Open Source (CodeLabs UNIKOM Bandung)](https://reader035.vdocuments.net/reader035/viewer/2022062304/559843321a28ab0a328b46e1/html5/thumbnails/7.jpg)
The Problem
![Page 8: Slide Seminar Open Source (CodeLabs UNIKOM Bandung)](https://reader035.vdocuments.net/reader035/viewer/2022062304/559843321a28ab0a328b46e1/html5/thumbnails/8.jpg)
Scale with Multi Thread
• Overhead pada switching• Execution stask take up memory• Complicate concurrency
![Page 9: Slide Seminar Open Source (CodeLabs UNIKOM Bandung)](https://reader035.vdocuments.net/reader035/viewer/2022062304/559843321a28ab0a328b46e1/html5/thumbnails/9.jpg)
Scale with Process
• High memmory Usage• Process scheduling
![Page 10: Slide Seminar Open Source (CodeLabs UNIKOM Bandung)](https://reader035.vdocuments.net/reader035/viewer/2022062304/559843321a28ab0a328b46e1/html5/thumbnails/10.jpg)
The Solution in Node.js
![Page 11: Slide Seminar Open Source (CodeLabs UNIKOM Bandung)](https://reader035.vdocuments.net/reader035/viewer/2022062304/559843321a28ab0a328b46e1/html5/thumbnails/11.jpg)
![Page 12: Slide Seminar Open Source (CodeLabs UNIKOM Bandung)](https://reader035.vdocuments.net/reader035/viewer/2022062304/559843321a28ab0a328b46e1/html5/thumbnails/12.jpg)
![Page 13: Slide Seminar Open Source (CodeLabs UNIKOM Bandung)](https://reader035.vdocuments.net/reader035/viewer/2022062304/559843321a28ab0a328b46e1/html5/thumbnails/13.jpg)
Tantangan
• Asynchronizing I/O• Debugging• CPU-Intensive Tasks
– Harus berhati-hati terhadap penggunaan thread untuk setiap tasks
• Perkembangan versi platform sangat cepat
![Page 14: Slide Seminar Open Source (CodeLabs UNIKOM Bandung)](https://reader035.vdocuments.net/reader035/viewer/2022062304/559843321a28ab0a328b46e1/html5/thumbnails/14.jpg)
Keuntungan• Multiplatform• Lightweight• Deadlock free
– single thread, simplifies concurency• Monoglot Programming
– dari mulai back-end hingga front end dapat hanya menggunakan javascript
• Popular• Fast• Community and NPM (8,465 packages)
*2012-03-21• Small core• Short Learning Curve
![Page 15: Slide Seminar Open Source (CodeLabs UNIKOM Bandung)](https://reader035.vdocuments.net/reader035/viewer/2022062304/559843321a28ab0a328b46e1/html5/thumbnails/15.jpg)
NPM• express• socket.io• mongoose
• connect• async• jade
![Page 16: Slide Seminar Open Source (CodeLabs UNIKOM Bandung)](https://reader035.vdocuments.net/reader035/viewer/2022062304/559843321a28ab0a328b46e1/html5/thumbnails/16.jpg)
how to install node.js
• sudo add-apt-repository ppa:chris-lea/node.js
• sudo apt-get update• sudo apt-get install nodejs
![Page 17: Slide Seminar Open Source (CodeLabs UNIKOM Bandung)](https://reader035.vdocuments.net/reader035/viewer/2022062304/559843321a28ab0a328b46e1/html5/thumbnails/17.jpg)
Demo
• Hello World• SimpleChat Application
![Page 18: Slide Seminar Open Source (CodeLabs UNIKOM Bandung)](https://reader035.vdocuments.net/reader035/viewer/2022062304/559843321a28ab0a328b46e1/html5/thumbnails/18.jpg)
MongoDB (NoSql Database)
• Not Only SQL (NoSQL)• Non Relastional Database Management
System
![Page 19: Slide Seminar Open Source (CodeLabs UNIKOM Bandung)](https://reader035.vdocuments.net/reader035/viewer/2022062304/559843321a28ab0a328b46e1/html5/thumbnails/19.jpg)
Kenapa NoSQL (MongoDB)• Database non relasional• Terdistribusi dan scale out (secara horisontal)• Tanpa skema atau dengan skema yang longgar• Sederhana dalam pemakaian (API)• Kemudahan replikasi
![Page 20: Slide Seminar Open Source (CodeLabs UNIKOM Bandung)](https://reader035.vdocuments.net/reader035/viewer/2022062304/559843321a28ab0a328b46e1/html5/thumbnails/20.jpg)
Document-Oriented
• Notion of a Document• Enkapsulasi dokumen dan enkoding
dalam format standard (XML, JSON, YAML, PDF, dll)
• Mirip relational DB, tetapi setiap ‘row’ tidak harus memiliki struktur yang sama.
![Page 21: Slide Seminar Open Source (CodeLabs UNIKOM Bandung)](https://reader035.vdocuments.net/reader035/viewer/2022062304/559843321a28ab0a328b46e1/html5/thumbnails/21.jpg)
Demo
• Simple CRUD with express and MongoDB
![Page 22: Slide Seminar Open Source (CodeLabs UNIKOM Bandung)](https://reader035.vdocuments.net/reader035/viewer/2022062304/559843321a28ab0a328b46e1/html5/thumbnails/22.jpg)
Thanks....
Hendri Karismahttp://about.me/hendriKarisma
source code sample program demo dapat di download di https://github.com/situkangsayur?tab=repositories