Anda di halaman 1dari 4

1. Main.

dart
mengimpor paket yang diperlukan ( flutter/material.dartuntuk widget Flutter dan
data_siswa/ui/beranda_page.dart
Fungsi tersebut main adalah titik masuk aplikasi Dart Anda. Dalam hal ini, ia memanggil
runAppfungsi untuk menjalankan MyApp

MyAppadalah widget ( StatelessWidget) yang berarti tidak memiliki status yang


dapat diubah.

Metode ini buildmengembalikan MaterialAppwidget yang merupakan root

debugShowCheckedModeBannerdisetel ke false untuk menyembunyikan spanduk


debug.

homeproperti disetel ke BerandaPage(), yang merupakan halaman awal aplikasi

2. Beranda_page.dart
1. **Import Statements:** ```dart import 'package:flutter/material.dart'; import
'beranda_item_data.dart'; ``` - **Pentingnya:** Mendeklarasikan impor paket Flutter
yang dibutuhkan, seperti `flutter/material.dart` untuk widget Flutter dan
`'beranda_item_data.dart'` yang diasumsikan berisi definisi dari widget `ItemData`.

2. **BerandaPage Class:** ```dart class BerandaPage extends StatefulWidget


{ @override _BerandaPageState createState() => _BerandaPageState(); } ``` -
**Pentingnya:** Mendefinisikan kelas `BerandaPage`, yang merupakan widget
berkeadaan (`StatefulWidget`). Ini berarti widget dapat memiliki keadaan yang dapat
berubah selama siklus hidup widget. - **Fungsinya:** Membuat dan mengembalikan
instance dari kelas `_BerandaPageState` melalui metode `createState()`. Kelas
`_BerandaPageState` adalah kelas keadaan terkait untuk `BerandaPage`.

3. **_BerandaPageState Class:** ```dart class _BerandaPageState extends


State<BerandaPage> { @override Widget build(BuildContext context) { return
Scaffold( appBar: AppBar( title: Text("Data Mahasiswa"), ), body: ListView( children:
[ItemData()], ), ); } } ``` -

**Pentingnya:** Mendefinisikan kelas `_BerandaPageState`, yang merupakan kelas


keadaan terkait untuk `BerandaPage`. Kelas ini mengimplementasikan metode `build`
yang diperlukan untuk mengonstruksi tampilan widget. - **Fungsinya:** - Membuat
dan mengembalikan sebuah widget `Scaffold`, yang menyediakan kerangka dasar
untuk aplikasi desain material. - Widget `AppBar`: Menyediakan bilah aplikasi di
bagian atas dengan judul "Data Mahasiswa". - Widget `body`: Sebuah `ListView`,
yaitu instance dari widget `ItemData`. Ini mengindikasikan bahwa widget `ItemData`
dimaksudkan untuk merepresentasikan data terkait Mahasiswa. Dengan kata lain,
kode tersebut menggambarkan suatu layar atau halaman (`BerandaPage`) dalam
aplikasi Flutter yang menampilkan daftar data mahasiswa dengan menggunakan
widget `ItemData`. Desain dan logika sebenarnya dari widget `ItemData` diharapkan
akan diimplementasikan dalam file `'beranda_item_data.dart'`.

3. Data_item.dart

 Pentingnya: Mendefinisikan kelas ItemData,StatelessWidget). Ini


berarti widget ini tidak memiliki keadaan yang dapat berubah selama
siklus hidupnya.
 Fungsinya: Membuat dan mengembalikan tampilan widget. Dalam hal
ini, widget tersebut adalah GestureDetector

DataItem adalah sebuah kelas Flutter yang merupakan turunan dari


StatelessWidget. Ini berarti DataItem adalah widget tanpa keadaan, yang
artinya widget ini tidak memiliki keadaan internal yang dapat berubah.

 final String id;: Sebuah properti (field) yang merupakan identifier


unik untuk setiap instansi DataItem.
 final String nama;: Properti yang menyimpan informasi tentang
nama dalam instansi DataItem.
 final String alamat;: Properti yang menyimpan informasi tentang
alamat dalam instansi DataItem.

DataItem({ required this.id, required this.nama, required


this.alamat });: Ini adalah konstruktor dari kelas DataItem. Konstruktor ini
menerima tiga parameter yang diperlukan (required) yaitu id, nama, dan alamat,
dan kemudian menginisialisasi properti sesuai dengan nilai-nilai yang diberikan.

Dengan adanya konstruktor dan properti ini, setiap instance dari kelas DataItem
harus dibuat dengan memberikan nilai untuk id, nama, dan alamat.

