Aplikasi Mobile
Berikut adalah contoh pendahuluan laporan praktikum untuk aplikasi Kalkulator Kabataku (Kali, Bagi, Tambah, Kurang) yang kamu buat menggunakan Flutter:
Pendahuluan
Dalam pengembangan aplikasi mobile, kemampuan menerima input dari pengguna dan memberikan respon yang sesuai merupakan elemen penting untuk menciptakan interaksi yang efektif. Flutter, sebagai framework UI modern dari Google, menyediakan berbagai widget yang memungkinkan pembuatan antarmuka pengguna yang responsif dan intuitif.
Pada praktikum ini, mahasiswa diminta untuk membuat sebuah aplikasi kalkulator sederhana yang mampu melakukan operasi dasar matematika yaitu penjumlahan (tambah), pengurangan (kurang), perkalian (kali), dan pembagian (bagi) — atau dikenal dengan istilah Kabataku. Proyek ini bertujuan untuk melatih kemampuan mahasiswa dalam menggunakan widget seperti TextField, TextFormField, ElevatedButton, dan Text, serta memahami cara menangani input, melakukan validasi, dan menampilkan hasil perhitungan secara dinamis menggunakan setState().
Pembuatan aplikasi kalkulator ini juga melibatkan pemahaman dasar mengenai struktur kode Flutter, penggunaan controller pada form input, serta pengelolaan state pada aplikasi berbasis widget. Melalui praktikum ini, diharapkan mahasiswa dapat lebih memahami konsep dasar pembuatan form, interaksi user, dan logika sederhana dalam pengembangan aplikasi mobile menggunakan Flutter.
TUJUAN:
- Membuat beberapa input widgets
- Membuat dan mengontrol inputan dari user
TEORI
Dalam pengembangan antarmuka pengguna pada aplikasi Flutter, salah satu bagian penting yang sering digunakan adalah Basic Form. Basic Form merupakan sekumpulan widget yang digunakan untuk menerima input dari pengguna. Widget-widget ini meliputi TextField, TextFormField, Checkbox, Switch, Dropdown, Radio, Dialog, DatePicker, BottomSheet, Snackbar, dan lain sebagainya. Form tidak hanya menampilkan elemen input, tetapi juga menyediakan mekanisme untuk validasi dan pengelolaan data input. Ketika pengguna mengisi form, data yang dimasukkan akan divalidasi berdasarkan aturan yang telah ditentukan, dan hasil input tersebut dapat diambil dan diproses lebih lanjut setelah validasi berhasil.
Salah satu widget dasar yang paling sering digunakan untuk menerima input teks adalah TextField. Widget ini menyediakan kotak input di mana pengguna dapat mengetikkan teks, dan sering digunakan dalam berbagai kebutuhan seperti formulir login, pencarian, atau masukan komentar. TextField memiliki berbagai properti untuk mengatur gaya teks (style), dekorasi (decoration), serta jenis inputan seperti angka, email, atau teks biasa. Untuk mengelola isi dari TextField, Flutter menyediakan objek TextEditingController yang dapat digunakan untuk mengambil nilai teks, membersihkannya, atau mengatur isinya secara manual.
Selain TextField, Flutter juga menyediakan TextFormField, yang merupakan versi lebih lengkap dan canggih. TextFormField sudah terintegrasi dengan sistem form Flutter, yang memungkinkan pengguna untuk secara langsung menerapkan validasi input melalui properti validator. Dengan validator, kita bisa menentukan aturan validasi seperti memastikan input tidak kosong, memenuhi panjang minimal, atau sesuai format tertentu. Jika validasi gagal, maka TextFormField akan secara otomatis menampilkan pesan kesalahan. TextFormField juga dapat berinteraksi dengan objek FormState, yang mengelola status keseluruhan dari Form. Hal ini sangat berguna dalam aplikasi yang memiliki lebih dari satu input field dan membutuhkan validasi secara menyeluruh.
Untuk menghubungkan widget Form dengan objek FormState, Flutter menggunakan GlobalKey. GlobalKey adalah objek unik yang digunakan untuk mengakses dan mengontrol status suatu widget secara global dari luar widget itu sendiri. Dengan GlobalKey, kita bisa memanggil method seperti validate() atau save() dari tombol aksi seperti ElevatedButton. Hal ini memungkinkan interaksi antara input form dan kontrol UI eksternal dalam aplikasi.
Objek FormState sendiri merupakan kelas yang berfungsi untuk menyimpan dan mengatur status dari Form, termasuk status validasi dan data yang diinputkan. Saat kita menggunakan GlobalKey untuk mengakses FormState, kita bisa menjalankan fungsi validate() yang akan memeriksa semua inputan di dalam Form sekaligus. Jika semua validasi berhasil, maka fungsi ini akan mengembalikan nilai true, dan kita bisa melanjutkan ke proses penyimpanan atau perhitungan data.
Selain validasi dan input data, Flutter juga menggunakan method setState() untuk memperbarui tampilan aplikasi ketika terjadi perubahan data. Method ini digunakan untuk memberitahu framework bahwa ada perubahan pada state aplikasi, sehingga Flutter akan melakukan rebuild pada widget terkait dan memperbarui tampilannya secara otomatis di layar. setState() sangat penting dalam aplikasi interaktif seperti kalkulator, di mana hasil perhitungan perlu ditampilkan kembali setelah tombol ditekan.
Terakhir, penggunaan kata kunci const dalam Flutter digunakan untuk mendeklarasikan widget yang nilainya tidak akan berubah saat aplikasi dijalankan. Widget yang dideklarasikan sebagai const hanya akan dibangun satu kali pada waktu kompilasi (compile-time), sehingga dapat meningkatkan performa aplikasi karena Flutter tidak perlu membangun ulang widget tersebut jika tidak diperlukan. Ini merupakan salah satu praktik yang disarankan untuk mengoptimalkan kinerja aplikasi Flutter.
Secara keseluruhan, pemahaman terhadap konsep-konsep seperti TextField, TextFormField, Form, FormState, GlobalKey, validate(), setState(), dan const sangat penting dalam membangun aplikasi mobile berbasis Flutter, terutama yang melibatkan input dan interaksi pengguna secara langsung.
LANGKAH PENGERJAAN:
Langkah 1: Membuat File Baru dengan Nama form_textfield.dart
Dalam file ini, kita akan menampilkan sebuah form sederhana menggunakan widget TextField sebagai tempat untuk memasukkan data. Selain itu, kita juga menambahkan sebuah tombol ElevatedButton yang berfungsi sebagai pemicu aksi saat ditekan.

