Skip to main content

Node.js: 1. Apakah Node.js itu? Definisi, Sejarah dan Fungsinya

Node.js

Node.js adalah JavaScript Runtime yang dapat berjalan di atas OS. Sebelumnya JavaScript hanya dapat bekerja di dalam Browser yaitu menggunakan JS Engine, seperti Google V8 untuk Chome, Chakra untuk Microsoft atau SpiderMonkey untuk Firefox. JS yang dulunya hanya untuk Front End, sekarang dapat dipakai juga untuk Back End sehingga dapat membuat aplikasi: server/service, web app, command line tool dan scripts. 

Node.js® is a free, open-source, cross-platform JavaScript runtime environment that lets developers create servers, web apps, command line tools and scripts.

 

SEJARAH NODE.JS

Untuk memahami apa fungsi Node.js maka anda harus tahu sejarahnya. Node.js dibuat oleh Ryan Dahl tahun 2009. Dahl mencari cara untuk mengatasi keterbatasan traditional web server seperti Apache yang sangat berat saat menangani sejumlah besar koneksi secara bersamaan (10.000 lebih koneksi), hal ini karena sifat Blocking I/O dari Apache. 

Juga masalah dari Bahasa Program saat itu yang bersifat sequential/synchronous. Dia ingin agar Server Side Programming lebih efisien, event-driven, dan bersifat non-blocking.

Nodejs menggunakan JS Engine bernama Google V8 yang dipakai oleh Chrome.

 

FUNGSI ATAU FITUR NODE.JS

  1. Single-Threaded Tapi Skalabilitas Tinggi

    Node.js hanya membutuhkan 1 thread untuk menangani ribuan koneksi, berbeda dengan bahasa programming PHP yang membutuhkan banyak thread. PHP yang bersifat synchronous membuat proses besar harus menunggu selesai agar proses selanjutnya dapat dijalankan, hal ini membuat hang aplikasi.

    Berkat Node.js maka overhead berkurang dan performance meningkat.

    NB: Saat ini PHP terutama Laravel sudah mendukung Asynchronous. Swoole, ReactPHP dan Amp juga membuat PHP bersifat asynchronous.
     
  2. Skalabilitas Tinggi

    Berkat event loop maka Node.js dapat menangani ribuan koneksi bersamaan dengan menggunakan resources yang sangat kecil. Kombinasi single-threaded dan asynchronous I/O, membuat Developer dapat membuat aplikasi berskala tinggi.
     
  3. Performa Sangat Cepat

    Node.js berjalan di atas V8 JavaScript Engine yang sangat cepat. V8 melakukan kompilasi JavaScript ke bahas mesin, sehingga jauh lebih cepat dibandingkan interpreter seperti PHP.
    NB: PHP 8 sekarang sudah ada JIT (Just-In-Time) Compiler.

    PHP 8.4 introduced a new JIT implementation based on an intermediate representation (IR) framework, aiming for more powerful optimizations, smarter register allocation, and a foundation for future performance enhancements.
     
  4. Aplikasi Real-Time

    Karena keunggulannya maka Node.js sangat tepat untuk membuat aplikasi realtime, misalnya: chat, gaming server, dan tools kolaborasi.
     
  5. Ecosystem yang besar dan NPM

    Node.js mempunyai ekosistem yang memiliki banytak Module dan Library yang disediakan melalui Node Package Manager (NPM). Ada jutaan Package, sehingga NPM mampu memberikan solusi hampir semua masalah sehingga mempercepat proses pembuatan aplikasi.
     
  6. Dukungan Komunitas

    Komunitas Nodejs yang sangat aktif memberikan kontribusi besar, banyak module yg dibuat sehingga Developer mendapatkan alat terbaru dan juga Best Practice dalam menyelesaikan masalah.
     
  7. Kompabilitas Cross-Platform 

    Node.js berjalan pada Windows, macOS, dan Linux. Sehingga cukup 1 koding untuk semua OS tersebut.
     
  8. Microservices dan API

    Node.js juga cocok untuk membuat Microservice dan API karena Nodejs sangat ringan dan efisien. Arsitektur Microservice memanfaatkan kemampuan Node.js yang dapat menangani banyak service kecil secara efektif.
     
  9. RESTful API

    Membuat RESTful API debngan Node.js juga sangat mudah berkat Framework seperti Express.js dan Next.js.
     
  10. Komunikasi Real-Time

    Keunggulan Node.js dalam hal komunikasi real-time membuatnya cocok sekali utk aplikasi yang membutuhkan live update. Teknologi seperti WebSockets secara langsung didukung, sehinga memungkinkan komunikasi antara server dan client.
     
  11. Use Case atau Contoh Kasus Real Time

    Berbeda dengan PHP yang contoh kasus aplikasi Real-time nya sedikit, maka contoh kasus aplikasi realtime Node.js sangat banyak, misalnya: Analisa Realtime, online gaming, dan collaborative tools yang membutuhkan pertukaran data instan.
     
  12. JSON Support

    Node.js menangani JSON dengan mudah, karena sudah ada Module native/bawaan maupun di ekosistem. Karena JSON merupkan format standar untuk Pertukaran Data di  aplikasi web, maka fitur ini memudahkan pembuatan API dan interaksi dengan database.
     
  13. Dipakai oleh Banyak Perusahaan Besar

    Dukungan dan penggunaan dari perusahan besar untuk Node.js seperti IBM, Microsoft, Netflix, NASA, Trello, PayPal, LinkedIn, Walmart, Uber, Twitter, Yahoo, eBay, dan GoDaddy.

 

Semoga bermanfaat. (WW)

Tags

Comments

Restricted HTML

  • Allowed HTML tags: <br> <p> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id> <cite> <dl> <dt> <dd> <a hreflang href> <blockquote cite> <ul type> <ol type start> <strong> <em> <code> <li>
  • Lines and paragraphs break automatically.
  • Web page addresses and email addresses turn into links automatically.