Bab 6. Memahami Perbedaan Stateless VS Stateful Widget– Flutter

Arbiyanto Wijaya
2 min readJan 27, 2019

--

Hampir di seluruh example code yang ada bertebaran di dunia Flutter sering sekali menggunakan Stateless dan Stateful untuk membuat suatu Widget. Namun apa sebenarnya perbedaan dari keduanya?

Sebelumnya kita harus memahami bahwa dalam membuat interface dengan Flutter, semua komponen yang kita pakai disebut dengan Widget.

Everything is Widget.

Stateless Widget

Merupakan widget yang di-build hanya dengan konfigurasi yang telah diinisiasi sejak awal. Jadi Stateless Widget adalah Widget yang tidak akan pernah berubah.

Misalnya Kita membuat aplikasi berisi Text dengan angka 10. Kemudian aplikasi kita tidak punya fungsi untuk merubah angka tersebut. Maka yang digunakan di sini adalah Stateless Widget.

Stateful Widget

Merupakan Widget yang dapat berubah dinamis. Jadi apapun Widget yang berubah, ya itu disebut dengan Stateful Widget.

Contohnya kita membuat sebuah aplikasi dimana jika setiap kita memencet tombol “+1”. Angka yang ada di tengah tampilan akan bertambah satu.

Fungsi setState() yang akan bertugas untuk memberitahu framework bahwa ada object yang berubah pada State, kemudian akan melakukan build ulang pada Widget tersebut.

Hasil Akhir

setState() pada Stateless Widget

Lalu apakah bisa menggunakan fungsi setState() pada Stateless Widget? Jawabannya adalah Tidak. Akan muncul error seperti di bawah jika kita mencoba menggunakan fungsi tersebut pada StatelessWidget.

StatefulWidget pada Widget bawaan Flutter

Kita juga dapat menemukan Stateful Widget dipakai di widget-widget bawaan dari Flutter seperti TextField, Radio, Checkbox, dan sebagainya.

TextField Source Code

Ringkasan

Intinya, jika kita ingin tampilan berubah secara dinamis saat aplikasi berjalan, kita akan menggunakan Stateful Widget. Jika tidak, maka hanya perlu menggunakan Stateless Widget.

Lalu bagaimana dengan InheritedWidget dan Widget yang ada di Flutter? Widget apa itu? Saya akan mencoba membahasnya di lain waktu.

Resources yang berhubungan dengan topik ini

--

--

Arbiyanto Wijaya
Arbiyanto Wijaya

Written by Arbiyanto Wijaya

Founder Arxist.com, Hybrid Developer (Full-stack, Design, Business). Alumni — Apple Developer Academy. 22 Years Old.

Responses (2)