* Artikel ini adalah hasil kerja sama dengan Intel Developer Zone. Artikel asli bisa dilihat di link ini.
Belakangan ini, sering kita dengar tentang node.js dan dia sangat populer di kalangan developer web serta spesialis IOT. Namun apa itu sebetulnya pengertian node.js dan kenapa dia digunakan dengan luas sebagai bahasa utama untuk pengembangan? Mari kita telusuri tentang node.js di artikel ini untuk memahaminya.
Berdasarkan situs nodejs.org, “node.js adalah sebuah platform yang dibuat di atas JavaScript Runtime-nya Chrome“. Dengan kata lain, kodingan yang kamu tulis untuk server akan dieksekusi dengan cara yang mirip dengan ketika di browser.
Kamu dapat dengan mudah membawa teknik-teknik JavaScript yang telah kamu pelajari ke node.js. node.js itu cepat, event-driven, dan ringan namun manfaat paling besar dari menggunakan node.js adalah pemrograman asynchronous.
Mari kita pahami terlebih dahulu tentang perbedaan dari pemrograman asynchronous dengan synchronous dalam penjelasan yang sederhana yang akan memberikan kita pemahaman tentang bagaimana node.js bekerja di balik layar dan alasan dibalik popularitasnya.
Synchronous
Kamu sedang mengantri untuk mengambil tiket film di bioskop. Kamu tidak akan bisa mendapatkan tiketnya sebelum semua orang di depanmu sudah mendapatkan tiket mereka dan ini berlaku juga untuk orang-orang di belakang kamu.
Asynchronous
Kamu sedang di restoran dengan banyak orang. Kamu memesan makanan dan orang lain juga bisa memesan makanan. Mereka tidak perlu menunggu untuk makananmu selesai dimasak dan disajikan di depanmu sebelum mereka dapat memesan makanan.
Di dalam dapur restoran, orang-orang terus bekerja untuk memasak, menyajikan, dan mengambil pesanan. Orang-orang akan mendapatkan makanan mereka secepatnya setelah makanan mereka selesai dimasak.
//example 1 var result = database.query("SELECT * FROM sampletable"); console.log("finished"); console.log("start"); //example 2 database.query("SELECT * FROM sampletable", function(result) { console.log("finished"); }); console.log("start");
Keluaran dari kodingan di atas adalah:
Example 1
finished
start
Example 2
start
finished
Perbedaan di contoh pertama adalah program ketika mengeksekusi baris pertama akan memblok eksekusi berikutnya. Kodingan baris berikutnya (console.log) harus menunggu. Di contoh kedua, console.log akan dieksekusi ketika query-nya sedang diproses.
Query-nya akan diproses di belakangan layar ketika programmu melakukan berbagai macam hal. Dan ketika data query-nya sudah siap, kamu dapat melakukan apapun yang kamu inginkan dengannya. Jadi secara singkat: contoh pertama akan memblok, contoh kedua tidak.
Instalasi
Pertama, kamu memerlukan sistem operasi Windows dengan versi minimal Windows Vista, lalu download MSI-nya dari http://nodejs.org/download/. Pastikan kamu memilih untuk menambahkan opsi path ketika menginstal node.js di perangkat Windows kamu.
Membuat server node.js kamu sendiri
Mulai dengan membuat file baru dengan nama “server.js”. Masukkan kodingan di bawah ini ke dalam file dan lalu disimpan.
var http = require("http"); var server = http.createServer(function(request, response) { response.writeHead(200, {"Content-Type": "text/html"}); response.write("Hello World"); response.end(); }); server.listen(8080); console.log("Server is listening at port 8080");
Untuk memulai server, ketikkan perintah di bawah ini. Jika semua berjalan dengan lancar, kamu akan mendapatkan pesan bahwa server sedang mendengar.
node server.js
Langkah berikutnya adalah untuk mengkoneksikan server ke sebuah browser web. Jalankan browser pilihan kamu dan arahkan ke tautan di bawah ini. Dalam bahasa jaringan, localhost (dan alamat IP 127.0.01) menunjukkan perangkat yang sedang kamu gunakan. Broswer-mu akan menampilkan teks “Hello World”.
Bagaimana server bekerja
Bagian require() di node.js menyajikan sistem modul sederhana. Program node.js dapat memuat modul-modul individual menggunakan metode require(). Walaupun banyak modul harus secara eksplisit diunduh, beberapa modul seperti http disebut sebagai modul inti dan sudah menjadi satu dengan node.js.
Server HTTP dibuat menggunakan metode createServer() dari modul http. createServer() menerima fungsi callback sebagai argumen. Fungsi callback ini akan dieksekusi setiap kali server menerima request baru.
Fungsi callback ini menerima dua argumen, request dan response. Objek request berisi informasi tentang permintaan dari client seperti URL, header HTTP, dan banyak lainnya. Objek response mirip dengan request namun digunakan untuk mengirimkan data kembali ke client.
Panggilan listen() membuat server mengaitkan diri ke sebuah port dan mendengar untuk koneksi yang akan datang. Di sini kita mendefinisikan port-nya ke 8080.
* Artikel ini adalah hasil kerja sama dengan Intel Developer Zone. Artikel asli bisa dilihat di link ini.