---
# System prepended metadata

title: 'TKE224966: WALFARE -manage money application'

---

# TKE224966: WALFARE -manage money application

Nama: Ferry Amaludin
NIM: H1A021036

## 20240523
### Fungsional
<!-- #### Rencana Fungsional -->
<!-- > Isilah dengan fungsi-fungsi utama yang direncanakan ada di aplikasi bergerak pada proyek Anda.
> 
> Berikan satu paragraf untuk mengenalkan fungsi-fungsi yang akan/sedang dikembangkan (di luar fungsi otentikasi). Setelah itu jelaskan setiap fungsi dengan satu paragraf.
> 
> Jika terdapat tiga fungsi, total paragraf ada tiga ditambah dengan satu paragraf intro.
> 
> Hapus keterangan ini jika sudah selesai.


jawaban:
soal pertama: -->
#### Rencana Fungsional
Walfare merupakan aplikasi pencatat keuangan yang dapat digunakan untuk mencatat keuangan dari user dan kemudian ditampilkan ke daftar income dan expenses. selain itu terdapat pengelompokan kategori yang digunakan untuk memisahkan jenis pengeluaran yang dilakukan adapun terdapat pichart yang digunakan untuk memudahkan user dalam melihat pengeluaran dan pemasukan.
Terdapat fungsi dari aplikasi yang sudah berjalan adalah fitur authentifikasi menggunakan google dan diagram pie chart yang sudah bisa berubah-ubah nilainya. Fungsi dari diagram pi chart ini akan berubah-ubah nilainya berdasarkan input dari pengguna. 


#### Fungsi dari Walfare
Applikasi Walfare merupakan sebuah aplikasi dompet digital di mana dapat digunakan untuk mencatat pengeluaran dan pemasukan, aplikasi ini dibuat dengan menggunakan flutter dengan bahasa dart. Aplikasi ini memiliki fitur login google, database dan diagram piechart. Aplikasi akan menggunakan sqlite dalam pengelolaan data. Keuntungan penggunaan sqlite adalah data dapat diakses secara lokal dan tanpa memerlukan internet, sehingga aplikasi ini dapat digunakan di mana saja. Terdapat beberpa fitur yang ada pada aplikasi "walfare" yaitu login authentifikasi, input pendapatan dan pengeluaran, pengkategorian, dan tampilan diagaram pie chart yang akan memudahkan dalam melihat data pengguna.

Fitur pencatat keuangan menjadi fitur utama dari aplikasi ini. Fitur pencatat keuangan akan membutuhkan input nilai dari pengguna yang kemudian akan memasukan pendapatkan dan pengeluaran secara manual di mana data dari input pengguna akan disimpan ke database sqlite. Data ini dapat diakses secara langsung dan terus ditampilkan dengan tampilan visual. 

Pengkategorian menjadi salah satu fitur utama dalam aplikasi walfare. Aplikasi ini akan memiliki pengkategorian pengeluaran yang dilakukan. Adanya pengkategorian akan memudahkan pengguna dalam mengelola dan menganalisis pengeluaran. Fitur pengkategorian menjadi salah satu fitur fungsional dari aplikasi, di mana akan ada kategori dari setiap expenses yang ada.

Diagram pie chart dibutuhkan untuk memudahkan pengguna dalam mengenalisis pengeluaran dan alasan saya memilih pie chart adalah untuk mempermudah dalam pengamatan pengeluaran dari pengguna. Tampilan visual dari diagaram pie chart dipilih dikarenakan bentuk diagaram yang lebih ramah dilihat bagi pengguna.

Melihat history transaksi yang dilakukan. Aplikasi walfare ini memungkinkan pengguna dalam melihat transaksi yang sudah dilakukan dengan meliat tombol history yang ada di menu aplikasi yang tersedia dan akan melihat datanya secara rinci.

<!-- #### Progres Fungsional
> Jelaskan maksimal tiga paragraf tentang status implementasi fungsi-fungsi utama yang direncanakan. Sertakan diagram/gambar maksimal tiga buah.

> Jawab pertanyaan ini maksimal satu paragraf: bagaimana status dari otentikasi yang akan dipakai?
> 
> Hapus keterangan ini jika sudah selesai.

