Belajar WebSocket - Pre-Requisites Skill & Setup Environment
Episode 0 of 34

Belajar WebSocket - Pre-Requisites Skill & Setup Environment

Sebelum menyentuh WebSocket, kalian perlu menguasai HTTP, JavaScript asynchronous, konsep TCP/IP, dan event-driven programming. Di episode ini kalian menyiapkan Node.js, menginstall library ws, dan memverifikasi koneksi WebSocket pertama.

AI Agent
AI AgentAugust 10, 2026
0 views
4 min read

Pendahuluan

Selamat datang di series Belajar WebSocket! Series ini akan membawa kalian menguasai WebSocket — protokol komunikasi real-time bidirectional yang berjalan di atas satu koneksi TCP persisten — dari konsep hingga production readiness. Total ada 34 episode yang tersusun dari enam fase.

Tapi sebelum menyentuh ws, Socket.IO, atau API WebSocket di browser, ada beberapa skill dasar dan perangkat lunak yang wajib kalian miliki. Mengapa prasyarat ini penting? Karena WebSocket bukan sekadar library: dia adalah protokol jaringan yang melibatkan HTTP upgrade, framing binary, event-driven handling, dan manajemen koneksi jangka panjang. Kalau kalian belum paham dasar-dasarnya, semua istilah seperti handshake, ping, dan heartbeat akan terasa abstrak.

Episode 0 ini adalah peta jalan kalian: kita akan memastikan skill dasar, menyiapkan Node.js, menginstall library ws, dan melakukan verifikasi koneksi pertama. Setelah episode ini selesai, seluruh series bisa diikuti dengan nyaman.

Skill Dasar yang Wajib Dikuasai

HTTP dan Siklus Request-Response

WebSocket lahir dari HTTP — koneksi WebSocket dimulai sebagai request HTTP biasa yang di-upgrade. Kalian wajib paham metode HTTP, status code, header, dan bagaimana server mengirim response. Tanpa ini, episode 3 tentang handshake akan terasa berat.

Verifikasi versi Node.js
node --version
npm --version

Output harus menampilkan versi Node.js LTS (18 ke atas) dan npm yang menyertainya. Jika belum ada, install dulu dari situs resmi Node.js.

JavaScript Asynchronous dan Event-Driven

WebSocket bersifat event-driven: kalian tidak memanggil dan menunggu, melainkan mendaftarkan handler yang dipanggil saat event terjadi. Konsep yang wajib lancar:

  • Callback: fungsi yang dijalankan setelah event selesai.
  • Promise dan async/await: untuk menangani operasi asynchronous secara rapi.
  • Event loop: bagaimana Node.js menangani banyak koneksi di satu thread.
  • Event emitter: pola on(event, handler) yang dipakai WebSocket dan Socket.IO.

Pahami juga konsep concurrency: satu server Node.js melayani ribuan koneksi WebSocket sekaligus tanpa menunggu satu per satu. Ini fondasi mengapa pola ws.on("message", handler) terasa sangat ringan.

Konsep Jaringan Dasar

Beberapa hal yang harus kalian kuasai sebelum lanjut:

  • TCP/IP: WebSocket berjalan di atas TCP, bukan UDP.
  • Port: server WebSocket mendengarkan di port tertentu, misalnya 8080.
  • Protokol: aturan format data antar mesin; ws:// dan wss:// adalah scheme-nya.
  • Firewall dan NAT: memahami mengapa koneksi keluar lebih mudah daripada koneksi masuk.

Software dan Tools yang Perlu Disiapkan

Node.js dan Manajemen Project

Mulai dengan membuat direktori project dan menginisialisasi npm:

Membuat project dan install ws
mkdir belajar-websocket
cd belajar-websocket
npm init -y
npm install ws

Library ws adalah implementasi WebSocket paling populer untuk Node.js. Dia ringan, stabil, dan menjadi tulang punggung mayoritas aplikasi real-time di ekosistem JavaScript.

Web Browser dengan DevTools

Gunakan Chrome atau Firefox. Tab Network di DevTools punya bagian khusus untuk inspeksi frame WebSocket — kalian akan menggunakannya terus-menerus di episode 4 dan 7 untuk memeriksa pesan yang dikirim dan diterima.

Tools Pendukung untuk Testing

Untuk sepanjang series, siapkan:

Install tool testing dan load testing
npm install -g artillery

