Sakuarua: Memahami Kembali Finansial

Sakuarua adalah aplikasi berbasis website atau PWA (Progressive Web Application) yang membantu pencatatan keuangan dan pembuatan pelaporan keuangan. Sakuarua memiliki domain https://sakuarua.id. Aplikasi ini aku buat berawal dari kebutuhan di keluarga dalam mencatat keuangan pengeluaran dan pemasukan. Hal sederhana yang membantu kami hampir 1 tahun dengan berbagai perbaikan sehingga memahami kebiasaan ekonomi kami sendiri, seperti kebiasaan belanja bulanan dan kebiasaan jajan.

Walaupun sudah berjalan lama, aku temui kesalahan fundamental yang membuat aplikasi sulit dikembangkan sehingga harus mempelajari kembali tentang finansial, akuntansi, debit/kredit, dan lain-lain. Tidak sia-sia belajar akuntansi, membuka wawasan tentang uang, arus kas, hingga manajemen uang.

Sebagai programmer harus memahami konteks dan cara kerja konsep nyata dari masalah yang dipelajari, jadi tidak heran programmer kadang harus belajar selain codingan haha. Selamat membaca.

Cara Kerja Pencatatan Keuangan

Pertama-tama perlu pahami bagaimana pencatatan keuangan dilakukan. Umumnya pada pencatatan sederhana ditulis sebagai pengeluaran dan pemasukan. Misalnya Budi membeli Roti Rp. 5000, artinya Budi mengeluarkan uang Rp. 5000. Begitu juga Budi diberi uang Rp. 10.000 sebagai Budi mendapatkan uang Rp. 10.000. Cukup sederhana bukan? budi akan tulis di buku pencatatan uang seperti ini

  1. 11 januari 2025, Beli roti (expense): -5000
  2. 20 januari 2025, Dapat uang (income): +10.000

Simpel dan sederhana. Aplikasi sakuarua menggunakan konsep yang sama. Sebuah transaksi dicatat sebagai expense atau income, pengeluaran atau pemasukan. Cara ini sudah berjalan dengan lancar dan tidak ada masalah. Menggunakan query, aku bisa cari pengeluaran apa yang paling besar, dan hari apa saja.

Masalah Pencatatan Sederhana

Metode diatas disebut dengan Single-entry Bookkeeping, menulis pengeluaran dan pemasukan dalam satu Buku Besar (English: Bookkeeping).

Seiring waktu, aku memiliki pertanyaan yang sulit dijawab metode ini:

  • Bagaimana jika ada beberapa akun (akun bank, cash, tabungan) sekaligus? Zaman sekarang orang-orang pasti punya beberapa akun bank, kas, metode pembayaran lainnya.
  • Bagaimana cara transfer dari akun bank ke cash—penarikan uang misalnya?
  • Transfer keuangan harusnya tidak mengurangi nilai aset (bank dan cash adalah aset)

Aplikasi ini tidak bisa melakukan transfer antar akun, terbatas pada pengurangan dan penambahan saja. Tidak bisa melihat arus kas yang sebenarnya. Tidak efektif dalam pencatatan dan tidak akurat.

Keterbatasan ini terbentur secara pondasi desain sistem. Jika pondasi sistem sudah salah, maka sulit untuk dikembangkan. Jadi, aku kembali ke basic. Apa itu uang? apa itu akuntansi? kenapa perusahaan menggunakan akuntansi?

Belajar Akuntansi

Akuntansi adalah proses pencatatan keuangan dengan metode tertentu dan skema tertentu—Saat kuliah pernah belajar akuntansi dan hanya sebentar, tidak paham banyak tentang kredit, debit, liabilitas dan lain-lain. Tapi sekarang aku coba pahami apa itu dan jelaskan dengan singkat.

Akuntansi biasanya menggunakan metode pencatatan Double Entry Bookkeeping yang menggunakan frasa debit dan kredit.

Debit = Transfer nilai ke akun tersebut

Credit/kredit = Transfer nilai dari akun tersebut

Istilah debit/kredit mirip dengan income dan expense tapi punya istilah yang sama. Kita sebut saja money in (debit) dan money out (kredit). Uang tidak hanya berkurang dan bertambah secara ajaib. Uang sebenarnya mengalir dari A ke B. Debit dan kredit membantu pencatatan ini menjadi mudah dikelola.

Cara menulis double entry entry bookkeeping adalah menulis tabel T (debit & kredit), setiap ada transaksi dari akun A dan B maka kredit di A dan debit di B—dua kali pencatatan. Pada pencatatan ada “label” yang menandakan hubungan transaksi. Disini di tandai (1) pengeluaran bagi budi dan (2) pemasukan bagi budi. Jadi, hanya perlu ingat debit = uang masuk, kredit = uang keluar, dan HARUS dicatat terpisah kedua akun.

