Kami telah merilis sikompak pro versi online: https://app.sikompak.id flatform ini khusus untuk BUMDesa di Kabupaten Sukabumi.
Konsep Akuntansi, Fitur, Alur Program, dan Arsitektur Aplikasi
Disusun berdasarkan kebutuhan dalam Pembukuan Keuangan BUMDesa di Kabupaten Sukabumi Tahun 2026
SIKOMPAK adalah aplikasi pembukuan keuangan berbasis web untuk BUM Desa atau organisasi usaha.
Sistem ini mengelola:
Struktur aplikasi mengikuti pola MVC yang meliputi:
Setiap transaksi dicatat minimal dalam dua detail akun. Nilai debit dan kredit harus sama.
Total Debit = Total Kredit
COA memiliki beberapa atribut dan struktur penting, yaitu:
Akun grup berfungsi sebagai header.
Akun postable adalah akun detail yang boleh digunakan dalam jurnal.
Akun yang digunakan harus aktif dan dimiliki oleh organisasi yang sedang login.
Perhitungan saldo akun mengikuti saldo normal masing-masing akun.
Saldo akun debit = Debit - KreditSaldo akun kredit = Kredit - DebitAset = Liabilitas + Ekuitas
Setiap jurnal harus memenuhi ketentuan periode akuntansi.
Periode CLOSED tidak menerima jurnal baru maupun posting jurnal.
Tabel report_mappings menghubungkan akun dengan:
Tanda MINUS digunakan untuk akun kontra atau akun pengurang.
Jika mapping belum tersedia, beberapa laporan menggunakan fallback berdasarkan account type atau prefix kode akun.
Alur status jurnal adalah:
DRAFT?SUBMITTED?APPROVED?POSTED
Jika jurnal ditolak, jurnal masuk ke status REJECTED dan dapat direvisi kembali menjadi DRAFT.
| Status | Makna |
|---|---|
| DRAFT | Jurnal baru dibuat atau hasil import, belum diajukan. |
| SUBMITTED | Jurnal diajukan admin organisasi untuk diperiksa. |
| APPROVED | Jurnal disetujui superadmin dan siap diposting. |
| POSTED | Jurnal resmi dipakai sebagai sumber laporan. |
| REJECTED | Jurnal dikembalikan untuk diperbaiki. |
Perubahan status jurnal disimpan dalam tabel:
journal_status_histories
Buku besar tidak disimpan sebagai tabel transaksi terpisah. Nilainya dihitung dari:
Subledger menguraikan saldo akun utama berdasarkan pihak atau barang tertentu.
| Jenis | Akun atau Aturan | Logika Saldo |
|---|---|---|
| Piutang | 1.1.03.01 | Debit menambah, kredit mengurangi piutang. |
| Utang | 2.1.01.01 | Kredit menambah, debit mengurangi utang. |
| Persediaan | Prefix 1.1.05. | Debit berarti barang masuk, kredit berarti barang keluar. |
Untuk piutang dan persediaan, saldo umumnya dihitung sebagai:
Saldo = Saldo Awal + Debit - Kredit
Untuk utang, saldo dihitung sebagai:
Saldo = Saldo Awal + Kredit - Debit
Komponen arus kas dikategorikan menjadi:
Setiap komponen memiliki arah:
Komponen tersebut ditempelkan pada detail jurnal.
Arus Kas Bersih = Kas Masuk - Kas KeluarSaldo Kas Akhir = Saldo Kas Awal + Arus Kas Bersih
Saldo awal kas biasanya dikenali dari nomor jurnal dengan awalan SA. dan keterangan Saldo Awal.
Komponen cash flow divalidasi agar digunakan pada akun kas atau bank yang sesuai.
Neraca mengelompokkan:
Laba berjalan ditambahkan ke ekuitas untuk memperoleh total pasiva dan selisih neraca.
Laporan laba rugi memisahkan:
Laba Kotor = Pendapatan - HPPLaba Berjalan = Pendapatan - HPP - Beban
Trial balance merangkum debit dan kredit setiap akun, kemudian menentukan status:
LPE mengolah:
Konvensi jurnal saldo awal menggunakan awalan SA., sedangkan mutasi modal berjalan dapat menggunakan awalan JU.
Saldo Laba Akhir = Saldo Laba Awal + Laba Berjalan - Bagi Hasil
| Rasio | Rumus |
|---|---|
| Current Ratio | Aset Lancar / Liabilitas Lancar |
| Quick Ratio | (Aset Lancar - Persediaan) / Liabilitas Lancar |
| Solvabilitas | Liabilitas / Total Aset |
| Profit Margin | Laba Bersih / Pendapatan |
| ROA | Laba Bersih / Total Aset |
| ROE atau Rentabilitas | Laba Bersih / Ekuitas |
Alur program menggambarkan proses sistem akuntansi SIKOMPAK mulai dari login sampai periode ditutup.