Pada intinya, kelas DataItem ini dirancang untuk menyimpan data spesifik (seperti
id, nama, dan alamat) yang dapat digunakan dalam pembangunan antarmuka
pengguna (UI) Flutter. Ketika instance DataItem digunakan dalam UI, propertinya
dapat diakses untuk menampilkan informasi yang sesuai.

 GestureDetector. Widget ini mendeteksi gesture pengguna, seperti


ketukan (tap).
 Didalam GestureDetector, ada widget Card yang berisi widget
ListTile. Ini menciptakan kartu dengan judul "Data Mahasiswa" dan
subjudul "BSI".
 Mengatur fungsi onTap untuk mendeteksi ketukan pada
GestureDetector. Ketika diakses, fungsi ini memicu navigasi ke
halaman baru menggunakan Navigator.of(context).push(...).
 Pada contoh ini, navigasi tersebut akan membawa pengguna ke
halaman yang didefinisikan oleh widget DataPage (diasumsikan ada di
'data_page.dart').

4. data detail

Menampilkan detail data mahasiswa dalam tiga kartu ( Card) yang berisi informasi
ID, nama, dan alamat.

menampilkan dua tombol ( Ubah dan Hapus) dalam satu baris menggunakan Row.

(Ubah). Saat tombol ini ditekan, akan membuka halaman DataForm menggunakan
Navigator.push.

Hapus saat tombol ini ditekan, akan menampilkan dialog konfirmasi penghapusan.
Jika pengguna memilih "YA", dialog ditutup, dan halaman DataPage dibuka
menggunakan Navigator.pushReplacement. Jika "Tidak" dipilih, dialog ditutup

5. data page

GestureDetector sebagai elemen aksi di AppBar dengan ikon tambah


(Icon(Icons.add)). Saat ikon ini ditekan ( onTap), akan membuka halaman
DataForm menggunakan Navigator.push.

Listview fungsinya menampilkan daftar item yang ada dalam dataitem.

6.data form

_DataFormState adalah kelas yang mengimplementasikan state untuk widget


DataForm. Ini memungkinkan kita untuk menyimpan dan mengelola status internal
dari widget

GlobalKey<FormState> digunakan untuk membuat kunci yang digunakan untuk


mengakses dan memvalidasi status formulir.

TextEditingController digunakan untuk mengontrol dan mengelola teks yang


dimasukkan oleh pengguna ke dalam masing-masing kolom formulir (ID, nama,
alamat).

Final fromkey globalkey formstate fungsinya untuk mengakses status dan metode
validasi formulir

Scaffold untuk menampilkan app bar dan body-nya

SingleChildScrollView digunakan untuk mengatasi masalah overflow jika


kontennya lebih besar dari layar

(Form) yang berisi tiga kolom teks (ID, nama, alamat) dan tombol Simpan.
Fungsi textfield untuk Membuat tiga kolom teks seperti (ID, nama, alamat),

Dan _idTextboxController, _namaTextboxController,


_alamatTextboxController adalah sebagai label text yang
sebelumnya sudah disiapkan

Jadi ketika tombol "Simpan" menggunakan widget ElevatedButton. Saat


tombol ini ditekan, mengambil nilai dari masing-masing kolom teks menggunakan
controller ( _idTextboxController.text, _namaTextboxController.text,
_alamatTextboxController.text).

menggunakan Navigator untuk berpindah ke halaman DataDetail sambil


membawa data yang telah dimasukkan.

7.data update form.dart

required this.data: Parameter wajib yang bertipe Data. Ini digunakan untuk
membawa data yang akan diperbarui atau diubah.

Create State: Metode createState() digunakan untuk membuat dan


mengembalikan instance dari state ( _DataUpdateFormState). State ini akan berisi
logika dan data yang bersifat dinamis dan dapat berubah sepanjang waktu

 initState adalah metode yang dimiliki oleh stateful widget dalam


Flutter. Metode ini dipanggil sekali ketika stateful widget pertama kali
dibuat.
 super.initState() memanggil metode initState dari superclass,
yang melakukan inisialisasi dasar stateful widget.
 setState digunakan untuk memberi tahu Flutter bahwa state widget
akan berubah dan perlu diperbarui. Dalam blok setState,


Navigator.pop(context) untuk kembali ke halaman sebelumnya. Ini
dapat digunakan untuk menutup halaman formulir atau dialog saat
tombol ditekan.
 Kemudian, menggunakan Navigator.pushReplacement untuk
menggantikan halaman saat ini dengan halaman baru

Anda mungkin juga menyukai