EAS PPB

Nama: Dewa Putu Ananda Taurean Mahesa

NRP: 5025231158

Kelas: Pemrograman Perangkat Bergerak C


Source code aplikasi

Video demo YouTube

Link Drive aplikasi (APK, User Manual, Infografis)



Book Summoner - Aplikasi Keanggotaan Toko Buku

Aplikasi mobile digital yang dirancang khusus untuk toko buku guna menggantikan penggunaan kartu anggota fisik. Aplikasi ini membantu pengguna mendaftar, melihat kartu keanggotaan digital, mencatat riwayat transaksi untuk mengumpulkan poin, serta menukarkan poin tersebut dengan berbagai hadiah. Dengan desain yang premium dan tata letak yang bersih, aplikasi ini memberikan pengalaman pengguna yang efisien, modern, dan praktis.

Fitur Utama

  1. Autentikasi Pengguna

  • Register: Pengguna baru dapat membuat akun dengan menginputkan Nama, Email, Nomor Telepon, dan Password melalui UI form. Setelah berhasil, aplikasi akan otomatis menghasilkan Member ID unik (misalnya: BS-A1B2C3).

  • Login: Pengguna dapat masuk menggunakan Email atau Nomor Telepon beserta Password. Sistem akan memvalidasi data menggunakan sesi aktif.

  1. Dashboard & Kartu Anggota Digital

  • Home Dashboard: Menampilkan sapaan pengguna, total poin terkumpul saat ini, dan menu navigasi grid untuk mengakses fitur lainnya.

  • Member Card: Menampilkan kartu keanggotaan virtual berdesain elegan yang memuat informasi Nama, Member ID, status keanggotaan, dan saldo poin. Kartu ini juga dilengkapi dengan QR Code yang di-generate secara dinamis untuk keperluan pemindaian di kasir.

  1. Pencatatan Transaksi & Kalkulasi Poin

  • Input Transaksi: Pengguna dapat memasukkan nominal pembelian (dalam Rupiah) untuk mendapatkan poin.

  • Kalkulasi Otomatis: Sistem secara dinamis memproses poin dengan aturan: 1 poin untuk setiap kelipatan pembelanjaan Rp 50.000 (menggunakan integer division).

  • Riwayat Transaksi: Seluruh transaksi yang telah dimasukkan dapat dilihat dalam bentuk list, lengkap dengan informasi tanggal, jumlah belanja, dan poin yang diperoleh.

  1. Penukaran Hadiah (Rewards)

  • Katalog Hadiah: Menampilkan daftar rewards yang tersedia (seperti Pembatas Buku Eksklusif, Buku Gratis, dan Voucher Toko) beserta harga poinnya.

  • Redeem: Pengguna dapat menukarkan hadiah jika saldo poin mencukupi. Terdapat dialog konfirmasi sebelum penukaran. Setelah berhasil, poin akan otomatis terpotong dari saldo utama.

  1. Manajemen Profil

  • Pengguna dapat melihat detail informasi pribadi.

  • Terdapat mode Edit untuk mengubah Nama, Email, dan Nomor Telepon.

  • Pengguna dapat melakukan Logout (keluar sesi) atau Delete Account (menghapus data pengguna secara permanen dari database).

Antarmuka dan Pengalaman Pengguna

  • UI dibangun sepenuhnya menggunakan Jetpack Compose dengan pendekatan desain modern, minimalis, dan bersih.

  • Tema warna menggunakan kustomisasi Crimson Red sebagai warna utama (primary) untuk memberikan nuansa yang elegan dan menarik.

  • Tipografi menggunakan perpaduan font kustom (PT Sans Narrow untuk headline/title) dan font standar untuk body text agar keterbacaan tetap optimal.

  • Layout dirancang menggunakan komponen Scaffold dengan TopAppBar untuk navigasi kembali yang konsisten. Layar utama menggunakan sistem grid untuk menu, sedangkan layar profil memisahkan aksi logout dan delete account dengan teks dan ikon Material Design.

  • Penggunaan efek gradient pada kartu anggota serta bayangan (elevation) pada komponen Card untuk menghilangkan kesan datar (flat) pada Material Design 3.

  • Memberikan umpan balik visual menggunakan AlertDialog untuk operasi konfirmasi data (penambahan transaksi, penukaran poin, logout, hapus akun) serta Toast/Text notifikasi keberhasilan aksi.

Rangkuman Teknis

Aplikasi dikembangkan menggunakan Android Studio dengan bahasa pemrograman Kotlin, UI framework Jetpack Compose, sistem routing Navigation Compose, desain Material Design 3, serta arsitektur perangkat lunak Model-View-ViewModel (MVVM).

  • Model (Database & DAO): Memanfaatkan Room Database sebagai media penyimpanan data lokal (secara luring). Terdapat tiga entity utama: User (menyimpan data pengguna), Transaction (menyimpan riwayat belanja dan poin didapat), serta RewardTransaction (menyimpan riwayat penukaran hadiah).

  • View: Mencakup MainActivity sebagai titik masuk (entry point) aplikasi yang menampung NavHost, serta sekumpulan fungsi Composable yang bertugas me-render UI dan merespons interaksi pengguna.

  • ViewModel: BookSummonerViewModel bertindak sebagai otak aplikasi. Kelas ini bertanggung jawab atas kalkulasi poin dinamis (total poin transaksi dikurangi total poin penukaran), pengelolaan sesi pengguna, penulisan ke database melalui fungsi Coroutines, serta menyediakan aliran data real-time ke antarmuka pengguna melalui StateFlow.

  • Library Tambahan: Menggunakan library eksternal ZXing (Zebra Crossing) untuk menghasilkan gambar QR Code dari Member ID pengguna ke dalam bentuk Bitmap.

Comments

Popular posts from this blog

Tugas Pertemuan 7 - LoginPage

Tugas Pertemuan 11 - MarketSiswa

Tugas Pertemuan 13 - Registrasi Siswa