Jawaban
Soal 1: Supabase
import 'package:supabase_flutter/supabase_flutter.dart';
final supabaseUrl = '(URL supabase-mu)';
final publicAnonKey = '(AnonKey-mu)';
final client = SupabaseClient(supabaseUrl, publicAnonKey);
Future<void> readElectronicsData() async {
try {
final response = await client
.from('products')
.select().eq('category', 'electronics');
print('Data: ${response}');
} catch (error) {
print('Error fetching data: ${error}');
}
}
void main() async {
await readElectronicsData();
}
Penjelasan:
-
SupabaseClientdiinisialisasi dengan URL proyek dan kunci publik anonim. -
Fungsi
readElectronicsDatadigunakan untuk mengambil data dari tabelproductsdengan kondisi di mana kolomcategorybernilai ‘electronics’. -
Fungsi
eqdigunakan untuk menyaring data berdasarkan kolomcategory. -
Jika tidak ada kesalahan (
catch (error)), data elektronik yang diambil akan dicetak. Jika ada kesalahan, pesan kesalahan akan dicetak.
Soal 2: Hive
import 'package:flutter/material.dart';
import 'package:hive/hive.dart';
import 'package:hive_flutter/hive_flutter.dart';
void main() async {
await Hive.initFlutter();
var box = await Hive.openBox('userBox');
// Create
await createUser(box, 'user1', {'name': 'John Doe', 'email': 'john@example.com'});
// Read
await readUser(box, 'user1');
// Update
await updateUser(box, 'user1', {'name': 'John Smith', 'email': 'johnsmith@example.com'});
// Delete
await deleteUser(box, 'user1');
}
Future<void> createUser(Box box, String userId, Map<String, String> user) async {
await box.put(userId, user);
print('User created: ${box.get(userId)}');
}
Future<void> readUser(Box box, String userId) async {
var user = box.get(userId);
print('User read: $user');
}
Future<void> updateUser(Box box, String userId, Map<String, String> updatedUser) async {
await box.put(userId, updatedUser);
print('User updated: ${box.get(userId)}');
}
Future<void> deleteUser(Box box, String userId) async {
await box.delete(userId);
print('User deleted: ${box.get(userId)}'); // should print null
}
Penjelasan:
-
Hive diinisialisasi menggunakan
Hive.initFlutter()dan membuka box dengan nama"userBox". -
Fungsi
createUsermenyimpan data pengguna denganuserIdsebagai kunci utama. Data pengguna disimpan dalam bentuk Map. -
Fungsi
readUsermengambil data pengguna berdasarkanuserIddan mencetaknya. -
Fungsi
updateUsermemperbarui data pengguna denganuserIdtertentu. -
Fungsi
deleteUsermenghapus data pengguna berdasarkanuserIddan memastikan data tersebut telah dihapus dengan mencetak hasilnya.