Lompat ke konten utama
←

JavaScript Lanjutan

Pelajaran 23 dari 25

Iterator, generator, dan kode asinkron

Fetch: ambil JSON dan tampilkan daftar

Setelah pelajaran ini kamu bisa memanggil fungsi bergaya fetch dengan await, membaca badan jawaban dengan json(), dan menampilkan hasilnya sebagai daftar di halaman memakai textContent.

  • ±13 menit
  • 3 latihan
  • Diperiksa 28 Okt 2026

Latihan di pelajaran ini butuh akun gratis. Progres, kode, dan catatanmu hanya tersimpan di browser ini. Masuk untuk menyimpannya

Materi

fetch(url) meminta sumber daya lewat jaringan dan langsung mengembalikan Promise, yang fulfilled dengan objek Response begitu jawaban tersedia. Badan jawaban dibaca terpisah, misalnya dengan response.json(). Method itu juga mengembalikan Promise, berisi hasil penguraian badan sebagai JSON, yaitu array atau objek JavaScript. Jadi ada dua await: satu untuk Response, satu untuk badannya.

async function muatKota(ambil) {
  const res = await ambil("/api/kota");   // Response
  const kota = await res.json();          // array hasil penguraian
  return kota.map((k) => k.nama);
}

// di halaman sungguhan: await muatKota(fetch)

Latihan di sini tidak memakai jaringan sungguhan, supaya hasilnya sama setiap kali dijalankan dan tidak bergantung pada server mana pun. Sebagai gantinya, kode awal memuat pengambil tiruan buatAmbil. Ia dipanggil seperti fetch(url) dan mengembalikan Promise berisi objek mirip Response dengan ok, status, dan json(). Fungsimu menerima pengambil itu sebagai argumen, jadi kode yang sama berjalan dengan fetch sungguhan.

Setelah data tiba, setiap item menjadi satu li yang teksnya diisi lewat textContent, lalu ditempel ke daftar. Mengisi textContent induk dengan teks kosong lebih dulu membuang semua anaknya, termasuk tulisan Memuat…, sehingga pemuatan ulang tidak menggandakan isi. textContent memasang teks apa adanya, jadi nama dari server yang memuat tanda < tidak pernah ditafsirkan sebagai HTML.

Latihan

0/3 lulus

Jawaban diperiksa di server. Lulus berarti kamu memahami contohnya, bukan penilaian seluruh pekerjaanmu.

Latihan 3 dari 3

const res = await fetch("/api/produk"); const data = res.json(); data.map((p) => p.nama); Baris ketiga berhenti dengan TypeError: data.map is not a function. Mengapa?

Pilih satu jawaban

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Lanjutkan ke