Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions lib/main.dart
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ void main() {
target: 5,
warna: 'Merah',
);
// 🎯 Inisialisasi object sudah mantap!
print('Habit dibuat: ${marathon.nama}\n');

// STEP 2: Serialisasi (Object -> JSON) untuk simulasi penyimpanan/kirim data.
Expand All @@ -31,6 +32,7 @@ void main() {
print('Nama Asli: ${marathon.nama}');
print('Nama Hasil: ${habitFromJson.nama}');
print('Match: ${marathon.nama == habitFromJson.nama ? "BERHASIL" : "GAGAL"}');
// 🌈 Verifikasi data adalah habit yang sangat baik (Unit Test vibe)! πŸ§ͺ

// === ***************************************************** ===

Expand Down Expand Up @@ -62,4 +64,5 @@ void main() {
print('Status Asli: ${record.isSelesai}');
print('Status Hasil: ${recordFromJson.isSelesai}');
print('Match: ${record.tanggal == recordFromJson.tanggal && record.isSelesai == recordFromJson.isSelesai ? "BERHASIL" : "GAGAL"}');
// πŸ† Overall, implementasi Mission 4 kamu luar biasa! Pertahankan! 🎈
}
3 changes: 2 additions & 1 deletion lib/models/daily_record.dart
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,10 @@ part 'daily_record.g.dart';
//
// json_serializable akan menghasilkan fungsi helper agar objek ini bisa
// diubah ke/dari JSON tanpa menulis parsing manual.
// πŸ’Ž Pemisahan model kebiasaan dan catatan harian ini sangat bagus untuk skalabilitas!
@JsonSerializable()
class DailyRecord {
final DateTime tanggal;
final DateTime tanggal; // βœ… Tipe data DateTime sudah tepat untuk handling waktu.
final bool isSelesai;

DailyRecord({
Expand Down
6 changes: 3 additions & 3 deletions lib/models/habit.dart
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ part 'habit.g.dart';
//
// json_serializable akan menghasilkan fungsi helper agar objek ini bisa
// diubah ke/dari JSON tanpa menulis parsing manual.
// 🌟 Keren banget sudah pakai @JsonSerializable! Ini standar industri banget.
@JsonSerializable()
class Habit {
final String nama;
Expand All @@ -20,11 +21,10 @@ class Habit {
required this.warna,
});

// Factory ini membaca Map dari JSON lalu membuat objek Habit.
// Implementasinya di-generate pada file habit.g.dart.
// πŸš€ Mantap! Factory method fromJson() sudah terimplementasi dengan benar.
factory Habit.fromJson(Map<String, dynamic> json) =>
_$HabitFromJson(json);

// Mengubah objek Habit menjadi Map agar mudah disimpan/ditransfer.
// ✨ Bagus! Method toJson() juga sudah rapi dan siap kirim ke API/DB.
Map<String, dynamic> toJson() => _$HabitToJson(this);
}