TL;DR
Kartu stok barang adalah catatan riwayat pergerakan satu jenis barang: tanggal, keterangan, jumlah masuk, jumlah keluar, dan saldo setelah tiap transaksi. Kolom wajibnya enam, dan saldo harus selalu hasil hitungan dari baris sebelumnya, bukan angka yang diketik ulang. Di Excel, saldo berjalan dibikin pakai rumus SUM dengan referensi setengah terkunci, sehingga tiap baris baru langsung nunjukin sisa stok terkini.
Kartu stok barang adalah catatan riwayat pergerakan satu jenis barang, berisi tanggal, jumlah masuk, jumlah keluar, dan saldo setelah tiap transaksi.
Satu kartu buat satu barang. Satu baris buat satu kejadian.
Aturan itu kelihatan sepele, tapi dia yang bikin kamu bisa nelusuri kenapa stok gula tinggal 3 padahal minggu lalu masih 40. Di bawah ini kolom wajibnya, cara ngisi yang benar, dan rumus biar Excel yang ngitung saldonya.
Kartu stok barang adalah lembar catatan yang ngerekam tiap pergerakan satu jenis barang secara berurutan waktu. Tiap baris berisi tanggal, keterangan sumber transaksi, jumlah masuk, jumlah keluar, dan saldo sisa setelah transaksi itu. Saldo di baris terakhir adalah jumlah barang yang seharusnya ada di gudang saat ini.
Di gudang tradisional, kartu ini nempel di rak barangnya. Petugas nulis tangan tiap kali ada barang masuk atau keluar.
Bentuknya boleh pindah ke Excel, tapi logikanya nggak berubah. Yang penting saldo selalu hasil turunan dari baris sebelumnya.
Fungsi utamanya nyediain riwayat yang bisa ditelusuri. Angka sisa stok gampang dilihat di mana aja, tapi cuma kartu stok yang bisa jawab kapan barang itu masuk, dari siapa, dan dipakai buat apa. Riwayat ini yang kepakai waktu ada selisih antara catatan dan barang fisik.
Empat hal yang beneran kepakai sehari-hari:
Enam kolom inti, plus dua kolom opsional. Enam yang wajib: tanggal, nomor bukti, keterangan, masuk, keluar, dan saldo. Kolom opsionalnya harga satuan dan lokasi rak, dipakai kalau kamu butuh nilai rupiah atau gudangnya luas.
| Kolom | Isi | Contoh |
|---|---|---|
| Tanggal | Tanggal kejadian, bukan tanggal input | 2025-07-04 |
| No bukti | Nomor nota, PO, atau struk | PO-1123 |
| Keterangan | Sumber atau tujuan barang | Terima dari CV Sinar |
| Masuk | Jumlah yang nambah stok | 60 |
| Keluar | Jumlah yang ngurangin stok | 0 |
| Saldo | Sisa setelah transaksi, hasil rumus | 100 |
| Harga satuan (opsional) | Harga beli per unit | 34.000 |
| Lokasi (opsional) | Kode rak penyimpanan | R2-B4 |
Bagian kepala kartu diisi identitas barang: kode, nama, satuan, dan batas minimum stok. Empat baris ini nggak berubah tiap transaksi, jadi taruh di atas tabel.
Satu kolom yang sering dilupain: satuan. Tanpa itu, angka 5 bisa berarti 5 dus atau 5 pcs, dan selisihnya jadi 115 unit.
Lima aturan, dan urutannya nggak bisa ditawar. Isi berdasarkan tanggal kejadian, satu baris satu bukti, jangan pernah nimpa baris lama, saldo selalu hasil hitungan, dan tutup periode dengan baris saldo akhir.
Contoh pengisian buat minyak goreng 2L selama seminggu:
| Tanggal | No bukti | Keterangan | Masuk | Keluar | Saldo |
|---|---|---|---|---|---|
| 2025-07-01 | OP-0630 | Saldo awal | 0 | 0 | 40 |
| 2025-07-03 | PO-1123 | Terima dari CV Sinar | 60 | 0 | 100 |
| 2025-07-04 | TRX-8890 | Penjualan kasir 1 | 0 | 12 | 88 |
| 2025-07-05 | TRX-8912 | Penjualan kasir 2 | 0 | 18 | 70 |
| 2025-07-06 | RTR-0021 | Retur ke supplier, botol penyok | 0 | 3 | 67 |
| 2025-07-07 | PO-1140 | Terima dari CV Sinar | 60 | 0 | 127 |
Perhatikan baris retur. Barang rusak tetap dicatat sebagai keluar dengan keterangan jelas, bukan dihapus dari baris penerimaan.
Kuncinya di kolom saldo. Jangan diketik, biar rumus yang ngerjain.
Anggap saldo awal ada di sel H1, kolom masuk di D, kolom keluar di E, dan data mulai baris 2. Di sel saldo baris 2, tulis:
=$H$1+SUM($D$2:D2)-SUM($E$2:E2)
Lalu tarik ke bawah. Referensi $D$2 terkunci, sementara D2 ikut bergeser, jadi tiap baris ngejumlahin dari awal sampai baris itu.
Cara kerja tanda dolar ini dibahas di absolute reference Excel. Detail argumen fungsinya ada di fungsi SUM.
Kenapa nggak pakai =F1+D2-E2 yang lebih pendek? Karena sekali ada baris yang disisipkan atau dihapus, rantainya putus dan seluruh saldo di bawahnya jadi error. Versi SUM tahan sama itu.
Bikin 42 sheet buat 42 barang itu siksaan. Lebih enak simpan semua transaksi di satu tabel bernama tblTrx, lalu saring per kode.
Di Excel 365 atau 2021, taruh kode barang di sel B2 lalu tulis:
=FILTER(tblTrx,tblTrx[kode]=$B$2,"Belum ada transaksi")
Ganti isi B2, seluruh kartu ganti isi. Penjelasan lengkapnya ada di fungsi FILTER.
Buat Excel versi lama, pakai Advanced Filter atau pivot table dengan kode barang sebagai filter halaman.
Tambah sel batas minimum di kepala kartu, misalnya di H2. Lalu di kolom status:
=IF(F2<=$H$2,"REORDER","AMAN")
Kasih warna lewat Conditional Formatting biar langsung kelihatan tanpa dibaca satu per satu.
Kartu stok nyatet kuantitas doang dan dipegang gudang. Kartu persediaan nyatet kuantitas sekaligus nilai rupiah, dan dipegang akuntansi. Angka jumlahnya harus sama di dua kartu, cuma kartu persediaan nambah kolom harga pokok dan total nilai buat keperluan laporan keuangan.
| Aspek | Kartu stok | Kartu persediaan |
|---|---|---|
| Pemegang | Gudang | Akuntansi |
| Isi | Kuantitas | Kuantitas dan nilai rupiah |
| Dasar pencatatan | Bukti fisik barang | Nota dan faktur |
| Dipakai buat | Kontrol fisik dan pemesanan ulang | Laporan keuangan dan harga pokok penjualan |
Kalau jumlah di dua kartu beda, biasanya ada barang yang udah masuk gudang tapi fakturnya belum sampai ke akuntansi. Selisih semacam ini normal di akhir bulan, asal bisa dijelasin.
Dataset latihan toko_berkah di ngulikdata punya 42 SKU. Akhir Juli 2025, total saldo di kartu stok 1.658 unit.
Hasil hitung fisik nemu 1.612 unit. Selisih bersihnya 46 unit, tapi kalau dihitung per barang tanpa saling menutup, total selisih mutlaknya 63 unit dari 7 SKU.
Akurasinya 96,2 persen. Kedengeran bagus, tapi lihat sebarannya:
| Kode | Nama | Saldo kartu | Hitung fisik | Selisih |
|---|---|---|---|---|
| BRG-014 | Minyak Goreng 2L | 127 | 115 | -12 |
| BRG-031 | Gula Pasir 1kg | 48 | 26 | -22 |
| BRG-007 | Beras Premium 5kg | 63 | 63 | 0 |
| BRG-022 | Telur 1kg | 35 | 44 | +9 |
Selisih terbesar ada di gula pasir, 22 unit atau 46 persen dari saldo kartunya. Angka 96,2 persen tadi nyembunyiin masalah ini, karena barang lain akurat.
Penelusuran mundur di kartu gula nemu polanya. Tiap ada penjualan grosir, kasir nulis 1 di kolom keluar karena yang keluar 1 karung.
Padahal satuan di kartu itu kilogram, dan satu karung isinya 25 kilo. Enam kali kejadian, selisihnya 144 kilo. Sebagian ketutup penerimaan yang juga salah satuan, sisanya 22 kilo.
Perbaikannya nggak butuh sistem baru. Cukup kolom satuan yang dikunci pakai dropdown, dan aturan kalau satu kartu cuma boleh satu satuan.
1. Ngetik saldo manual. Sekali diketik, kesalahan hitung nggak ketahuan sampai stock opname. Saldo wajib hasil rumus.
2. Nyampur satuan dalam satu kartu. Dus dan pcs di kartu yang sama itu sumber selisih paling besar. Pilih satu satuan terkecil, lalu konsisten.
3. Nulis tanggal input, bukan tanggal kejadian. Urutan kejadian jadi kacau, dan penelusuran mundur jadi nggak bisa dipercaya.
4. Ngehapus baris yang salah. Bikin baris koreksi, jangan hapus. Kartu stok itu catatan riwayat, bukan papan tulis.
5. Nggak nyatet barang rusak dan contoh. Barang yang keluar buat sampel tetap keluar dari gudang. Nggak dicatat berarti selisih.
6. Nunda input sampai akhir minggu. Ingatan orang soal nota tiga hari lalu itu buruk. Input harian jauh lebih akurat daripada input borongan.
Kartu stok nyatet jumlah barang aja, biasanya dipegang bagian gudang. Kartu persediaan nyatet jumlah sekaligus nilai rupiahnya, dan dipegang bagian akuntansi buat nyusun laporan keuangan. Jumlah di dua kartu itu harusnya sama. Kalau beda, biasanya ada barang yang udah masuk gudang tapi notanya belum sampai ke akuntansi.
Satu kartu buat satu jenis barang, dan satu baris buat satu kejadian. Kalau kamu punya 42 jenis barang, berarti ada 42 kartu. Di Excel kamu nggak perlu bikin 42 sheet. Simpan semua transaksi di satu tabel dengan kolom kode barang, lalu saring per kode waktu mau lihat kartunya.
Penyebab paling sering ada empat. Barang keluar buat contoh atau rusak nggak dicatat. Ada barang masuk yang notanya nyangkut. Satuan ketuker antara dus dan pcs. Atau ada baris yang kelewat waktu pindah dari nota ke kartu. Cari selisihnya dengan nelusuri mundur dari tanggal stock opname terakhir.
Buat barang cepat laku, hitung fisik seminggu sekali. Buat barang biasa, sebulan sekali cukup. Banyak toko pakai cara bergilir: tiap hari hitung beberapa item, jadi dalam sebulan semua item kehitung tanpa perlu tutup toko. Cara ini lebih ringan daripada stock opname besar setahun sekali.
Kartu fisik di rak masih kepakai buat gudang yang petugasnya nggak bawa laptop. Fungsinya jadi catatan sementara sebelum diinput. Tapi jangan jadikan dua-duanya sumber kebenaran. Tentukan satu yang jadi acuan, biasanya file Excel, dan kartu fisik cuma buat cocokin waktu ada selisih.
Enam kolom, satu kartu per barang, dan saldo yang selalu hasil rumus. Itu seluruh aturannya.
Yang paling sering bikin kacau bukan rumusnya, tapi satuan yang ketuker dan baris yang dihapus. Dua kebiasaan itu yang bikin selisih 22 kilo gula di contoh tadi.
Referensi resmi rumus yang dipakai di atas ada di dokumentasi Microsoft Excel.
Buka Excel, bikin kartu buat satu barang paling laku di tokomu, lalu isi transaksi seminggu terakhir dan cocokin sama barang fisiknya. Kalau mau naikin ke sistem tiga sheet yang saling nyambung, lanjut ke aplikasi stok barang di Excel.
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.