Wednesday, September 9, 2015

Mengenal Node.js, Jalankan JavaScript di Server

Apa itu Node.js? Lalu apa bedanya dengan PHP? Mungkin itu pertanyaan yang pertama muncul saat anda pertama meengenal kata “Node.js” di suatu halaman website.
Mari kita mulai artikel ini dengan saudara tuanya, yakni JavaScript (JS). Menurut deskripsi singkat dari WikiPedia, JS adalah bahasa pemograman / skrip (script) yang sangat populer dipakai di berbagai website untuk menampilkan berbagai efek khusus suatu halaman web. Saya rasa sudah semua web browser mulai dari Internet Explorer, Firefox, Chrome sampai Opera mendukung eksekusi skrip JS. Tidak hanya itu, saya bahkan hampir tidak bisa menemukan halaman website dinamis yang tidak menggunakan JS.
Sebagai bahasa pemrogaman, JS telah lebih dari sebuah skrip sederhana dan kini telah berevolusi, berkembang dan menjelma menjadi sesuatu yang lebih keren. Salah satunya adalah jQuery dan yang sedang tren sekarang adalah Node.js.

Node.js dan PHP

Anda mungkin sudah mengenal PHP, yaitu bahasa pemograman yang dapat digunakan untuk membuat website baik web statics atau dynamic. Adapun beda PHP dengan JS adalah letak eksekusinya. Jika PHP dieksekusi di sisi server (serverside) dan hasilnya baru ditampilkan di sisi klien, maka JS kebalikannya. Sebelum ditampilkan, skrip JS dieksekusi di sisi klien melalui browser yang klien gunakan.
Lalu datanglah teknologi baru bernama Node.js, deskripsi singkatnya adalah Serverside JavaScript alias skrip JS yang dieksekusi di level server. Ketika seorang pengguna internet membuka suatu situs yang menggunakan fasilitas server side scripting (contoh: PHP, ASP, dll), maka terlebih dahulu server yang bersangkutan akan memproses semua perintah skrip di server lalu mengirimkan hasilnya dalam format HTML ke web server pengguna internet. Demikian pula dengan Node.js yang akan memproses skrip JS di server dan mengirim hasilnya ke klien dalam bentuk jadi, layaknya PHP dan ASP.
Jadi apa persamaan PHP dan Node.js? Keduanya sama – sama serverside scripting.
Lalu apa bedanya? Banyak, yang jelas bahasa pemrogamannya berbeda. Selain itu, jika PHP membutuhkan sebuah web server (seperti Apache, Nginx, Lighttpd, LiteSpeed) untuk menyampaikan output dari eksekusi skrip, maka Node.js tidak.

Pengertian Node.js

Node.js adalah sebuah platform software yang dipakai untuk membangun aplikasi – aplikasi serverside yang fleksibel di sebuah network / jaringan. Node.js menggunakan JavaScript sebagai bahasa pemrogaman dan dapat dengan mudah menghasilkan throughput / pemrosesan tingkat tinggi melalui non-blocking I/O. Node.js memiliki fitur built-in HTTP server library yang menjadikannya mampu menjadi sebuah web server tanpa bantuan software lainnya seperti Apache atau Nginx.
Node.js pertama kali dibuat oleh Ryan Dahl pada tahun 2009 yang kemudian berkembang pesat di bawah licensi Open Source MIT oleh sebuah perusahaan bernama Joyent Inc.
Pada hakekatnya Node.js dikembangkan berdasarkan teknologi Google V8 JavaScript engine serta berisi kompilasi skrip inti dan banyak modul siap pakai yang bermanfaat sehingga pengguna (dalam hal ini web developer) tidak perlu melakukan coding dan mendesain segalanya dari awal.
Jadi, apa sih sebenarnya isi dari software Node.js itu? Pada dasarnya Node.js adalah 2 hal: sebuah runtime environment dan script library. Nah apa lagi itu ya?
Sebuah runtime environment adalah sebuah software yang berfungsi untuk mengeksekusi, menjalankan dan mengimplementasikan fungsi – fungsi dan cara kerja inti dari suatu bahasa pemrograman. Contoh: Agar sebuah server bisa mengeksekusi script PHP maka harus terlebih dulu diinstall PHP runtime environment-nya. Mungkin anda sudah pernah dengar LAMP (Linux, Apache, MySQL dan PHP). Begitu pula Node.js. Agar sebuah server bisa mengeksekusi script JS, maka terlebih dahulu harus diinstall Node.js sebagai runtime environment untuk JavaScript.
Sedangkan Script Library adalah kumpulan, kompilasi atau bank data berisi skrip / kode – kode pemrogaman.

Contoh Node.js

Skrip di bawah ini merupakan contoh eksekusi file JS di Node.js:
1
2
3
4
5
6
7
8
9
10
var http = require('http');
  
http.createServer(
  function (request, response) {
    response.writeHead(200, {'Content-Type': 'text/plain'});
    response.end('Selamat Datang\n');
  }
).listen(8000);
  
console.log('Server running at http://localhost:8000/');
Apa yang kode di atas lakukan? Contoh skrip di atas setelah dieksekusi akan menghasilkan sebuah halaman web sederhana bertuliskan “Selamat Datang” sekaligus menjalankan task sebagai HTTP Server (web server seperti Apache) untuk menyampaikan output tersebut melalui internet melalui port 8080.
Jika ingin coba, setelah install Node.js, copy-paste skrip di atas dan berinama server.js dan simpan di server anda. Kemudian eksekusi dengan perintah:
1
node server.js
Kemudian buka browser anda lalu akses melalui http://ip-server:8080

Node.js vs PHP

Ketika yang kita inginkan adalah “mengirim halaman web dari server dan menerima koneksi HTTP request” maka hal tersebut tidak akan bisa terwujud hanya dengan PHP karena kita pasti perlu menginstall Apache dan sebuah modul bernama mod_php5. Menggunakan Node.js, kita bukan hanya mengeksekusi skrip JS di server tapi juga menjalankan HTTP web server untuk menyajikan output / hasil eksekusi skrip JS tadi ke klien / pembaca melalui Internet sehingga tidak perlu lagi kita install Apache.
Tidak hanya itu, sebuah tes / uji coba telah dilakukan untuk mengetahui mana yang lebih cepat antara Apache + PHP vs hanya Node.js. Kesimpulannya, ternyata Node.js lebih kencang dan ringan dibandingkan Apache + PHP.

Kesimpulan

Node.js memang merupakan sebuah terobosan. Teknologi ini memungkinkan anda untuk menjalankan JavaScript di belakang layar (server) alias diluar -tidak lagi di- browser untuk menghasilkan berbagai web aplikasi yang dinamis tapi ringan dari segi resource server. Dibalik segala kelebihan tersebut, tetap saja Node.js adalah sebuah barang baru dan belum setenar PHP dalam hal penggunannya sehingga layaknya barang baru lainnya, masih banyak yang belum memahami Node.js maupun menggunakannya sebagai mesin inti untuk aplikasi yang sudah jadi.
Ketika kita berbicara PHP, maka yang kita bicarakan adalah sebuah bahasa pemrogaman sekaligus runtime environment (sebuah software, di install di server). Namun ketika kita bicara Node.js, lebih merujuk ke runtime environment dan bahasa yang dipakai adalah JavaScript yaitu bahasa pemrograman yang sebelumnya lebih populer dijalankan di browser.

Read more at http://www.ngulikweb.com/internet/mengenal-node-js-jalankan-javascript-di-server/#oihIUJz6tqe9UjxC.99