1 User Login
User login dan sistem mengikat session ke organization_id dari database.
2 Persiapan Data Master
Admin menyiapkan:
Data dapat disiapkan secara manual atau dilakukan import dari Excel.
3 Pembuatan Jurnal
Jurnal dibuat secara manual atau diimport sebagai DRAFT.
Pada saat import, baris jurnal dikelompokkan berdasarkan nomor bukti.
4 Validasi Jurnal (JournalService)
JournalService memeriksa:
Jika validasi tidak berhasil, jurnal dikembalikan untuk diperbaiki.
5 Pengajuan Jurnal (SUBMITTED)
Admin mengajukan jurnal menjadi status SUBMITTED.
6 Review & Persetujuan
Superadmin memeriksa jurnal lalu:
Jika ditolak, jurnal dapat dikembalikan untuk diperbaiki dan menjadi DRAFT kembali.
7 Posting Jurnal (POSTED)
Jurnal yang berstatus APPROVED diposting menjadi POSTED.
Posting dapat dilakukan:
8 Laporan
Laporan membaca jurnal berdasarkan status dan filter yang dipilih.
Sumber laporan dapat berupa jurnal POSTED atau DRAFT sesuai filter yang dipilih.
9 Tutup Buku Periode
Admin menyelesaikan checklist tutup buku, mengajukan usulan, kemudian superadmin menutup periode.
Hasil Akhir
Periode akuntansi tertutup, jurnal tersimpan dengan status yang valid, dan laporan dapat dihasilkan sesuai kebutuhan.
| Tabel | Peran |
|---|---|
| organizations | Master organisasi atau BUM Desa. |
| business_units | Unit usaha dalam organisasi. |
| accounting_periods | Tahun atau rentang periode akuntansi. |
| accounts | COA dan struktur akun. |
| report_mappings | Pemetaan akun ke laporan. |
| journal_entries | Header jurnal. |
| journal_details | Baris debit-kredit jurnal. |
| subledgers | Master buku pembantu. |
| cash_flow_categories | Kategori arus kas. |
| journal_status_histories | Riwayat status jurnal. |
| accounting_closing_* | Checklist, proposal, dan riwayat tutup buku. |
Superadmin mengelola data lintas organisasi dan memiliki login khusus.
Admin organisasi mengelola:
Operator memiliki akses organisasi yang lebih terbatas.
AuthFilter memastikan user masih aktif.
OrganizationFilter memastikan organisasi berasal dari session.
RoleFilter membatasi route berdasarkan role.
Banyak operasi perubahan data menggunakan CSRF filter.
Pemeriksaan otomatis mencakup:
Pemeriksaan manual mencakup:
Ketentuan Blocking
Semua item blocking harus selesai sebelum checklist dapat diajukan.
DRAFT?SUBMITTED?APPROVED
Setelah checklist disetujui, proses dilanjutkan dengan proposal tutup buku.
SUBMITTED?APPROVED?CLOSED
Saat proposal disetujui, periode berubah menjadi CLOSED.
Pembukaan Kembali Periode
Periode dapat dibuka kembali dengan alasan dan riwayat perubahan.
Source code menggunakan tabel subledgers dan kolom journal_details.subledger_id.
Namun, migration yang terlihat belum mendefinisikan seluruh struktur tersebut.
Pastikan database runtime dan migration tetap sinkron saat deployment.
Sebagian command CLI lama menggunakan organisasi aktif pertama atau ID default.
Sedangkan alur web umumnya menggunakan organization_id dari session.
Cakupan tes domain masih terbatas.
File tests yang terlihat terutama berisi:
Frontend / View
Menampilkan dashboard, jurnal, laporan, workflow, dan proses administrasi.
Controller
Menangani request dan menghubungkan tampilan dengan proses aplikasi.
Service
Menangani proses bisnis seperti validasi jurnal, workflow jurnal, import Excel, dan laporan arus kas.
Model
Mengelola akses dan perhitungan data dari database.
Database
Menyimpan organisasi, unit usaha, periode, akun, jurnal, subledger, cash flow, mapping laporan, dan tutup buku.
CLI / Spark
Menyediakan command-line untuk kebutuhan operasional tertentu.
SIKOMPAK Pro merupakan aplikasi pembukuan keuangan berbasis web yang mengintegrasikan data organisasi, unit usaha, periode akuntansi, COA, jurnal, subledger, arus kas, laporan keuangan, workflow persetujuan, hingga proses tutup buku.
Inti proses akuntansi dimulai dari persiapan master data, pembuatan atau import jurnal, validasi, pengajuan, persetujuan, posting, penyajian laporan, hingga penutupan periode akuntansi.
Workflow jurnal utama adalah:
DRAFT >> SUBMITTED >> APPROVED >> POSTED
Apabila jurnal ditolak, alurnya dapat kembali melalui REJECTED >> DRAFT untuk dilakukan perbaikan.
Setelah seluruh persyaratan tutup buku terpenuhi, checklist dan proposal disetujui sehingga periode menjadi CLOSED.