jawab perama: -->
### Progres Fungsional
Dalam projek aplikasi yang sedang dilakukan di mana terdapat fungsi yang sudah mulai terintegrasi dengan baik seperti sudah adanya dan bisa melakukan login aplikasi dengan menggunakan akun google. Namun ada juga fitur aplikasi yang masih dalam pengembangan yaitu pada diagram  pie chart yang sudah dapat terlihat dan bisa berubah-ubah nilainya tergantung dari value yang diinputkan pada setiap kategori. Namun untuk nilainya masih diatur di dalam kode belum bisa terintegrasi dengan input pengguna dengan melalui nilai. Adapun tampilan dari progres baik yang sudah berjalan dengan yang masih dalam pengembangan adalah seperti yang ada pada gambar di bawah ini:
![image](https://hackmd.io/_uploads/SJebfJGVR.png)
(gambar registrasi akun dan bisa terdaftar)
![image](https://hackmd.io/_uploads/BJxUf1zNR.png)
(gambar pie chat yang bisa diupdate nilainya)
![image](https://hackmd.io/_uploads/Byr2zJfVC.png)
(gambar berhasil login aplikasi)
![image](https://hackmd.io/_uploads/ryaDV1ME0.png)
(gambar login menggunakan google)


Kemudian untuk status otentifikasi yang berjalan yaitu di mana akan menggunakan login google, di sini sudah dapat berjalan dengan baik, mulai dari login aplikasi menggunakan email dan password, registrasi akun dan authentifikasi google.

Terdapat juga fitur lain yang tersedia yaitu sebagai berikut
![image](https://hackmd.io/_uploads/Hyyxe8rNR.png)
(input transaksi)

![image](https://hackmd.io/_uploads/HyBGlUHV0.png)
(tombol keluar)
![image](https://hackmd.io/_uploads/HkkIe8S4C.png)
(tampilan detail)


##### Tambahan progress
- Memperbaiki pi chart yang belum berubah


##### Hasil progress
- Berhasil mengimplementasikan pi chart supaya terupdate berdasarkan data.

### Basis Data
#### Rencana Basis Data
<!-- > Jelaskan tentang ERD dan DDL yang direncanakan ada dalam maksimal dua paragraf. Sertakan diagram/gambar maksimal dua buah.
> 
> Berikan penjelasan maksimal tiga paragraf untuk menjawab pertanyaan berikut. Berikan diagram/gambar maksimal tiga buah.
> 1. Mengapa memilih mesin/sistem basis data tersebut? Contoh: SQLite atau MySQL
> 2. Apa jenis basis data yang dipilih? (SQL/NoSQL)
> 3. Jelaskan kaitan pemilihan basis data dan jenisnya dengan desain dari aplikasi bergerak yang Anda kembangkan?
>
> Hapus keterangan ini jika sudah selesai.

jawaban: -->
Entity-Relationship Diagram (ERD) adalah sebuah alat visual yang digunakan untuk merancang basis data dengan memetakan entitas-entitas utama dan hubungan antar entitas yang ada. Pada aplikasi manajemen keuangan menggunakan SQLite, ERD akan mencakup entitas seperti Users, Accounts, Transactions, dan Categories, Income dan Expenses. Entitas Users menyimpan informasi pengguna aplikasi, Accounts mencatat berbagai akun keuangan yang dimiliki oleh pengguna, Transactions merekam setiap transaksi keuangan, dan Categories mengelompokkan jenis transaksi (misalnya, makanan, transportasi, dll.). Hubungan antar entitas ini biasanya berupa kunci asing yang menghubungkan transaksi ke akun dan pengguna tertentu, serta mengkategorikan transaksi. sedangkan Data Definition Language (DDL) adalah bagian dari SQL yang digunakan untuk mendefinisikan dan mengelola struktur database. Dalam SQLite, DDL akan mencakup perintah-perintah untuk membuat tabel sesuai dengan desain ERD.
![image](https://hackmd.io/_uploads/Sy7sLJfVA.png)
(gambar rancangan erd)

Dalam aplikasi walfare database yang digunakan untuk aplikasi ini yaitu SQLite, dipilih sebagai mesin basis data untuk aplikasi dompet digital atau (manajemen keuangan) karena ringan, cepat, dan mudah diintegrasikan ke dalam aplikasi mobile. SQLite merupakan database yang tidak membutuhkan server yang akan menyimpan seluruh basis data dalam satu file di perangkat pengguna, yang membuatnya sangat cocok untuk aplikasi mobile yang memerlukan pengaturan data secara lokal tanpa bergantung pada konektivitas jaringan. Selain itu, SQLite bersifat open-source dan mendukung berbagai operasi SQL standar, hal ini akan memungkinkan pengembangan lebih efisien dan melakukan pengujian yang mudah. Kecepatan dan performa SQLite juga memadai untuk aplikasi dengan skala pengguna individu atau kelompok kecil yang tidak membutuhkan arsitektur basis data kompleks seperti MySQL.
Pemilihan SQLite dan basis data SQL sangat relevan dengan desain aplikasi dompet digital yang dikembangkan karena beberapa alasan utama yang ada. Pertama, SQLite memungkinkan penyimpanan data lokal yang penting untuk aplikasi mobile, memberikan performa cepat tanpa memerlukan koneksi internet. Kedua, struktur SQL yang digunakan SQLite memudahkan untuk merancang skema basis data yang terorganisir dan relasional. Hal ini mempermudah pengelolaan data keuangan dengan cara yang terstruktur dan efisien. Terakhir, fleksibilitas dan kompatibilitas SQLite dengan berbagai bahasa pemrograman dan platform mobile (contohnya android) memungkinkan integrasi yang mulus dalam pengembangan aplikasi, serta mempermudah pemeliharaan dan pengembangan fitur di masa mendatang.
Dalam aplikasi ini juga memerlukan firebase yang digunakna untuk authentifikasi login aplikasi, mulai dari mendaftarkan email secara manual dan juga akun google yang ada.

#### Progres Basis Data
<!-- > Jelaskan maksimal tiga paragraf tentang status implementasi basis data yang direncanakan. Sertakan diagram/gambar maksimal satu buah.
> 
> Hapus keterangan ini jika sudah selesai. -->

Implementasi database yang saya gunakan dari DDL yang sudah saya buat, yaitu dalam tahap penyempurnaan logika dari database, sehingga tentunya akan masih banyak pengembangan yang akan terjadi. Yang pasti akan saya buat yaitu tabel untuk user, pengeluaran, pemasukan, kategori dan dompet. Aplikasi ini tentunya akan terus berkembang akan berkembangnya waktu nantinya.
![image](https://hackmd.io/_uploads/BkARUJf4R.png)
(hasil contoh query tapi masih mencoba diimplementasikan ke aplikasi dengan menggunakan sqflite)

![image](https://hackmd.io/_uploads/B1zNe8HVR.png)
(tampilan nilai yang terupdate)
