Skip to content

Sebuah aplikasi android sederhana untuk mencatat keuangan, memberikan keterangan jumlah saldo, dan input bagi pengguna. Aplikasi android pertama yang dibuat 😊 !!!

Notifications You must be signed in to change notification settings

rookieean/Financial-Tracking-Android-App

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

6 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“± Personal Finance Tracker

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.

✨ Fitur

  • 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

πŸ› οΈ Teknologi yang Digunakan

  • 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

πŸ“‹ Requirements

  • 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

πŸš€ Cara Install & Build

1. Clone atau Download Project

git clone <repository-url>
cd Financial-Tracking-Android-App

2. Buka di Android Studio

  1. Buka Android Studio
  2. Pilih File > Open dan pilih folder project
  3. Tunggu Android Studio melakukan sync dengan Gradle

3. Build APK

Via Android Studio (Recommended):

  1. Klik menu Build β†’ Build Bundle(s) / APK(s) β†’ Build APK(s)
  2. Tunggu proses build selesai
  3. 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

4. Install ke Perangkat

  1. Transfer file app-debug.apk ke perangkat Android Anda
  2. Aktifkan Install from Unknown Sources di pengaturan perangkat
  3. Buka file APK dan ikuti instruksi instalasi

πŸ“ Struktur Project

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

πŸ’‘ Penjelasan Kode

MainActivity.kt

Activity utama yang menghubungkan UI dengan database:

  • View Binding: Menggunakan ActivityMainBinding untuk 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 adapter
  • setupButton() - Handler untuk tombol "Tambah" yang menyimpan transaksi ke database
  • observeTransactions() - Mengamati perubahan data transaksi dan update RecyclerView
  • observeTotalBalance() - Mengamati perubahan total saldo dan update TextView

TransactionEntity.kt

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

TransactionDao.kt

Data Access Object untuk operasi CRUD:

  • insert() - Menyimpan transaksi baru
  • getAllTransactions() - Mengambil semua transaksi (mengembalikan Flow)
  • getTotalBalance() - Menghitung total saldo (mengembalikan Flow)

AppDatabase.kt

Database Room dengan singleton pattern:

  • Menggunakan Room.databaseBuilder() untuk membuat instance database
  • Nama database: personal_finance_db
  • Version: 1

TransactionAdapter.kt

Adapter untuk RecyclerView yang menampilkan daftar transaksi:

  • Menggunakan View Binding untuk item layout
  • submitList() - Update data RecyclerView ketika ada perubahan

🎨 UI Components

  • 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

πŸ“ Cara Menggunakan

  1. Menambah Transaksi:

    • Isi field "Nama Transaksi" dengan nama transaksi (contoh: "Makan Siang")
    • Isi field "Nominal" dengan jumlah uang (contoh: 50000)
    • Klik tombol "Tambah"
  2. Melihat Total Saldo:

    • Total saldo otomatis terupdate di bagian atas layar
  3. Melihat Riwayat:

    • Semua transaksi yang pernah ditambahkan akan muncul di daftar bawah
    • Transaksi terbaru muncul di paling atas

πŸ”§ Konfigurasi

Mengubah Min SDK

Edit app/build.gradle:

defaultConfig {
    minSdk 27  // Ubah sesuai kebutuhan
}

Mengubah Nama Aplikasi

Edit app/src/main/res/values/strings.xml:

<string name="app_name">Nama Aplikasi Anda</string>

πŸ› Troubleshooting

Error: "Unsupported class file major version"

  • Pastikan Gradle JDK dikonfigurasi ke JDK 17 atau 11 di Android Studio
  • Settings β†’ Build, Execution, Deployment β†’ Build Tools β†’ Gradle β†’ Gradle JDK

Error: "Plugin not found"

  • Pastikan settings.gradle sudah dikonfigurasi dengan benar
  • Sync project dengan Gradle Files

Error: "Resource not found"

  • Pastikan semua resource (themes.xml, colors.xml, icon) sudah dibuat
  • Clean dan Rebuild project

πŸ“„ License

Project ini dibuat untuk tujuan pembelajaran.

Demo

Screenrecording_20260129_123539.mp4

πŸ‘¨β€πŸ’» Author

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.

About

Sebuah aplikasi android sederhana untuk mencatat keuangan, memberikan keterangan jumlah saldo, dan input bagi pengguna. Aplikasi android pertama yang dibuat 😊 !!!

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •