Lompat ke konten utama
←

JavaScript Lanjutan

Pelajaran 18 dari 25

Error, JSON, dan tanggal

localStorage: simpan, muat, dan ubah keranjang

Setelah pelajaran ini kamu bisa menyimpan dan memuat data berbentuk array lewat localStorage dengan JSON, menangani kunci kosong dan isi rusak, serta menambah, mengubah, dan menghapus item dengan pola muat–ubah–simpan.

  • ±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

localStorage menyimpan pasangan kunci dan nilai di browser, terpisah untuk setiap asal situs (origin). Isinya tidak punya masa kedaluwarsa: tetap ada setelah tab ditutup dan browser dibuka lagi. sessionStorage memakai method yang sama, tetapi isinya hilang begitu halamannya ditutup. Method yang dipakai sehari-hari: setItem(kunci, nilai), getItem(kunci), dan removeItem(kunci).

Kunci dan nilainya selalu teks. Nilai yang bukan teks diubah menjadi teks lebih dulu, jadi array berisi objek tersimpan sebagai "[object Object]". Data berbentuk objek atau array diubah dengan JSON.stringify sebelum disimpan, lalu dibaca kembali dengan JSON.parse. getItem untuk kunci yang belum pernah diisi memberi null.

const pengaturan = { tema: "gelap", ukuran: 16 };
localStorage.setItem("pengaturan", JSON.stringify(pengaturan));

const teks = localStorage.getItem("pengaturan"); // '{"tema":"gelap","ukuran":16}'
const balik = teks === null ? { tema: "terang", ukuran: 14 } : JSON.parse(teks);

Mengubah data tersimpan selalu mengikuti tiga langkah: muat seluruh isi, ubah di memori, lalu simpan seluruh isi lagi. Tidak ada cara mengubah satu item di dalam teks tersimpan secara langsung. Isi juga bisa rusak, misalnya disunting lewat alat pengembang, dan JSON.parse pada teks rusak melempar SyntaxError, jadi pembacaannya dibungkus try dan catch dengan nilai awal sebagai cadangan.

localStorage adalah milik objek window. Web Worker latihan tidak punya window, jadi latihan memakai penyimpanan tiruan dengan method yang sama, dan fungsimu menerimanya sebagai argumen. Di halaman sungguhan, panggilannya cukup muatKeranjang(localStorage).

Latihan

0/3 lulus

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

Latihan 3 dari 3

localStorage.setItem("keranjang", [{ kode: "K1", jumlah: 2 }]); lalu const isi = localStorage.getItem("keranjang"); Apa isi variabel isi?

Pilih satu jawaban

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Lanjutkan ke