JavaScriptTingkat: Lanjutan7 min

Protokol Iterasi, Symbol.iterator & Fungsi Generator (function*)

Pelajari cara kerja loop for...of dari dalam: implementasi protokol Iterable menggunakan Symbol.iterator kustom dan pembuatan generator cerdas berbasis kata kunci yield.

Protokol Iterable & Iterator

Pratinjau Terbuka

Objek apa pun di JavaScript dapat diiterasi dengan for...of jika mengimplementasikan metode [Symbol.iterator] yang mengembalikan objek dengan fungsi next() bertipe { value, done }.

Contoh Kode Sintaks
// 1. Generator function menghasilkan iterator otomatis
function* penghasilIdUnik(awalan) {
    let id = 1;
    while (true) {
        yield `${awalan}-${id++}`;
    }
}

const gen = penghasilIdUnik("ORDER");
console.log(gen.next().value); // ORDER-1
console.log(gen.next().value); // ORDER-2

// 2. Custom Iterable Object
const antreanKlien = {
    anggota: ["Azzam", "Rizqy", "Budi"],
    [Symbol.iterator]() {
        let indeks = 0;
        return {
            next: () => {
                if (indeks < this.anggota.length) {
                    return { value: this.anggota[indeks++], done: false };
                }
                return { done: true };
            }
        };
    }
};

for (const orang of antreanKlien) {
    console.log("Klien:", orang);
}

Live Compiler Runner

Akses Kursus Wajib Login

Buka Akses Penuh Silabus & Praktikum

Masuk dengan akun GitHub, Google, atau Akses Cepat Developer untuk membuka seluruh materi mendalam, menjalankan compiler interaktif, mengerjakan kuis, dan menyimpan progres belajar Anda.

145+ Modul Lengkap•Tersimpan Otomatis•Sertifikat Kelulusan Resmi