Daftar Isi
Assalamu’alaikum Pasti tidak asing lagi dengan bahasa pemrograman JavaScript. Para developer sering menggunakan JavaScript dalam membuat web. Tapi setelah kehadiran Node.js, javaScript mulai tidak digunakan dalam membangun web berikut penjelasan dari Node.js
Sejarah Membuat Node.Js ?
Node.js pertama kali ditemukan oleh Ryan Dahl, pada tahun 2009 sehingga JavaScript dapat digunakan sebagai bahasa pemrograman di sisi server, sekelas dengan PHP,ASP, C#, dll. Ryan Dahl merupakan seorang pengembang dari joyent yang sebuah perusahaan perangkat lunak dan infrastruktur Cloud. Ia memiliki ketertarikan dalam penerapan single-threaded pada bahasa pemrograman sisi server dan pada akhirnya memilih JavaScript sebagai bahasa Node, tapi sebelumnya mencoba menggunakan Haskell, Lua dan C.
Apa Itu Node.Js?
Node.js merupakan sebuah platform yang dapat digunakan untuk mengembangkan aplikasi yang berbasis web. Platform biasanya digunakan di JavaScript sebagai bahasa pemrogramannya. Seperti yang diketahui JavaScript adalah bahasa yang pemgrogramannya yang hanya berjalan untuk klien. Untuk membuat konsep Node.js kita perlu membandingkan dengan bahasa server – side seperti PHP. Node.js menggunakan prosedur eksekusi server yang berbasis event dan bukan eksekusi multithread di PHP.
Baca Juga : 13 Website Pendidikan Gratis Terbaik diseluruh Dunia
Bagaimana Node.js Bekerja ?
Perbedaan dengan bahasa pemrograman sisi dari server umumnya yang bersifat blocking, Node.js bersifat non-blocking sebagaimana hal JavaScript bekerja. Node.Js berjalan dengan basis event maksudnya disini blocking secara sederhana bahwa suatu kode program yang akan dijalankan hingga selesai, kemudian beralih ke kode program selanjutnya.
Misalkan memiliki program dengan algoritma yaitu :
- Menerima request untuk halaman blog
- Mengambil data blog dari database
- Menulis html berisi data blog
- Mengirim respon dari klien
Kelebihan Node.Js
Berikut penjelasan dari kelebihan Node.Js yaitu :
1. Bekerja Dengan Konsep Non- blocking
Maksudnya disini Node.js bekerja dengan konsep non blocking. Misal ada 2 proses yang berjalan antara proses A dan B. Jika proses A mengalami blocking karena mempunyai masalah suatu hal. Maka dari itu tetap menjalankan proses B jika proses ini membutuhkan output dari proses A. Itulah yang disebut dengan konsep non- blocking. Maka dengan demikian akan terjadi efisiensi.
2. Cepat Dalam Mengeksekusi Kode
Maksudnya yaitu kemampuannya dalam mengeksekusi dengan cepat. Hal ini bisa terjadi berkat engine V8 dari google yang digunakan untuk membuat Node.js
3. Single – threaded
Node.js memiliki karakteristik single-threaded. Program yang dibuat Node.js akan mengalokasikan thread hanya pada proses yang sedang berlangsung sehingga kinerja program tersebut akan lebih ringan daripada program yang multi – threaded.
4. Bersifat open source
Maksudnya platform ini bersifat open source, yaitu semua orang bisa melihat struktur kode dari program tersebut. Selain itu juga bisa berkontribusi untuk mengembangkan program tersebut agar bisa lebih baik.
Arsitektur Node.js
1. Engine V8
Engine V8 milik Google merupakan sebuah compiler JavaScript yang dibuat menggunakan bahasa pemrograman C++. V8 terdiri dari 3 komponen :
- Compiler yaitu mengubah JavaScript menjadi bahasa pemrograman lain.
- Optimizer yaitu menciptakan sebuah abstract sytax tree yang akan diubah menjadi static single assignment dan dioptimasi
- Garbage collector yaitu V8 yang membagi penyimpanan menjadi 2 yaitu penyimpanan baru merupakan tempat menaruh output ari compiler ketia penyimpanan baru sudah penuh garbage collector yang memindahkan objek – objek lama ke penyimpanan lama agar kinerja Node.js
2. Libuv library
Library C++ mengelola operasi asynchronous I/O (input/output) di Node.js dan main event loop. Didalam terdapat thread pool reserve yang menangani thread setiap operasi I/O
3. Design Pattern
Terdapat 2 jenis design pattern yang digunakan oleh Node.js yaitu object pool dan façade :
- Object pool yaitu design pattern yang berisi kumpulan object yang dapat digunakan task tertentu
- Façade yaitu design pattern yang memberikan tampilan antarmuka untuk body kodenya
Itulah penjelasan dari Sejarah, pengertian, bagaimana cara kerja Node.Js, Kelebihan dari Node.Js dan arsitektur Node.Js semoga bermanfaat untuk pembaca dan penulis Wassalamu’alaikum