Pernah terpikir bagaimana sebuah website bisa menampilkan halaman yang kamu buka di browser?
Ketika kamu mengetik alamat seperti https://dcloud.co.id, browser sebenarnya mengirim request ke server, lalu server membalas dengan response berupa halaman HTML, data JSON, atau informasi lain sesuai permintaan.
Menariknya, proses tersebut juga dapat kamu buat sendiri dengan Node.js. Setelah sebelumnya mengenal tentang modul dan bagaimana membuat modul pada Node.js, kali ini kita akan mencoba membuat web server sederhana menggunakan modul bawaan Node.js, yaitu http.
Terdengar rumit? Tenang!
Dengan beberapa langkah sederhana, kamu sudah bisa menjalankan web server langsung dari komputer pribadi atau layanan cloud. Yuk, simak langkah-langkah berikut!
Mengenal Modul http pada Node.js
Modul http adalah modul inti (core) bawaan Node.js yang mengizinkan pembuatan web server dan menangani komunikasi antara klien dengan server, tanpa memerlukan framework tambahan.
Modul ini memungkinkan kita:
- menerima permintaan dari browser atau aplikasi lain (request),
- mengirimkan balasan (response) dalam bentuk teks, HTML, JSON, atau data lainnya, dan
- mengatur status code, header, dan koneksi antara klien dan server.
Sederhananya, http merupakan fondasi utama dalam membangun aplikasi web di Node.js.
Membuat Web Server Sederhana di Node.js
Sebelum kita bahas bagaimana cara membuat web server sederhana, hal pertama yang dapat kamu lakukan adalah pastikan bahwa lingkungan modul yang akan digunakan sudah benar dan mudah diakses.
-
Buat direktori untuk server kamu
Pertama, siapkan folder khusus untuk proyek server kamu. Misalnya, beri nama my-server. Jalankan perintah berikut:
Lalu untuk masuk ke folder my-server, gunakan perintah ini:

-
Inisialisasi proyek node.js
Selanjutnya, jalankan perintah berikut di terminal untuk membuat file package.json sebagai identitas proyek Node.js kamu:

-
Buat file server.js
Sekarang, buat file baru bernama server.js di dalam direktori proyek. File inilah yang akan menjadi inti server kamu.

-
Import modul http
Sebelum mulai menulis logika server, kamu perlu memanggil (import) modul http bawaan Node.js.
Buka file server.js menggunakan perintah berikut:
lalu tuliskan kode berikut:
Modul http ini nantinya yang akan membantu kamu membuat dan menangani server. -
Tentukan host dan port
Sebelum membuat server, tentukan dulu alamat host dan port yang akan digunakan, tambahkan perintah berikut untuk mendefinisikannya:
Penjelasan:
• Host berfungsi sebagai alamat server (localhost) yang akan diakses oleh browser,
• Port adalah jalur komunikasi yang digunakan browser untuk mengakses server tersebut,
• Port dapat kamu sesuaikan dengan kebutuhan development. -
Buat fungsi Event Listener
Event Listener adalah fungsi yang menunggu suatu peristiwa terjadi, kemudian memberikan respons ketika peristiwa tersebut muncul. Dalam konteks web server, peristiwa yang dimaksud adalah permintaan (request) dari pengguna atau browser.
Seperti yang disebutkan sebelumnya, modul http bertugas menerima permintaan (request) dan memberikan jawaban (response) ke klien.
Sekarang, mari kita membuat fungsi Event Listener yang akan menangani setiap request dan memberikan response berupa pesan: “Hi, ini adalah respon dari Server!”
Untuk itu, tambahkan fungsi ini pada file server.js

Umumnya, sebuah fungsi diberi nama sesuai dengan tugas yang dijalankannya. Sebagai contoh jika kita membuat fungsi yang memberikan output berupa daftar karyawan akan diberi nama daftarKaryawan(), pada contoh ini kita gunakan nama requestListener.
Fungsi requestListener umumnya memiliki dua argumen, req dan res, nama argumen ini bisa diubah sesuai keinginan jika diperlukan. Permintaan yang kita kirimkan akan dimasukkan ke dalam objek Request (req) sedangkan untuk jawaban yang dikirimkan oleh server akan dimasukkan ke dalam objek Response (res).
Pada fungsi yang kita buat diatas, baris pertama res.writeHead(200); akan menentukan HTTP status code untuk Response yang dikirimkan server. status code 200 berarti OK. lengkapnya kamu bisa lihat kunjungi HTTP status code.
Baris kedua res.end(“Hi, ini adalah respon dari server!”); akan memberikan respon atas permintaan yang dikirimkan, dalam contoh ini responnya berupa teks.
-
Buat dan jalankan server
Setelah fungsi listener siap, kita buat server yang akan memanfaatkan fungsi requestListener yang telah kita buat:
Lalu, simpan dan keluar dari editor dengan menekan CTRL + X.Pada baris pertama perintah di atas, kita membuat objek server melalui fungsi createServer dari modul http. Server ini yang akan menerima setiap permintaan dari klien, kemudian meneruskannya ke fungsi requestListener yang sudah kita buat sebelumnya.
Selanjutnya, kita harus menghubungkan server kita ke sebuah ‘alamat’ pada jaringan. Hal ini bisa dilakukan dengan method server.listen() yang menerima 3 argumen: port, host, dan fungsi callback yaitu fungsi yang dijalankan ketika method server.listen() mulai berjalan.
-
Menjalankan Server dari Terminal
Berikutnya, kita akan menguji web server yang telah kita buat dengan menjalankan perintah berikut menggunakan terminal di direktori proyek:
Pada terminal, kita akan melihat hasilnya seperti dibawah ini:
Sampai di sini, kamu sudah berhasil menjalankan web server yang dibuat tadi. Sekarang, waktunya menguji apakah web server tersebut memberikan respon yang sesuai dengan menjalankan perintah di bawah ini di terminal yang berbeda:
Hasilnya adalah sebagai berikut:
Sampai di sini, kita telah berhasil membuat web server sederhana dan mendapatkan respons dari server tersebut. Sebagai catatan, respons yang diberikan web server tidak hanya terbatas pada teks, tapi bisa juga berupa file CSV, HTML, bahkan JSON.Pada tutorial berikutnya, kita akan membahas bagaimana memberikan respons dengan format data yang sering kita jumpai di web.
Cara Browser Berkomunikasi dengan Server
Modul HTTP merupakan bagian inti dari Node.js yang memungkinkan kita membangun web server tanpa bantuan framework tambahan. Dengan memahami cara kerja request dan response, kamu dapat melihat bagaimana browser berkomunikasi dengan server untuk menampilkan halaman web.
Melalui langkah-langkah sederhana mulai dari membuat direktori proyek, menulis file server.js, hingga menjalankan server di terminal kamu telah mempelajari dasar bagaimana server bekerja di balik layar.
Pemahaman ini menjadi fondasi penting sebelum melangkah ke level berikutnya, seperti membangun server dengan Express.js, membuat API, atau melakukan deployment ke cloud.
Ingin tahu lebih banyak soal solusi cloud computing? Pelajari informasinya di website kami untuk membantu mewujudkan operasional bisnis yang lebih stabil dan aman.