Praktikum Mobile Application 1

Implementasi Basic Form
Flutter untuk Registrasi Pengguna

Dokumentasi praktikum Flutter yang berfokus pada form pendaftaran pengguna, validasi input, dan proses submit data setelah seluruh field terisi dengan benar.

Flutter
Nama Lengkap
Misalnya urname
Email
Register Form Valid
Nama
Email
Submit berhasil

Ringkasan Praktikum Mobile Application

Praktikum ini membahas dasar pengembangan aplikasi menggunakan Flutter melalui pembuatan form pendaftaran pengguna. Implementasi mencakup penggunaan StatefulWidget, TextEditingController, TextField, TextFormField, validasi form, SnackBar, ElevatedButton, serta pengelolaan state menggunakan setState untuk menangani proses submit.

Flutter Environment

Menyiapkan Flutter SDK dan environment pengembangan serta membuat project Flutter baru.

Basic Form TextField

Membuat field input nama dan data pengguna menggunakan TextField serta controller.

Basic Form TextFormField

Membuat form validasi untuk nama, email, password, dan confirm password.

Submit Form

Menampilkan pesan sukses setelah semua data input valid dan dapat diproses.

1. Instalasi & Konfigurasi Flutter

Tahap awal praktikum adalah menyiapkan environment pengembangan Flutter. Flutter digunakan sebagai framework untuk membangun aplikasi dengan satu codebase yang dapat dijalankan pada berbagai platform.

Tahap ini meliputi instalasi Flutter SDK, konfigurasi PATH, pengecekan environment, dan pengecekan versi Flutter.

flutter doctor
flutter --version

Perintah flutter doctor digunakan untuk memeriksa apakah komponen yang dibutuhkan Flutter telah tersedia dan dikonfigurasi dengan benar. Sementara flutter --version digunakan untuk melihat versi Flutter yang terpasang.

Hasil

Environment Flutter berhasil disiapkan sehingga project dapat dibuat dan dijalankan.

2. Membuat Project Flutter

Project praktikum dibuat menggunakan perintah Flutter CLI:

flutter create flutter_application_1

Kemudian masuk ke directory project:

cd flutter_application_1

Project Flutter memiliki struktur dasar seperti lib, android, ios, web, windows, test, dan pubspec.yaml.

Untuk menjalankan aplikasi:

flutter run

Untuk menjalankan file Dart tertentu:

flutter run -d chrome -t lib/form-textfield.dart
flutter run -d chrome -t lib/form-textformfield.dart
flutter run -d chrome -t lib/user_registration_form.dart

Penggunaan -t memungkinkan file Dart tertentu digunakan sebagai entry point aplikasi.

Hasil

Project Flutter berhasil dibuat dan dapat dijalankan pada browser Chrome.

3. Basic Form TextField

Praktikum pertama membuat form input sederhana menggunakan TextField. Implementasi menggunakan StatefulWidget, TextEditingController, TextField, onChanged, ElevatedButton, SnackBar, dan dispose().

TextEditingController digunakan untuk mengambil nilai yang dimasukkan pengguna ke dalam TextField. TextField digunakan untuk menerima input nama lengkap. Konfigurasi TextField mencakup labelText, hintText, OutlineInputBorder, prefix icon person, controller, keyboardType text, dan onChanged.

final TextEditingController _textEditingController =
    TextEditingController();

TextField(
  controller: _textEditingController,
  decoration: const InputDecoration(
    labelText: 'Nama Lengkap',
    hintText: 'Misalnya urname',
    border: OutlineInputBorder(),
  ),
  keyboardType: TextInputType.text,
  onChanged: (text) {
    print('Sedang mengetik teks: $text');
  },
)
ElevatedButton(
  onPressed: () {
    final inputText = _textEditingController.text;

    ScaffoldMessenger.of(context).showSnackBar(
      SnackBar(
        content: Text('Nama anda adalah, $inputText'),
      ),
    );
  },
  child: const Text('Tampilkan nama'),
)

Controller harus dihapus pada dispose() agar sumber daya tidak menumpuk.

