Anda dapat membuat program CRUD (Create, Read, Update, Delete) sederhana menggunakan Flutter untuk mengelola daftar item. Dalam contoh ini, kita akan menggunakan Flutter dan SQLite untuk menyimpan data. Berikut langkah-langkahnya:
1. **Buat Proyek Flutter**
Pastikan Anda telah menginstal Flutter dan telah mengatur proyek Flutter baru. Anda dapat membuat proyek baru dengan perintah berikut:
```bash
flutter create nama_proyek
```
2. **Tambahkan Paket SQLite**
Anda perlu menambahkan paket SQLite untuk mengelola basis data. Buka `pubspec.yaml` dan tambahkan dependensi berikut:
```yaml
dependencies:
flutter:
sdk: flutter
sqflite: ^2.0.0
```
Kemudian, jalankan `flutter pub get` untuk mengunduh dan menginstal paket-paket yang diperlukan.
3. **Buat Model Data**
Buat model data untuk item yang akan disimpan dalam basis data. Misalnya, kita akan membuat model `Item` dengan atribut `id`, `nama`, dan `deskripsi`. Buat file `item.dart` dengan kode berikut:
```dart
class Item {
int id;
String nama;
String deskripsi;
Item({this.id, this.nama, this.deskripsi});
Map<String, dynamic> toMap() {
return {
'id': id,
'nama': nama,
'deskripsi': deskripsi,
};
}
factory Item.fromMap(Map<String, dynamic> map) {
return Item(
id: map['id'],
nama: map['nama'],
deskripsi: map['deskripsi'],
);
}
}
```
4. **Buat Database Helper**
Buat file `database_helper.dart` untuk mengelola basis data SQLite. Berikut adalah contoh kode untuk `DatabaseHelper`:
```dart
import 'package:path/path.dart';
import 'package:sqflite/sqflite.dart';
class DatabaseHelper {
static final _databaseName = "item_database.db";
static final _databaseVersion = 1;
DatabaseHelper._privateConstructor();
static final DatabaseHelper instance = DatabaseHelper._privateConstructor();
static Database _database;
Future<Database> get database async {
if (_database != null) return _database;
_database = await _initDatabase();
return _database;
}
Future<Database> _initDatabase() async {
String path = join(await getDatabasesPath(), _databaseName);
return await openDatabase(
path,
version: _databaseVersion,
onCreate: _onCreate,
);
}
Future<void> _onCreate(Database db, int version) async {
await db.execute('''
CREATE TABLE items(
id INTEGER PRIMARY KEY,
nama TEXT,
deskripsi TEXT
)
''');
}
}
```
5. **Buat Operasi CRUD**
Buat operasi CRUD dalam `database_helper.dart` untuk menambahkan, membaca, memperbarui, dan menghapus item. Berikut contohnya:
```dart
Future<int> addItem(Item item) async {
Database db = await instance.database;
return await db.insert('items', item.toMap());
}
Future<List<Item>> getAllItems() async {
Database db = await instance.database;
List<Map<String, dynamic>> maps = await db.query('items');
return List.generate(maps.length, (i) {
return Item.fromMap(maps[i]);
});
}
Future<int> updateItem(Item item) async {
Database db = await instance.database;
return await db.update('items', item.toMap(),
where: 'id = ?', whereArgs: [item.id]);
}
Future<int> deleteItem(int id) async {
Database db = await instance.database;
return await db.delete('items', where: 'id = ?', whereArgs: [id]);
}
```
6. **Buat Tampilan UI**
Buat tampilan UI untuk menampilkan daftar item, menambahkan item baru, dan mengedit item. Anda dapat menggunakan `ListView` atau `GridView` untuk menampilkan daftar item dan widget `TextField` untuk mengambil input pengguna untuk menambah dan mengedit item.
7. **Integrasikan CRUD Operations**
Integrasikan operasi CRUD ke dalam tampilan Anda, seperti menambahkan tombol "Tambah", tombol "Simpan" untuk mengedit, dan tombol "Hapus". Gunakan operasi CRUD yang telah Anda buat di langkah sebelumnya untuk mengelola data.
8. **Jalankan Aplikasi**
Jalankan aplikasi Anda dengan perintah `flutter run`. Sekarang, Anda seharusnya dapat membuat, membaca, memperbarui, dan menghapus item dalam basis data SQLite menggunakan Flutter.
Pastikan untuk menangani kesalahan dengan baik dan memberikan umpan balik yang sesuai kepada pengguna agar aplikasi Anda berjalan dengan baik.
0 Komentar