Langkah 2: Membuat File dengan Nama form_textformfield.dart
Di dalam file ini, kita akan membuat beberapa variabel penting seperti GlobalKey untuk mengelola state form, TextEditingController untuk mengontrol input dari TextFormField, serta fungsi yang berguna untuk mengosongkan isi input nama dan email. Selain itu, kita juga akan menyiapkan fungsi yang akan dijalankan saat tombol ditekan.

KESIMPULAN
Dari pembahasan mengenai Basic Form dan komponen-komponen pendukungnya pada Flutter, dapat disimpulkan bahwa penggunaan widget seperti TextField dan TextFormField sangat penting untuk menerima dan mengelola input dari pengguna secara efektif. TextFormField menawarkan kelebihan dalam hal validasi otomatis yang terintegrasi dengan sistem form, sehingga memudahkan pengelolaan data dan pengecekan kesalahan input.
Selain itu, peran GlobalKey dan FormState sangat krusial dalam mengontrol dan memvalidasi seluruh form secara keseluruhan, sehingga aplikasi dapat memastikan data yang dimasukkan sudah sesuai dengan aturan sebelum diproses lebih lanjut. Penggunaan method validate() pada FormState memudahkan pelaksanaan validasi secara kolektif.
Penggunaan method setState() membantu dalam memperbarui tampilan aplikasi secara dinamis ketika terjadi perubahan data, sedangkan kata kunci const berguna untuk meningkatkan performa aplikasi dengan mendeklarasikan widget yang bersifat konstan.
Secara keseluruhan, pemahaman dan penerapan konsep-konsep ini sangat membantu dalam membangun aplikasi Flutter yang responsif, interaktif, dan dapat menangani input pengguna dengan baik serta menjaga kualitas data yang diterima.
Leave a Reply