Dalam pengembangan aplikasi Flutter, penyimpanan data menjadi aspek penting yang harus diperhatikan. Terdapat beberapa metode penyimpanan data, di antaranya Database dan Local Storage.
1. Database di Flutter (sqflite)
sqflite adalah paket yang digunakan untuk mengelola database SQLite di Flutter. SQLite adalah database ringan yang cocok untuk aplikasi mobile.
Instalasi
Tambahkan dependensi berikut di pubspec.yaml:
dependencies:
flutter:
sdk: flutter
sqflite: ^2.3.0
path_provider: ^2.1.2
path: ^1.8.3
Implementasi sqflite
Berikut contoh CRUD menggunakan SQLite:
import 'package:sqflite/sqflite.dart';
import 'package:path/path.dart';
class DatabaseHelper {
static final DatabaseHelper instance = DatabaseHelper._init();
static Database? _database;
DatabaseHelper._init();
Future<Database> get database async {
if (_database != null) return _database!;
_database = await _initDB('app.db');
return _database!;
}
Future<Database> _initDB(String filePath) async {
final dbPath = await getDatabasesPath();
final path = join(dbPath, filePath);
return await openDatabase(path, version: 1, onCreate: _createDB);
}
Future<void> _createDB(Database db, int version) async {
await db.execute('''
CREATE TABLE users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL
)
''');
}
Future<int> insertUser(Map<String, dynamic> user) async {
final db = await database;
return await db.insert('users', user);
}
Future<List<Map<String, dynamic>>> getUsers() async {
final db = await database;
return await db.query('users');
}
}
Penjelasan Kode
DatabaseHelper: Singleton untuk manajemen database.
_initDB: Menginisialisasi database.
_createDB: Membuat tabel users.
insertUser: Menambahkan data user ke dalam database.
getUsers: Mengambil semua data user.
2. Local Storage di Flutter (shared_preferences)
Jika ingin menyimpan data sederhana seperti konfigurasi atau preferensi pengguna, shared_preferences adalah pilihan yang tepat.
Instalasi
Tambahkan dependensi berikut di pubspec.yaml:
dependencies:
shared_preferences: ^2.2.2
Implementasi shared_preferences
import 'package:shared_preferences/shared_preferences.dart';
class LocalStorage {
Future<void> saveData(String key, String value) async {
final prefs = await SharedPreferences.getInstance();
await prefs.setString(key, value);
}
Future<String?> getData(String key) async {
final prefs = await SharedPreferences.getInstance();
return prefs.getString(key);
}
}
Penjelasan Kode
saveData: Menyimpan data berupa key-value ke SharedPreferences.
getData: Mengambil data yang telah disimpan.
Kesimpulan
Gunakan sqflite jika membutuhkan database relasional dengan operasi kompleks.
Gunakan shared_preferences untuk menyimpan data sederhana seperti konfigurasi aplikasi.
Dengan memilih metode penyimpanan yang tepat, aplikasi Flutter dapat berjalan lebih efisien dan sesuai kebutuhan pengguna.
Top comments (0)