Berkenalan Sama Node.js

Yang paling utama pada saat kita mengenal some one adalah mengetahui asal usul di Doi dari mana 🙂 , oke kita bahas Node.Js bukanlah Bahasa program baru, tapi si Nona Node.Js ini adalah merupakan framework bahasa Program Javascript, tetapi buka framework biasa tetapi adalah sebuah runtime environment (lingkungan runtime) yang di bangun di atas Google V8 engine .

The V8 JavaScript Engine is an open source JavaScript engine developed by The Chromium Project for the Google Chrome web browser. It has since seen use in many other projects, such as Couchbase, MongoDB and Node.js that are used server side.

dibangun di atas V8 Googlevmesin. Jadi , di mana kita bisa menulis kode JavaScript di mana pun Node.js dapat diinstal di platform apapun.

JavaScript Di Server

node.js  adalah sebuah platform yang menggunakan bahasa javascript untuk dieksekusi sebagai server. Biasanya kita mengenal aplikasi server itu pake bahasa PHP tapi kok ini javascript? itulah kelebihan node js, kita bisa menggunakan javascript yang dieksekusi sebagai server-side, kelebihan lain adalah teknik non-blocking yang ada di node.js, teknik non-blocking menurut yang dijelasin di sini,  Teknik non-bloking yaitu teknik dimana node.js akan melakukan eksekusi secara independen. Node.js akan mengeksekusi sebuah operasi tanpa harus menunggu operasi sebelumnya selesai dieksekusi, sehingga menghasilkan aplikasi web yang lebih cepat dan efisien.

Keuntungan

Sekarang dengan berjalannya Javascript di server lalu apa keuntungan yang anda peroleh dengan mempelajari Node.js, kurang lebih seperti ini :

  • Pengembang hanya memakai satu bahasa untuk mengembangkan aplikasi lengkap client & server sehingga mengurangi Learning Curve untuk mempelajari bahasa server yang lain.
  • Sharing kode antara client dan server atau istilahnya code reuse.
  • Javascript secara native mendukung JSON yang merupakan standar transfer data yang banyak dipakai saat ini sehingga untuk mengkonsumsi data-data dari pihak ketiga pemrosesan di Node.js akan sangat mudah sekali.
  • Database NoSQL seperti MongoDB dan CouchDB mendukung langsung Javascript sehingga interfacing dengan database ini akan jauh lebih mudah.
  • 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.

Compare dengan Bahasa Program PHP
PHP & Server HTTP Apache

Mari kita lihat contoh berikut yaitu operasi fungsi akses ke database MySQL oleh PHP yang
dilakukan secara sinkron.

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)

req_nginx

Bisa dilihat bahwa Nginx bisa menangani request yang jauh lebih banyak daripada web server Apache pada jumlah koneksi bersama yang semakin naik.

ok sekian info mengenai nodejs dari saya, sampai jumpa di next posting adalah Basic Javascript Untuk pemula menggunakan Node.js

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 :

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 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.

sekian dan sampai jumpa di next tutorial basic Js di Node.js

Sumber : buku digital equan pr. Pengenalan Node.js

Facebook Comments