TL;DR
Rekap setoran kasir harian adalah catatan yang ngebandingin uang fisik di laci sama angka penjualan tunai di sistem, buat tiap kasir tiap shift. Rumus intinya: selisih = kas fisik dikurangi hasil dari modal awal ditambah penjualan tunai dikurangi pengeluaran kas. Selisih nol itu target, tapi yang lebih penting selisihnya kecatat dan ketahuan sumbernya di hari yang sama.
Rekap setoran kasir harian adalah catatan yang ngebandingin uang fisik di laci sama angka penjualan tunai di sistem, buat tiap kasir tiap shift.
Rumus intinya cuma satu baris:
Selisih = Kas fisik - (Modal awal + Penjualan tunai - Pengeluaran kas)
Kelihatan sepele. Tapi kebanyakan toko yang aku temui nyatetnya cuma "setoran hari ini sekian", tanpa modal awal dan tanpa pengeluaran kas. Waktu angkanya nggak cocok, nggak ada yang bisa dilacak.
Selisih kas paling gampang ketemu di hari yang sama, waktu kasir masih inget transaksi mana yang aneh. Lewat tiga hari, ingatannya hilang dan kamu cuma punya angka tanpa cerita. Rekap harian juga ngunci tanggung jawab per orang, jadi selisih nggak nyampur antar shift.
Ada alasan kedua yang lebih jarang disebut: rekap harian bikin kamu punya data. Setelah 3 bulan, kamu bisa lihat pola. Kasir mana yang selisihnya rutin, jam berapa selisih paling sering muncul, dan hari apa pengeluaran kas kecil membengkak.
Catatan yang cuma "setoran Rp 4.320.000" nggak bisa dipakai buat apa pun selain nyocokin saldo.
Minimal sepuluh kolom, dibagi jadi tiga blok: identitas shift, angka sistem, dan angka fisik. Blok identitas nentuin siapa yang bertanggung jawab, blok sistem diambil dari POS, dan blok fisik diisi dari hasil hitung laci. Selisih dihitung dari beda antara blok fisik dan blok sistem.
| Kolom | Isi | Sumber |
|---|---|---|
| Tanggal | 2025-09-04 | Manual |
| Shift | Pagi / Sore | Manual |
| Nama kasir | Rina | Manual |
| Modal awal | Rp 300.000 | Tetap tiap shift |
| Penjualan tunai | Rp 3.860.000 | Laporan POS |
| Penjualan QRIS | Rp 1.240.000 | Laporan POS |
| Penjualan debit | Rp 0 | Laporan POS |
| Pengeluaran kas | Rp 85.000 | Nota kas kecil |
| Kas fisik | Rp 4.071.000 | Hitung laci |
| Selisih | -Rp 4.000 | Rumus |
Tambahin dua kolom lagi kalau memungkinkan: keterangan selisih dan tanda tangan penerima.
Penting: penjualan QRIS dan debit nggak boleh ikut masuk ke perhitungan selisih kas. Uangnya nggak pernah mampir ke laci.
Ikutin tujuh langkah ini. Anggap kamu mulai dari sheet kosong.
Rekap. Baris 1 buat judul kolom, mulai dari A1 sampai L1 sesuai tabel di atas.=I2-(D2+E2-H2)=IF(ABS(J2)>10000;"CEK";IF(J2=0;"OK";"Catat"))
Ambang Rp 10.000 bisa kamu ganti sesuai skala toko.=SUMIFS(Rekap!J:J;Rekap!C:C;"Rina";Rekap!A:A;">="&DATE(2025;9;1);Rekap!A:A;"<="&DATE(2025;9;30))Pemisah argumen di rumus di atas pakai titik koma. Kalau Excel kamu setelan Inggris, ganti jadi koma.
Buat versi Google Sheets, sintaksnya sama persis. Rujukannya ada di dokumentasi SUMIFS di Google Sheets Help.
Hitung per pecahan, jangan langsung total. Bikin tabel kecil berisi nilai pecahan dan jumlah lembar atau keping, lalu kaliin pakai satu rumus. Cara ini bikin kamu bisa ngulang hitungan tanpa ngeluarin ulang semua uang, dan bikin selisih ratusan rupiah lebih gampang ketahuan.
| Pecahan | Jumlah | Subtotal |
|---|---|---|
| 100.000 | 28 | 2.800.000 |
| 50.000 | 15 | 750.000 |
| 20.000 | 18 | 360.000 |
| 10.000 | 9 | 90.000 |
| 5.000 | 11 | 55.000 |
| 2.000 | 6 | 12.000 |
| 1.000 | 3 | 3.000 |
| 500 | 2 | 1.000 |
| Total kas fisik | 4.071.000 | |
Taruh nilai pecahan di kolom A2:A10 dan jumlahnya di B2:B10, lalu totalnya satu rumus:
=SUMPRODUCT(A2:A10;B2:B10)
Penjelasan lengkap cara kerja SUMPRODUCT ada di halaman fungsinya. Singkatnya, dia ngaliin dua kolom baris per baris lalu ngejumlahin hasilnya.
Bungkus pakai IFERROR kalau sheet-nya dipakai banyak orang:
=IFERROR(SUMPRODUCT(A2:A10;B2:B10);0)
Telusuri dari yang paling sering ke yang paling jarang. Empat pemeriksaan pertama nutup mayoritas kasus: modal awal yang salah input, nota kas kecil yang belum dicatat, transaksi batal yang masih kehitung, dan kembalian yang salah di jam ramai. Baru setelah itu cek hal lain.
Kalau setelah enam langkah itu selisihnya masih ada, catat sebagai selisih tanpa keterangan. Jangan dipaksa nol dengan nambahin angka karangan. Catatan yang jujur lebih berguna daripada catatan yang rapi.
Dataset kasir_harian punya ngulikdata isinya 1.086 baris rekap shift dari 3 gerai minimarket selama 181 hari.
Dari 1.086 shift, 412 shift punya selisih nol. Sisanya 674 shift punya selisih, dan ini sebarannya:
| Rentang selisih | Jumlah shift | Porsi |
|---|---|---|
| Nol | 412 | 37,9% |
| Di bawah Rp 5.000 | 489 | 45,0% |
| Rp 5.000 sampai Rp 20.000 | 147 | 13,5% |
| Di atas Rp 20.000 | 38 | 3,5% |
Angka yang menarik ada di kolom keterangan. Dari 38 shift dengan selisih di atas Rp 20.000, 24 di antaranya punya keterangan yang nyambung ke pengeluaran kas kecil yang baru dicatat keesokan harinya.
Artinya 63 persen selisih besar itu bukan uang hilang. Itu urusan pencatatan yang telat.
Temuan kedua: rata-rata selisih di shift sore Rp 3.180, sementara shift pagi Rp 1.940. Bedanya 64 persen. Waktu dicek jam transaksinya, shift sore punya kepadatan transaksi 1,7 kali lipat di jam 17.00 sampai 19.00.
Kesimpulan praktisnya buat pemilik toko itu: masalahnya bukan orangnya, tapi antrean di jam sibuk. Solusinya nambah kasir kedua di jam itu, bukan nambah teguran.
Kalau kamu juga ngurus barang, rekap kas ini enak dipasangin sama kartu stok barang. Selisih kas dan selisih stok sering punya sumber yang sama.
Nggak ada angka baku, tapi banyak toko ritel pakai ambang Rp 5.000 sampai Rp 10.000 per shift buat selisih yang cuma dicatat tanpa investigasi. Yang lebih berguna: lihat polanya. Selisih Rp 2.000 tiap hari di kasir yang sama itu lebih pantas dicek daripada selisih Rp 50.000 sekali dalam setahun.
Per shift, kalau kasirnya lebih dari satu orang sehari. Rekap harian gabungan bikin kamu tau ada selisih tapi nggak tau siapa yang perlu ditanya. Tiap pergantian shift, laci dihitung, dicatat, lalu modal awal shift berikutnya diset ulang ke angka tetap. Rekap harian tinggal jumlahin semua shift.
Pisahin kolomnya dan jangan campur ke perhitungan kas fisik. Uang QRIS nggak masuk laci, jadi dia nggak boleh ikut ngurangin atau nambahin selisih kas. Buat kolom sendiri buat QRIS, debit, dan transfer, lalu cocokin masing-masing sama mutasi rekening. Selisih kas cuma buat yang tunai.
Urutannya begini. Cek dulu apakah modal awal yang diinput sama dengan yang beneran ditaruh. Habis itu cek pengeluaran kas kecil yang belum kecatat, ini penyebab paling sering. Lalu cek transaksi batal dan retur di sistem. Kalau tiga itu bersih, baru curigain kembalian yang salah hitung di jam ramai.
Perlu, minimal dua: kasir yang nyerahin dan orang yang nerima. Ini bukan soal nggak percaya. Ini soal nutup celah waktu selisih baru ketahuan tiga hari kemudian dan nggak ada yang inget siapa pegang uangnya kapan. Kolom tanda tangan di bawah tabel rekap udah cukup, nggak usah bikin dokumen terpisah.
Tiga hal yang bikin rekap setoran kasir kamu kepakai: modal awal yang tetap, kolom pengeluaran kas yang jujur, dan kolom keterangan buat tiap selisih.
Sisanya cuma rumus.
Buka spreadsheet kamu sekarang, bikin sepuluh kolom sesuai tabel di atas, lalu isi buat shift hari ini. Besok kamu udah punya dua baris data.
Lanjut baca cara nyusun laporan penjualan kasir buat ngolah angka penjualannya jadi laporan yang bisa dibaca pemilik.
Mau praktek langsung? Mulai latihan SQL gratis
Latihan interaktif, langsung di browser.
Punya ratusan angka dan mau tau sebarannya masuk ke rentang mana aja? FREQUENCY ngitung distribusi frekuensi sekali jalan, tanpa nulis COUNTIFS berkali-kali.
SUMIFS ribet kalau kriterianya banyak dan sering ganti. Rumus database Excel kayak DSUM baca kriteria dari sel terpisah, jadi kamu tinggal ubah tabel kecil tanpa nyentuh rumus.
DATEDIF ngasih umur bulat, tapi kadang kamu butuh angka desimal kayak 27,6 tahun buat hitung masa kerja atau bunga. YEARFRAC ngasih pecahan tahun dengan presisi.