Pertemuan 13 PPB (B)

  

TUGAS 13
Membuat Aplikasi Registrasi Siswa


Nama : Tarisha Falah Basuki
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.

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.kt
Interface 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.kt
Kelas 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.kt
Menyimpan state daftar siswa (StateFlow) yang diobservasi UI, serta fungsi tambahSiswa() dan hapusSiswa() yang dipanggil dari layar form.

SiswaViewModelFactory.kt
Dibutuhkan karena SiswaViewModel punya parameter constructor (repository), jadi tidak bisa dibuat otomatis oleh sistem tanpa factory ini.

RegistrasiSiswaScreen.kt
Tampilan 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.kt
Entry point aplikasi. Merakit AppDatabaseSiswaRepositorySiswaViewModel, lalu menampilkan RegistrasiSiswaScreen.

6. Hasil





Comments

Popular posts from this blog

Pertemuan 4-5 PPB (B) - 11/03/2026

Pertemuan 1 PPB (B) - 25/02/2026

Evaluasi Tengah Semester (ETS) PPB (B)