
Aplikasi Flutter sering kali memerlukan penyimpanan data lokal, seperti preferensi pengguna, pengaturan, atau data sesi. Untuk mengatasi kebutuhan ini, Flutter menyediakan paket yang disebut shared_preferences
. Paket ini memungkinkan Anda untuk dengan mudah menyimpan dan mengambil data lokal di aplikasi Anda. Dalam artikel ini, kami akan menjelaskan cara menggunakan shared_preferences
untuk berbagai keperluan.
Mengenal shared_preferences
shared_preferences
adalah paket Flutter yang digunakan untuk menyimpan data dalam bentuk key-value pairs pada perangkat pengguna. Data yang disimpan menggunakan shared_preferences
bersifat persisten, yang berarti data tersebut akan tetap tersedia bahkan setelah aplikasi ditutup dan kemudian dibuka kembali.
Beberapa penggunaan umum shared_preferences
termasuk:
- Menyimpan preferensi pengguna, seperti tema atau pengaturan aplikasi.
- Menyimpan data sesi pengguna.
- Menyimpan informasi login atau token akses.
Langkah-langkah Penggunaan shared_preferences
1. Mengimpor Paket
Langkah pertama adalah mengimpor paket shared_preferences
ke proyek Anda. Pastikan untuk menambahkannya ke file pubspec.yaml
proyek Anda, kemudian jalankan flutter pub get
untuk mengunduh paket.
dependencies:
flutter:
sdk: flutter
shared_preferences: ^2.0.8 # Pastikan versi paket terbaru
2. Inisialisasi SharedPreferences
Anda perlu menginisialisasi objek SharedPreferences
dalam metode main
atau di mana saja yang sesuai dalam aplikasi Anda.
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
final SharedPreferences prefs = await SharedPreferences.getInstance();
runApp(MyApp(prefs: prefs));
}
3. Menyimpan Data
Anda dapat menyimpan data dengan menggunakan objek SharedPreferences
. Misalnya, untuk menyimpan string:
prefs.setString('nama', 'John Doe');
4. Mengambil Data
Untuk mengambil data, Anda dapat menggunakan metode get
yang sesuai dengan tipe data yang akan diambil. Contohnya, untuk mengambil string:
String nama = prefs.getString('nama') ?? 'Tidak ada nama';
5. Menghapus Data
Untuk menghapus data, Anda dapat menggunakan metode remove
:
prefs.remove('nama');
Contoh Penggunaannya untuk menyetting tema aplikasi


Berikut Codenya :
main.dart
import 'package:artikel/share_preferences.dart';
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
final SharedPreferences prefs = await SharedPreferences.getInstance();
runApp(SharedPreferencesPage(prefs: prefs)); // Pass the prefs parameter to SharedPreferencesPage
}
class MyApp extends StatelessWidget {
final SharedPreferences prefs;
MyApp({required this.prefs});
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
home: SharedPreferencesPage(prefs: prefs),
);
}
}
sharedpreference.dart
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';
class SharedPreferencesPage extends StatefulWidget {
final SharedPreferences prefs;
SharedPreferencesPage({required this.prefs});
@override
_SharedPreferencesPageState createState() =>
_SharedPreferencesPageState(prefs: prefs);
}
class _SharedPreferencesPageState extends State<SharedPreferencesPage> {
final SharedPreferences prefs;
bool isDarkTheme = false;
_SharedPreferencesPageState({required this.prefs}) {
isDarkTheme = prefs.getBool('darkTheme') ?? false;
}
_toggleTheme() async {
setState(() {
isDarkTheme = !isDarkTheme;
prefs.setBool('darkTheme', isDarkTheme);
});
}
@override
Widget build(BuildContext context) {
return MaterialApp(
theme: isDarkTheme ? ThemeData.dark() : ThemeData.light(),
home: Scaffold(
appBar: AppBar(
title: Text('shared_preferences'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
'Tema Aplikasi: ${isDarkTheme ? 'Gelap' : 'Terang'}',
style: TextStyle(fontSize: 18),
),
SizedBox(height: 20),
ElevatedButton(
onPressed: _toggleTheme,
child: Text('Ubah Tema'),
),
],
),
),
),
);
}
}
Kesimpulan
shared_preferences
adalah cara yang mudah dan efisien untuk menyimpan dan mengambil data lokal di aplikasi Flutter. Dengan paket ini, Anda dapat dengan mudah mengelola preferensi pengguna, data sesi, dan banyak lagi. Semoga artikel ini membantu Anda memahami cara menggunakan shared_preferences
dalam pengembangan aplikasi Flutter Anda.