Node.js
Node.js adalah runtime environment (RTE) atau lingkungan eksekusi untuk JavaScript yang bersifat lintas platform dan open-source sehingga memungkinkan JavaScript dapat dijalankan di luar browser.
software-engineer
Apa itu Node.js?
Dilansir dari situs resminya, Node.js adalah runtime environment (RTE) atau lingkungan eksekusi untuk JavaScript yang bersifat lintas platform dan open-source sehingga memungkinkan JavaScript dapat dijalankan di luar browser.
Berikut pembedahan konsepnya secara lebih rinci.
Ketika developer menulis kode JavaScript di teks editor, kode itu tidak dapat melakukan tugas apa pun kecuali dijalankan di runtime environment.
Runtime environment sendiri berada di browser seperti Chrome dan Firefox. Itu sebabnya browser ini dapat menjalankan kode JavaScript. Sebelum Node.js dibuat, JavaScript hanya bisa berjalan di browser dan penggunaannya terbatas untuk membangun aplikasi front end saja.
Adanya Node.js memungkinkan developer menjalankan runtime environment di luar browser yang dibangun di Chrome V8 JavaScript engine. Dengan demikian, developer juga bisa membuat aplikasi back end menggunakan bahasa JavaScript.
Sementara open-source mengartikan sumber kode di Node.js tersedia untuk umum dan dikelola oleh kontributor dari seluruh dunia.
Selain itu, Node.js juga tersedia di lintas platform. Ini berarti Node.js tidak bergantung pada sistem operasi software apa pun. Node.js dapat bekerja di Linux, Mac OS, maupun Windows.
Dasar-dasar Node.js
Berikut adalah istilah atau dasar-dasar Node.js yang perlu diketahui:
JavaScript
JavaScript adalah bahasa yang mendukung Node.js. Ini adalah object-oriented scripting yang digunakan untuk membangun halaman HTML yang interaktif di halaman web. JavaScript juga biasa digunakan dalam pengembangan game dan mobile app.
Kode yang ada di JavaScript hanya dapat dieksekusi dan dijalankan di browser web.
Node.js modules
Node.js menampilkan beberapa modul yang bisa disimpan secara individual, sehingga tidak mengganggu modul lain yang sudah ada. Ini sangat penting untuk software yang bersifat open-source.
Modul di Node.js yang diatur ke dalam file JavaScript nantinya dapat digunakan kembali di seluruh aplikasi Node.js kapan pun dibutuhkan.
Microservices
Microservices adalah individual, self-contained unit yang berfungsi dalam membangun kerja sama antar tim untuk membuat aplikasi besar. Ini bekerja dengan cara memisahkan aplikasi menjadi beberapa bagian kecil yang memudahkan pemeliharaan dan dapat diskalakan. Artinya, setiap bagian aplikasi dapat ditulis oleh anggota tim berbeda dan diuji secara paralel.
Event-driven programming
Event-driven programming adalah fitur aplikasi yang dirancang untuk merespons berbagai bentuk user engagement. Dalam konteks ini, event merupakan setiap tindakan yang dilakukan oleh user, seperti mengeklik atau menekan tombol.
Event-driven programming dipakai untuk mendeteksi tindakan tersebut dan memprosesnya menggunakan prosedur penanganan event yang sudah ditetapkan. Adanya fitur ini memberikan pengalaman pengguna yang lebih reaktif, intuitif, sekaligus menambah fleksibilitas aplikasi yang menangani permintaan secara bersamaan.
Node package manager
NPM atau node package manager berfungsi untuk menerbitkan, menemukan, menginstal, dan mengembangkan berbagai program node. Pada dasarnya, NPM membantu agar developer tidak perlu membuat package satu per satu secara manual ketika ada penambahan fitur aplikasi. Cukup dengan menggunakan package yang sudah ada di repository.
Event loop
Event loop adalah mekanisme yang bekerja dengan cara mengantrekan dan mengirim event atau pesan dalam sebuah program. Di Node.js, event loop merupakan kontrol pusat.
Setiap kali ada permintaan yang perlu ditangani, permintaan tersebut dimasukkan ke event loop terlebih dahulu kemudian diproses di sana.
Alih-alih melakukannya sendiri, Node.js mendelegasikan tanggung jawab ke event loop untuk menangani sistem. Karenanya, Node.js tidak hanya menunggu satu tugas selesai dan dapat menangani permintaan lain untuk sementara.
Adanya event loop membuat Node.js bekerja lebih cepat dan efisien.
Proses Kerja Node.js
Dirangkum dari Geeks for Geeks, berikut proses bagaimana Node.js bekerja:
- Klien mengirim permintaan (blocking atau non-blocking) ke server untuk melakukan operasi.
- Permintaan masuk ke antrean event terlebih dahulu yang ada di sisi server.
- Antrean event meneruskan permintaan secara berurutan ke event loop. Di sini, event loop akan memeriksa sifat permintaan (blocking atau non-blocking).
- Untuk permintaan non-blocking, event loop memproses permintaan tanpa memerlukan sumber daya eksternal dan mengembalikan respons ke klien terkait.
- Untuk permintaan blocking, proses penyelesaian tugasnya dilakukan menggunakan sumber daya eksternal (database, file system, komputasi).
- Setelah operasi selesai, permintaan dialihkan kembali ke event loop untuk mengirimkan respons ke klien.
Contoh Aplikasi Node.js
Berdasarkan Master Born, berikut beberapa contoh aplikasi yang menggunakan Node.js:
Netflix
Sebagai salah satu platform besar yang digunakan untuk menonton film dan series, Netflix terus memperbaharui sistem aplikasinya. Aplikasi ini mengandalkan Node.js untuk streaming konten dalam jumlah besar ke jutaan user di seluruh dunia.
Figma
Figma adalah alat yang sangat berguna untuk desain dan pembuatan prototype UI/UX. Figma menggunakan electron, yaitu framework yang memungkinkan user dapat membuat aplikasi desktop lintas platform menggunakan Node.js.
Selain kedua aplikasi di atas, ada banyak aplikasi lain yang juga mengandalkan Node.js di sistem operasionalnya, seperti:
- Spotify
- Slack
- Asana
- Coursera
FAQ (Frequently Asked Question)
Apakah Node.js sama dengan JavaScript?
Meski saling berkaitan satu sama lain, namun Node.js dan JavaScript tidaklah sama.
NodeJS adalah runtime environment di mana developer bisa menjalankan script dari Javascript di sisi server. Nodejs memungkinkan kode JavaScript berjalan di luar browser.
Sementara itu, JavaScript adalah bahasa scripting untuk membangun halaman HTML yang interaktif. JavaScript hanya dapat dieksekusi dan dijalankan di browser internet. Untuk menjalankan dan mengeksekusi kode JavaScript di luar browser, developer membutuhkan Node.js.
Dirangkum dari Geeks for Geeks for Geeks, berikut perbedaan Node.js dan JavaScript:
- JavaScript hanya bisa dijalankan di browser (seperti Chrome dan Firefox). Dengan bantuan Node.js, developer bisa menjalankan JavaScript di luar browser.
- JavaScript digunakan di sisi klien. Node.js sebagian besar digunakan di sisi server.
- Javascript bisa untuk menambahkan HTML. Node.js tidak memiliki kemampuan tersebut.
Mulai karirmu dalam
software-engineer
Belajar di RevoU! Dapatkan skill digital paling in-demand langsung dari praktisi terbaik di bidangnya. Kelas online 100% LIVE, 1:1 career coaching, dan akses ke Community Hub dengan 6000+ member selamanya untuk support perkembangan karir kamu!