CHALLENGE FLUTTER
⚡ CHALLENGE FLUTTER
Menganalisis & Memodifikasi Program main.dart
📌 IDENTITAS
Nama Lengkap: Dhanis Fathan Gunawan
Kelas: XI RPL 2
No. Absen: 07
Link Blog: https://dhanisantibootloop.blogspot.com/2026/06/challenge-flutter.html
🔍 TUGAS 1 - HASIL PENGAMATAN
📝 TUGAS 2 - ANALISIS KODE
| Kode | Fungsi |
|---|---|
| main() | Fungsi utama (entry point) program Flutter, pertama kali dijalankan |
| runApp() | Menjalankan widget utama ke layar |
| MaterialApp | Widget induk yang menyediakan desain Material Design |
| Scaffold | Menyediakan struktur dasar halaman (AppBar, body, FAB) |
| AppBar | Bilah atas aplikasi (judul halaman) |
| Text | Menampilkan teks |
| FloatingActionButton | Tombol aksi melayang (biasanya di kanan bawah) |
| setState() | Memberi tahu framework bahwa state berubah, UI perlu di-build ulang |
🔄 TUGAS 3 - DIAGRAM ALUR PROGRAM
🛠️ TUGAS 4 - HASIL MODIFIKASI
// Kode Modifikasi (Fragment)
class _HomePageState extends State<HomePage> {
int _counter = 0;
void _incrementCounter() {
setState(() { _counter++; });
}
void _resetCounter() {
setState(() { _counter = 0; });
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text('Absensi Siswa')), // Modifikasi 1
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text('Nama : Ahmad Fauzan Ramadhan', style: TextStyle(fontSize: 20)),
Text('Jumlah : $_counter', style: TextStyle(fontSize: 40)), // Modifikasi 2
],
),
),
floatingActionButton: Row(
mainAxisAlignment: MainAxisAlignment.end,
children: [
FloatingActionButton(onPressed: _resetCounter, child: Icon(Icons.refresh)),
SizedBox(width: 10),
FloatingActionButton(onPressed: _incrementCounter, child: Icon(Icons.school)), // Modifikasi 3
],
),
);
}
}
🏆 TUGAS 5 - CHALLENGE MANDIRI (Tombol Reset)
✓ SOLUSI Menambahkan tombol Reset yang mengembalikan nilai ke 0.
// Fungsi resetData()
void _resetCounter() {
setState(() {
_counter = 0;
});
}
// Menambahkan tombol reset di floatingActionButton
floatingActionButton: Row(
mainAxisAlignment: MainAxisAlignment.end,
children: [
FloatingActionButton(
onPressed: _resetCounter,
child: Icon(Icons.refresh),
backgroundColor: Colors.orange,
),
SizedBox(width: 16),
FloatingActionButton(
onPressed: _incrementCounter,
child: Icon(Icons.add),
),
],
)
💡 Penjelasan: Tombol reset akan memanggil _resetCounter() yang di dalamnya terdapat setState() sehingga UI langsung berubah menampilkan angka 0.
🤔 REFLEKSI PEMBELAJARAN
📌 KESIMPULAN
Praktikum Flutter ini memberikan pemahaman mendalam tentang struktur aplikasi berbasis StatefulWidget, pentingnya setState() untuk reactive UI, serta kemampuan memodifikasi widget seperti mengubah judul, ukuran teks, ikon, dan menambah fitur tombol reset. Dengan pendekatan neobrutalism pada dokumentasi, saya semakin termotivasi untuk eksplorasi UI/UX yang berani dan fungsional.
Komentar
Posting Komentar