Persediaan

Barang, gudang dan saldo: kartu barang dengan satuan dan barcode, stok opname dan penyesuaian, transfer antar gudang, dan pelacakan nomor seri. Persediaan dinilai dengan metode biaya rata-rata tertimbang, dan setiap perubahan kuantitas berasal dari dokumen yang diposting — saldo tidak pernah diubah secara langsung.

Barang

Rute: Persediaan › Barang/commercial/items

Barang
Daftar barang
Barang baru
Menambah barang

Fungsi: master barang adalah jantung sistem komersial. Setiap baris pembelian, penjualan, transfer dan penyesuaian menunjuk ke satu kartu barang, jadi buat kartunya dengan benar sebelum dokumen pertama yang memakainya. Gunakan layar ini setiap kali menambah produk atau jasa baru, mengubah harga atau PPN, atau menambah satuan jual yang lebih besar (karton, lusin…).

Daftar barang

Daftar menampilkan: kode, nama Arab, nama Inggris, satuan dasar, kategori, merek, harga jual dan tanda aktif. Seperti semua daftar di KEMTOVA ERP Anda dapat mencari, memfilter kolom, menampilkan/menyembunyikan kolom dan mengekspor. Aksi baris: ubah (pensil) dan hapus (tempat sampah, dengan konfirmasi). Tombol Buat membuka kartu kosong dengan kode otomatis berikutnya.

Kartu barang — semua kolom

KolomDeskripsi
KodeDiberikan otomatis dari seri penomoran dan hanya-baca. Kode ganda ditolak saat menyimpan (“Kode barang … sudah ada”).
Nama ArabWajib. Nama tampilan utama pada dokumen dan daftar.
Nama InggrisOpsional; jika kosong, nama Arab dipakai otomatis.
Jenis BarangProduk Stok atau Jasa. Jasa (upah, pengiriman, servis…) tidak pernah menyentuh stok.
Lacak persediaanTampil untuk produk saja. Saat dicentang (default), setiap pergerakan dokumen memperbarui saldo gudang barang.
SatuanWajib. Satuan dasar (terkecil) — pcs, kg, liter… Semua saldo stok disimpan dalam satuan ini.
KategoriKlasifikasi opsional untuk filter dan laporan.
MerekProdusen / merek dagang opsional, juga untuk filter dan laporan.
BarcodeBarcode satuan dasar. Memindainya pada dokumen memilih barang dalam satuan dasar.
Harga JualHarga jual default satuan dasar (hingga 4 desimal). Diusulkan otomatis pada baris penjualan; dapat diubah per dokumen sesuai izin Anda.
Harga BeliHarga beli default satuan dasar. Diusulkan pada baris pembelian dan dipakai mengisi biaya satuan pada penambahan penyesuaian stok.
Tarif PPNPersentase 0–100, default 15%. Diterapkan otomatis pada baris dokumen (pakai 0 untuk barang tarif nol atau bebas pajak).
Titik Pemesanan UlangKuantitas minimum yang diinginkan. Saat saldo turun di bawahnya, barang ditandai di layar Saldo stok.
Melacak tanggal kedaluwarsaCentang untuk barang mudah kedaluwarsa — dokumen penerimaan mencatat tanggal kedaluwarsa dan pengeluaran mengikuti FEFO (kedaluwarsa dulu, keluar dulu) di pemilih nomor seri.
Dilacak dengan nomor seriCentang untuk barang yang diikuti per unit (ponsel, elektronik…). Penerimaan harus mencatat satu seri per unit dan penjualan memilih seri yang terjual — lihat Register nomor seri.
AktifTampil saat mengubah. Hapus centang untuk memensiunkan barang: hilang dari pemilih dokumen tetapi riwayatnya tetap utuh.
CatatanPanel samping menyimpan catatan teks bebas untuk kartu ini.

Satuan alternatif — faktor, barcode dan harga

Di bagian Satuan alternatif tambahkan setiap satuan lebih besar yang dipakai membeli atau menjual barang. Tiap baris berisi: satuan, faktor konversi (berapa satuan dasar di dalamnya), barcode sendiri, harga jual sendiri dan harga beli sendiri. Tekan Enter untuk berpindah antar sel dan menambah baris dengan cepat.

