Local Storage: shared_preferences
Penjelasan
shared_preferences adalah package resmi Flutter untuk menyimpan data kecil (string, int, bool, dst) secara PERSISTEN di device — datanya tetap ada walau aplikasi ditutup dan dibuka lagi, cocok untuk preferensi user atau token login, TAPI TIDAK cocok untuk data terstruktur besar (untuk itu, dipakai database lokal seperti sqflite atau Hive).
Contoh Konsep
// flutter pub add shared_preferences
Future<void> simpanTema(String tema) async {
final prefs = await SharedPreferences.getInstance();
await prefs.setString('tema', tema);
}
Future<String> ambilTema() async {
final prefs = await SharedPreferences.getInstance();
return prefs.getString('tema') ?? 'terang'; // nilai default kalau belum pernah disimpan
}
Praktikum
Buat fungsi simpanBahasa(String bahasa) yang menyimpan preferensi bahasa lewat SharedPreferences. Buat fungsi ambilBahasa() yang membacanya kembali dengan nilai default 'id' kalau belum pernah disimpan.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
SharedPreferences.getInstance() bersifat ASYNCHRONOUS (mengembalikan Future) — WAJIB di-await sebelum bisa memanggil setString()/getString(), kesalahan umum pemula adalah lupa await dan mencoba memanggil method itu langsung dari objek Future yang belum ter-resolve.