Naufal Khairul Rizky - 5025221127
ETS - MoneyMate (Aplikasi Pencatatan Keuangan Pribadi)
1. Ringkasan Aplikasi
MoneyMate menyediakan berbagai fitur untuk pengguna dalam mengelola keuangan sehari-hari:
-
Mencatat transaksi pemasukan dan pengeluaran secara rinci.
-
Melihat statistik keuangan melalui visualisasi data.
-
Menganalisis pola pengeluaran dan pemasukan berdasarkan kategori.
-
Mengelola transaksi keuangan dengan cara yang lebih terorganisir.
2. Alur Utama Aplikasi
-
Tampilan Awal: Menampilkan daftar transaksi, saldo total, total pemasukan, dan total pengeluaran.
-
Tambah Transaksi: Pengguna dapat menambahkan transaksi baru dengan detail lengkap.
-
Filter & Edit Transaksi: Menyediakan opsi untuk memfilter transaksi, serta fitur edit dan hapus.
-
Laporan & Statistik: Menampilkan analisis keuangan pengguna dengan grafik pie chart dan rincian kategori.
-
Pengaturan Aplikasi: Mengatur preferensi pengguna seperti mata uang.
3. Komponen Utama dan Fungsinya
a. Model Data
-
Transaction: Data class untuk menyimpan informasi transaksi (judul, jumlah, tanggal, waktu, tipe, kategori, catatan).
-
TransactionType: Enum untuk membedakan transaksi INCOME (pemasukan) dan EXPENSE (pengeluaran).
-
TransactionCategory: Enum untuk kategori transaksi seperti makanan, transportasi, gaji, bisnis, dan lain-lain.
b. Tampilan Utama (MoneyNotesApp)
-
Scaffold utama yang mengatur:
-
TopBar: Menampilkan judul aplikasi dan filter.
-
BottomBar: Navigasi antar layar utama.
-
FloatingActionButton: Tombol untuk menambah transaksi.
-
-
State aplikasi dikelola untuk menampilkan transaksi, laporan, dan pengaturan.
c. Komponen Transaksi
-
TransactionList: Menampilkan daftar transaksi dalam bentuk scrollable menggunakan LazyColumn.
-
TransactionItemCard: Kartu individu untuk setiap transaksi, menampilkan informasi seperti judul, jumlah, dan kategori.
-
AddTransactionDialog & EditTransactionDialog: Dialog input untuk menambah atau mengedit transaksi dengan validasi input.
d. Komponen Laporan
-
ReportsScreen: Halaman laporan keuangan, menampilkan:
-
PieChartByCategory: Visualisasi distribusi transaksi berdasarkan kategori.
-
CategoryReportItem: Menampilkan rincian pemasukan dan pengeluaran dengan progress bar.
-
-
Statistik Visual: Diagram pie dan tampilan kategori pemasukan/pengeluaran.
e. Komponen Pendukung
-
BalanceSummary: Menunjukkan saldo total, pemasukan, dan pengeluaran.
-
EmptyState: Menampilkan ilustrasi dan ajakan menambahkan transaksi ketika daftar kosong.
-
SettingsScreen: Pengaturan mata uang dan preferensi aplikasi.
f. Komponen UI Umum
-
TransactionTypeSelector: Pilihan tipe transaksi (Income/Expense).
-
CategoryDropdown: Pemilihan kategori transaksi.
-
DeleteConfirmationDialog: Konfirmasi sebelum menghapus transaksi.
-
ExpandableSection: Bagian UI yang dapat diperluas untuk menampilkan isi tambahan.
4. Alur Data
-
Inisialisasi: Data dummy transaksi dimuat saat aplikasi pertama kali dijalankan.
-
Operasi CRUD:
-
Create: Menambah transaksi baru ke daftar.
-
Read: Menampilkan daftar transaksi berdasarkan filter yang aktif.
-
Update: Mengedit transaksi melalui dialog edit.
-
Delete: Menghapus transaksi dengan konfirmasi.
-
-
Statistik: Menghitung total pemasukan, pengeluaran, dan membentuk data visualisasi untuk laporan.
-
Persistence: Saat ini data hanya disimpan sementara di memori (tidak menggunakan database).
5. Fitur Khusus
-
Filter Transaksi: Berdasarkan tipe (pemasukan/pengeluaran), kategori, atau tanggal.
-
Visualisasi Data:
-
Pie chart untuk distribusi pemasukan dan pengeluaran.
-
Progress bar untuk proporsi per kategori.
-
-
Responsive UI: Desain adaptif dengan dukungan animasi untuk pengalaman pengguna yang lebih halus.
-
Validasi Input: Memastikan input transaksi valid sebelum disimpan.
6. Arsitektur UI
Aplikasi ini mengikuti prinsip desain modern:
-
Composable Functions: Setiap tampilan dibangun dari komponen kecil dan reusable.
-
State Hoisting: Pengelolaan state pada level lebih tinggi untuk komponen yang membutuhkannya.
-
Unidirectional Data Flow: Aliran data satu arah untuk memastikan konsistensi UI dan state aplikasi.
-
MoneyMate - ETS PPB by Naufal Khairul
Repositori: Github
Video Demo:
Komentar
Posting Komentar