Apa itu Node JS ?

 


Node.js adalah software open-source yang bisa digunakan untuk membuat aplikasi jaringan dan aplikasi server-side yang real-time dan scalable (bisa dikembangkan sesuai kebutuhan).



Cara Kerja Node.js

Dibandingkan dengan platform lain, Node.js memiliki alur kerja yang spesifik. Software ini beroperasi dalam satu thread (single-threaded), yang berarti tidak membuat thread baru untuk setiap permintaan. Thread adalah rangkaian instruksi yang perlu dilakukan oleh server.

Node.js menggunakan operasi I/O non-blocking. Artinya, saat client mengirim permintaan ke web server, event loop single-threaded Node JS akan mengambil permintaan tersebut lalu mengirimkannya ke worker thread untuk diproses.

Daripada memblokir thread dan membuang-buang resource CPU dengan menunggu respons, Node JS akan terus mengerjakan tugas berikutnya. Dengan cara ini, Node.js bisa menangani sejumlah besar permintaan secara bersamaan.

Oleh karena itu, Node.js tidak cocok untuk tugas-tugas dengan penggunaan CPU yang tinggi. Sebab, tugas tersebut bisa menghalangi thread utama untuk menangani permintaan lain, yang secara efektif akan memblokirnya.

Arsitektur yang Asinkron

Jadi, seperti pembahasan di atas tadi, thread Node.js tidak menunggu sampai respons diterima untuk lanjut memproses permintaan berikutnya.

Pada arsitekturnya yang asinkron, event loop beroperasi setiap kali peristiwa tertentu terjadi (event-driven). Setelah diterima dari panggilan API sebelumnya, respons akan dimasukkan ke dalam antrean event.

Event loop akan menyelesaikan semua permintaan sebelumnya dan permintaan saat ini sebelum menjalankan fungsi callback untuk mengirimkan respons dari server ke klien.

Karena menggunakan event loop single-thread, Node.js mampu menangani banyak permintaan secara bersamaan dengan waktu eksekusi yang lebih cepat, dan menggunakan resource yang lebih sedikit.

Sebagai perbandingan, software arsitektur sinkron melakukan satu tugas pada satu waktu. Oleh karena itu, event loop biasanya hanya akan pindah ke tugas berikutnya kalau yang sebelumnya sudah selesai.

Fungsi Node.js

Node.js adalah solusi yang cocok untuk melakukan tugas dengan penggunaan data yang intens atau analitik waktu nyata karena memiliki arsitektur asinkron dan fitur I/O non-blocking. Umumnya, Node.js sering digunakan untuk tugas-tugas berikut:

  • Chatting secara real-time. Karena menangani tugas I/O secara efektif, Node.js bisa digunakan untuk program yang menggunakan data secara intensif, seperti aplikasi chat. Node JS juga menggunakan teknologi push melalui web socket, yang memungkinkan komunikasi dua arah antara server dan client. Hasilnya, server tidak perlu mengelola thread satu per satu untuk setiap koneksi terbuka berkat arsitektur asinkron single-threaded dari Node.js.
  • Data streaming. Node.js memiliki modul bawaan yang mendukung streaming data. Ini memungkinkan pembuatan stream yang bisa dibaca (readable) dan ditulis (writeable). Node.js akan membantu mengantrekan data dan mendistribusikannya secara asinkron tanpa hambatan atau gangguan. Jadi, Node JS adalah pilihan bagus untuk fitur streaming yang bisa memproses file saat sedang diupload.
  • Proxy sisi server. Node JS bisa mengelola banyak sekali koneksi serentak menggunakan metode non-blocking. Software ini bisa digunakan sebagai proxy server-side yang efektif, yang mengumpulkan data dari berbagai resource pihak ketiga. Terkadang, Node.js digunakan dalam pembuatan aplikasi client-side untuk mengelola aset dan permintaan API proxy/stub.
  • Dashboard untuk memantau sistem. Dengan fitur event loop Node.js, Anda bisa membuat dashboard berbasis web untuk mengecek status beberapa layanan secara asinkron. Status layanan internal dan publik bisa dilaporkan secara langsung.
  • REST API. Node.js juga memiliki sejumlah package seperti Express.js dan Koa.js yang bisa digunakan untuk membuat aplikasi. Semua ini bisa mempercepat proses integrasi API dan menjadi dasar untuk REST API yang ringan dan cepat.
  • Single Page Application (SPA). Seluruh SPA akan dimuat pada satu halaman untuk memberikan pengalaman yang serupa dengan desktop. Karena bisa menangani panggilan asinkron secara efisien di antara operasi I/O yang berat, Node JS memungkinkan update data yang sangat lancar bagi SPA tanpa harus merefresh halaman secara rutin.

Lebih kerennya lagi, Node.js juga mendukung pengembangan front-end dan back-end. Berikut alasan Node.js bisa digunakan untuk keduanya:

  • Kode yang bisa digunakan kembali. Beberapa komponen Node.js bisa digunakan kembali untuk back-end dan front-end.
  • Efisiensi tinggi. Menggunakan Node.js bisa mengurangi perpindahan konteks antara beberapa bahasa pemrograman.

Apakah Node.js adalah Bahasa Pemrograman?

Anda mungkin penasaran melihat embel-embel JS pada Node.js. Apa hubungannya dengan JavaScript, yang sering disingkat sebagai JS juga? Apa Node.js juga merupakan bahasa pemrograman?

Nah, Node.js dan JavaScript adalah hal yang berbeda. Kalau JavaScript merupakan bahasa pemrograman yang dieksekusi di sisi klien (browser pengguna), Node JS adalah environment yang berjalan di sisi server untuk menjalankan kode JavaScript.

Jadi bisa disimpulkan ya, kalau Node.js bukanlah bahasa pemrograman, walaupun masih berhubungan erat dengan kode JavaScript.


Komentar

Postingan populer dari blog ini

Apa itu Adobe After Effects ?

Apa itu Adobe Lightroom ?

Apa itu Filezilla