Home Web PENGENALAN NODE.js

PENGENALAN NODE.js

0

Hallo sobat coders, pada kali ini kita akan membahas mengenai apa itu Node.js? Node.js adalah platform buatan Ryan Dahl untuk menjalankan aplikasi web berbasis JavaScript yang dikenalkan pada tahun 2009. Dengan platform ini, Anda dapat menjalankan JavaScript dari sisi server. Untuk mendukung kemampuan tersebut, Node.js dibangun dengan engine Javascript V8 milik Google. Di samping itu, Node.js juga memiliki pustaka server sendiri sehingga Anda tidak perlu menggunakan program server web seperti Nginx dan Apache. Dengan model event-driven dan non-blocking I/O-nya, Node.js lebih mampu menangani banyak proses secara bersamaan daripada platform bersifat thread-based networking.

Arsitektur Node.js

Node.js memiliki dua komponen utama, yaitu engine JavaScript V8 Google dan Libuv Library. Selain itu, platform tersebut menggunakan dua design pattern: object pool dan facade. Berikut adalah penjelasan singkat atas masing-masing komponen.

1.         Engine V8

Engine V8 milik Google adalah sebuah compiler JavaScript yang dibuat menggunakan bahasa pemrograman C++. Dengan komponen ini, input berupa kode JavaScript dapat di-compile menjadi kode dalam tingkat assembly. V8 sendiri terdiri dari tiga komponen:

  • Compiler – mengubah JavaScript menjadi bahasa pemrograman lain.
  • Optimizer – menciptakan sebuah abstract syntax tree yang akan diubah menjadi static single assignment dan dioptimasi.
  • Garbage collector – V8 membagi penyimpanan yang ada menjadi dua, yaitu penyimpanan lama dan baru. Keduanya  menyimpan objek JavaScript, tetapi penyimpanan baru juga merupakan tempat menaruh output dari compiler. Ketika penyimpanan baru sudah penuh, garbage collector memindahkan objek-objek lama ke penyimpanan lama agar kinerja Node.js tetap ringan.

2.         Libuv Library

            Library C++ ini bertugas mengelola operasi asynchronous I/O (input/output) di Node.js dan main event loop. Di dalamnya juga terdapat thread pool reserve yang menangani thread setiap operasi I/O.

3.         Design Pattern

Ada dua jenis design pattern yang digunakan oleh Node.js, yaitu object pool dan facade. Berikut penjelasannya:

  • Object pool – design pattern berisi kumpulan objek yang dapat digunakan untuk task tertentu.
  • Facade – design pattern yang memberikan tampilan antarmuka untuk body kode.

Cara Kerja Node.js.            

Aplikasi web yang dibangun menggunakan Node.js biasanya memiliki work flow yang mirip. Dilansir dari Simplilearn, cara kerja Node.js digambarkan seperti ilustrasi diagram di bawah ini:

  1. 1. Client mengirim request ke webserver untuk berinteraksi dengan aplikasi web. Request dapat berupa blocking atau nonblocking, misalnya: meminta, menghapus, dan memperbarui data.
  2. 2. Node.js mengambil request yang masuk, kemudian menambahkannya ke Event Queue.
  3. 3. Permintaan kemudian diteruskan satu per satu melalui Event Loop dan diperiksa apakah requestnya cukup sederhana sehingga tidak memerlukan resource eksternal apapun.
  4. 4. Event Loop memproses permintaan sederhana (operasi nonblocking), seperti Polling I/O, dan mengembalikan respons ke client terkait.
  5. 5. Satu thread dari Thread Pool ditugaskan ke satu request yang kompleks. Thread ini bertanggung jawab untuk menyelesaikan permintaan blocking tertentu dengan mengakses eksternal resource, seperti komputasi, database, sistem file, dan sebagainya.
  6. 6.Setelah task selesai dilakukan, respons dikirim ke Event Loop yang pada gilirannya untuk mengirimkan respons itu kembali ke client.

Gimana sobat coders, sekarang sudah paham kan apa itu Node.js. semoga ilmunya bisa bermanfaat ya untuk sobat coders semua dimanapun berada. sampai jumpa.