Dari berbagai tabel diatas, dibuatlah balance sheet yang tujuannya meng-balance kedua area dibawah ini.

Asset = Liabilitas + Equity

  • Asset (aset) adalah sesuatu yang kamu punya saat ini, bisa rekening bank, kas, inventori, dan lain-lain.
  • Liabilities (Liabilitas) adalah beban yang bisnis kamu miliki, bisa berupa hutang, kartu kredit, loans, dan lain-lain. something you owe.
  • Equity (Ekuitas) adalah sisa dari aset dan liabilitas, seperti net income, modal usaha, pendapatan yang ditahan. Something you own.

Jika kamu membuat bisnis, akuntansi hal wajib yang harus dimiliki. Masih banyak yang harus dipelajari, tetapi dalam konteks aplikasi ini pemakaian sederhana dan tidak punya banyak hutang atau ekuitas yang dimiliki.

Pendakatan Baru: Double-entry Bookkeeping

Setelah belajar double-entry bookkeeping, pondasi pemahaman aplikasi yang berbeda mengharuskan aku untuk menulis ulang kode, arsitektur dan sistem menjadi lebih baik. Aku juga bertanya ke teman yang bekerja sebagai akuntan, memastikan pemahaman aku sudah benar sebelum benar-benar implementasi. Aku merasa tercerahkan karena aku melihat pencatatan ini memiliki potensi yang sangat besar.

Terinspirasi dari gnucash, data yang harus disimpan cukup sederhana yaitu:

  • Akun (account): informasi akun, balance dan lain-lain
  • Transaksi: Data transaksi tanpa amount
  • Entri Transaksi: Akun apa saja yang terlibat dan jumlah debit/kredit

Struktur ini sudah cukup untuk membuat data akuntansi menjadi mudah dikelola dan track. Aplikasi jadi lebih fleksibel dan pembuatan fitur tambahan jadi lebih mudah. Mungkin istilah debit/kredit sulit dipahami, jadi diganti money in dan money out bukan income/expense karena itu lebih cocok sebagai income aset dan expense bagi aset.

Hasil Aplikasi Baru

Aplikasi baru ini aku bangun dari awal dengan pendekatan teknologi yang berbeda juga. Sebelumnya semua aksi data ditransfer ke server menggunakan API, sekarang aku lakukan di browser dan di simpan di indexedDB—Pendekatan offline-first— dan ada sinkronisasi ke database saat dibutuhkan saja. Ternyata cara ini lebih cepat pengembangannya dibandingkan harus membuat Backend API terlebih dahulu.

Pertama, halaman account/akun. User bisa mengatur akun, tipe dan inital balance (saldo awal). Aku sudah siapkan preset akun untuk memulai aplikasi.

Kemudian halaman transaksi, disini user bisa menambahkan transaksi uang masuk atau uang keluar.

Analisa akun tentunya harus ada, apa jadinya manajemen uang tanpa analisa dan statistik yang menarik.

Terakhir Buku Besar (ledger), setiap buku besar menyimpan data akun dan transaksinya masing-masing. Jadi, seseorang bisa membuat buku besar personal dan bisnis sekaligus dalam satu aplikasi.

Aplikasi ini jalan di browser 100% tanpa internet (kecuali saat pertama kali dibuka), semua data ada di browser, jadi aku biasa katakan kalau aplikasi ini aman. Aku tidak menyimpan data keuangan asli di database server dan kalaupun ada fitur sinkronisasi, aku akan lakukan enkripsi untuk keamanan pengguna.

Finansial Lebih baik

Tujuanku membuat ini adalah membantu orang mendapatkan kebiasaan finansial baru untuk membuat kehidupan menjadi lebih baik. Manajemen uang adalah skill yang setiap orang harus miliki. Aku percaya dengan komitmen dan kebiasaan baru ini, siapapun bisa menjadi lebih kaya dan bebas secara finansial.

Aplikasi sakuarua versi baru masih dalam tahap pengembangan, masih banyak fitur yang harus dikembangkan dan aku butuh feedback dari teman-teman. Minggu ini akan aku publish dan masuk ke tahap pengujian. Silahkan masuk ke komunitas Whatsapp sakuarua di sini untuk dapat info terbaru

Komunitas Whatsapp Saku Arua.

Dapatkan laporan update, diskusi, laporan bug, permintaan fitur, dan lain-lain.

Sekian, terima kasih.

Subscribe now!