Pengenalan Node.js Lengkap bagi Pemula

By | May 10, 2019

Dikala ini ada pelbagai platform yang digunakan pada pemrograman program web. Node.js yakni diantara platform pemrograman yang mempunyai performa tinggi. Agar Sahabat dapat mengenalnya lebih dekat, artikel ini akan menjelaskan apa itu Node.js.

Tak hanya itu, Sahabat pun akan belajar cara kerja basic dari platform tersebut, keunggulannya, serta kondisi yang membutuhkannya.

Apa Itu Node.js?

Node.js yakni platform  buatan Ryan Dahl bagi menjalankan program web dengan JavaScript yang dikenalkan di tahun 2009. Dengan platform ini, Sahabat dapat menjalankan JavaScript dari sisi server.

Bagi mendukung kemampuan tersebut, Node.js dibangun dengan engine Javascript V8 milik Google.

Di samping itu, Node.js pun mempunyai pustaka server sendiri sehingga Sahabat tak 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.

Node.js vs JavaScript

Meskipun keduanya berkaitan, Node.js dan JavaScript yakni dua hal yang berbeda. Mari kita mulai dari pemahaman mengenai JavaScript.

JavaScript yakni bahasa pemrograman yang digunakan bersamaan dengan HTML dan CSS bagi menghasilkan halaman blog yang bersifat interaktif. HTML menghasilkan struktur dan tampilan teks, sedangkan CSS bertanggung jawab atas tampilan grafis sebuah halaman. Nah, JavaScript berkontribusi atas animasi dan konten-konten interaktif yang terdapat di dalamnya.

Eksekusi kode JavaScript bergantung di engine yang terdapat di browser. Oleh karena itu, Ia disematkan di kode HTML. Inilah alasan kenapa JavaScript disebut bahasa pemrograman yang bekerja di sisi client.

Node.js, di sisi lain, adalah sebuah platform bagi menjalankan kode JavaScript di sisi server. Ia bertugas bagi mengeksekusi kode JavaScript sebelum halaman blog ditampilkan di browser. Dengan demikian, Node.js dapat menjalankan situs, program web, dan game dengan browser dengan performa tinggi. 

Arsitektur Node.js

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

1. Engine V8

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

  • Compiler — mengubah JavaScript menjadi bahasa pemrograman lain
  • Optimizer — menghasilkan sebuah abstract syntax tree yang akan diubah menjadi static single assignment dan dioptimasi
  • Garbage collector — V8 membagi penyimpanan yang terdapat menjadi dua, yaitu penyimpanan lama dan baru. Keduanya  menyimpan objek JavaScript, tetapi penyimpanan baru pun adalah sebuah tempat menaruh output dari compiler. Ketika penyimpanan baru telah penuh, garbage collector memindahkan objek-objek lama ke penyimpanan lama agar performa 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 pun 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 bagi task tertentu
  • Facade — design pattern yang memberikan tampilan antarmuka bagi body kode

Bagaimana Cara Kerja Node.js?

Node.js bekerja dengan konsep non-blocking dan single-threaded. Bagi memahami maksud dari kedua konsep tersebut, simaklah penjelasan di bagian ini.

Sebut saja program A selaku contoh. Program ini bekerja dengan konsep blocking dan multi-threaded. Pada performanya, algoritma program A terdiri dari beberapa proses. Oleh karena sifat blocking-nya, algoritma program tersebut tak akan berlanjut ketika satu proses belum diselesaikan.

Di sisi lain ada program B yang bersifat non-blocking dan single-threaded. Program B dan A mempunyai algoritma yang sama. Akan tetapi, performa program B tak akan berhenti di satu proses sekiranya proses berikutnya tak memerlukan output proses sebelumnya. Inilah yang dimaksud dengan konsep non-blocking.

Selain itu, program B hanya mengalokasikan thread di proses yang aktif. Di program A, thread diberikan kepada segala proses, bagus yang aktif maupun yang belum.

Dengan melihat konteks tersebut, Sahabat dapat memahami bahwa program B yang bersifat non-blocking dan single-threaded dapat bekerja lebih efisien dan tak menggunakan resource yang besar diperbandingkan program A.

Apa Saja Keunggulan Node.js?

Berikut yakni alasan kenapa Node.js sering digunakan oleh programmer backend.

  • Bersifat Non-blocking Seperti yang telah disebutkan di bagian sebelumnya, Node.js bekerja dengan konsep non-blocking. Dengan kata lain, proses yang tak membutuhkan output dari proses sebelumnya tetap dapat berjalan bersamaan. Oleh karena itu, pemakaian Node.js di sebuah program meningkatkan efisiensinya
  • Dapat Mengeksekusi Kode dengan Cepat — Node.js dikerjakan menggunakan engine V8 besutan Google yang dapat menjalankan kode dengan cepat
  • Mempunyai Karakteristik Single-threaded — Pada konsep ini, sebuah program hanya mengalokasikan thread di proses yang sedang berlangsung. Hasilnya yakni performa program yang lebih ringan.
  • Tak Menjalankan Data Buffering — Program dengan Node.js di dalamnya tak menjalankan data buffering, yaitu pengalokasian beberapa porsi penyimpanan server bagi data yang sedang diproses. Absennya proses ini memberikan Sahabat ruang yang lebih besar bagi penyimpanan data.

Bagi Apa Pemakaian Node.js?

Di tahap ini, setidaknya Sahabat telah mengenal dasar-dasar dari Node.js. Akan tetapi, bagi pemrograman apakah pemakaian platform ini dianjurkan? Berikut yakni beberapa di antaranya:

  • Program yang menggunakan application program interface (API) JavaScript Object Notation (JSON)
  • Program single-page
  • Program yang menjalankan streaming data

Contoh Situs dan Program yang Menggunakan Node.js

Di atas Sahabat telah dideskripsikan mengenai jenis program yang menggunakan Node.js. Nah, ini yakni dua situs dan satu program yang dikenal secara umum, namun Sahabat mungkin belum tahu bahwa mereka berjalan dengan Node.js:

  • Netflix — Situs streaming serial TV dan film ini dijalankan menggunakan Node.js di samping Python dan Java
  • LinkedIn — Backend API dari program Android dan iOS platform social network bagi para profesional ini dibangun dengan Node.js
  • Medium — Platform blogging terkenal ini menggunakan Node.js bagi backend-nya

Baca pun: Cara Install Node.js dan NPM di Ubuntu 18.04

Penutup

Node.js yakni platform yang sering digunakan pada pengembangan program web karena efisiensinya pada mengelola data.

Semoga artikel ini bermanfaat untuk Sahabat. Seandainya mempunyai pertanyaan, jangan sungkan bagi meninggalkan komentar di kolom di bawah ini.


Sumber https://niagahoster.co.id/