Tujuan Pembelajaran
- Menjelaskan pentingnya validasi input pengguna.
- Menulis validator untuk setiap TextFormField.
- Menampilkan pesan kesalahan secara interaktif.
- Menjalankan autovalidate dan validasi manual.
Uraian Materi
Input dari pengguna tidak dapat dianggap benar begitu saja. Validasi menjaga data tetap bersih dan mencegah aplikasi menerima nilai tidak sah. Pada Flutter, setiap TextFormField dapat diberi properti validator yang mengembalikan pesan error ketika nilai tidak valid, atau null ketika valid.
TextFormField(
validator: (value) {
if (value == null || value.isEmpty) {
return 'Nama wajib diisi';
}
return null;
},
)
Menggabungkan Berbagai Aturan
Validator dapat mengecek panjang minimal, format tertentu (seperti email berisi simbol @), kecocokan dua kata sandi, hingga angka yang berada pada rentang diizinkan. Contoh validasi email dan angka:
validator: (v) {
if (v == null || v.isEmpty) return 'Email wajib diisi';
if (!v.contains('@')) return 'Format email tidak valid';
return null;
}
validator: (v) {
final n = int.tryParse(v ?? '');
if (n == null || n < 1) return 'Masukkan angka positif';
return null;
}
Memvalidasi Seluruh Form
Untuk memvalidasi semua field sekaligus saat tombol diklik, gunakan GlobalKey dari Form:
if (_formKey.currentState!.validate()) {
// semua field valid, lanjutkan simpan
} else {
// tampilkan pesan kesalahan
}
Properti autovalidateMode: AutovalidateMode.onUserInteraction membuat validasi berjalan tiap kali pengguna mengetik, memberi umpan balik cepat tanpa menunggu tombol simpan.
Menangani Error Lain
Selain validasi form, dibahas penanganan error umum seperti input kosong, angka tidak terisi, dan pemilihan belum dilakukan. Penjelasan juga menyinggung cara mencegah form terkirim berulang kali dengan menonaktifkan tombol saat proses berlangsung.
Aturan Validasi yang Realistis
Validator tidak perlu dibuat terlalu ketat atau terlalu longgar. Aturan yang realistis membuat pengguna tidak frustrasi, misalnya panjang minimal kata sandi 6 karakter, format email yang memuat simbol pagar, dan angka pada rentang yang masuk akal. Peserta mendiskusikan aturan yang wajar untuk studi kasusnya.
Validasi Bertingkat (Beberapa Kondisi)
Satu field dapat memiliki lebih dari satu aturan yang diterapkan berurutan: hanya isi dulu, baru cek format, lalu cek panjang. Penyusunan urutan ini menghindari dua pesan error sekaligus yang membingungkan. Berlatih dengan ekspresi kondisional yang berlapis melatih logika peserta.
Feedback yang Ramah
Bahasa pesan error sebaiknya menjelaskan perbaikan, misalnya ‘Kata sandi minimal 6 karakter’ bukan sekadar ‘Salah’. Gaya pesan yang jelas mempercepat pengguna memperbaiki kesalahan dan meningkatkan kualitas pengalaman.
Menguji Validasi Secara Menyeluruh
Peserta menguji form dengan berbagai kemungkinan input: kosong, terlalu pendek, format salah, hingga valid. Menguji secara menyeluruh menumbuhkan kebiasaan quality assurance ringan yang penting, karena aplikasi yang baik adalah aplikasi yang diuji sebelum dipakai.
Aktivitas Pembelajaran
- Menjelaskan urgensi validasi input.
- Menulis validator email, no HP, dan kata sandi.
- Menguji form valid dan form tidak valid.
- Menambahkan autovalidateMode pada form.
Tugas dan Latihan
- Bangun form pendaftaran dengan validasi: nama tidak kosong, email format valid, kata sandi minimal 6 karakter.
- Tambahkan konfirmasi kata sandi harus sama.
- Tampilkan pesan kesalahan sesuai aturan dan uji semua kasus.
Evaluasi
Evaluasi dilakukan melalui pengamatan hasil praktikum, kuis singkat di akhir pertemuan, dan pemantauan proyek. Peserta yang belum mencapai indikator tertentu diberikan remedial melalui bimbingan ulang dan latihan tambahan pada pertemuan berikutnya.
Panduan Belajar Mandiri
Untuk menguatkan pemahaman, peserta disarankan membaca ulang kode yang telah dibuat, mencoba memodifikasi nilai dan properti, lalu mengamati perubahannya melalui hot reload. Eksperimen kecil-kecil semacam ini membangun intuisi yang tidak diperoleh hanya dari teori.
Kesulitan yang ditemui selama praktik dicatat pada jurnal belajar dan dibawa ke pertemuan berikutnya. Konsistensi belajar mandiri di antara sesi mempercepat penguasaan materi dan membuat praktikum di kelas berjalan lebih efektif.
Ringkasan Pertemuan
Pada pertemuan ke-14 fokus pembelajaran adalah validasi form dan penanganan error. Seluruh indikator tujuan difokuskan pada penguasaan materi tersebut secara praktis, sehingga peserta tidak hanya mengenal konsep tetapi mampu menerapkannya langsung dalam proyek Flutter yang sedang dikembangkan. Ringkasan nilai utama: menjelaskan pentingnya validasi input pengguna..
Kemampuan peserta diukur melalui penyelesaian latihan yang mencerminkan penerapan nyata, bukan sekadar hafalan. Setiap konsep baru selalu dikaitkan dengan materi sebelumnya agar terbentuk pemahaman yang utuh dan berkesinambungan sepanjang kurikulum.
Refleksi Diri
Bagian berikut mengajak peserta menelaah kembali sejauh mana materi telah dikuasai. Kejujuran dalam menilai diri menentukan efektivitas langkah perbaikan selanjutnya.
- Apakah saya dapat menjelaskan kembali pokok materi pertemuan ini tanpa melihat catatan?
- Apakah saya berhasil menyelesaikan seluruh latihan praktikum secara mandiri?
- Bila ada kendala, bagian manakah yang paling sulit dan bagaimana rencana saya mengatasinya?
Asesmen dan Tindak Lanjut
Hasil praktikum dan kuis digunakan untuk memetakan penguasaan peserta. Peserta yang nilainya belum memenuhi kriteria mengulang latihan pada bagian yang kurang dengan pendampingan, sedangkan yang telah menguasai diberikan pengayaan berupa pengembangan fitur tambahan. Catatan perbaikan disampaikan melalui umpan balik tertulis atau lisan.
Kesetiaan mengikuti alur pertemuan demi pertemuan merupakan kunci keberhasilan kemampuan membangun dan memvalidasi form input. Materi berikutnya dibangun di atas kompetensi yang telah dicapai, sehingga menuntaskan pembelajaran setiap pertemuan menjadi bagian penting dari pencapaian akhir. Peserta disarankan mempersiapkan diri membaca panduan praktikum sebelum pertemuan berikutnya tiba.
Dengan selesainya pertemuan ini, peserta menambah satu kompetensi pada peta belajar Mobile Programming. Kemajuan itu dicatat dan menjadi dasar penilaian akhir serta bahan diskusi proyek yang menutup keseluruhan kurikulum.
