Pages

Hello NodeJS!

Kamis, 13 September 2018


Pada kesempatan kali ini saya ingin mengajak kalian semua untuk menyapa NodeJS, yap ini adalah ritual atau tradisi yang biasa dilakukan untuk mengenal suatu bahasa pemrograman. Ada yang belum tau apa itu NodeJS? Kamu bisa klik di sini untuk mengetahui lebih lanjut tentang apa itu NodeJS.

Install NodeJS

Windows:
Bagi pengguna windows kalian bisa langsung download nodejs di situs resminya dan ikuti langkah-langkahnya.

MacOS:
Bagi pengguna MacOS kalian bisa lakukan seperti pengguna windows atau jika kalian menginstall Homebrew di MacOS kalian, kalian bisa menginstall nodejs dengan menjalankan perintah brew install node di terminal.

Linux:
Bagi pengguna Ubuntu/Debian-based kalian bisa menjalankan perintah sudo apt-get install nodejs && sudo apt-get install npm dan bagi pengguna Arch-based kalian bisa menjalankan perintah sudo pacman -S nodejs npm.

Untuk mengecheck apakah nodejs dan npm sudah terinstall kalian bisa menjalankan perintah node -v && npm -v, perintah tersebut berfungsi untuk menampilkan versi dari node dan npm.




Hello NodeJS!

Sekarang, ayo kita sapa NodeJS. Pertama buat file bernama server.js, kemudian buka terminal kalian dan rubah direktorinya sesuai dengan lokasi file server.js tersebut. Selanjutnya buka file tersebut dan copy-paste kode di bawah ini.

const http = require('http');
const server = http.createServer();

server.on('request', (request, response) => {
  response.writeHead(200, {'Content-Type':'text/plain'});
  response.write('Hello world');
  response.end();
});

server.listen(3000, () => {
  console.log('Node server created at port 3000');
});
Kemudian jalankan perintah node server.js, selanjutnya buka browser dan masuk ke localhost:3000, dan NodeJS akan menyapa kita semua! :)

Saya akan sedikit menjelaskan tentang kode yang telah kalian copy-paste barusan. Di baris pertama kita merequire module http yang berfungsi untuk membantu kita menangani operasi http, kemudian kita memanggil 'createServer' yang fungsinya persis seperti namanya yaitu membuat server.

Di baris kedua ada fungsi on, dengan argumen pertama request yang maksudnya untuk menandai bahwa fungsi on ini untuk menangani request yang masuk, kemudian argumen kedua adalah callback dengan dua parameter yaitu request yang berisi informasi tentang request yang masuk dan response yang berisi informasi tentang response keluar.

Di baris ketiga ada fungsi listen yang memerintahkan nodejs untuk mendengar atau berjalan di port 3000.

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


Referensi:

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: