- Nama: Muhammad Afif Khosyidzaki
- Kelas: SIB-3G
- NIM: 2341760159
- Nomor ID: 14
Saya mahasiswa Program Studi Sistem Informasi Bisnis di Politeknik Negeri Malang. Saat ini mengikuti mata kuliah Pemrograman Mobile dan aktif mengembangkan aplikasi berbasis Flutter. Saya tertarik pada pengembangan perangkat lunak dan aplikasi mobile, serta ingin terus mengasah kemampuan praktis saya melalui proyek nyata.
- Email: [email protected]
Proyek ini adalah aplikasi Flutter sederhana untuk tugas mata kuliah Pemrograman Mobile. Tujuan proyek: belajar struktur proyek Flutter, state management dasar, dan pembuatan UI yang responsif.
- Tampilan biodata mahasiswa
- Struktur proyek Flutter siap dikembangkan
- Contoh navigasi dan layout dasar
Aplikasi Flutter untuk mencatat dan menganalisis pengeluaran pengguna.
Saku Rapi adalah aplikasi keuangan pribadi berbasis Flutter yang membantu pengguna mencatat, mengelola, dan menganalisis pengeluaran mereka secara efisien. Aplikasi dirancang dengan antarmuka yang sederhana namun informatif, sehingga pengguna dapat memahami alur keuangan harian dengan cepat.
Repo:
apip2pipp/individual-project-3g-apip2pipp
Deskripsi: Logo Saku Rapi dibangun dari dua bentuk utama: hijau (keuangan real pengguna) dan biru (bantuan analisis yang terpercaya). Keduanya bertemu di ruang putih โ ruang yang bersih, jujur, dan mudah dipahami. Hijau mewakili pertumbuhan finansial sehari-hari. Biru mewakili kendali dan ketenangan dalam mengambil keputusan. Putih di tengah merepresentasikan transparansi: tidak ada lagi pengeluaran yang โhilang entah kemana,โ semuanya terang. Filosofinya sederhana: uangmu aman, jelas, dan di bawah kendali kamu. Saku Rapi.
Deskripsi: Tampilan pertama ketika aplikasi dibuka. Splash menampilkan logo aplikasi beberapa detik sebelum menuju onboarding atau login. Transisi umumnya diatur menggunakan
Future.delayedkemudianNavigator.pushReplacementmenuju halaman berikutnya.
Deskripsi Layar onboarding memperkenalkan fungsi utama SakuRapi sebelum pengguna mulai memakai aplikasi.
Setiap slide menjelaskan manfaat inti aplikasi:
- Pantau Pengeluaran โ Catat setiap pengeluaran harian dengan cepat; tahu uangmu lari ke mana.
- Data Aman & Ekspor โ Data disimpan secara lokal di perangkat. Laporan bisa diekspor kapan saja ke PDF untuk dibagikan.
- Target & Peringat โ Pasang target pengeluaran/tabungan dan dapatkan peringatan saat hampir melewati batas.
- Kategori Fleksibel โ Buat dan atur kategori sendiri (makan, transport, hobi, dll.) sesuai gaya hidupmu.
- Insight yang Jelas โ Grafik ringkas membantu melihat pola belanja dan area paling boros.
- Anggaran Terkontrol โ Tetapkan anggaran bulanan dan pantau sisa anggaran secara real-time agar belanja lebih terarah.
Onboarding ini juga langsung menyediakan dua tindakan utama di bagian bawah:
Daftar Gratisuntuk membuat akun lokal baru danMasukuntuk pengguna yang sudah pernah tercatat.
Versi aplikasi (misalVersi 1.0) ditampilkan agar pengguna tahu build yang sedang digunakan.
Deskripsi Login: Halaman masuk ini adalah pintu pertama pengguna sebelum mengelola data keuangan mereka. Pengguna diminta memasukkan email dan password, lalu dapat langsung menekan tombol MASUK untuk autentikasi. Tersedia opsi Lupa Password? sebagai jalur pemulihan akun, sehingga pengguna tidak kehilangan akses jika lupa kata sandi. Selain login biasa, ada juga opsi Gunakan akun demo โ ini memungkinkan pengguna mencoba aplikasi tanpa membuat akun baru terlebih dahulu, cocok untuk onboarding cepat. Bagian bawah layar juga mempersiapkan dukungan login pihak ketiga (Google / Apple), yang merepresentasikan arah pengembangan ke integrasi Single Sign-On agar proses masuk makin cepat dan aman. Fokus dari layar ini adalah rasa aman, kesan profesional, dan kesan bahwa pengelolaan finansial itu personal tapi tetap rapi.
Deskripsi Register: Halaman pendaftaran digunakan untuk membuat akun baru di SakuRapi. Pengguna mengisi nama lengkap, email, password, dan konfirmasi password. Flow ini dibuat sederhana agar proses bergabung tidak terasa โribet seperti aplikasi keuangan profesionalโ, tapi tetap menjaga kontrol dasar seperti verifikasi password untuk mencegah salah input. Tombol DAFTAR membuat akun lokal baru di perangkat. Ada shortcut Isi dengan demo yang membantu pengguna mencoba fitur tanpa mengisi manual satu per satu, sehingga barrier to entry jadi rendah. Bagian bawah juga menampilkan opsi login dengan Google / Apple sebagai sinyal rencana dukungan autentikasi modern. Intinya: siapa pun bisa mulai merapikan pengeluaran tanpa proses pendaftaran yang melelahkan.
Deskripsi: Layar Home berfungsi sebagai dashboard pribadi pengguna. Di bagian atas terdapat sapaan personal (โHalo, [nama]! ๐โ) untuk memberi rasa kepemilikan dan kedekatan, bukan sekadar aplikasi angka. Widget ringkasan menunjukkan:
- Total Pengeluaran Bulan Ini beserta total nominal dan jumlah transaksi.
- Pengeluaran Hari Ini (berapa rupiah yang keluar hari ini).
- Jumlah Transaksi Hari Ini (berapa transaksi yang sudah tercatat).
Di bawahnya ada Riwayat Transaksi terbaru (misal: โMie ayam paknnoโ), lengkap dengan tanggal dan jumlah rupiah. Ini membantu pengguna cepat ingat โtadi aku habis buat apa ya?โ. Navigasi bawah (Home, Statistik, Pengeluaran, Shared, Profil) selalu terlihat, sehingga pengguna bisa langsung:
- menambah pengeluaran baru,
- buka statistik,
- cek pengeluaran bersama,
- atau ubah profil, hanya dengan satu tap.
Prinsip layar ini: kasih jawaban cepat atas tiga pertanyaan yang paling sering muncul di kepala pengguna โ โUangku sudah keluar berapa?โ, โHari ini aku beli apa aja?โ, dan โApa aku masih aman bulan ini?โ
Deskripsi: Form transaksi dengan kategori, tanggal, dan catatan. Layar ini fokus pada pencatatan transaksi harian agar semua pengeluaran tercatat rapi.
- Bagian daftar menunjukkan riwayat pengeluaran dengan filter kategori, pencarian cepat, total pengeluaran, dan tombol aksi cepat ( + ) untuk menambah transaksi baru.
- Form pengeluaran memungkinkan pengguna mengisi atau mengubah detail transaksi:
- Judul transaksi (contoh: โWagyu A5โ)
- Jumlah (Rp)
- Kategori (Makanan, Transportasi, dsb.)
- Tanggal dengan pemilih kalender
- Deskripsi (opsional) untuk catatan seperti tempat beli atau konteks pengeluaran
- Tombol Simpan Perubahan
Tujuannya adalah bikin proses catat pengeluaran jadi cepat dan tidak menyusahkan. Semua transaksi yang disimpan langsung ikut dihitung dalam total bulanan dan grafik statistik, jadi pengguna tidak lagi โngeraba-raba uangnya kemana.โ
Deskripsi: Grafik & ringkasan per periode. Layar Statistik menampilkan ringkasan perilaku belanja pengguna untuk periode tertentu (contoh: โStatistik Okt 2025โ).
Bagian atas menunjukkan:
- Total Pengeluaran Bulan Ini dengan nilai rupiah terkini.
- Kontrol periode (navigasi kiri/kanan + ikon kalender) untuk pindah bulan dengan cepat.
Visual analitik yang ditampilkan:
- Grafik Donut / Pie โPer Kategoriโ: menunjukkan kategori mana yang paling banyak menyerap uang (misalnya Makanan = 100%).
- Grafik Harian: menampilkan pola pengeluaran per hari, sehingga pengguna bisa melihat kapan terjadi lonjakan (misal akhir pekan atau tanggal muda).
Fungsi layar ini bukan cuma kasih angka, tapi bantu pengguna paham pola: kebiasaan boros di kategori apa, di hari apa, dan seberapa berat pengeluaran bulan ini dibandingkan harapan pribadi.
Deskripsi: Layar profil mengumpulkan semua hal yang sifatnya personal, keamanan akun, dan preferensi aplikasi.
Dari sini pengguna bisa:
- Melihat identitas akun (nama, email).
- Edit Profil seperti nama tampilan atau nomor telepon opsional.
- Ganti Password dengan validasi keamanan.
- Masuk ke Pengaturan (settings) untuk hal-hal seperti logout dan informasi versi aplikasi.
- Membuka halaman Tentang Aplikasi untuk melihat versi build dan detail teknis.
- Melakukan tindakan sensitif seperti Hapus Akun.
Proses hapus akun dilindungi peringatan merah dan konfirmasi password supaya tidak terjadi penghapusan tidak sengaja.
Layar ini juga menampilkan manajemen Kategori milik pengguna (tambah kategori baru, ubah, hapus), karena setiap orang punya pola pengeluaran yang unik.
Intinya: pengguna punya kontrol penuh atas data miliknya dan bisa mengatur identitas finansialnya sendiri.
Deskripsi: Fitur Shared Expenses dirancang untuk mencatat pengeluaran bersamaโmisalnya patungan makan, bayar kos bareng, langganan streaming keluarga, atau iuran tim nongkrong.
Alurnya:
- Pengguna membuka tab Shared dari bottom navigation.
- Jika belum ada data, layar menampilkan status kosong dan tombol Tambah Shared Expense.
- Saat menambah, pengguna mengisi detail transaksi (judul, nominal, catatan), memilih siapa saja yang terlibat, dan menentukan bagaimana biaya dibagi.
Setelah disimpan, setiap shared expense muncul dalam daftar lengkap dengan rincian siapa bayar berapa.
Tujuan fitur ini adalah transparansi dan fairness: semua orang yang terlibat bisa melihat catatan yang sama, tidak ada lagi drama โutang siapa ini?โ atau โkemarin siapa yang bayarin ya?โ.
Dengan shared expense yang terdokumentasi rapi, urusan patungan jadi jelas, aman, dan nggak bikin sungkan.
- ๐งพ Catat Pengeluaran โ tambah, edit, hapus dengan kategori.
- ๐๏ธ Manajemen Kategori โ buat dan kelola kategori sesuai kebutuhan.
- ๐ Statistik โ ringkasan mingguan & bulanan, grafik sederhana.
- ๐ฅ Multi-User (Lokal) โ profil pengguna dan pengeluaran bersama (shared expense).
- ๐ Autentikasi Dasar โ login/register, lupa kata sandi (simulasi lokal).
- ๐งฎ Ekspor PDF โ cetak laporan pengeluaran ke PDF.
- โ๏ธ Pengaturan โ ubah profil, ganti password, preferensi tampilan.
Catatan: Fitur mengikuti struktur kode pada direktori
lib/screens&lib/services(lihat Struktur Proyek).
- Flutter SDK + Dart
- Shared Preferences โ penyimpanan lokal sederhana
- Provider (atau setara) โ manajemen state
- intl โ format tanggal & mata uang (IDR)
- pdf & printing โ ekspor laporan ke PDF
- path_provider โ akses direktori lokal
Sesuaikan daftar ini dengan
pubspec.yamlbila kamu menambah/mengganti paket.
- Flutter (stable 3.35.1) & Dart 3.9.0 terpasang
- SDK platform sesuai target (Android/iOS/Web/Desktop)
- Perangkat/Emulator aktif
Cek versi:
flutter --version# 1) Clone repository
git clone https://github.com/apip2pipp/individual-project-3g-apip2pipp.git
# 2) Masuk direktori
cd individual-project-3g-apip2pipp
# 3) Install dependency
flutter pub get
# 4) Jalankan (pilih salah satu device)
flutter run # otomatis memilih device aktif
flutter run -d chrome # Web
flutter run -d android # Android emulator / device
flutter run -d windows # Windows Desktop# Android (APK release)
flutter build apk --release
# Web (release)
flutter build web --releaselib/
โโโ main.dart
โโโ models/ # Model data (category, expense)
โโโ screens/ # UI screens (home, login, statistics, dll.)
โโโ services/ # Logika bisnis (auth, expense, pdf export)
โโโ utils/ # Utility (format tanggal, rupiah, dll.)
assets/
โโโ auth/
โโโ icon/
โโโ onboarding/
โโโ screenshots/ # <โ taruh screenshot README di sini
# Lihat repo untuk struktur lengkap lintas platform (android, ios, web, windows, dll.)
Struktur lengkap platform tersedia di repo (Android/iOS/Web/Desktop). File penting:
pubspec.yaml,analysis_options.yaml,README.md.
lib/services/expense_service.dartโ CRUD pengeluaran & perhitungan ringkaslib/services/pdf_export_service.dartโ generator PDF laporanlib/services/shared_expense_service.dartโ pengeluaran bersama (multi-user)lib/services/auth_service.dartโ autentikasi lokal sederhanalib/screens/statistics_screen.dartโ statistik & grafik ringkas
- Onboarding & Splash โ kenalkan fitur inti.
- Registrasi/Log Masuk โ buat akun lokal (disimpan di perangkat).
- Tambah Pengeluaran โ isi nominal, kategori, tanggal, catatan.
- Lihat Statistik โ pantau ringkasan & tren per periode.
- Ekspor PDF โ buat laporan dan simpan/bagikan.
Tambahkan aset ke pubspec.yaml jika digunakan di aplikasi (tidak wajib untuk README):
flutter:
assets:
- assets/auth/
- assets/icon/
- assets/onboarding/
# Screenshot untuk README tidak perlu didaftarkan- Masalah dependency: jalankan
flutter pub cache repairlaluflutter pub get. - Device tidak terdeteksi: cek
flutter devices, pastikan emulator/USB debugging aktif. - Error izin Android: pastikan
AndroidManifest.xmlmemiliki izin Internet bila perlu. - Masalah font/format rupiah: pastikan paket
intltelah ditambahkan dan diinisialisasi.
- Sinkronisasi cloud (Firestore / Supabase) (opsional)
- Impor/ekspor CSV
- Kustom kategori dengan ikon
- Filter & pencarian lanjutan
- Dark mode menyeluruh
Kontribusi terbuka untuk perbaikan bug, dokumentasi, atau pengembangan fitur.
- Fork โ 2) Buat branch fitur โ 3) Commit โ 4) Pull Request.
- Apip โ Developer utama Apps Expanses, Jurusan Teknologi Informasi
๐ง โKelola uangmu dengan rapi, maka hidupmu pun ikut teratur.โ Dibangun dengan โค๏ธ menggunakan Flutter.








