EAS - CoffeeBliss
NRP : 5025221195
Mata Kuliah : Pemrograman Perangkat Bergerak (C)
Aplikasi Coffee Bliss Digital Membership
1. Deskripsi Proyek
Aplikasi Coffee Bliss Digital Membership adalah aplikasi Android modern yang dikembangkan untuk menggantikan sistem kartu member fisik (kertas/plastik) menjadi kartu member digital berbasis aplikasi. Aplikasi ini membantu pemilik toko kopi Coffee Bliss dalam mengelola loyalitas pelanggan, mencatat transaksi penjualan, melacak perolehan poin secara otomatis, serta menyediakan sistem penukaran poin hadiah (rewards) langsung dari genggaman pengguna.
Melalui aplikasi ini, pelanggan dapat mendaftar dengan identitas unik mereka, memantau riwayat transaksi, menunjukkan kode QR keanggotaan mereka saat memesan kopi, serta menukarkan poin yang telah dikumpulkan dengan berbagai menu kopi spesial di kedai Coffee Bliss.
2. Fitur Utama Aplikasi
- Registrasi Member Baru: Formulir pendaftaran modern yang menangkap nama, alamat email, dan nomor handphone pelanggan. Validasi email dilakukan secara real-time sebelum data disimpan ke dalam database lokal.
- Daftar Member & Pencarian: Layar beranda awal menampilkan seluruh daftar member terdaftar lengkap dengan fitur pencarian interaktif dan filter status aktif.
- Digital Membership Card: Menampilkan kartu anggota eksklusif bergradien premium, nama member, ID member dengan format unik (misal: CB-00001), tingkat keanggotaan (Tier), sisa poin saat ini, serta kode QR dinamis yang dihasilkan langsung berdasarkan data unik member.
- Kalkulasi Poin Transaksi Otomatis: Setiap pembelian kelipatan Rp10.000 akan dikonversi secara otomatis menjadi 1 Poin (contoh: transaksi Rp150.000 menghasilkan 15 poin).
- Riwayat Transaksi Lengkap: Daftar rincian transaksi member yang terperinci, menampilkan tanggal transaksi, total nominal (diformat ke Rupiah), serta poin yang diperoleh dari transaksi tersebut.
- Penukaran Poin (Redeem Rewards): Menu penukaran poin interaktif yang menyediakan berbagai opsi reward kopi gratis. Tombol penukaran akan otomatis terkunci atau menyala sesuai dengan jumlah poin yang dimiliki member.
- Riwayat Penukaran Hadiah (Redeem Logs): Log penukaran poin yang mendokumentasikan nama hadiah, pengurangan poin secara kontras, serta waktu klaim untuk mempermudah barista melakukan verifikasi.
3. Arsitektur dan Teknologi
Aplikasi ini dibangun menggunakan tumpukan teknologi (tech stack) Android modern sesuai standar industri terbaru:
| Komponen / Teknologi | Teknologi / Library | Peran & Fungsi dalam Aplikasi |
|---|---|---|
| Bahasa Pemrograman | Kotlin (v1.9+) | Bahasa utama untuk pengembangan logika aplikasi yang aman, modern, dan ekspresif. |
| UI Framework | Jetpack Compose (Material 3) | Toolkit deklaratif kustom dengan tema warna premium CoffeeBliss (CoffeePrimary, CoffeeSecondary, CoffeeTertiary) serta komponen UI rounded modern. |
| Database Lokal | Room Database | Pustaka ORM untuk menyimpan entitas data Member, Transaksi, dan Riwayat Penukaran secara offline di memori perangkat. |
| Pola Arsitektur | MVVM (Model-View-ViewModel) | Memisahkan logika bisnis (ViewModel) dari elemen visual (Compose UI) menggunakan StateFlow untuk manajemen state yang reaktif. |
| Navigasi | Navigation Compose | Mengatur alur perpindahan antar layar (Splash, Member List, Register, Dashboard, QR Card, History, Add Transaksi, Rewards, Profile) secara terstruktur. |
| Utilitas Pendukung | Custom QR Code Generator | Menghasilkan bitmap kode QR langsung di perangkat tanpa membutuhkan koneksi internet atau API pihak ketiga. |
4. Skema Database (Room Database Entities)
Penyimpanan data lokal diatur melalui tiga tabel terelasi sebagai berikut:
A. Tabel members (Entitas Member)
id(INTEGER, Primary Key, Auto-Increment) - ID unik membername(TEXT) - Nama lengkap memberemail(TEXT) - Email aktifphone(TEXT) - Nomor handphone memberpoints(INTEGER) - Akumulasi poin aktif saat ini
B. Tabel transactions (Entitas Transaksi)
id(INTEGER, Primary Key, Auto-Increment) - ID transaksimemberId(INTEGER, Foreign Key) - Relasi ke ID memberamount(REAL) - Nominal pembelian dalam RupiahpointEarned(INTEGER) - Poin yang didapat dari transaksidate(TEXT) - Tanggal dan waktu transaksi dicatat
C. Tabel redeems (Entitas Penukaran Hadiah)
id(INTEGER, Primary Key, Auto-Increment) - ID klaim rewardmemberId(INTEGER, Foreign Key) - Relasi ke ID memberrewardName(TEXT) - Nama reward yang diklaim (Espresso / Cappuccino / Latte)pointsDeducted(INTEGER) - Jumlah poin yang dikurangidate(TEXT) - Tanggal dan waktu klaim reward
5. Peraturan Bisnis & Poin (Business Logic Rules)
- Rasio Poin Transaksi: Setiap transaksi senilai Rp10.000 menghasilkan 1 Poin. Angka nominal transaksi dibagi 10.000 lalu dibulatkan ke bawah (misal: Rp25.500 menghasilkan 2 Poin).
- Tingkatan Anggota (Member Tier):
- Bronze: Poin kurang dari 50.
- Silver: Poin antara 50 sampai 99.
- Gold: Poin 100 ke atas.
- Ketentuan Penukaran Hadiah (Redeem Reward):
- Espresso: Membutuhkan minimal 50 Poin.
- Cappuccino: Membutuhkan minimal 100 Poin.
- Latte Gratis: Membutuhkan minimal 150 Poin.
redeems.
Comments
Post a Comment