@override
void dispose() {
  _textEditingController.dispose();
  super.dispose();
}
Hasil

Pengguna dapat memasukkan nama lengkap dan menekan tombol untuk menampilkan nama yang dimasukkan melalui SnackBar.

4. Basic Form TextFormField

Praktikum berikutnya menggunakan TextFormField untuk membuat form yang memiliki validasi. Komponen utama meliputi Form, GlobalKey, TextFormField, TextEditingController, validator, ElevatedButton, dan SnackBar.

final _formKey = GlobalKey();

final _nameController = TextEditingController();
final _emailController = TextEditingController();

GlobalKey digunakan untuk mengakses dan melakukan validasi terhadap form.

validator: (value) {
  if (value == null || value.isEmpty) {
    return 'Masukkan nama anda';
  }
  return null;
}
validator: (value) {
  if (value == null || value.isEmpty) {
    return 'Masukkan email anda';
  }

  if (!value.contains('@')) {
    return 'Email tidak valid';
  }

  return null;
}

Form hanya dapat diproses jika seluruh validator berhasil. Saat validasi berhasil, nama dan email dibaca dari controller dan ditampilkan melalui SnackBar: Validasi $name, $email Berhasil.

Hasil

Form berhasil melakukan validasi nama dan email. Data yang valid kemudian ditampilkan melalui SnackBar.

5. Implementasi User Registration Form

Setelah mempelajari dasar form input, praktikum dilanjutkan dengan membuat form pendaftaran pengguna. Form ini menggunakan TextFormField untuk nama, email, password, dan confirm password, lalu memvalidasi seluruh field sebelum submit dilakukan.

Pada bagian ini, GlobalKey<FormState>, TextEditingController, validator, dan tombol submit digunakan untuk memastikan data yang dikirim sudah benar dan konsisten.

final _formKey = GlobalKey<FormState>();

final _nameController = TextEditingController();
final _emailController = TextEditingController();
final _passwordController = TextEditingController();
final _confirmPasswordController = TextEditingController();
void _submitForm() {
  if (_formKey.currentState!.validate()) {
    ScaffoldMessenger.of(context).showSnackBar(
      const SnackBar(
        content: Text('Pendaftaran berhasil!'),
      ),
    );
  }
}

Saat tombol submit ditekan, aplikasi akan menjalankan validasi. Jika semua form sesuai aturan, maka aplikasi menampilkan pesan sukses kepada pengguna.

Hasil Akhir

Form pendaftaran pengguna berhasil dibuat dan siap menerima input dengan validasi yang tepat.

6. Pengujian

A. Pengujian Data Valid

Nama: Karimah Irsyadiyah

Email: karimahirsyadiyah@gmail.com

Password: 12345678

Status: Berhasil

B. Pengujian Email Tidak Valid

Email: karimahirsyadiyahgmail.com

Expected: Email harus menggunakan format @

Status: Berhasil

C. Pengujian Confirm Password

Password: 12345678

Confirm Password: 87654321

Status: Berhasil menolak submit

D. Pengujian Input Kosong

Action: Kosongkan semua field

Status: Berhasil menampilkan pesan validasi

7. Kesimpulan

Praktikum Mobile Application ini berhasil membuktikan bahwa form pada Flutter dapat dibuat dengan struktur yang rapi dan validasi yang aman. Basic Form memungkinkan aplikasi menerima input dari pengguna secara terarah dan mencegah data tidak valid masuk ke dalam sistem.

Penggunaan TextFormField, validator, dan GlobalKey<FormState> sangat penting untuk membangun form yang responsif, aman, dan mudah dipelihara.

Hasil Akhir

Praktikum berhasil diselesaikan dan form pendaftaran bisa dijalankan dengan validasi yang tepat.

Dokumentasi Hasil

Karimah Irsyadiyah

Mahasiswa Informatika, Universitas Andalas

Profil Profesional

Karimah Irsyadiyah adalah mahasiswa Informatika di Universitas Andalas yang menekuni pengembangan aplikasi mobile menggunakan Flutter serta dokumentasi hasil praktikum secara rapi dan profesional.