fbpx

Order Now - Dedicated Server High Performance

TechnologyPengetahuan

Mengenal Node.js: Javascript sisi Server

Taufik Nurhidayat

Node.js menjadi populer dan banyak digunakan dalam beberapa tahun terakhir. Dengan node.js menjadikan javascript yang biasanya digunakan pada sisi client kini bisa berjalan di sisi server.

Apa itu Node.js?

Node.js (Node/NodeJS) adalah runtime javascript open source yang dibuat dengan Google Chrome Engine V8. Dikembangkan oleh Ryan Dahl pada tahun 2009. Pada saat diluncurkan Node hanya tersedia untuk Mac OS X dan Linux saja, hingga pada tahun 2011 versi untuk Windows tersedia.

Node berbasis peristiwa asinkron, di desain untuk membuat aplikasi jaringan yang skalabel. Sebagai runtime javascript pertama yang bisa dijalankan di sisi server, Node dapat melakukan koneksi web berjalan dua arah secara real-time. Berbeda dengan respon web pada umumnya, yang memerlukan sisi client untuk melakukan koneksi terlebih dahulu.

Cara Kerja Node.js

Node menggunakan arsitektur "Single Threaded Event-Loop" untuk menangani beberapa klien diwaktu yang sama. Pada runtime dengan model "multi-threaded request-response", beberapa klien mengirim permintaan lalu server akan memproses masing-masing permintaan satu-persatu sebelum dikirim kepada klien. Namun, beberapa thread digunakan pada waktu yang bersamaan. Thread tersebut dikelompokkan dalam "Thread Pool", dan setiap permintaan yang masuk akan ditangani oleh thread individual.

Node bekerja secara berbeda, ketika menerima permintaan dan mengirimkan respon hanya ditangani oleh satu thread saja. Menggunakan non-bloking input/output (I/O) dan di eksekusi secara asinkron yang mampu menangani beberapa tugas secara bersamaan tanpa memblokir permintaan lain.

Berikut adalah gambaran server tradisional dibandingkan dengan server node yang saya temukan dari toptal.com.

Toptal Arsitektur Server Node.js vs Server Tradisional

Fitur

Node berkembang dengan pesat dalam beberapa tahun terakhir dan komunitasnya juga sangat besar, kami telah menemukan beberapa fitur sebagai berikut.

Mudah: Sebagai pemula kamu dapat memulai pengembangan node.js dengan mudah, dokumentasi yang lengkap serta komunitas yang besar menjadi nilai tambah bagi node.js.

Cepat: Dibangun dengan Chrome Engine v8 dan eksekusi thread non-bloking membuat node lebih cepat dan efisien.

Skalabel: Skalabilitas tinggi, mampu menangani koneksi dengan jumlah besar hanya dengan single thread.

Cross Platform: Memungkinkan untuk membuat SaaS, aplikasi desktop, seluler, web atau aplikasi apapun dengan menggunakan node.js.

Package: Tersedia berbagai package open source yang siap digunakan untuk mempercepat proses pengembangan. Juga manajer paket NPM yang siap sebagai pengelola paket menjadi kelebihan tersendiri.

Backend yang Kuat: Node ditulis dalam bahasa C dan C++ yang sangat cepat untuk menambahkan fitur dukungan jaringan.

Ramah Pengembang: Mengembangkan aplikasi front end dan back end dalam satu bahasa yaitu javascript menjadikan Node lebih ramah para pengembang.

Baca Juga: 9 Headless CMS Terbaik

Kelemahan

Dengan berbagai fitur yang dimiliki, tentunya Node memiliki kelemahan sendiri. Tidak ada yang sempurna untuk sebuah ciptaan manusia.

Single Thread: Node hanya dapat memproses satu perintah dalam satu waktu. Meski telah mencegah pemblokiran proses lain dengan mekanisme asinkron untuk beberapa tugas sederhana, tetapi tugas yang lebih kompleks serta membutuhkan resource yang tinggi akan memblokir proses dan menyebabkan proses tertunda.

Kualitas package open source tidak terjamin: Meski banyak pilihan paket open source yang tersedia, beberapa paket memiliki kualitas tidak terjamin dan dokumentasi yang buruk. Hal tersebut tidak berkaitan dengan kode inti dari Node, jika kamu pandai dalam memilih paket maka hal tersebut tidak menjadi masalah.

Kapan Harus Menggunakan Node.js?

Berikut adalah kasus dimana kamu dapat menggunakan node.js untuk mendapatkan kinerja terbaik.