Contoh nyata — minuman dijual per pcs dan per karton isi 12:

SatuanFaktorBarcodeHarga jualHarga beli
Pcs (dasar)162810000000172.501.80
Karton12628100000002427.0019.20

Cara kerjanya: stok selalu disimpan dalam pcs. Menjual 1 karton mengurangi 12 pcs; membeli 5 karton menambah 60 pcs. Memindai barcode 6281000000024 pada faktur memunculkan barang dalam karton seharga 27.00, sedangkan 6281000000017 memunculkannya dalam pcs seharga 2.50. Perhatikan harga jual karton (27.00) tidak harus sama dengan 12 × 2.50 = 30.00 — satuan grosir biasanya membawa diskon.

Stok per gudang

Saat mengubah barang stok, tabel hanya-baca menampilkan kuantitas, biaya rata-rata dan nilai saat ini di setiap gudang — cek saldo cepat tanpa meninggalkan kartu.

Aksi

Simpan kembali ke daftar, Simpan & Baru menyimpan lalu membuka kartu baru dengan kode berikutnya, Kembali keluar tanpa menyimpan. Menyimpan memerlukan nama Arab dan satuan dasar; jika tidak, kolom yang kurang ditampilkan dalam pesan.

⚠️ Barang jasa: barang jenis “jasa” (upah, servis…) tidak menyentuh stok sama sekali — hanya muncul di faktur, tanpa saldo, transfer maupun penyesuaian.

Kesalahan umum

  • Memilih satuan dasar yang salah. Saldo disimpan dalam satuan dasar; jika “karton” dijadikan dasar lalu perlu menjual pcs, Anda terpaksa memakai kuantitas pecahan. Selalu pilih satuan terkecil sebagai dasar.
  • Menghapus baris satuan alternatif yang sudah dipakai dokumen. Dokumen lama tetap menyimpan datanya, tetapi barcode berhenti terbaca dan satuan hilang dari pemilih. Lebih baik menambah baris baru daripada menghapus.
  • Barcode ganda antar barang. Pemindai akan mengambil barang mana pun yang cocok lebih dulu — jaga barcode unik per barang/satuan.
  • Mengaktifkan pelacakan seri setelah barang punya pergerakan. Kuantitas lama tidak punya nomor seri, sehingga hitungan dan register seri tak akan cocok. Aktifkan sebelum penerimaan pertama.

FAQ

  • Bagaimana mengubah biaya (cost) barang? Tidak diketik — biaya adalah rata-rata tertimbang yang dihitung dari penerimaan. Ia berubah saat memposting pembelian dengan harga baru, atau saat memposting penambahan penyesuaian stok dengan biaya satuan yang benar. Kolom “Harga Beli” hanyalah default untuk baris dokumen baru, bukan biayanya sendiri.
  • Mengapa tidak bisa menghapus barang yang punya pergerakan? Transaksinya merujuk barang itu, dan sistem melindungi riwayat — penghapusan ditolak. Hapus centang Aktif saja; barang hilang dari pemilih tetapi laporan tetap berjalan.
  • Bisakah satu barang punya dua barcode untuk satuan yang sama? Satu barcode per baris satuan. Jika produk datang dengan dua kode tercetak, tambahkan baris satuan kedua dengan faktor 1 yang membawa barcode lainnya.
  • Dari mana harga khusus per pelanggan? Dari layar Daftar harga dan Kebijakan diskon di modul Penjualan — kartu barang hanya memuat harga default.

Saldo stok

Rute: Persediaan › Saldo Stok/commercial/on-hand

Saldo stok
Saldo saat ini

Fungsi: tampilan langsung hanya-baca saldo setiap barang stok di setiap gudang. Buka sebelum stok opname, saat pelanggan bertanya “ada barangnya?”, atau untuk meninjau nilai total persediaan Anda.

KolomArti
Kode / NamaBarang (satu baris per barang per gudang).
GudangTempat saldo ini berada.
KuantitasKuantitas tersedia saat ini dalam satuan dasar barang.
Biaya Rata-rataBiaya rata-rata tertimbang saat ini per satuan dasar.
NilaiKuantitas × biaya rata-rata. Kolom ini dijumlahkan di bawah — valuasi persediaan Anda.
Di Bawah Titik PemesananDitandai saat kuantitas turun di bawah titik pemesanan ulang barang — daftar kerja restock Anda.

