Tutorial Flutter : Membuat Aplikasi Interaktif Sederhana dengan Stateful Wigdet

Stateful vs Stateless Widget

Stateful Widget Flutter

State adalah property dari sebuah Widget. Widget yang extends Stateless Widget tidak pernah berubah dan selalu konstan. Stateful Widget akan berubah ketika user melakukan interaksi dengannya. Interaksi user secara langsung tidak terdapat pada Stateless Widget. Untuk mengimplemetasikan StatefulWidget, berikut langkah-langkahnya (Source : Smartherd Flutter) :

StatefulWidget Flutter 2

StatefulWidget Flutter 3

 

Membuat Stateful Widget

Kita akan membuat sebuah aplikasi baru dari nol. Aplikasi yang akan kita buat adalah menampilkan kota favorit yang kita dapatkan dari menuliskan di dalam sebuah text field dan tulisan kota akan muncul ketika kita submit (onSubmitted), atau ketika kita mengetik nama kotanya (onChanged).

Implementasikan langkah-langkah di section sebelumnya ke dalam main.dart :

Result :

Favorite City Fultter

Flutter Dropdown

Selanjutnya kita akan membuat sebuah tombol dropdown. Dropdown widgets dapat berupa kumpulan string atau tipe data lainnya. Widget ini juga memiliki property yaitu items, kemudian terdapat method toList() untuk mengubah item ke dalam list. Langsung saja kita lihat contoh pembuatannya:

Flutter Dropdown

Interest Calculator

Selanjutnya kita akan melakukan pembuatan interest calculator, sebuah aplikasi untuk menghitung cicilan kredit. Aplikasi ini akan berisi Column widget, Image, TextField, RaisedButton, dll. Kita akan membuat aplikasi nya dari nol :

Flutter Interest Calculator

Widget Fetch Image

Di aplikasi ini kita akan menampilkan image seperti pada tutorial sebelumnya. Tambahkan satu folder images dan masukkan gambar, disini saya menggunakan image money.png dari smartherd.

main.dart

pubspec.yaml

Flutter Image Asset

Membuat Text Field

TextField mempunyai beberapa property, misalnya keyboardType dan decoration seperti berikut:

Flutter Interest Calculator 1

Element Column dengan Satu Row yang Berisi Dua Column

Flutter Interest Calculator 2

Raised Button

Column juga bisa diganti menjadi ListView supaya bisa di scroll sampai bawah :

Flutter Interest Calculator App

Menambahkan Style dan Theme

Untuk mengatur theme app secara keseluruhan, Scaffold widget memiliki theme property. Property theme ini diisi dengan ThemeData widget yang berisi theme yang kita inginkan. Ini akan menyebabkan berubahnya tampilan untuk seluruh aplikasi. Tambahkan lagi color untuk bagian form dan button, sehingga hasilnya akan seperti ini :

main.dart

Flutter Application Interest Calculator

Menambahkan Logic pada Aplikasi

Selanjutnya kita akan menambahkan logic supaya aplikasi bisa berjalan dan elemen dapat berinteraksi dengan pengguna aplikasi. Kita mulai dengan tombol dropdown. Saat ini, ketika kita memilih mata uang selain rupiah, dropdown tidak berubah. Untuk itu,  kita akan membuat satu variabel yaitu _currentItemSelected untuk menunjukkan saat itu apa mata uang yang dipilih.

Selanjutnya pada bagian dropdown, tambahkan value dan onchange event :

Buat method baru _onDropDownItemSelected :

Jalankan aplikasi, maka sekarang value pada dropdown akan berubah sesuai mata uang yang kita pilih.

Next, kita akan mencoba untuk mengekstrak value dari TextField. Pada Flutter, terdapat satu notifier yang dinamakan TextEditingController. Buat method baru untuk menghitung nilai dan return String, kemudian atur supaya ketika tombol calculate ditekan, akan muncul hasil dari perhitungan nilai tersebut. Sehingga main.dart menjadi seperti ini :

Hasilnya :

Simple Interest Calculator Flutter

Langkah berikutnya adalah memberikan functionality pada Reset button. Ketika reset button ditekan, maka form akan kembali ke data awal.

main.dart

Form Validation pada Flutter Menggunakan TextFormField

Sebelumnya, aplikasi yang kita buat meskipun sudah berfungsi namun masih belum bisa menampilkan pesan error ketika user salah memasukkan input. Kali ini kita akan membuat validasi dengan TextFormField dari aplikasi yang sudah kita buat.

Langkah pertama adalah mengubah Container widget menjadi Form widget dan memberikan Padding widget sebagai child dari Form widget.

Langkah berikutnya adalah memberikan GlobalKey untuk key properties pada Form widget.

Selanjutnya, ubah TextField widget menjadi TextFormField, kemudian tambahkan validator dan berikan fungsi untuk melakukan validasi.

Terakhir, berikan property ketika tombol disubmit.

Flutter Application Interest Calculator Finish

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.