oleh

Mengenal Node.js

Saat ini ada berbagai platform yang di gunakan dalam pemrograman aplikasi web, salah satunya adalah Node.js, yang merupakan satu platform pemrograman yang memiliki performa tinggi, agar anda bisa mengenalnya lebih dekat, pada artikel kali ini kita akan membahasnya apa itu Node.js.

Apa Itu Node.js?

Node.js adalah sebuah platform buatan Ryan Dahl untuk menjalankan aplikasi web berbasis JavaScript yang di rilis pada tahun 2009, dengan platform ini, anda dapat menjalankan JavaScript dari sisi server.

Untuk mendukung kemampuan tersebut, Node.js di bangun 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.

Pemrograman Node.Js
Pemrograman Node.Js

Node.js vs JavaScript

Meskipun keduanya berkaitan, Node.js dan JavaScript adalah dua hal yang berbeda, mari kita mulai dari pemahaman tentang JavaScript.

JavaScript adalah bahasa pemrograman yang di gunakan bersamaan dengan HTML dan CSS untuk menciptakan halaman website 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 ada di dalamnya.

Eksekusi kode JavaScript bergantung pada engine yang ada pada browser, oleh karena itu ia di sematkan pada kode HTML dan inilah alasan mengapa JavaScript di sebut juga dengan bahasa pemrograman yang bekerja pada sisi client.

Di sisi lain, Node.js adalah merupakan platform untuk menjalankan kode JavaScript pada sisi server, ia bertugas untuk mengeksekusi kode JavaScript sebelum halaman website di tampilkan di browser, dengan demikian Node.js dapat menjalankan situs, aplikasi web dan game berbasis browser dengan performa tinggi. 

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, yaitu : object pool dan facade, berikut adalah penjelasan singkat atas masing-masing komponen.

1. Engine V8

Engine V8 milik Google adalah sebuah compiler JavaScript yang di buat dengan 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, yaitu :

  • Compiler, yaitu mengubah JavaScript menjadi bahasa pemrograman lain.
  • Optimizer, yaitu menciptakan sebuah abstract syntax tree yang akan diubah menjadi static single assignment dan di optimasi.
  • Garbage collector, yaitu 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 di gunakan oleh Node.js, yaitu object pool dan facade, berikut ini uraiannya :

  • Object pool, yaitu design pattern berisi kumpulan objek yang dapat di gunakan untuk task tertentu.
  • Facade, yaitu design pattern yang memberikan tampilan antarmuka untuk body kode.
Baca juga...  Langkah Mudah Mendapatkan SSL Gratis Selamanya
Cara Kerja Node.js Bagaimana?

Node.js bekerja dengan konsep non-blocking dan single-threaded, untuk memahami maksud dari kedua konsep tersebut, simaklah penjelasan pada bagian ini, misalnya program A sebagai contoh. Program ini bekerja dengan konsep blocking dan multi-threaded.

Dalam kinerjanya, algoritma program A terdiri dari beberapa proses, oleh karena sifat blocking-nya, algoritma program tersebut tidak akan berlanjut ketika satu proses belum di selesaikan.

Di sisi lain ada program B yang bersifat non-blocking dan single-threaded. Program B dan A memiliki algoritma yang sama, akan tetapi kinerja program B tidak akan berhenti pada satu proses jika proses selanjutnya tidak memerlukan output proses sebelumnya, inilah yang di maksud dengan konsep non-blocking.

Selain itu, program B hanya mengalokasikan thread pada proses yang aktif, pada program A, thread di berikan kepada semua proses, baik yang aktif maupun yang belum, dengan melihat konteks tersebut, maka anda dapat memahami, bahwa program B yang bersifat non-blocking dan single-threaded dapat bekerja lebih efisien dan tidak menggunakan resource yang besar di bandingkan program A.

Apa Saja Keunggulan Node.js?

Berikut ini adalah alasan mengapa Node.js lebih sering di gunakan oleh para programmer backend.

  • Bersifat Non-blocking, seperti yang telah di sebutkan pada bagian sebelumnya, Node.js bekerja dengan konsep non-blocking, dengan kata lain, proses yang tidak membutuhkan output dari proses sebelumnya tetap dapat berjalan bersamaan, oleh karena itu penggunaan Node.js pada sebuah program meningkatkan efisiensinya.
  • Dapat Mengeksekusi Kode dengan Cepat, Node.js di buat menggunakan engine V8 besutan Google yang dapat menjalankan kode dengan cepat.
  • Memiliki Karakteristik Single-threaded, dalam konsep ini, sebuah program hanya mengalokasikan thread pada proses yang sedang berlangsung dan hasilnya adalah kinerja program yang lebih ringan.
  • Tidak Melakukan Data Buffering, program dengan Node.js di dalamnya tidak melakukan data buffering, yaitu pengalokasian sebagian porsi penyimpanan server untuk data yang sedang di proses, dengan absennya proses ini, akan memberikan anda ruang yang lebih besar untuk penyimpanan data.
Untuk Apa Penggunaan Node.js?

Pada tahap ini, setidaknya anda sudah mengenal dasar-dasar dari Node.js, akan tetapi untuk pemrograman, apakah penggunaan platform ini di anjurkan? Berikut adalah beberapa di antaranya, yaitu :

  • Aplikasi yang menggunakan application program interface (API) JavaScript Object Notation (JSON).
  • Aplikasi single-page.
  • Aplikasi yang melakukan streaming data.
Contoh Website dan Aplikasi yang Menggunakan Node.js

Di atas anda telah di jelaskan tentang jenis aplikasi yang menggunakan Node.js. Nah, ini adalah dua situs dan satu aplikasi yang di kenal secara umum, namun anda mungkin belum tahu bahwa mereka berjalan dengan Node.js, yakni :

  • Netflix, ini situs streaming serial TV dan film yang di jalankan dengan menggunakan Node.js di samping Python dan Java.
  • LinkedIn, Backend API dari aplikasi Android dan iOS platform social network untuk para profesional ini di bangun dengan Node.js.
  • Medium, Platform blogging terkenal ini menggunakan Node.js untuk backend-nya.

Jadi, Node.js adalah salah satu platform yang sering di gunakan untuk pengembangan aplikasi web karena efisiensinya dalam hal mengelola data.

Komentar

Tinggalkan Balasan Anda dan Terima Kasih Atas Kunjungannya...

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Artikel Terbaru