Gunakan pencarian dan filter kolom untuk mempersempit per gudang, kategori atau barang, dan Ekspor untuk membawa daftar ke Excel — misalnya sebagai lembar hitung sebelum opname.

Tersedia untuk dijual: pesanan penjualan yang disetujui tetapi belum dikirim memesan stok. Layar penjualan menampilkan tersedia = saldo − dipesan; layar ini menampilkan saldo fisik.

FAQ

  • Saldonya salah — bisa diedit di sini? Tidak. Layar ini memang hanya-baca; setiap perubahan harus lewat dokumen. Posting penyesuaian stok dengan selisihnya.
  • Mengapa biaya rata-rata 0? Saat saldo mencapai nol, biaya rata-rata direset ke 0; dibangun kembali oleh penerimaan berikutnya.
  • Mengapa barang jasa tidak muncul? Jasa dan barang dengan “Lacak persediaan” tidak dicentang tidak punya saldo.
  • Bagaimana menjalankan stok opname penuh? Ekspor layar ini sebagai lembar hitung, hitung fisik, lalu masukkan selisihnya sebagai penyesuaian stok — lihat langkah-langkahnya di bagian berikut.

Penyesuaian stok

Rute: Persediaan › Penyesuaian Stok/commercial/stock-adjustments

Penyesuaian stok
Daftar penyesuaian
Penyesuaian baru
Penyesuaian stok baru

Fungsi: menyamakan saldo buku dengan kenyataan — selisih hitung setelah opname, kerusakan, kehilangan, penghapusan kedaluwarsa, atau memasukkan saldo awal barang baru. Daftar menampilkan nomor dokumen, tanggal, gudang, jumlah baris dan status (Draf / Diposting) dengan aksi cetak dan hapus per baris.

Kolom header

KolomDeskripsi
TanggalTanggal penyesuaian (default hari ini). Menentukan periode fiskal jurnalnya.
CabangCabang tempat jurnal diposting. Terisi otomatis dari cabang default Anda dan terkunci bila izin Anda hanya mencakup satu cabang.
GudangWajib. Gudang yang saldonya disesuaikan. Terisi otomatis dari gudang default Anda.
AlasanTeks bebas — “Opname tahunan 2026”, “Rusak di gudang”… dicetak pada dokumen.

Baris

KolomDeskripsi
BarangPemilih barang dengan pencarian (barang stok).
KuantitasBertanda: kuantitas positif menambah stok, negatif menguranginya. Satu dokumen boleh mencampur baris lebih dan kurang.
Biaya SatuanTerisi otomatis dengan harga beli barang saat dipilih. Hanya dipakai untuk penambahan — pengurangan selalu keluar dengan biaya rata-rata terkini, apa pun yang Anda ketik di sini.

Tekan Enter untuk berpindah antar sel dan menambah baris. Baris tanpa barang atau dengan kuantitas 0 diabaikan saat menyimpan.

Aksi dan status

  1. Simpan menyimpan dokumen sebagai Draf — dapat diubah, dapat dihapus, tanpa efek pada stok.
  2. Posting menerapkan setiap baris ke saldo gudang dan mengunci dokumen (Diposting = hanya-baca, tidak dapat dihapus).
  3. Setelah posting, toolbar menyediakan Cetak, Unduh (PDF) dan Lihat jurnal.
  4. Baru mengosongkan editor dan memulai dokumen baru dengan nomor berikutnya.

Validasi: gudang dan minimal satu baris valid wajib diisi. Memposting pengurangan yang melebihi saldo tersedia diblokir: “Stok tidak cukup: tersedia X, diminta Y.”

Efek posting

  • Stok: penambahan melebur biaya satuan yang dimasukkan ke rata-rata tertimbang; pengurangan keluar dengan biaya rata-rata terkini. Tiap baris menulis transaksi persediaan (AdjustmentIn / AdjustmentOut) ke riwayat pergerakan barang.
  • Akuntansi: perubahan nilai bersih diposting otomatis sebagai jurnal antara akun Persediaan dan akun Penyesuaian Persediaan (keduanya diatur di pengaturan Komersial → akun). Bila akun belum diatur, stok tetap berubah tetapi jurnal tidak dibuat.

