Local Storage — JavaScript

Pernah di-logout dari aplikasi padahal cuma refresh halaman? Itu app yang gak nyimpen state-nya. Sebaliknya, pernah pas buka YouTube langsung lanjut volume…

localStorage adalah tempat penyimpanan kecil di browser. Data yang kamu simpan di situ tetap ada walau halamannya di-refresh, tab-nya ditutup, atau browser-nya baru dibuka lagi besok. Cocok buat hal kecil, misalnya pilihan tema atau jumlah klik.

🧪 Tebakan cepat: kamu simpan angka 17 ke localStorage, lalu baca lagi. Yang balik angka 17 atau teks "17"? Tebak dulu, jawabannya ada di bagian "Simpan dan baca dengan setItem dan getItem".

Simpan dan baca dengan setItem dan getItem

localStorage.setItem('age', 17)

const age = localStorage.getItem('age')
console.log(typeof age, age) // string 17

Kalau key-nya belum pernah disimpan, getItem mengembalikan null. Jadi localStorage.getItem('tidakAda') hasilnya null.

Buat menghapus, localStorage.removeItem('age') menghapus satu key, dan localStorage.clear() menghapus semuanya.

Angka yang bertahan setelah refresh

Pola yang paling sering dipakai: baca angka tersimpan begitu halaman dibuka, tampilkan, lalu simpan lagi tiap ada klik.

const tombol = document.querySelector('button')
const teks = document.querySelector('#suka')

let suka = Number(localStorage.getItem('suka') || 0)
teks.textContent = suka

tombol.addEventListener('click', () => {
  suka = suka + 1
  localStorage.setItem('suka', suka)
  teks.textContent = suka
})

Refresh halamannya, angkanya lanjut dari yang terakhir, gak balik ke 0.

Object disimpan sebagai JSON

const user = { name: 'Budi', level: 3 }

localStorage.setItem('user', JSON.stringify(user))

const saved = JSON.parse(localStorage.getItem('user'))
console.log(saved.name) // Budi

Tanpa JSON.stringify, object disimpan sebagai teks '[object Object]' dan isinya hilang. Simpan pakai JSON.stringify, baca lagi pakai JSON.parse.

⚠️ Jebakan yang sering ketemu

💡 Kembarannya: sessionStorage. Method-nya sama persis (setItem, getItem, removeItem, clear), bedanya isinya hilang waktu tab ditutup. Cocok buat isian form yang belum selesai.

TL;DR: localStorage.setItem(key, nilai) menyimpan, localStorage.getItem(key) membaca, dan key yang gak ada menghasilkan null. Isinya selalu teks, jadi angka dibaca lagi pakai Number(...), dan object disimpan lewat JSON.stringify lalu dibaca lewat JSON.parse. Baca dan tampilkan data tersimpan waktu halaman dibuka, lalu panggil setItem lagi tiap nilainya berubah. Jangan simpan data rahasia di sini.

Yang akan kamu pelajari