Menyimpan dengan SharedPreferences dalam Flutter
VIDEO
1. Tambah Dependency
Buka file pubspec.yaml lalu cari bagian dependencies masukan kode:
shared_preferences: ^2.5.3
Lalu di terminal jalankan perintah flutter pub get
Keterangan:
flutter pub get adalah perintah untuk mendownload dependency lalu menginstallnya
2. File helper
Masukan kode berikut ini ke dalam file helper.dart:
import ‘package:shared_preferences/shared_preferences.dart’;
Future<bool> statusLogin() async {
final prefs = await SharedPreferences.getInstance();
bool? hasil = prefs.getBool(‘sudahPernahMasuk’);
if (hasil == null) {
return false;
} else {
return hasil;
}
}
Future<void> simpanLogin() async {
final prefs = await SharedPreferences.getInstance();
prefs.setBool(‘sudahPernahMasuk’, true);
}
Future<void> hapusLogin() async {
final prefs = await SharedPreferences.getInstance();
prefs.setBool(‘sudahPernahMasuk’, false);
}
Keterangan:
Future<TipeData> dan async menandakan bahwa fungsi ini adalah asynkronous
await digunakan agar program menunggu sampai mendapatkan hasil
Future<bool> -> bool adalah tipe data boolean yang harus direturn oleh fungsi ini
Future<void> -> void berarti fungsi ini tidak mereturn value
package:shared_preferences harus diimport
SharedPreferences.getInstance() : kode ini digunakan untuk membuat objek dari SharedPreferences
prefs.getBool(‘sudahPernahMasuk’): kode ini digunakan untuk mengambil nilai sudahPernahMasuk bertipe boolean
prefs.setBool(‘sudahPernahMasuk’, true): kode ini digunakan untuk memberi nilai true ke sudahPernahMasuk
3. Perubahan File login.dart
Bentuk file login adalah seperti terlihat dalam artikel ini .
Import file helper:
import ‘package:teks/helper.dart’;
Lalu cari kode berikut ini:
else if (username == ‘admin’ && password == ‘Testing’) {
Lalu masukan kode
4. Perubahan File dashboard.dart
Bentuk file dashboard adalah seperti terlihat dalam artikel ini .
import dua file ini:
import ‘package:teks/login.dart’;
import ‘package:teks/helper.dart’;
Pada widget AppBar masukan kode berikut ini:
actions: <Widget>[
IconButton(
icon: const Icon(Icons.exit_to_app),
tooltip: ‘Comment Icon’,
onPressed: () {
hapusLogin();
Navigator.pushReplacement(
context,
MaterialPageRoute(builder: (context) => Login()),
);
},
),
Keterangan:
Navigator.pushReplacement digunakan untuk mengganti halaman dan membuat rute sebelumnya.
5. Perubahan file main.dart
Ganti semua kode file main.dart dengan kode berikut ini:
import ‘package:flutter/material.dart’;
import ‘package:teks/login.dart’;
import ‘package:teks/dashboard.dart’;
import ‘package:teks/helper.dart’;
void main() async {
WidgetsFlutterBinding.ensureInitialized();
final bool sudahPernahMasuk = await statusLogin();
runApp(
MaterialApp(home: sudahPernahMasuk ? const Dashboard() : const Login()),
);
}
Keterangan:
WidgetsFlutterBinding.ensureInitialized digunakan untuk memastikan binding sudah diinisialisasi sebelum runApp() dijalankan
sudahPernahMasuk ? const Dashboard() : const Login(), kode ini berarti jika nilai sudahPernahMasuk adalah true maka tampilkan halaman Dashboard dan jika nilai sudahPernahMasuk adalah false maka tampilkan halaman Login
6. Jalankan Aplikasi
Tekan menu Run -> Start Debugging atau shortcut tombol F5