Flutter dikembangkan oleh google dengan tujuan utama mempermudah pengembangan aplikasi mobile. Penggunaan flutter 100% gratis (Open Source). Dart merupakan bahasa pemrograman yang digunakan untuk mengembangkan aplikasi Flutter.
Stateless vs Stateful Widget
- Untuk dapat mengubah data pada widget, kita memerlukan stateful widget.
- Stateful Widget merupakan Widget yang dapat berubah dinamis.
- Sebagai contoh, pada stateful widget, kita dapat mengubah value dengan menekan tombol
- Pada prakteknya, stateless widget bisa memiliki child stateful widget dan sebaliknya
Widget Lifecycle
Siklus hidup sebuah widget
- Data pada stateful widget dapat berubah
- Namun, untuk mengubah data yang ada pada stateful widget kita perlu mentriggernya.
- Yang jadi pertanyaan:
- Pakai apa mentriggernya?
- Kapan harus mentrigger?
- Bagaimana cara mentriggernya?
- Semua pertanyaan diatas jawabannya adalah: Widget Lifecycle

- initState()
- ini adalah method yang pertama kali di panggil saat widget dibuat.
- Method ini hanya dipanggil sekali dan tidak akan bisa dipanggil lagi selama widget tersebut masih hidup
- Biasanya digunakan untuk menginisialisasi value-value yang ada pada widget
- build()
- Method berfungsi untuk menampilkan widget tree
- Dapat dipanggil lagi apabila ada perubahan data pada widget
- setState()
- Method yang berfungsi untuk mengupdate data pada widget
- Apabila method ini dijalankan, akan mentrigger widget untuk di build ulang (bukan di create ulang)
- Biasanya dipanggil melalui widget yang dapat menerima inputan user seperti button, textfield, dsb.
- Digunakan untuk mengupdate data pada widget, missal: mengubah teks/mengubah warna widget/mengubah ukuran widget, dsb.
- dispose()
- Method dijalankan apabila widget akan dibuang (biasanya ketika user meninggalkan halaman/menutup aplikasi)
- Dijalankan hanya sekali Ketika widget dibuang
Contoh Membuat Stateful Widget
- Pada latihan ini, anda akan membuat aplikasi counter sederhana
- Counter yang dibuat terdiri dari Button Widget dan Text Widget
- Text Widget berfungsi untuk menampilkan angka
- Button Widget berfungsi untuk menambahkan angka
- Pada button widget, anda akan mengimplementasi fungsi setState untuk mengupdate angka
- Buat project flutter baru, hapus semua kode pada main.dart
- Ubah kodingan menjadi seperti dibawah
- Buatlah stateful widget bernama MyHomePage
- Tips: ketik “stful”, maka akan ada sugesti widget “stateful”
- Ketik enter pada sugesti tersebut, lalu Anda tinggal mengisi nama widgetnya
- Buatlah tampilan aplikasi seperti gambar disamping
- Gunakan pengetahuan anda pada sesi sebelumnya untuk membuat tampilan aplikasi
- Anda bebas menggunakan button apa saja sesuai keinginan
- Contoh Coding
- Isi widget text angka 10 menjadi variable (bukan di hardcode) agar nilainya bisa diubah-ubah
- Isi properti onPressed yang dimiliki oleh FAB dengan method setState(). Ubah value didalam method setState.
- Lalu klik button pada aplikasi, apa yang terjadi?
Kesimpulan
- StatelessWidget digunakan untuk membuat widget yang statis karena statenya tidak dapat diubah
- StatefulWidget digunakan untuk membuat widget yang dinamis karena statenya dapat diubah, salah satunya menggunakan metode setState
Sumber
Referensi : developerlibs.com