Contoh nyata — selisih kurang hasil opname

Opname tahunan menemukan 3 unit barang “Air 330ml” hilang. Kartu menunjukkan biaya rata-rata 25.00. Masukkan satu baris:

BarangKuantitasBiaya Satuan
Air 330ml−3(diabaikan untuk pengurangan)

Saat diposting, stok berkurang 3 dan nilai keluar 3 × 25.00 = 75.00. Jurnal otomatisnya:

AkunDebitKredit
Penyesuaian Persediaan (beban)75.00
Persediaan75.00

Selisih lebih bekerja sebaliknya: kuantitas positif dengan biayanya mendebit Persediaan dan mengkredit akun penyesuaian.

Stok opname penuh — prosedur yang disarankan

  1. Hentikan pergerakan gudang (penerimaan dan pengeluaran) selama penghitungan.
  2. Ekspor layar Saldo stok terfilter per gudang — inilah lembar hitung dengan kuantitas buku.
  3. Hitung fisik dan tulis kuantitas aktual di samping tiap barang.
  4. Buat satu penyesuaian per gudang: untuk setiap selisih tambahkan baris dengan kuantitas = aktual − buku (negatif untuk kurang, positif untuk lebih; untuk selisih lebih masukkan biaya satuan sebenarnya).
  5. Tinjau, lalu Posting. Saldo stok kini sama dengan hitungan fisik dan selisih bersihnya berada di akun penyesuaian untuk ditinjau manajemen.

Kesalahan umum

  • Mengetik saldo target, bukan selisihnya. Kuantitas adalah perubahan, bukan saldo baru. Buku 10, hitung 7 → masukkan −3 (bukan 7).
  • Mengira biaya satuan memengaruhi pengurangan. Tidak pernah — pengurangan dinilai otomatis dengan rata-rata terkini.
  • Membiarkan dokumen sebagai Draf. Draf tidak mengubah apa pun; saldo baru bergerak saat Posting.
  • Mencoba memperbaiki penyesuaian terposting dengan menghapusnya. Dokumen terposting tidak dapat dihapus — posting penyesuaian baru dengan kuantitas berlawanan.

FAQ

  • Bagaimana memasukkan saldo awal barang baru? Posting penyesuaian dengan kuantitas positif dan biaya satuan sebenarnya — biaya itu menjadi rata-rata awal.
  • Bisakah menyesuaikan beberapa gudang dalam satu dokumen? Tidak — satu gudang per penyesuaian. Buat satu dokumen per gudang.
  • Mengapa jurnal tidak dibuat? Perubahan nilai bersihnya nol, atau kode akun Persediaan / Penyesuaian Persediaan belum diatur di pengaturan Komersial.
  • Bisakah mengoreksi biaya rata-rata tanpa mengubah kuantitas? Posting sepasang penyesuaian kecil (keluar lalu masuk dengan biaya benar) — atau hubungi administrator; rata-rata dikelola sistem.

Transfer antar gudang

Rute: Persediaan › Transfer Persediaan/commercial/inventory-transfers

Transfer
Daftar transfer

Fungsi: memindahkan kuantitas antar gudang — mengisi ulang cabang dari gudang utama, memuat mobil sales, atau mengonsolidasi stok. Daftar menampilkan nomor transfer, tanggal, kedua gudang, jumlah baris dan status.

Kolom

KolomDeskripsi
TanggalTanggal transfer (default hari ini).
Dari GudangWajib. Gudang asal. Terisi otomatis dari gudang default Anda.
Ke GudangWajib. Gudang tujuan — harus berbeda dari asal (“Gudang asal dan tujuan harus berbeda”).
CatatanTeks bebas yang dicetak pada nota transfer.
BarisBarang + kuantitas (dalam satuan dasar, harus > 0). Navigasi Enter menambah baris.

Aksi dan efek posting

  1. Simpan menyimpan Draf (tanpa efek stok); draf dapat diubah atau dihapus.
  2. Posting mengeluarkan tiap baris dari gudang asal dengan biaya rata-rata barang di sana — saldo minus diblokir — dan menerimanya di gudang tujuan dengan biaya satuan yang sama, sehingga nilai total persediaan tetap.
  3. Transfer terposting hanya-baca dan menyediakan Cetak / Unduh; tidak dapat dihapus.
