Assalamu Alaikum coders
Kali ini admin akan membahas seputar node.js apa
sih yang dimiliki oleh node.js ? kenapa di klaim menjadi framework JS yang
power full ? apa itu v8 machine pada Node.js ? serta bagaimana perkembangannya
dalam dunia persilatan dalam dewasa ini ? baik silahkan di simak.
1. Asal-Usul Node.js itu sendiri
Jadi
kisah ini berawal dari Javascript bahasa pemrograman yang lengkap hanya saja
selama ini di pakai sebagai bahasa untuk pengembangan aplikasi web yang
berjalan pada sisi client atau
browser saja.
Tetapi sejak ditemukannya Node.js oleh Ryan Dhal pada tahun 2009, Javascript
bisa digunakan sebagai bahasa pemrograman di sisi server sekelas dengan PHP, ASP,
C#, Ruby dll dengan kata lain Node.js menyediakan platform untuk membuat
aplikasi Javascript dapat dijalankan di sisi server. So dewasa ini Node.Js
setara dengan PHP dan Bahasa server lainnya. dan Untuk mengeksekusi Javascript
sebagai bahasa server diperlukan engine yang cepat dan mempunyai performansi
yang bagus. Seperti mobil Ferari yah coders pada Mobil Ferari Spiyeder
menggunakan Engine v8 yang setara dengan 2500 tenaga kuda dan ini di terapkan
pada Engine Javascript dari Google bernama V8 yang dipakai oleh Node.js yang
merupakan engine yang sama yang dipakai di browser Google
Chrome.
2.
Apa
sih Node.js Itu ?
kutip dari situs
resmi node.js :
"Node.js®
is a platform built on Chrome's JavaScript runtime for easily building fast,
scalable network applications. Node.js uses an eventdriven,nonblocking I/O
model that makes it ightweight and efficient, perfect for dataintensive
realtime applications that run across distributed devices." (nodejs.org)”
Berdasar
pengertian node.js yang dikutip dari situs resminya, nodejs dapat diartikan
sebagai sebuah platform software yang dipakai untuk membangun aplikasi –
aplikasi serverside yang fleksibel di sebuah jaringan aplikasi. Nodejs seperti
kontekstualnya Java Script, yang berarti platform ini menggunakan javascript
sebagai basis Bahasa pemrogramannya. Dibuat oleh Ryan Dahl pada tahun 2009
menggunakan mesin javascript v8 milik google chrome, nodeJS memiliki
skalabilitas yang sangat tinggi, berbasisevent (event driven programming), dan
memiliki konsep asynchronous yang sangat bagus sehingga membuatnya ringan dan
efisien. Jadi penerapan dari pada Node.js itu sendiri sangat mendukung dalam
pembuatan website real-time seperti Facebook dengan menggunakan konsep
Non-Blocking
Masih Bingung yah coders oke
saya jelasin lagi ?
Agar
lebih mudah dipahami, node.js merupakan platform perangkat
lunak yang berjalan pada sisiserver dan aplikasi jaringan. Jadi si Node ini
gabungan Antara App Server dan App Network kemudian Platform ini terdiri dari 2
hal, yaitu runtime environment dan
script library.
Node.js memiliki pustaka server HTTP sendiri sehingga memungkinkan untuk menjalankan
webserver tanpa menggunakan program webserver seperti apache atau lighttpd.
Jadi dalam hal ini sowftare Xampp,Lamp,dll tidak di gunakan Berbicara mengenai
serverside, mungkin teman teman bingung, apa sih yang membedakan node.js dengan
php ?
Yang
membedakan keduanya adalah dari sisi peletakan eksekusinya. Php mengeksekusi
data di sisi server, selanjutnya hasilnya akan ditampilkan di sisi klien.
Sedangkan node.js, seperti pengertian javascript, pengeksekusiannya di sisi
klien melalui browser akan tetapi dapat mengatasi pengolahan data di sisi
server sekelas PHP, ASP dll jadi hal ini penggunaan Node.js sangatlah efisien
di bandingan dengan PHP
Loh
kok bisa?
Untuk
mengeksekusi Javascript sebagai bahasa server, node.js memiliki pustaka server
HTTP sendiri sehingga memungkinkan untuk menjalankan webserver tanpa
menggunakan program webserver seperti apache atau lighttpd. Untuk mensinkronkan
hal tersebut, diperlukan engine yang cepat dan mempunyai performansi yang
bagus. Node.js menggunakan Engine Javascript dari Google bernama V8, merupakan
engine yang sama yang
dipakai
oleh browser Google Chrome.
3.
Perbedaan Node.js dengan PHP
a.
PHP & Server HTTP Apache
Mari
kita lihat contoh berikut yaitu operasi fungsi akses ke database MySQL oleh PHP
yang
dilakukan
secara sinkron :
$hasil = mysql_query("SELECT * FROM
TabelAnggota");
print_r($hasil);
pengambilan
data oleh mysql_query() diatas
akan dijalankan dan operasi berikutnya print_r() akan diblok atau tidak akan berjalan sebelum akses ke database
selesai. Yang perlu menjadi perhatian disini yaitu proses Input Output atau I/O
akses ke database oleh mysql_query() dapat
memakan waktu yang relatif mungkin beberapa detik atau menit tergantung dari
waktu latensi dari I/O. Waktu latensi ini tergantung dari banyak hal seperti
Query database lambat akibat banyak pengguna yang mengakses Kualitas jaringan
untuk akses ke database jelek Proses baca tulis ke disk komputer database yang
membutuhkan waktu ... Sebelum proses I/O selesai maka selama beberapa detik
atau menit tersebut state dari proses mysql_query() bisa dibilang idle atau tidak
melakukan apa-apa. Lalu jika proses I/O di blok bagaimana jika ada request lagi
dari user ? apa yang akan dilakukan oleh server untuk menangani request ini ?..
penyelesaiannya
yaitu dengan memakai pendekatan proses multithread . Melalui pendekatan ini tiap koneksi yang terjadi akan ditangani
oleh thread .
Thread disini bisa dikatakan sebagai task yang dijalankan oleh prosesor
komputer. Sepertinya permasalahan I/O yang terblok terselesaikan dengan
pendekatan metode ini tetapi dengan bertambahnya koneksi yang terjadi maka thread akan semakin banyak
sehingga prosesor akan semakin terbebani, belum lagi untuk switching antar
thread menyebabkan konsumsi memory (RAM) komputer yang cukup besar. Berikut contoh
benchmark antara web server Apache dan Nginx (server HTTP seperti halnya Apache
hanya saja Nginx memakai sistem asinkron I/O dan event yang mirip Node.js).
Gambar ini diambil dari goo.gl/pvLL4
server Apache pada jumlah koneksi bersama
yang semakin naik.
b.
Javascript & Node.js
Kembali ke
Javascript!. Untuk mengetahui apa yang dimaksud dengan pemrograman
asinkron bisa
lebih mudah dengan memakai pendekatan contoh kode. Perhatikan kode
Javascript
pada Node.js berikut :
var fs = require('fs');
fs.readFile('./resource.json',function(err, data){
if(err) throw err;
console.log(JSON.parse(data));
});
console.log('Selanjutnya...');
fungsi readFile() akan membaca membaca isi dari file resource.json secara asinkron yang artinya proses eksekusi
program tidak akan menunggu pembacaan file resource.json sampai
selesai tetapi program akan tetap menjalankan kode Javascript selanjutnya yaitu
console.log('Selanjutnya...') . Sekarng lihat
apa yang terjadi jika kode javascript diatas dijalankan Jika Jika proses pembacaan file resource.json selesai maka fungsi
callback pada readFile() akan di jalankan dan hasilnya akan ditampilkan pada
console. Yah, fungsi callback merupakan konsep
yang penting dalam proses I/O yang asinkron karena melalui fungsi callback ini data data yang dikembalikan oleh proses I/O
akan di proses. Lalu bagaimana platform
Node.js mengetahui kalau suatu proses itu telah selesai atau tidak ?...jawabannya adalah Event
Loop. Event - event yang terjadi karena proses
asinkron seperti pada fungsi fs.readFile() akan ditangani oleh yang
namanya Event Loop ini.
Campuran teknologi antara event driven dan proses
asinkron ini memungkinkan pembuatan aplikasi
dengan penggunaan data secara masif dan real-time. Sifat komunikasi Node.js I/O
yang ringan dan bisa menangani user secara bersamaan
dalam jumlah relatif besar tetapi tetap
menjaga state dari koneksi supaya tetap terbuka dan dengan penggunaan memori
yang cukup kecil memungkinkan pengembangan aplikasi
dengan penggunaan data yang besar dan
kolaboratif...Yeah
Jadi
kesimpulan dari pembahasan saya yang panjang banget dan membosankan ini yaitu
dalam hal efesiensi dan performa Node.Js pemenangnya tapi karena Node.Js Bahasa
yang tergolong baru maka pengembang local di Indonesia masih sedikit yang
memakainya dan buku yang membahasa masalah Node.Js dalam Bahasa Indonesia saya
kira belum ada di tempat saya. Jadi skill Bahasa Inggris sangat penting yah
coders.
4.
Kelebihan
node.js di banding Bahasa yang lain.
Sekarang dengan berjalannya Javascript di server lalu apa
keuntungan yang anda peroleh dengan
mempelajari Node.js, kurang lebih seperti ini :
1 . Pengembang
hanya memakai satu bahasa untuk mengembangkan aplikasi lengkap
client & server sehingga mengurangi Learning Curve untuk
mempelajari bahasa server yang lain.
2 . Sharing
kode antara client dan server atau istilahnya code reuse.
3 . Javascript
secara native mendukung JSON yang merupakan standar transfer data yang
4 . banyak
dipakai saat ini sehingga untuk mengkonsumsi data-data dari pihak ketiga
pemrosesan
di Node.js akan sangat mudah sekali.
5 . Database
NoSQL seperti MongoDB dan CouchDB mendukung langsung Javascript
sehingga
interfacing dengan database ini akan jauh lebih mudah.
6 . Node.js
memakai V8 yang selalu mengikuti perkembangan standar ECMAScript, jadi
tidak
perlu ada kekhawatiran bahwa browser tidak akan mendukung fitur-fitur di
Node.js.
7 . Cukup
mengetahui Bahasa Java Script dapat membangun web dengan utuh
8 . Lebih
baik dari Bahasa PHP dan yang lainnya meskipun ada kekurangan
5.
Hal-hal
yang harus di perhatikan dalam develop Node.js
NPM
NPM (Node Package Manager) merupakan
package manager yang digunakan NodeJS. Sejak versi 0.6.3, NPM ini sudah
diikutsertakan secara default waktu instalasi
NodeJS.
Jade
Module ini
merupakan mesin template untuk nodejs. Module ini menawarkan banyak fitur,
untuk mengenal lebih dalam module ini dapat dilihat pada https://github.com/jadejs/jade#a1
Stylus
Module merupakan
preprocessor untuk CSS. Modul ini sama kerjanya dengan LESS, tapi dibuat khusus
untuk NodeJS.
Framework node.js
Framework sudah
barang tentu hal yang penting dalam membangun website, agar lebih fleksibel dan
efisien.
Mungkin sekian
dulu postingan dari admin, posting selanjutnya admin akan membahas bagaimana
membangun website dengan Express Framework yang tentunya akan lebih menarik
lagi.
6.
Tentang pendiri Node.js
Ryan Dahl
adalah pendiri Node.js. Ia juga dikenal sebagai seorang programmer yang tinggal
di Jerman. Dia bekerja di freelancer, dan ia
memastikan bahwa karirnya terpelihara dengan baik. Dia mampu membuat berbagai
jenis metode pemrograman yang benar-benar hebat. Ia bahkan dikenal oleh
beberapa orang di daerahnya karena kemampuan nya, dan fakta bahwa ia lebih suka
tidur selama berbagai kesempatan.
Jika Anda
kebetulan menjadi seorang programmer, dan Anda bertemu di tempat lain seperti
sebuah kedai kopi atau sesuatu, Anda benar-benar akan melihat bahwa dia adalah
orang yang mudah didekati. gairah dengan pemrograman
begitu besar sehingga Anda akan bisa mendapatkan beberapa jawaban yang layak
dari dia jika Anda memutuskan untuk berbicara dengannya untuk sedikit bantuan.
Dia adalah tipe orang yang berbagi ide-ide ketika datang ke berbagai hal yang
melibatkan pemrograman, dan dia bersedia untuk mengajar programmer baru jika
diperlukan juga.
Dalam hal
Javascript dan C ++, Anda akan melihat bahwa ia memiliki beberapa keterampilan
yang layak. Anda benar-benar akan menyadari bahwa dia adalah seseorang yang
bukan sembarang programmer biasa, tetapi juga seseorang yang mau belajar lebih,
dan bahkan berbagi pelajaran sebagai Anda mendekatinya. Dia adalah orang yang
sangat tenang dan rendah hati, dan dia memiliki sikap ramah juga. Jika Anda
pernah bertemu dengannya suatu hari nanti, Anda pasti akan menyukai kenyataan
bahwa ia adalah salah satu yang terbaik orang di sana dan bukan sembarang
pendiri Node.js.
Sumber :
thanks infonya
ReplyDeletesangat bermanfaat ^_^
ReplyDeleteterimah kasih telah berkunjung :)
ReplyDeleteSangat membantu
ReplyDelete