BlogNode.jsBelajar Socket Emit di Node.js untuk Pemula
Node.js

Belajar Socket Emit di Node.js untuk Pemula

Z

Zelixify

Editor

19 Agustus 2025 3 menit baca

Pernah kepikiran gimana aplikasi chat bisa ngirim pesan tanpa refresh? Atau notifikasi di dashboard bisa muncul otomatis? Itu semua karena teknologi real-time. Di Node.js, salah satu library populer buat bikin komunikasi real-time adalah Socket.io. Artikel ini akan bantu kamu belajar socket.emit dari nol, step by step, sampai bisa bikin chat sederhana.

Apa Itu Socket Emit?

emit adalah metode di Socket.io untuk mengirim event. Event ini bisa berisi data apa saja, misalnya teks, angka, atau objek. Contoh: client kirim pesan chat ke server, server balas lagi ke semua client yang terhubung. Jadi komunikasi dua arah bisa berjalan lancar.

Persiapan Project

Sebelum mulai, siapkan dulu:

  • Node.js terinstal (versi 18+ disarankan)

  • VS Code atau editor lain

  • Browser untuk test

1. Buat Folder Project

mkdir belajar-socket
cd belajar-socket
npm init -y

2. Buka di VS Code

code .

Perintah di atas akan membuka folder project di VS Code.

3. Install Express & Socket.io

npm install express socket.io

Membuat File Server

Sekarang buat file baru bernama server.js di root folder project. Isinya:

const express = require('express');
const http = require('http');
const { Server } = require('socket.io');

const app = express();
const server = http.createServer(app);
const io = new Server(server);

// route utama
app.get('/', (req, res) => {
  res.sendFile(__dirname + '/index.html');
});

// koneksi socket
io.on('connection', (socket) => {
  console.log('User terhubung');

  // kirim pesan welcome ke client yang baru connect
  socket.emit('welcome', 'Selamat datang di server Socket.io!');

  // terima pesan dari client
  socket.on('chat message', (msg) => {
    console.log('Pesan dari client:', msg);

    // broadcast ke semua client
    io.emit('chat message', msg);
  });

  // user disconnect
  socket.on('disconnect', () => {
    console.log('User terputus');
  });
});

server.listen(3000, () => {
  console.log('Server berjalan di http://localhost:3000');
});

Membuat File Client

Buat file index.html di folder project dengan isi berikut:

<!DOCTYPE html>
<html lang="id">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Chat Socket.io</title>
  <script src="/socket.io/socket.io.js"></script>
  <style>
    body {
      font-family: Arial, sans-serif;
      max-width: 600px;
      margin: 40px auto;
    }
    ul {
      list-style: none;
      padding: 0;
      border: 1px solid #ddd;
      height: 300px;
      overflow-y: auto;
      margin-bottom: 10px;
    }
    li {
      padding: 6px 10px;
      border-bottom: 1px solid #eee;
    }
    form {
      display: flex;
      gap: 8px;
    }
    input {
      flex: 1;
      padding: 8px;
    }
    button {
      padding: 8px 16px;
      cursor: pointer;
    }
  </style>
</head>
<body>
  <h1>Chat Sederhana</h1>

  <ul id="messages"></ul>

  <form id="form">
    <input id="input" autocomplete="off" placeholder="Ketik pesan..." />
    <button type="submit">Kirim</button>
  </form>

  <script>
    const socket = io();

    const form = document.getElementById("form");
    const input = document.getElementById("input");
    const messages = document.getElementById("messages");

    socket.on("welcome", (msg) => {
      const item = document.createElement("li");
      item.textContent = msg;
      item.style.fontStyle = "italic";
      messages.appendChild(item);
    });

    form.addEventListener("submit", (e) => {
      e.preventDefault();
      const message = input.value.trim();
      if (!message) return;
      socket.emit("chat message", message);
      input.value = "";
    });

    socket.on("chat message", (msg) => {
      const item = document.createElement("li");
      item.textContent = msg;
      messages.appendChild(item);
      messages.scrollTop = messages.scrollHeight;
    });
  </script>
</body>
</html>

Menjalankan Server

Balik lagi ke terminal, jalankan:

node server.js

Lalu buka http://localhost:3000 di browser. Coba buka dua tab sekaligus, lalu kirim pesan. Kamu akan lihat pesan langsung muncul di kedua tab tanpa refresh. πŸŽ‰

Penjelasan Alur Emit

  • socket.emit() β†’ kirim event dari client ke server atau dari server ke 1 client.

  • io.emit() β†’ broadcast ke semua client yang terhubung.

  • socket.on() β†’ tangkap event yang dikirim.

Kesimpulan

Sekarang kamu sudah paham dasar socket emit di Node.js dengan Socket.io. Dari contoh ini, kamu bisa kembangkan ke fitur real-time lain seperti notifikasi, dashboard, atau multiplayer game. Step selanjutnya bisa belajar tentang rooms dan namespaces biar komunikasi lebih terstruktur. Dengan ini, kamu siap bikin aplikasi real-time modern!

Bagikan Artikel Ini

Tags

socket emit nodejsbelajar socket iopemula nodejsreal-time app nodejssocket emit tutorial

Ingin Membuat Website atau Aplikasi Seperti Ini?

Tim Zelixify siap membantu Anda membangun solusi digital profesional dengan desain premium dan teknologi terkini.

Belajar Socket Emit di Node.js untuk Pemula