Lewati ke konten utama
menjadi.dev
Chapter 14.1 Frontend Spesialisasi

WebRTC: Komunikasi Real-time

Video, audio, dan data secara peer-to-peer

Tujuan Pembelajaran

  • Memahami konsep WebRTC
  • Mengetahui arsitektur peer-to-peer

Analogi

Diagram

      WebRTC = Video Call Langsung
Tidak perlu server untuk data

Server = Perantara Awal
Setelah terhubung, komunikasi langsung
    

WebRTC memungkinkan komunikasi real-time tanpa plugin

Penjelasan Konsep

WebRTC (Web Real-Time Communication)

WebRTC (Web Real-Time Communication) adalah teknologi yang memungkinkan video, audio, dan data sharing langsung di browser. Tanpa plugin, tanpa install aplikasi.

Tiga API utama

  1. getUserMedia. Akses kamera dan microphone user.
  2. RTCPeerConnection. Establishes direct connection antara peers.
  3. RTCDataChannel. Kirim data arbitrary (text, file, binary) secara peer-to-peer.

Cara kerja

  1. User A dan B dapatkan media stream dari getUserMedia.
  2. Tukar SDP (Session Description Protocol) via signaling server.
  3. ICE (Interactive Connectivity Establishment) cari route terbaik.
  4. Direct peer-to-peer connection establis.
  5. Media dan data mengalir langsung antar browser.

Signaling server hanya untuk setup.

Setelah connection establis, data mengalir langsung P2P tanpa melalui server.

ICE candidates

  • Host. Langsung dalam LAN (paling cepat).
  • SRFLX. Via NAT (paling umum).
  • TURN. Via relay server (fallback kalau P2P gagal).

Inti yang Perlu Dipahami

Bagian ini berfokus pada memahami konsep WebRTC., dan mengetahui arsitektur peer-to-peer. Jangan terburu-buru menghafal istilahnya. Lebih penting untuk memahami peran setiap konsep dan kapan konsep itu muncul dalam pekerjaan web development.

Saat membaca WebRTC, gunakan tujuan belajar sebagai penanda arah. Kalau kamu sudah bisa menjelaskan tujuan itu dengan kata-katamu sendiri, berarti fondasinya mulai terbentuk.

Cara Membayangkannya

WebRTC memungkinkan komunikasi real-time tanpa plugin. Analogi ini dipakai supaya konsep teknis tidak terasa melayang. Hubungkan setiap istilah dengan perannya: siapa yang meminta, siapa yang memproses, data apa yang berpindah, dan hasil apa yang diharapkan.

Kalau analoginya sudah terasa masuk akal, barulah lihat istilah teknisnya. Cara ini membuat materi lebih mudah dipahami daripada langsung menghafal definisi.

Saat Melihat Contoh Kode

Contoh kode pada chapter ini memakai bahasa javascript. Bacalah contoh kode sebagai ilustrasi alur, bukan sebagai bagian yang harus langsung dihafal. getUserMedia akses kamera dan microphone. RTCPeerConnection dengan STUN server untuk NAT traversal.

Perhatikan nama fungsi, urutan langkah, dan data yang berpindah. Biasanya tiga hal itu sudah cukup untuk memahami hubungan antara teori dan praktik.

Konteks dalam Perjalanan Belajar

Setiap konsep di platform ini dipilih karena dipakai di industri. Fokus pada pemahaman, bukan hafalan.

Kamu sudah di bagian lanjutan. Mulai pikirkan bagaimana konsep ini dipakai di dunia kerja — bukan hanya untuk belajar, tapi untuk membangun produk nyata.

Gunakan pertanyaan reflektif dan prompt AI di akhir chapter sebagai latihan aktif. Membaca saja tidak cukup — kamu perlu menjelaskan ulang dengan kata-katamu sendiri.

Contoh Kode

javascript
// GET USER MEDIA
const stream = await navigator.mediaDevices.getUserMedia({
  video: true,
  audio: true
});
videoElement.srcObject = stream;

// RTC PEER CONNECTION
const pc = new RTCPeerConnection({
  iceServers: [{ urls: 'stun:stun.l.google.com:19302' }]
});
stream.getTracks().forEach(track =>
  pc.addTrack(track, stream)
);

Penjelasan Kode

getUserMedia akses kamera dan microphone. RTCPeerConnection dengan STUN server untuk NAT traversal.

Prompt AI

Buat aplikasi video call sederhana dengan WebRTC.

Pertanyaan Reflektif

Kenapa WebRTC butuh signaling server?