Pages

Apa itu NodeJS?

Rabu, 05 September 2018


Sebelumnya yang kita tau javascript itu hanya untuk membuat website kita terlihat lebih interaktif, sekarang javascript bisa kita pakai untuk membuat apapun yang kita mau! (Oke ini agak lebay) :D Itu semua berkat teknologi bernama NodeJS, apa itu NodeJS? Di dokumentasi officialnya tertulis "NodeJS is a JavaScript runtime built on Chrome's V8 JavaScript engine.". Apa maksudnya? Kalau kamu sudah pernah belajar PHP, NodeJS itu seperti Apachenya atau kalau kamu sudah pernah belajar Java, NodeJS itu seperti JVM(Java Virtual Machine)nya. Kalau kamu belum pernah mempelajari keduanya, NodeJS itu seperti suatu mesin yang membuat javascript yang tadinya hanya bisa berjalan di browser menjadi bisa berjalan langsung di komputer kalian, seperti itu kira-kira analoginya.

Selanjutnya, bagaimana NodeJS bekerja? Tidak seperti bahasa pemrograman lainnya yang bekerja secara multi-thread(satu tugas dijalankan oleh satu thread) dan bersifat synchronous(berurutan)/blocking, yang artinya ketika satu tugas sedang dijalankan maka tugas selanjutnya harus menunggu sampai tugas sebelumnya selesai. Javascript bekerja secara single-thread begitu juga dengan NodeJS. Sebenarnya NodeJS tidak benar-benar menggunakan single-thread, karena yang menggunakan single-thread hanya event-loopnya saja, event-loop ini hanya untuk menampung semua tugas yang diberikan dan kemudian mendelegasikannya ke background workers. Untuk background workersnya sendiri menggunakan library bernama Libuv yang akan menangani tugas-tugas secara asynchronous(tidak berurutan)/non-blocking, yang artinya tugas termudah dan tercepatlah yang akan terlebih dahulu diselesaikan dan akan langsung diberikan hasilnya kepada event-loop tanpa mempedulikan urutan masuknya tugas.

Masih belum paham? Bayangkan kamu bos di suatu perusahaan, tugasmu adalah menulis daftar tugas apa saja yang dibutuhkan demi kemajuan perusahaanmu. Kemudian orang kepercayaanmu datang untuk mengambil daftar tersebut dan mendelegasikan tugas-tugas tersebut kebawahannya, ketika salah satu tugas tersebut selesai orang kepercayaanmu itu langsung melaporkannya kepadamu. Tetapi kamu tetap sibuk menulis semua daftar pekerjaan, jadi kamu hanya menerima hasilnya dan memberikan daftar lain ke orang kepercayaanmu itu, seperti itulah kira-kira analoginya.

Demikian yang bisa saya bagikan, semoga bermanfaat khususnya bagi yang baru mempelajari NodeJS. Kalau ada yang salah dari yang saya tulis, jangan ragu untuk mengkoreksi di kolom komentar :)


Referensi:

Tidak ada komentar:

Posting Komentar