Tanpa jurnal: kedua gudang berada di akun Persediaan yang sama, jadi transfer hanya memindahkan nilai di dalam satu akun — dialog “Lihat jurnal” tidak akan menampilkan apa pun. Nilai stok total sebelum = sesudah.

Contoh nyata — transfer 50 unit

Transfer 50 unit “Air 330ml” dari Gudang Utama ke Gudang Cabang. Sebelum: Utama menyimpan 120 unit dengan rata-rata 10.00; Cabang menyimpan 20 unit dengan rata-rata 12.00.

GudangSebelumPergerakanSesudah
Gudang Utama120 @ 10.00 = 1,200−50 @ 10.00 = −50070 @ 10.00 = 700
Gudang Cabang20 @ 12.00 = 240+50 @ 10.00 = +50070 @ 10.57 = 740

Rata-rata tujuan dihitung ulang: (240 + 500) ÷ 70 ≈ 10.57. Nilai total 1,440 sebelum dan sesudah — tidak ada yang bertambah atau hilang.

Kesalahan umum & FAQ

  • “Stok tidak cukup” saat posting: gudang asal tidak menyimpan kuantitasnya — cek Saldo stok; mungkin barang diterima di gudang lain.
  • Arah salah? Tidak ada “batal posting” — buat transfer kedua kembali dari tujuan ke asal.
  • Ada status dalam perjalanan (in-transit)? Tidak — posting memindahkan stok seketika; sebelum posting tidak ada yang berpindah.
  • Apakah transfer mengubah harga? Tidak. Hanya kuantitas dan biaya yang berpindah; harga jual tidak tersentuh.

Register nomor seri

Rute: Persediaan › Nomor Seri/commercial/serials

Nomor seri
Register nomor seri

Fungsi: registri siklus hidup hanya-baca untuk setiap nomor seri barang berpelacakan seri (ponsel, elektronik…): dari mana tiap unit berasal, di mana sekarang, dan dokumen mana yang mengeluarkannya — tulang punggung layanan garansi. Cari seri apa pun untuk menjawab “kapan kami menjual perangkat ini persisnya, dan dengan faktur yang mana?”

KolomArti
Nomor seriSeri unik satu unit fisik.
Kode / nama barangKartu barang pemiliknya.
StatusTersedia di stok, Terjual, atau Diretur ke pemasok.
GudangLokasi unit (untuk seri yang di stok).
Tanggal kedaluwarsaUntuk barang berpelacakan kedaluwarsa; usulan pengeluaran mengikuti FEFO (kedaluwarsa dulu, keluar dulu).
Diterima pada / tanggalDokumen pembelian/penerimaan yang memasukkan seri.
Dikeluarkan pada / tanggalDokumen penjualan/retur yang mengeluarkannya (kosong selama masih di stok).

Aturan siklus hidup (ditegakkan otomatis)

  • Penerimaan memerlukan tepat satu seri per unit yang diterima; seri yang sudah terdaftar tidak dapat diterima lagi (duplikat diblokir dengan status terkininya ditampilkan).
  • Penjualan mensyaratkan seri berada di stok di gudang yang sama dengan dokumen; seri yang tak pernah diterima atau sudah terjual ditolak.
  • Retur pelanggan hanya mengaktifkan kembali seri yang benar-benar terjual; retur ke pemasok mensyaratkan seri berada di stok.
  • Pembelian tidak dapat dibatalkan postingnya bila salah satu serinya sudah terjual.

FAQ

  • Seri yang sama tercetak di dua kotak fisik — bagaimana? Sistem hanya menerimanya sekali. Beri unit kedua seri yang dapat dibedakan (mis. akhiran) atau minta pemasok memperbaiki labelnya.
  • Mengapa barang saya tidak meminta nomor seri? Tanda Dilacak dengan nomor seri pada kartu barang belum aktif. Aktifkan sebelum menerima stok baru.
  • Bisakah mengedit seri di sini? Tidak — registri hanya-baca; nomor seri ditulis oleh dokumennya sendiri.

Gudang

Rute: Persediaan › Gudang/commercial/warehouses

Gudang
Daftar gudang