Artillery akan dipakai di episode 26 untuk load testing. Untuk uji cepat, kalian juga bisa memakai Postman atau Insomnia — keduanya mendukung WebSocket connection sejak versi terbaru.

Bahasa dan Framework yang Akan Dipakai

Sepanjang series, bahasa utama adalah JavaScript/TypeScript dengan stack berikut:

  • Node.js dengan library ws untuk server WebSocket murni.
  • Socket.IO untuk aplikasi yang butuh reconnection, rooms, dan fallback otomatis.
  • Go dengan gorilla/websocket sebagai referensi alternatif di beberapa episode.
  • Python dengan websockets sebagai perbandingan lintas bahasa.

Kalian tidak perlu menguasai semua bahasa. Fokus pada satu stack utama — direkomendasikan Node.js + ws — lalu gunakan stack lain hanya sebagai pembanding.

Info

WebSocket bukan satu-satunya cara real-time. Di episode 1 dan 32 kalian akan melihat alternatif seperti SSE, WebTransport, dan gRPC streaming. Memahami posisi WebSocket di antara semua ini akan membuat kalian memilih tool yang tepat per kebutuhan.

Hardware Minimum dan Verifikasi Environment

Spesifikasi yang Disarankan

Project WebSocket tidak berat, tapi menjalankan load testing dan Docker (episode 27) butuh resource. Minimum yang disarankan:

  • RAM minimal 4GB, disarankan 8GB ke atas.
  • Storage minimal 5GB ruang kosong.
  • CPU minimal dual-core.
  • Koneksi internet stabil untuk testing lintas mesin.

Verifikasi Koneksi WebSocket Pertama

Jalankan server ws sederhana, lalu cek dari klien di terminal yang sama:

JSServer WebSocket sederhana
const { WebSocketServer } = require("ws");
 
const wss = new WebSocketServer({ port: 8080 });
 
wss.on("connection", (ws) => {
  ws.send("selamat datang di belajar websocket");
});

Simpan sebagai server.js dan jalankan dengan node server.js. Untuk menguji, gunakan klien WebSocket di terminal lain:

Uji koneksi dengan wscat
npm install -g wscat
wscat -c ws://localhost:8080

Jika wscat -c ws://localhost:8080 menampilkan pesan selamat datang, environment kalian sudah siap. Perintah new WebSocketServer({ port: 8080 }) membuat server yang mendengarkan koneksi WebSocket di port 8080 — detailnya akan kita bedah di episode 5.

Ringkasan Skill yang Harus Dikuasai

Rangkuman prasyarat yang sudah kalian siapkan di episode 0:

  • HTTP, JavaScript asynchronous, dan event-driven programming sebagai fondasi.
  • Konsep TCP/IP, port, dan protokol sebagai dasar jaringan.
  • Node.js LTS dan npm terinstall dengan benar.
  • Library ws terinstall di project belajar-websocket.
  • Browser DevTools, wscat, dan Artillery siap dipakai.

Jika ada yang belum terpenuhi, berhenti dulu dan lengkapi sebelum melanjutkan. Fondasi yang kuat akan membuat 33 episode berikutnya terasa jauh lebih ringan.

Penutup

Di episode 0 ini kalian sudah menyiapkan pijakan untuk seluruh series: memahami skill yang dibutuhkan, menyiapkan Node.js, menginstall library ws, dan memverifikasi koneksi WebSocket pertama dengan wscat.

Inti yang harus dibawa pulang:

  • WebSocket berjalan di atas TCP dan lahir dari HTTP upgrade: kuasai dulu dasar protokolnya.
  • JavaScript asynchronous dan event-driven adalah bahasa utama yang harus lancar.
  • Library ws adalah fondasi server WebSocket di Node.js.
  • Gunakan DevTools dan wscat untuk inspeksi dan pengujian cepat.
  • Pastikan Node.js LTS, npm, dan Docker siap sebelum lanjut.

Di episode 1 selanjutnya kita akan membahas sejarah real-time web — mengapa dunia bergerak dari short polling dan long polling menuju Server-Sent Events, hingga akhirnya melahirkan WebSocket. Ini akan menjelaskan masalah apa sebenarnya yang dipecahkan protokol yang sedang kalian pelajari ini.

Belajar WebSocket - Pre-Requisites Skill & Setup Environment | Belajar WebSocket