Demo Pembukuan Satu Siklus CV Solusi Kita — COA • JU • Buku Besar • Penyesuaian • L/R • Neraca

Demo Akuntansi (1 File) — COA • Jurnal Umum • Buku Besar (JU saja) • Penyesuaian • L/R • Neraca

Buku Besar hanya JU. Laporan memakai saldo setelah Penyesuaian (Opening + JU + ADJ).
📚 COA
🧾 Jurnal Umum
📒 Buku Besar
🛠️ Jurnal Penyesuaian
🧮 Ringkasan Saldo
📈 Lap. Laba Rugi
📊 Lap. Neraca
Chart of Accounts (COA) + Saldo Awal + Saldo Normal
Saldo Normal: Aset/Beban = D, Kewajiban/Ekuitas/Pendapatan = K (bisa diubah).
0 akun
KodeNamaTipeSaldo AwalSaldo NormalAksi
Konvensi internal: Debit = (+), Kredit = (-). Laporan menampilkan positif sesuai Saldo Normal.
Jurnal Umum (Posting → Voucher JU)
Maksimal 10 baris input per voucher. Format ribuan saat blur.
Siap input
AkunDebitKreditHapus
TOTAL00
Posting JU hanya menerima jurnal yang balance.
Riwayat Voucher JU:
Buku Besar (JU saja)
Selalu tampil “Saldo Awal”. Tidak menampilkan jurnal penyesuaian.
0 baris
TanggalAkunSumberKeteranganDebitKreditSaldo Berjalan
Buku Besar ini hanya untuk JU (opening + transaksi JU).
Jurnal Penyesuaian (Posting → Voucher ADJ)
Maksimal 10 baris input per voucher. Ini menentukan saldo akhir laporan.
Siap input
AkunDebitKreditHapus
TOTAL00
Posting ADJ hanya menerima jurnal yang balance.
Riwayat Voucher Penyesuaian:
Penyesuaian akan mempengaruhi laporan, bukan buku besar JU.
Ringkasan Saldo per COA
Saldo Akhir = Saldo Awal + Perubahan JU + Perubahan Penyesuaian (ADJ).
Debit = (+), Kredit = (−)
Tabel menampilkan nilai dengan posisi (D/K) berdasarkan tanda saldo (+ = D, − = K).
KodeAkunTipeSaldo AwalPerubahan JUPerubahan ADJSaldo Akhir
TOTAL0000
Catatan: total di footer adalah penjumlahan saldo bertanda (D=+, K=−). Untuk cek neraca, gunakan tab Neraca.
Laporan Laba Rugi (SETELAH Penyesuaian)
Otomatis dari akun tipe Pendapatan & Beban (sesuai Saldo Normal).
Net: 0
Pendapatan
AkunJumlah
Total Pendapatan0
Beban
AkunJumlah
Total Beban0
Ringkasan
Laba / (Rugi) Bersih0
Net = Total Pendapatan − Total Beban
Laporan Neraca (SETELAH Penyesuaian)
Aset vs (Kewajiban + Ekuitas + Laba/Rugi Tahun Berjalan).
Check: —
Aset
AkunJumlah
Total Aktiva0
Kewajiban & Ekuitas
Kewajiban
AkunJumlah
Ekuitas
AkunJumlah
Jumlah Kewajiban0
Jumlah Ekuitas0
Laba/(Rugi) Tahun Berjalan0
Total Pasiva0
Laba/Rugi tahun berjalan ditambahkan ke sisi Ekuitas untuk demo.
OK
`); w.document.close();toast("PDF: pilih 'Save as PDF' di dialog Print"); }function exportExcel(){ const { title, html } = exportGetHTML();// Excel sederhana: .xls berbasis HTML (cukup untuk download & buka di Excel) const excelHTML = `${title}${html} `;const blob = new Blob([excelHTML], { type: "application/vnd.ms-excel;charset=utf-8;" }); const url = URL.createObjectURL(blob);const a = document.createElement("a"); a.href = url; a.download = `${title.replaceAll("/","-")}.xls`; document.body.appendChild(a); a.click(); a.remove();URL.revokeObjectURL(url); toast("Excel terunduh (.xls)"); }/* BUTTONS + INIT */ document.getElementById("btnSave").addEventListener("click", save); document.getElementById("btnLoad").addEventListener("click", load); document.getElementById("btnSample").addEventListener("click", loadSample); document.getElementById("btnReset").addEventListener("click", resetAll);document.getElementById("btnExportPDF").addEventListener("click", exportPDF); document.getElementById("btnExportExcel").addEventListener("click", exportExcel);document.getElementById("btnJuAddLine").addEventListener("click", ()=>addLine("juEntry")); document.getElementById("btnJuClear").addEventListener("click", ()=>clearJournal("juEntry")); document.getElementById("btnJuPost").addEventListener("click", ()=>postJournal("juEntry","JU"));document.getElementById("btnAdjAddLine").addEventListener("click", ()=>addLine("adjEntry")); document.getElementById("btnAdjClear").addEventListener("click", ()=>clearJournal("adjEntry")); document.getElementById("btnAdjPost").addEventListener("click", ()=>postJournal("adjEntry","ADJ"));document.getElementById("btnRefreshLedger").addEventListener("click", renderAll); document.getElementById("ledgerFilter").addEventListener("change", renderAll); document.getElementById("ledgerSort").addEventListener("change", renderAll);document.getElementById("coaTipe").dispatchEvent(new Event("change")); renderAll();