Aplikasi Real-time: Dengan kecepatan dan kinerja luar biasa, kamu dapat membuat aplikasi pesan atau chatting secara real-time. Node.js mampu menangani trafik yang padat dari beberapa pesan singkat, atau menampilkan pesan ke banyak pengguna secara bersamaan.

Aplikasi IoT: Sekali lagi kecepatan dan performa menjadi alasan node.js untuk membuat aplikasi IoT. Selain itu integrasi antara node.js dengan protokol IoT dapat dilakukan dengan mudah. Package manager juga memiliki banyak modul IoT yang mempermudah pengembangan.

Aplikasi Streaming: Untuk sebuah layanan streaming video atau audio, diperlukan pengiriman data dengan jumlah besar namun dalam paket yang lebih kecil. Maka disinilah keuntungan node.js, dengan modul bawaan yang memungkinkan aliran data dapat dibaca serta ditulis. Netflix salah satu layanan streaming menggunakan teknologi Node.js, jadi kamu dapat mengerti secara garis besar.

Aplikasi yang Mengandalkan Skalabilitas: Skalabilitas yang didukung oleh Node.js mampu menahan beban loads yang tinggi. Seperti Uber, selalu tumbuh dan memperluas jangkauannya sebagai jaringan taksi global. Pada waktu liburan layanan taksi memiliki lebih banyak permintaan, dan node.js mampu menghadapi hal tersebut.

Kapan Tidak Boleh Menggunakan Node.js?

Tidak semua situasi memungkinkan Node.js cocok, ada kalanya kamu harus memilih platform lain. Berikut adalah kasus dimana node.js tidak akan memberikan kinerja terbaiknya.

Komputasi sisi Server yang Berat: Node.js hanya menggunakan satu inti CPU, menyebabkan tugas yang lebih kompleks dan berat akan menghalangi proses lainya. Maka model event-driven non-bloking I/O yang diunggulkan menjadi tidak berguna.

Server CRUD: Jika kamu membuat aplikasi CRUD dengan data yang langsung dari server tanpa API, hal ini akan mebuat fitur canggih Node.js terbuang sia-sia.

Server dengan Database Relasional: Akan baik-baik saja jika menggunakan database noSQL seperti MongoDB, namun tidak dapat bekerja secara efektif untuk database relasional SQL. Tetapi kabar baiknya ORM telah mendukung database relasional.

Cara Menginstall Node.js

Untuk mac os gunakan brew.

brew install node

Pengguna linux menggunakan apt.

sudo apt install node

Untuk pengguna windows kamu perlu mendownload installer di halaman resmi Node.

Kamu juga bisa mengetahui versi dari node.js yang telah kamu install dengan cara berikut.

node -v

Baca Juga: Mengenal Jenis Layanan Hosting

Package Node paling Populer

Dengan komunitas yang luas telah menghasilkan banyak paket dengan fungsinya masing-masing. Berikut beberapa paket npm populer yang tersedia.

  1. Express. Express.js merupakan kerangka kerja web yang cepat dan sederhana.
  2. Lodash. Perpustakaan javascript modern dengan berbagai fitur serbaguna.
  3. Axios. HTTP client API framework.
  4. MongoDB. Menyediakan api objek database MongoDB.
  5. Async. Memastikan proses berjalan secara asinkron.
  6. Moment. Perpustakaan untuk parse, manipulasi serta memformat tanggal dan waktu.
  7. Mocha. Alat pengujian javascript baik browser maupun node.js.
  8. Redish. Library klien untuk integrasi database redish.

Perusahaan yang Menggunakan Node.js

Dengan data hasil penelitian oleh tim relevant.software, berikut adalah perusahaan besar yang menggunakan teknologi node.

  1. PayPal: Perusahaan yang menyediakan layanan pembayaran/penerimaan uang lintas negara.
  2. Uber: Layanan taksi digital.
  3. Linkedin: Sosial media dari Microsoft yang berorientasi pada bisnis.
  4. eBay: Merupakan marketplace online terbesar di dunia.
  5. Netflix: Salah satu layanan streaming terbesar di dunia.

Kesimpulan

Singkatnya node.js merupakan lingkungan pengembangan populer dengan bahasa pemrograman javascript dengan kinerja yang luar biasa. Komunitas yang luas terus berupaya untuk membuat node.js lebih dan lebih baik lagi.

Perlu diketahui bahwa node.js bukan bahasa pemrograman melainkan environment dan library Javascript yang bisa berjalan diluar browser.

Baca Juga