DIPERBARUI: 2026-11-06
[B1-M4]Menengahā± 35 Mnt Baca + 55 Mnt Praktik

JavaScript Runtime, Event Loop, Manipulasi DOM & Fetch Asinkron

Memahami Call Stack, Microtask Queue & Komunikasi Jaringan Tanpa Freeze UI

BAGIKAN MODUL:
[KONTRAK HASIL BELAJAR // B1-M4]Standar Kompetensi Industri
ā± 35 Mnt Bacaā€¢āš” 55 Mnt Praktik•Lulus: ≄ 80/100 Poin

01. Target Pembelajar & Prasyarat

Developer yang ingin memahami model konkurensi JavaScript secara mendalam.

02. Kompetensi Konseptual (Level 1–2)

  • āœ“Menjelaskan urutan eksekusi Call Stack vs Microtask Queue (Promise) vs Macrotask Queue (setTimeout).

03. Kompetensi Praktis & Artefak Nyata (Level 3–4)

  • āœ“Membangun klien fetch dengan penanganan status loading, error, dan pembatalan request (AbortController).
Artefak yang Dibangun: Modul `resilient-fetch-client.js` dengan state machine sederhana.

04. Aplikasi Nyata & Verifikasi

Penerapan Industri: Logika komunikasi checkout formulir dan interaksi katalog di Z-Automation.

Metode Verifikasi: Menjalankan pengujian urutan log di konsol browser dan memverifikasi urutan eksekusi mikrotugas.

[BAGIAN 01 // MASALAH & URGENSI ARSITEKTURAL]

Mengapa Subjek Ini Krusial dalam Rekayasa Nyata?

Pelajari bagaimana JavaScript single-threaded mengelola tugas asinkron (Promise, async/await), menangani event delegation, dan mengambil data API.

Dalam lingkungan produksi, kegagalan memahami batas-batas arsitektur sistem sering kali menyebabkan bug yang sulit dilacak, pemborosan biaya komputasi, atau antarmuka yang lambat bagi pengguna.

[BAGIAN 02 // MEKANISME DI BALIK LAYAR]

Bagaimana Sistem Sebenarnya Bekerja di Tingkat Protokol

Bagaimana JavaScript Mengelola Asinkroni

JavaScript adalah bahasa single-threaded: ia hanya memiliki satu Call Stack untuk mengeksekusi instruksi. Namun mengapa ia bisa mengunduh file besar atau menunggu respons API tanpa membekukan tombol di layar? Jawabannya adalah Event Loop.

[DIAGRAM TEKNIS SVG INTERAKTIF // DIAG-05]

Alur Arsitektur Sistem Otonom & Runtime

LANGKAH 1 DARI 4
ENTITAS AKTIF:User -> Sistem
01
02
03
04

Pesan bahasa alami diterima melalui antarmuka web atau webhook chat.

[LIVE PAYLOAD INSPECTOR]JSON 2026
{
  "input": "Berapa estimasi biaya pembuatan landing page bisnis?"
}
[BAGIAN 03 // MATRIKS KESALAHPAHAMAN]

Koreksi Asumsi Umum vs Realitas Rekayasa

ƗASUMSI KELIRU

ā€œsetTimeout(fn, 0) berarti fungsi langsung dieksekusi secara instan.ā€

āœ“REALITAS SISTEM

setTimeout(fn, 0) hanya menjadwalkan fungsi masuk ke antrean Macrotask dan baru dijalankan setelah seluruh Call Stack dan Microtask kosong.

[BAGIAN 04 // LABORATORIUM PRAKTIS & KODE]

Implementasi Langkah-demi-Langkah

Hasil akhir yang diharapkan: Demonstrasi urutan Event Loop di konsol browser.

STRUKTUR PROYEK DIREKOMENDASIKAN:
lab-b1-m4/
└── event-loop.js

1Menguji Urutan Microtask vs Macrotask

Membuktikan prioritas Promise atas setTimeout.

event-loop.js•javascript
āœ“Tested Successfully
LINGKUNGAN TERUJI: Node.js & Browser12 BARIS KODE
1// event-loop.js
2console.log('1. Sinkron Awal (Call Stack)');
3
4setTimeout(() => {
5 console.log('4. Macrotask (setTimeout)');
6}, 0);
7
8Promise.resolve().then(() => {
9 console.log('3. Microtask (Promise)');
10});
11
12console.log('2. Sinkron Akhir (Call Stack)');
KEPUTUSAN ARSITEKTURAL UTAMA:
• Eksplorasi urutan tugas: Membentuk model mental yang akurat mengenai render timing di browser.
PERINTAH EKSEKUSI TERMINAL:
$ node event-loop.js
OUTPUT YANG DIHARAPKAN:
1. Sinkron Awal
2. Sinkron Akhir
3. Microtask (Promise)
4. Macrotask (setTimeout)
[BAGIAN 05 // PANDUAN TROUBLESHOOTING & TANTANGAN]

Mengantisipasi Masalah Umum & Tantangan Ekstensi

Pesan Error: Urutan terbalik
Penyebab: Pengujian di browser kuno
Solusi Eksak: Gunakan browser modern yang mematuhi standar HTML Living Standard.
⚔ TANTANGAN EKSTENSI MANDIRI:

Tambahkan queueMicrotask() dan bandingkan posisinya dengan Promise.then().

[RUBRIK EVALUASI KOMPETENSI 100 POIN // B1-M4]

Uji Kompetensi Mandiri & Verifikasi Hasil

Standar kelulusan Z-Automation mewajibkan skor minimum 80 / 100 Poin dengan komponen Implementasi Praktis minimal 21 / 35 Poin (60%). Jawab soal diagnostik dan centang hasil pengujian praktis Anda.

BAGIAN A // PERTANYAAN DIAGNOSTIK KONSEPTUAL & TEKNIS (40 POIN)

01.Antara Promise.then() (Microtask) dan setTimeout(..., 0) (Macrotask), mana yang akan dieksekusi lebih dulu oleh Event Loop?

BAGIAN B // DAFTAR PERIKSA HASIL IMPLEMENTASI PRAKTIS (35 POIN — MIN. 21 POIN)

Centang item di bawah ini hanya jika Anda telah menjalankan kode di komputer Anda dan mengamati output yang benar:

Lanjutkan Menggulir
untuk Eksplorasi
Edukasi & Lab
Halaman Selanjutnya