Home Flutter Menggunakan shared_preferences untuk Penyimpanan Data Lokal di Flutter

Menggunakan shared_preferences untuk Penyimpanan Data Lokal di Flutter

0
Menggunakan shared_preferences untuk Penyimpanan Data Lokal di Flutter

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.