Tuesday, April 28, 2026

PPB ETS - MyMoney Notes

Membuat Aplikasi Keuangan "MyMoney Notes" dengan Jetpack Compose & Room Database

MyMoney Notes adalah aplikasi pencatatan keuangan pribadi berbasis Android yang dirancang untuk membantu pengguna mengelola arus kas (pemasukan dan pengeluaran) secara efisien. Dengan antarmuka modern menggunakan Jetpack Compose dan penyimpanan lokal yang aman menggunakan Room Database.

Anggota Kelompok:
  • Aryaka Leorgi Epridaka - 5025231117
  • Muhammad Risyad Himawan Putra - 5025231205

Akses Project:
Source Code: https://github.com/AryakaLeorgi/MyMoneyNotes
Presentasi (PPT): https://drive.google.com/file/d/1uC5WQZkmNkFck--wN4OG81x_t9ZKMs6n/view?usp=sharing
Download APK: https://github.com/AryakaLeorgi/MyMoneyNotes/releases/download/APK/MyMoney-Notes_1.0.apk
Video presentasi: https://youtu.be/aRvOIZ2ANoc


1. Deskripsi & Fitur Utama

Aplikasi ini menganut arsitektur MVVM (Model-View-ViewModel) untuk memastikan kode terstruktur dan mudah dikelola. Fitur utama meliputi:

  • Dashboard Keuangan: Pantau total saldo, pemasukan, dan pengeluaran secara real-time.
  • Statistik Visual: Grafik batang harian dan diagram lingkaran alokasi dana per kategori.
  • Riwayat Transaksi: Pencatatan detail dengan fitur Edit dan Hapus transaksi.
  • Multi-Step Wizard: Form tambah transaksi yang intuitif untuk meminimalkan kesalahan input.
  • Penyimpanan Lokal: Data tersimpan aman di perangkat menggunakan SQLite melalui Room Database.

2. MainActivity (Entry Point)

class MainActivity : ComponentActivity() { private val viewModel: TransactionViewModel by viewModels() override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) enableEdgeToEdge() setContent { MyMoneyNotesTheme { MyMoneyApp(viewModel) } } } }

3. Data Model (Room Entity)

@Entity(tableName = "transactions") data class Transaction( @PrimaryKey val id: String = UUID.randomUUID().toString(), val type: TransactionType, val category: String, val amount: Double, val date: Long )

4. Penjelasan Arsitektur

  • Model (Room Entity): Digunakan untuk mendefinisikan skema tabel database. Dengan Room, kita bisa berinteraksi dengan SQLite menggunakan objek Kotlin biasa tanpa perlu menulis SQL mentah yang rumit.
  • ViewModel & StateFlow: Otak dari aplikasi. ViewModel mengelola state UI secara reaktif menggunakan StateFlow. Ketika data di database berubah, UI akan otomatis memperbarui tampilannya tanpa perlu refresh manual.
  • Repository Pattern: Bertindak sebagai jembatan antara Database (DAO) dan ViewModel. Ini memastikan logika pengambilan data terpusat dan rapi.
  • Jetpack Compose UI: Seluruh tampilan dibangun secara deklaratif. Komponen seperti DailyBarChart dan TransactionRow dibuat secara modular sehingga kode sangat mudah dibaca dan dikembangkan.

5. Cara Instalasi

  1. Download file APK melalui link yang disediakan di atas.
  2. Izinkan instalasi dari sumber tidak dikenal pada pengaturan Android Anda.
  3. Buka aplikasi dan mulai catat keuangan Anda!

Tampilan Aplikasi

 

No comments:

Post a Comment

PPB EAS - Aplikasi Member Timezone

Manajemen Keanggotaan & Loyalty Program Timezone dengan Room Database dan Jetpack Compose Aryaka Leorgi Epridaka - 5025231117 Muhammad ...