Thursday, December 15, 2016

Mengenal lebih dalam tentang Node.Js




 
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

 Bisa dilihat bahwa Nginx bisa menangani request yang jauh lebih banyak daripada web
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 :

Unknown

Author & Editor

Happy Coding

4 comments: