Pertemuan 13 PPB (B)
TUGAS 13
Membuat Aplikasi Registrasi Siswa
Nama : Tarisha Falah Basuki
NRP : 5025231043
NRP : 5025231043
Kelas : PPB (B)
Aplikasi ini punya 1 layar utama: form tambah siswa di bagian atas, dan daftar siswa yang sudah terdaftar otomatis muncul di bawahnya (update real-time begitu ada data baru disimpan). Stack: Kotlin + Jetpack Compose + Room + ViewModel.
Berikut langkah-langkah membuat aplikasi Login Sederhana MVVM menggunakan Android Studio:
1. Membuat Project Baru
- Buka Android Studio.
- Klik New Project.
- Pilih template Empty Activity.
- Klik New Project.
- Pilih template Empty Activity.
2. Mengisi Konfigurasi Project
- Isi data project seperti berikut:
Name : SiswaApp
Package name : com.example.siswaapp
Save location : pilih folder penyimpanan
Language : Java atau Kotlin
Minimum SDK : pilih API 24 (Android 7.0)
- Klik Finish.
- Android Studio akan membuat project dan melakukan Gradle build (tunggu sampai selesai).
3. Menambahkan Dependency
Buka
build.gradle.kts (Module :app), tambahkan plugin KSP dan dependency Room + ViewModel. Klik Sync Now.4. Merancang Struktur MVVM
app/src/main/java/com/example/siswaapp/
│
├── data/
│ ├── local/
│ │ ├── SiswaEntity.kt
│ │ ├── SiswaDao.kt
│ │ └── AppDatabase.kt
│ └── repository/
│ └── SiswaRepository.kt
│
├── ui/
│ ├── screen/
│ │ └── RegistrasiSiswaScreen.kt
│ └── viewmodel/
│ ├── SiswaViewModel.kt
│ └── SiswaViewModelFactory.kt
│
└── MainActivity.kt
5. Isi Kode setiap File/Class
SiswaEntity.kt Mendefinisikan struktur tabel
siswa di database (kolom nama, NIS, kelas, alamat). Setiap objek SiswaEntity mewakili satu baris/satu siswa yang tersimpan.SiswaDao.ktInterface berisi query ke database: menyimpan siswa baru, mengambil semua siswa (dalam bentuk
Flow supaya UI otomatis ter-update saat ada perubahan data), dan menghapus siswa.AppDatabase.ktKelas database Room yang dibuat sebagai singleton, supaya hanya ada satu instance koneksi database selama aplikasi berjalan.
SiswaRepository.kt Lapisan perantara antara
SiswaDao dan ViewModel. Tujuannya supaya ViewModel tidak perlu tahu detail Room, cukup panggil fungsi repository.SiswaViewModel.ktMenyimpan state daftar siswa (
StateFlow) yang diobservasi UI, serta fungsi tambahSiswa() dan hapusSiswa() yang dipanggil dari layar form.SiswaViewModelFactory.ktDibutuhkan karena
SiswaViewModel punya parameter constructor (repository), jadi tidak bisa dibuat otomatis oleh sistem tanpa factory ini.
RegistrasiSiswaScreen.ktTampilan Compose: form input (Nama, NIS, Kelas, Alamat) di atas, dan
LazyColumn di bawah yang menampilkan semua siswa yang sudah terdaftar, lengkap dengan tombol hapus per item.
MainActivity.ktEntry point aplikasi. Merakit
AppDatabase → SiswaRepository → SiswaViewModel, lalu menampilkan RegistrasiSiswaScreen.
6. Hasil
Comments
Post a Comment