Aplikasi Android sederhana untuk melacak keuangan pribadi. Dibangun dengan Kotlin menggunakan Android Studio, aplikasi ini memungkinkan Anda mencatat transaksi keuangan dan melihat total saldo secara real-time.
- Total Saldo Real-time: Menampilkan total saldo di bagian atas layar
- Input Transaksi: Form sederhana untuk menambahkan nama transaksi dan nominal
- Riwayat Transaksi: Daftar semua transaksi yang pernah dicatat menggunakan RecyclerView
- Penyimpanan Lokal: Data disimpan secara lokal menggunakan Room Database
- UI Modern: Desain bersih dan modern menggunakan Material Components
- Kotlin - Bahasa pemrograman utama
- Android SDK - Min SDK 27 (Android 8.1 Oreo)
- Room Database - Database lokal untuk menyimpan transaksi
- View Binding - Untuk mengakses view dengan type-safe
- Material Components - Komponen UI modern
- Coroutines & Flow - Untuk operasi asynchronous dan reactive data
- RecyclerView - Menampilkan daftar transaksi
- Android Studio (Hedgehog atau lebih baru)
- JDK 17 atau 11 (untuk Gradle)
- Android SDK dengan API Level 27 atau lebih tinggi
- Perangkat Android dengan Android 8.1 (API 27) atau lebih tinggi
git clone <repository-url>
cd Financial-Tracking-Android-App- Buka Android Studio
- Pilih File > Open dan pilih folder project
- Tunggu Android Studio melakukan sync dengan Gradle
Via Android Studio (Recommended):
- Klik menu Build β Build Bundle(s) / APK(s) β Build APK(s)
- Tunggu proses build selesai
- File APK akan tersimpan di:
app/build/outputs/apk/debug/app-debug.apk
Via Command Line:
# Pastikan Gradle JDK sudah dikonfigurasi ke JDK 17 atau 11
.\gradlew.bat assembleDebug- Transfer file
app-debug.apkke perangkat Android Anda - Aktifkan Install from Unknown Sources di pengaturan perangkat
- Buka file APK dan ikuti instruksi instalasi
app/
βββ src/
β βββ main/
β βββ java/com/example/app/
β β βββ MainActivity.kt # Activity utama dengan logika aplikasi
β β βββ data/
β β β βββ TransactionEntity.kt # Entity untuk tabel transaksi
β β β βββ TransactionDao.kt # DAO untuk operasi database
β β β βββ AppDatabase.kt # Database Room
β β βββ ui/
β β βββ TransactionAdapter.kt # Adapter untuk RecyclerView
β βββ res/
β β βββ layout/
β β β βββ activity_main.xml # Layout utama
β β β βββ item_transaction.xml # Layout item RecyclerView
β β βββ values/
β β βββ strings.xml # String resources
β β βββ themes.xml # Theme aplikasi
β β βββ colors.xml # Warna aplikasi
β βββ AndroidManifest.xml
βββ build.gradle # Konfigurasi build
Activity utama yang menghubungkan UI dengan database:
- View Binding: Menggunakan
ActivityMainBindinguntuk mengakses view dengan aman - Room Database: Menggunakan singleton pattern untuk instance database
- Coroutines: Operasi database dijalankan di background thread (
Dispatchers.IO) - Flow: Menggunakan Flow untuk reactive updates - UI otomatis update ketika data berubah
Fungsi Utama:
setupRecyclerView()- Inisialisasi RecyclerView dengan adaptersetupButton()- Handler untuk tombol "Tambah" yang menyimpan transaksi ke databaseobserveTransactions()- Mengamati perubahan data transaksi dan update RecyclerViewobserveTotalBalance()- Mengamati perubahan total saldo dan update TextView
Entity Room yang merepresentasikan tabel transactions:
@Entity(tableName = "transactions")
data class TransactionEntity(
@PrimaryKey(autoGenerate = true)
val id: Int = 0,
val name: String,
val amount: Long
)@Entity- Menandakan ini adalah tabel database@PrimaryKey(autoGenerate = true)- ID otomatis bertambah
Data Access Object untuk operasi CRUD:
insert()- Menyimpan transaksi barugetAllTransactions()- Mengambil semua transaksi (mengembalikan Flow)getTotalBalance()- Menghitung total saldo (mengembalikan Flow)
Database Room dengan singleton pattern:
- Menggunakan
Room.databaseBuilder()untuk membuat instance database - Nama database:
personal_finance_db - Version: 1
Adapter untuk RecyclerView yang menampilkan daftar transaksi:
- Menggunakan View Binding untuk item layout
submitList()- Update data RecyclerView ketika ada perubahan
- MaterialCardView - Kartu untuk Total Saldo dan Form Input
- TextInputLayout & TextInputEditText - Input field dengan Material Design
- RecyclerView - Menampilkan daftar transaksi
- ConstraintLayout - Layout utama dengan constraint-based positioning
-
Menambah Transaksi:
- Isi field "Nama Transaksi" dengan nama transaksi (contoh: "Makan Siang")
- Isi field "Nominal" dengan jumlah uang (contoh: 50000)
- Klik tombol "Tambah"
-
Melihat Total Saldo:
- Total saldo otomatis terupdate di bagian atas layar
-
Melihat Riwayat:
- Semua transaksi yang pernah ditambahkan akan muncul di daftar bawah
- Transaksi terbaru muncul di paling atas
Edit app/build.gradle:
defaultConfig {
minSdk 27 // Ubah sesuai kebutuhan
}Edit app/src/main/res/values/strings.xml:
<string name="app_name">Nama Aplikasi Anda</string>- Pastikan Gradle JDK dikonfigurasi ke JDK 17 atau 11 di Android Studio
- Settings β Build, Execution, Deployment β Build Tools β Gradle β Gradle JDK
- Pastikan
settings.gradlesudah dikonfigurasi dengan benar - Sync project dengan Gradle Files
- Pastikan semua resource (themes.xml, colors.xml, icon) sudah dibuat
- Clean dan Rebuild project
Project ini dibuat untuk tujuan pembelajaran.
Screenrecording_20260129_123539.mp4
Dibuat sebagai project pembelajaran untuk pemula yang berpindah dari web development ke Android development.
Note: Project ini menggunakan View Binding (bukan findViewById) dan Room Database untuk best practices Android modern.