LocalStorage & SessionStorage — Web Fundamentals

Web Storage API menyediakan dua mekanisme penyimpanan data di browser: localStorage dan sessionStorage. Keduanya menyimpan data sebagai key-value pairs…

Web Storage API menyediakan dua mekanisme penyimpanan data di browser: localStorage dan sessionStorage. Keduanya menyimpan data sebagai key-value pairs (string).

localStorage vs sessionStorage:

Aspek localStorage sessionStorage
Persistensi Permanen (sampai dihapus manual) Hilang saat tab ditutup
Scope Semua tab di origin yang sama Hanya tab yang membuat
Kapasitas ~5-10 MB ~5-10 MB
Dikirim ke server? Tidak Tidak

API dasar (sama untuk keduanya):

// Simpan data
localStorage.setItem("username", "budi");
localStorage.setItem("theme", "dark");

// Baca data
const username = localStorage.getItem("username"); // "budi"

// Hapus satu item
localStorage.removeItem("username");

// Hapus semua
localStorage.clear();

// Cek jumlah item
console.log(localStorage.length); // 1

// Iterasi semua keys
for (let i = 0; i < localStorage.length; i++) {
  const key = localStorage.key(i);
  console.log(key, localStorage.getItem(key));
}

Menyimpan data kompleks: Web Storage hanya menyimpan string. Untuk object/array, gunakan JSON:

// Simpan object
const user = { name: "Ani", level: 5, badges: ["html", "css"] };
localStorage.setItem("user", JSON.stringify(user));

// Baca object
const stored = JSON.parse(localStorage.getItem("user"));
console.log(stored.name);    // "Ani"
console.log(stored.badges);  // ["html", "css"]

// Wrapper function yang berguna:
function getStoredJSON(key, defaultValue = null) {
  try {
    const item = localStorage.getItem(key);
    return item ? JSON.parse(item) : defaultValue;
  } catch {
    return defaultValue;
  }
}

Storage event — deteksi perubahan antar tab:

// Di tab lain, kamu bisa mendengarkan perubahan:
window.addEventListener("storage", (event) => {
  console.log("Key:", event.key);
  console.log("Old:", event.oldValue);
  console.log("New:", event.newValue);
});

Event ini HANYA terjadi di tab lain (bukan tab yang melakukan perubahan).

Kapan pakai apa:

Jangan simpan di Web Storage:

Yang akan kamu pelajari