Lewati ke konten utama

Tugas 8: Flutter Navigation, Layouts, Forms, and Input Elements

Pemrograman Berbasis Platform (CSGE602022) Diselenggarakan oleh Fakultas Ilmu Komputer Universitas Indonesia Semester Ganjil 2025/2026

Deskripsi Tugas

Pada tugas ini, kamu akan mengimplementasikan navigation, layout, form, dan form input elements pada aplikasi Flutter yang kamu buat pada tugas sebelumnya.

Checklist untuk tugas ini adalah sebagai berikut:

  • Membuat minimal satu halaman baru pada aplikasi, yaitu halaman formulir tambah produk baru dengan ketentuan sebagai berikut:
    • Memakai minimal tiga elemen input, yaitu name, price, dan description.
      Tambahkan elemen input lain sesuai dengan model pada aplikasi Football Shop Django yang telah kamu buat (misalnya thumbnail, category, dan isFeatured).
    • Memiliki sebuah tombol Save.
    • Setiap elemen input di formulir juga harus divalidasi dengan ketentuan sebagai berikut:
      • Setiap elemen input tidak boleh kosong.
      • Setiap elemen input harus berisi data dengan tipe data atribut modelnya.
bahaya

⚠️ Peringatan:
Perhatikan kasus seperti angka negatif, panjang string minimum/maksimum, dan format data (misalnya URL untuk thumbnail). Tidak hanya tipe datanya saja!

  • Mengarahkan pengguna ke halaman form tambah produk baru ketika menekan tombol Tambah Produk pada halaman utama.

  • Memunculkan data sesuai isi dari formulir yang diisi dalam sebuah pop-up setelah menekan tombol Save pada halaman form tambah produk baru.

  • Membuat sebuah drawer pada aplikasi dengan ketentuan sebagai berikut:

    • Drawer minimal memiliki dua buah opsi, yaitu Halaman Utama dan Tambah Produk.
    • Ketika memilih opsi Halaman Utama, aplikasi akan mengarahkan pengguna ke halaman utama.
    • Ketika memilih opsi Tambah Produk, aplikasi akan mengarahkan pengguna ke halaman form tambah produk baru.
  • Menjawab beberapa pertanyaan berikut pada README.md pada root folder (silakan modifikasi README.md yang telah kamu buat sebelumnya dan tambahkan subjudul untuk setiap tugas):

    • Jelaskan perbedaan antara Navigator.push() dan Navigator.pushReplacement() pada Flutter. Dalam kasus apa sebaiknya masing-masing digunakan pada aplikasi Football Shop kamu?

    • Bagaimana kamu memanfaatkan hierarchy widget seperti Scaffold, AppBar, dan Drawer untuk membangun struktur halaman yang konsisten di seluruh aplikasi?

    • Dalam konteks desain antarmuka, apa kelebihan menggunakan layout widget seperti Padding, SingleChildScrollView, dan ListView saat menampilkan elemen-elemen form? Berikan contoh penggunaannya dari aplikasi kamu.

    • Bagaimana kamu menyesuaikan warna tema agar aplikasi Football Shop memiliki identitas visual yang konsisten dengan brand toko?

  • Melakukan add, commit, dan push ke GitHub.


🕛 Tenggat Waktu: Rabu, 12 November 2025, pukul 12.00 siang.