NodeJS pertama kali diciptakan dan diperkenalkan oleh Ryan Dahl, pada tahun 2009. Node.js bukanlah sebuah bahasa pemrograman melainkan adalah sebuah platform / perangkat lunak yang didesign untuk mengembangkan aplikasi berbasis web, Bahasa yang digunakan adalah Javascript. Bila selama ini kita mengenal javascript sebagai bahasa pemrograman yang berjalan pada sisi klien / web browser saja, maka Node.js ada untuk melengkapi peran Javascript sehingga bisa berjalan pada sisi Server, seperti halnya PHP, Ruby, Perl dan sebagainya. Node.js dapat berjalan di sistem operasi Windows, Mac Os X dan linux tanpa perlu ada perubahan kode program. Node.js memiliki pustaka server HTTP sendiri sehingga memungkinkan untuk menjalankan web server tanpa menggunakan Web Server seperti Apache atau Nginx.
Untuk mengeksekusi Javascript sebagai bahasa server diperlukan engine yang cepat dan mempunyai performa yang bagus. Engine yang digunakan pada Node.js adalah engine buatan google bernama V8 yang dipakai juga pada browser Google Chrome.
Bagaimana Node.js bekerja
Berbeda dengan bahasa pemrograman sisi server pada umumnya yang bersifat blocking, Node.js bersifat non-blocking, sebagaimana halnya javascript bekerja. Node.js berjalan dengan basis even-driver. yang dimaksud blocking secara sederhana adalah bahwa suatu kode program akan dijalankan hingga selesai, baru kemudian beralih ke kode program selanjutnya.
Misalkan kita memiliki algoritma pemrograman seperti berikut
- request halaman
- ambil data dari database
- tulis html berisi data
- kirim respon
Bila kita menggunakan bahasa pemrograman blocking yang bersifat Multi-threaded maka pada poin kedua saat program mengambil data dari database selama jangka waktu tertentu pada satu thread, maka thread lain yang disiapkan untuk menjalankan poin ketiga. Nah proses ketiga ini tidak akan dijalankan jika belum menerima data dari poin ketiga. Ini bukanlah masalah yang begitu besar, hanya saja Node.js dengan single-threadednya memiliki cara berbeda.
Node.js, mengalokasikan thread untuk setiap poin, dia hanya akan membuat thread apabila ada event yang memerlukan hal tersebut. Contohnya untuk khasus diatas, ketika program mengambil data dari database, program hanya membuat thread atau dengan kata lain mulai memproses poin ketiga apabila data dari database sudah diterima, menggunakan callback. Selain itu jika ada kode program yang tidak terkait dalam data tadi, akan dijalankan tanpa harus menunggu pengambilan data tersebut selesai.
Kelebihan memakai Node.js
Node.js menggunakan bahasa pemrograman Javascript yang dikatakan sebagai bahasa pemrograman yang populer dan dikenal banyak orang.
Node.js dapat menangani ribuan koneksi secara bersamaan dengan penggunaan resource minimum untuk setiap prosesnya.
Node.js sangat bisa diandalkan dalam pembuatan program yang real-time.
Bagi orang yang expert dalam bahasa pemrograman javascript, Node.js sangat lebih mudah dipelajari.
Mendukung caching / penyimpanan data sementara.
Top comments (0)