Last Updated on April 20, 2022 by
Bagi para programmer dan pengembang web, pasti sudah tidak asing lagi mendengar nama Node.js. Sebab, Nodejs sudah menjadi trend baru untuk dunia pengembangan web saat ini. Namun, bagi orang yang baru terjun ke dunia website. Setidaknya, pasti akan melontarkan pertanyaan yang ada di dalam pikirannya, saat mendengar Node.js. Apa Node.js itu? Apa saja keunggulannya? Apakah Node.js penting untuk dipelajari? Untuk lebih jelasnya, silahkan simak informasi berikut ini.
Table of Contents
Definisi NodeJs Adalah
Secara bahasa, Node.js terdiri dari dua kata, yaitu Node dan js. Dalam bahasa latin node adalah nodus yang artinya titik simpul, titik sambung, atau titik redistribusi. Sedangkan, .js adalah singkatan dari JavaScript. Jadi, Node.js adalah titik sambung dari JavaScript. Maka jika ditafsirkan, Node.js adalah sebagai penyambung atau pelengkap dari JavaScript.
Definisi secara umum, Nodejs adalah sebuah platform yang berisi bahasa pemrograman JavaScript. Platform ini memang dirancang oleh penemunya untuk melengkapi Javascript yang hanya beroperasi di sisi browser saja.
Maka dari itu, diciptakankah Node.js untuk menjalankan JavaScript di sisi server. Sistem operasinya menggunakan mesin v8 produk dari Google Chrome. Sedangkan, definisi Node.js yang dikutip dari situs resminya, https://nodejs.org, adalah sebagai berikut:
“Node.js ® adalah platform yang dibangun di environment runtime JavaScript milik Chrome yang digunakan untuk membuat aplikasi web yang cepat dan scalable.”
KETERANGAN
Scalable artinya, server dapat menampung dan menangani banyak request dari beberapa browser sekaligus atau secara serentak. Tanpa harus menumpukan (mengantrikan) request dari para browser. Request dari setiap browser diterima oleh event loop dan dibawa ke thread untuk diproses Jika, request sudah selesai diproses. Maka akan segera disebarkan kembali (callback) oleh event loop ke browser-browser yang melakukan request.
Apabila digambarkan, alur request dari para browser dimulai dari app Node.js –> single threaded & event loop –>> Thread 1, 2, 3, dan thread pool reserve lainnya yang menampung request–>> return (callback) ke browser.
Sementara itu, terdapat juga definisi Node.js yang lain yang dapat membedakan antara Node.js dengan bahasa pemograman ataupun framework. Definisinya seperti ini:
Nodejs adalah runtime environment JavaScript yang bersifat open source dan antar platform yang dapat mengeksekusi kode JavaScript pada sisi server.
Sebelumnya disebutkan bahwa Node.js bersifat open source. Maka artinya pengembangan web di sisi server dan aplikasi jaringan bisa dikontribusi oleh siapa saja dan intinya Node js tersedia secara gratis. Aplikasi Node.js ini ditulis dalam syntax bahasa pemrograman JavaScript yang cukup sederhana dan bisa dijalankan di berbagai sistem operasi, seperti OS Linux, OS Windows, dan OS X.
Node.js dibangun dengan dua komponen utama, yaitu mesin v8 dan libuv library dengan modul-modul JavaScript untuk membangun web dan aplikasi. Analogi secara sederhana mengenai Node.js adalah sebagai berikut:
Node.js = Environment Runtime + Libuv Library dengan bahasa pemograman JavaScript.
Sejarah Node.js
Node.js ditemukan oleh seorang developer dari Joyent yang bernama Ryan Dahl pada tahun 2009. Ryan Dahl menemukan Node.js, setelah tiga belas tahun mengamati cara kerja bahasa pemrograman JavaScript. Ryan Dahl dengan jeli menemukan kekurangan JavaScript yang hanya berjalan pada satu sisi saja, yaitu sisi browser. Karena, runtime engine ada di dalam browser. Lalu, Ryan Dahl mempunyai ide untuk mengeluarkan engine yang ada di dalam browser agar bisa mengeksekusi program JavaScript di luar browser. Percobaan yang dilakukan Ryan Dahl itu akhirnya berhasil. Maka, diperkenalkanlah Node.js, sebuah platform baru dengan teknologi yang waktu itu paling mutakhir yang dapat mengeksekusi semua bahasa JavaScript di sisi server. Dan, runtime engine yang bisa digunakan untuk mengeksekusi kode Javascript adalah mesin V8 besutan Google Chrome.
Contoh Penggunaan Node.js dalam Web Server HTTP
Kita akan memberikan review mengenai contoh penulisan kode Node.js untuk sebuah web server http. Contohnya bisa dilihat seperti di bawah ini:
var http = require(‘http’);
var server = http.createServer(function (req, res){res.end (“Halo, selamat datang di situs resmi Nodejs “);}); server.listen (8000);
console.log (“server running on http://localhost:8000”);
Sekilas Cara Kerja Node.js
Node.js menggunakan model non-blocking I/O dan berjalan dengan mekanisme event driven yang bisa menangani banyak perintah atau request apa saja yang datang dari browser secara bersamaan atau paralel, tanpa harus memblokir single threaded. Penggunaan model non-blocking dan event driven ini membuat kerja node.js menjadi lebih ringan, efisien, dan tidak perlu menggunakan resource yang besar serta cocok untuk membuat web dan aplikasi data-intensive real-time yang berjalan di perangkat yang terdistribusi.
Keunggulan Nodejs Adalah
Mari kita lihat beberapa keunggulan dari Node.js.
1. Bersifat non-blocking dan asynchronous event driven IO.
Input dan Output non-blocking dan penanganan permintaan yang asynchronous dapat membuat Node.js bisa langsung menerima semua request yang datang dan segera memprosesnya, tanpa harus memblokir thread untuk menunda request yang baru datang.
Dalam proses synchronous/sinkron, request ditumpuk berurutan dan kodenya dieksekusi juga secara berurutan satu per satu. Request yang baru datang diblokir oleh thread. Karena, harus mengantri terlebih dahulu sampai request yang berada di urutan paling depan diproses.
Sementara berbeda dengan asynchronous. Dalam proses asynchronous, setiap request browser diproses tanpa harus memblokir thread. Request diproses serentak, tidak berurutan, dan tidak ditumpuk. Setelah request datang ke single thread, lalu request itu diantar masuk oleh event loop ke thread-thread yang ada di dalam untuk diproses oleh server. Setelah diproses, lalu dengan cepat direturn atau callback oleh event loop ke browser-browser. Mungkin, keunggulan ini adalah keunggulan Node.js yang paling berarti dan bisa menjadi branding untuk Node.js.
2. Fast
Node.js dapat mengeksekusi kode lebih cepat. Hal ini dapat dilihat dari hasil tes kinerja di toptal.com yang mengukur kinerja Node.js dan membandingkannya dengan PHP dan Java dalam menangani request yang dilakukan secara bersamaan.
Ada dua komponen utama yang membuat Node.js menjadi sangat cepat.
Pertama, mesin V8.
Node.js dibuat pada mesin v8. Mesin ini bekerja dengan menggunakan bahasa pemrograman JavaScript.
Kedua, Libuv Library.
Libuv Library adalah komponen utama dalam node yang bekerja dengan cara asynchronous I/O yang dilengkapi dengan event loop. Kode Libuv Library ditulis dalam C++.
3. Single Thread
Node.js menggunakan model single threaded (pelayanan satu pintu) yang dilengkapi dengan event looping yang siap merespons dan membawakan request dari single thread ke thread-thread yang menampung untuk diolah. Mekanisme event loop ini, tentunya ikut membantu single thread dalam merespons request dengan cara non-blocking atau tanpa menahan request.
Selain itu, model single thread membuat server menjadi sangat scalable (server dapat menampung banyak request sekaligus) dibandingkan multi thread, seperti Apache HTTP server.
Seperti yang dilansir Bostlnno, model single threaded adalah salah satu alasan yang membuat Ryan Dahl memilih JavaScript sebagai bahasa pemograman Node.js.
4. No Buffering
Aplikasi Node.js tidak pernah melakukan buffer data apapun. Tetapi. aplikasi ini hanya menampilkan data output dalam teknik chunks (potongan)
5. Open Source
Platform ini bersifat open source, artinya semua orang bisa dengan mudah melihat struktur Node.js dengan melihat dari source codenya. Setelah itu, bebas memodifikasi, dan membagikan hasil modifikasi sebagai inovasi baru. Namun, pada intinya orang-orang tertarik pada open source. Karena, dapat menghemat biaya untuk pengembangan (tanpa harus membayar lisensi ke pengembangnya).
Dengan mengusung konsep open source, tidak mengherankan jika platform hasil kreasi Ryan Dahl ini sudah banyak digemari oleh perusahaan-perusahaan dunia untuk membangun sebuah situs atau aplikasi. Saat ini saja sudah terdapat tiga ratus lebih perusahaan-perusahaan terkenal di dunia yang telah menggunakan Node.js dalam proyeknya. Perusahaan-perusahaan itu antara lain: PayPal, Medium, Trello, Uber, Zendesk, GoDaddy, eBay, dan Yahoo.
Sangat jarang ada platform open source yang begitu banyak mendapatkan support dari perusahaan-perusahaan terkemuka dunia. Maka hal ini, menunjukkan kepada kita bahwa Node.js memang memiliki keunggulan yang luar biasa.
6. Lisensi
Nodejs memiliki lisensi. Lisensinya dirilis di bawah lisensi MIT ( Massachusetts Institute of Technology ). Walaupun Node.js memiliki lisensi, tetapi kita bisa mendapatkannya secara gratis, tidak harus mengeluarkan biaya untuk lisensi. Mengapa demikian? Karena, Node.js adalah open source.
7. Komunitas
Sekarang, komunitas Node.js tumbuh dan berkembang dengan pesat, sehingga menarik para pengembang terbaik untuk datang dan berkontribusi dalam mengembangkan Node.js. Hal ini berarti bahwa ekosistem Node.js juga semakin berkembang dan update seiring dengan perkembangan trend web terbaru. Selain itu, tentunya semakin mudah untuk mendapatkan support secara gratis atau secara komersial dari komunitas.
Selain Ryan Dahl, ada komunitas dan kontributor yang kuat-berdedikasi yang ikut membantu dalam membangun teknologi Node.js ini.
Penggunaan Nodejs
Teknologi Node.js digunakan untuk pengembangan web dan aplikasi.
- Aplikasi streaming data
- Aplikasi single threaded
- Aplikasi DIRT (Data-Intensive Real-Time)
- Aplikasi dengan API JSON.
- Aplikasi Game
Berikut ini contoh Aplikasi dan Web yang sudah terkenal yang sudah menggunakan Nodejs untuk menjalankan operasinya:
- Netflix – Situs streaming populer yang menyediakan film dan TV streaming.
- LinkedIn – LinkedIn adalah backend dari aplikasi Android untuk social media.
- Medium – Blogging terkenal di dunia menggunakan nodejs untuk backend (server).
Kesimpulan
Node.js adalah bahasa pemograman yang tidak sama seperti JavaScript, PHP, dan Apache. Tetapi, Node.js merupakan sebuah platform yang dibangun dengan mesin v8 (JavaScript runtime engine dari Google) untuk menjalankan program JavaScript di sisi server.
Dan, penemu Node.js sendiri, lebih senang menyebut Node.js itu adalah runtime environment lintas platform. Awalnya, Nodejs dibuat untuk menjalankan JavaScript di sisi server, melengkapi JavaScript yang hanya bisa beroperasi di sisi browser saja dalam membangun web yang sederhana. Tetapi, sekarang teknologi Nodejs sudah bisa digunakan juga oleh para pengembang untuk membuat aplikasi desktop, mobile, IoT, CLI, dsb.
Sudah dijelaskan tadi di dalam pembahasan artikel ini, Node.js memiliki banyak keunggulan. Keunggulan-keunggulan Node.js antara lain; Bersifat non-blocking I/O dan asynchronous, fast, single threaded, no buffering, open source, lisensi, dan komunitas.
Dengan segala keunggulan yang dimilikinya itu, menjadikan Nodejs popular dalam waktu yang relatif singkat. Karena, Node.js ini banyak digemari oleh perusahaan-perusahaan terkemuka dunia untuk dilibatkan dalam proyek-proyeknya.
Tentunya, Nodejs perlu untuk dipelajari oleh siapapun. Karena, teknologi Nodejs telah banyak membawa perubahan penting dalam pengembangan web.
Selain itu, Nodejs berbasis JavaScript. Aplikasi Node.js ditulis menggunakan bahasa JavaScript. Sedangkan, bahasa JavaScript masih menjadi bahasa pemrograman yang paling banyak digunakan untuk industri saat ini. Sehingga, bagi anda yang sudah menguasai bahasa JavaScript, setidaknya akan mudah mempelajari Node.js.
Nah, demikian artikel yang kami share ini, semoga informasinya dapat bermanfaat. Terima kasih. Kunjungi Web App di https://appkey.id/ dan jangan lupa nyalakan notifikasi agar tidak ketinggalan informasi terbaru.
Jasa Pembuatan Aplikasi, Website dan Internet Marketing | PT APPKEY
PT APPKEY adalah perusahaan IT yang khusus membuat aplikasi Android, iOS dan mengembangkan sistem website. Kami juga memiliki pengetahuan dan wawasan dalam menjalankan pemasaran online sehingga diharapkan dapat membantu menyelesaikan permasalahan Anda.