Fungsi: mendefinisikan lokasi penyimpanan (gudang utama, gudang cabang, mobil sales…). Setiap pergerakan stok milik tepat satu gudang, jadi buat gudang sebelum memasukkan dokumen stok apa pun.

KolomDeskripsi
KodeOtomatis, hanya-baca; duplikat ditolak.
Nama Arab / InggrisNama Arab wajib; tampil di semua pemilih gudang.
AktifHanya saat mengubah — nonaktifkan lokasi yang ditutup, jangan dihapus.
CatatanPanel samping untuk catatan teks bebas.
💡 Gudang default: tiap pengguna dapat punya gudang default (pengaturan default pengguna) — terisi otomatis pada penyesuaian, transfer dan dokumen komersial baru, menghemat klik dan mencegah entri di gudang yang salah.

FAQ

  • Mengapa gudang tidak bisa dihapus? Ada pergerakan atau saldo stok yang merujuknya. Nonaktifkan saja — riwayat tetap terjaga.
  • Bagaimana menutup gudang yang masih berisi stok? Transfer semuanya keluar dulu, pastikan Saldo stok menunjukkan nol, lalu nonaktifkan.

Satuan ukur

Rute: Persediaan › Satuan/commercial/units

Satuan
Daftar satuan

Fungsi: daftar bersama satuan (pcs, karton, kg, liter…) dengan kode otomatis dan nama dwibahasa. Kartu barang merujuk satuan ini sebagai satuan dasar dan satuan alternatif — faktor konversi disimpan di kartu barang, bukan di sini, sehingga “karton” bisa berarti 12 untuk satu barang dan 24 untuk barang lain.

KolomDeskripsi
KodeOtomatis, hanya-baca.
Nama Arab / InggrisArab wajib; tampil pada dokumen dan cetakan.
AktifHanya saat mengubah — pensiunkan satuan yang tak terpakai.

FAQ

  • Mengapa satuan tidak bisa dihapus? “Satuan ini dipakai oleh barang dan tidak dapat dihapus.” Nonaktifkan, atau pindahkan dulu barang yang memakainya.
  • Jika satuan diganti nama, apakah dokumen lama berubah? Nama hanyalah label — tampilan dan cetakan baru memakai nama baru; kuantitas tersimpan tidak terpengaruh.

Kategori & merek

Rute: Persediaan › Kategori / Merek/commercial/categories, /commercial/brands

Kategori
Kategori barang
Merek
Merek

Fungsi: mengklasifikasi barang untuk filter dan laporan: kategori mengelompokkan menurut sifat (makanan, elektronik…), merek menurut produsen. Keduanya layar master sederhana dengan tata letak sama: kode otomatis + nama Arab (wajib) + nama Inggris + tanda aktif + panel catatan, dengan Simpan / Simpan & Baru / Kembali.

💡 Rencanakan pohonnya dulu: sepakati daftar kategori sebelum membuat barang — mengklasifikasi ulang ratusan barang belakangan sangat melelahkan, dan laporan hanya sebaik klasifikasinya.

FAQ

  • Mengapa kategori atau merek tidak bisa dihapus? “…dipakai oleh barang dan tidak dapat dihapus.” Pindahkan barangnya ke nilai lain dulu, atau nonaktifkan.
  • Apakah kategori dan merek wajib pada barang? Tidak — keduanya opsional, tetapi mengisinya membuat filter daftar serta laporan penjualan/pembelian jauh lebih berguna.

Pertanyaan umum

Bagaimana menambah item?

Buka Persediaan › Item › Baru. Kode dibuat otomatis (atau manual sesuai pengaturan penomoran); isi nama, satuan, pajak, harga, lalu Simpan.

Bagaimana menyesuaikan stok?

Gunakan Penyesuaian Stok untuk mengoreksi kuantitas setelah opname, memilih gudang dan alasan; posting memperbarui persediaan dan valuasinya.

Bagaimana biaya item dihitung?

KEMTOVA ERP memelihara biaya rata-rata bergerak per item, diperbarui otomatis setiap Anda posting pembelian atau penyesuaian.

Bisakah mengelola banyak gudang?

Ya. Stok dilacak per gudang, dan transfer memindahkan kuantitas antar gudang tanpa memengaruhi total nilai tersedia.