# Pelacakan Inventaris Real-Time di ERP Kustom: Dari Pergerakan Stok hingga Dashboard Live

> Panduan praktis membangun visibilitas inventaris real-time di ERP kustom — event pergerakan stok, lokasi gudang, otomasi reorder, dan dashboard langsung.

URL: https://www.matthewswong.com/id/blog/erp-inventory-real-time-tracking/

- Author: Matthews Wong (https://www.matthewswong.com/id/about/)
- Published: 2025-06-10
- Updated: 2025-06-10
- Category: ERP

Perusahaan yang mengimplementasikan pelacakan inventaris real-time melalui sistem ERP melaporkan peningkatan akurasi inventaris sebesar 35% dan peningkatan efisiensi operasional sebesar 40%. Namun hanya 23% UKM yang telah berinvestasi pada alat inventaris real-time. Di Indonesia, di mana rantai pasokan kompleks dan operasi gudang sering mencakup beberapa lokasi, visibilitas real-time adalah perbedaan antara keputusan pengadaan yang percaya diri dan kehabisan stok yang mahal. Dalam pekerjaan konsultasi ERP freelance saya, saya membangun modul inventaris yang melacak setiap pergerakan stok sebagai event yang tidak dapat diubah dan menampilkan data langsung ke staf gudang dan dashboard manajemen.

## Model Event Inventaris

Keputusan desain inti: lacak inventaris sebagai aliran event, bukan kuantitas yang dapat diubah. Setiap penerimaan, pengeluaran, transfer, penyesuaian, atau pengembalian membuat baris stock_movements yang tidak dapat diubah. Kuantitas saat ini untuk item apa pun di lokasi mana pun selalu dihitung sebagai jumlah pergerakan. Ini memberikan audit trail bawaan, membuat rekonstruksi historis menjadi mudah, dan menghilangkan masalah 'ghost stock'.

### Jenis Pergerakan Stok dan Model Ledger

Saya mendukung enam jenis pergerakan: GR (Penerimaan Barang dari PO), GI (Pengeluaran Barang ke produksi atau pelanggan), TR (Transfer antar lokasi), ADJ+ (Penyesuaian Positif), ADJ- (Penyesuaian Negatif), dan RTN (Pengembalian dari pelanggan atau ke vendor). Setiap pergerakan mencatat: item_id, location_id, quantity, movement_type, reference_id, unit_cost, dan created_by.

> Dari pengalaman saya sebagai konsultan ERP freelance: jangan pernah izinkan pengeditan langsung kuantitas inventaris melalui UI. Semua perubahan stok harus melalui movement engine, bahkan penyesuaian manual. Ini terlihat membatasi sampai audit pertama — lalu klien bersyukur dapat menelusuri setiap perubahan kuantitas ke tindakan pengguna dan timestamp.

## Arsitektur Gudang Multi-Lokasi

Skema saya mendukung model lokasi hierarkis: Gudang → Zona → Lorong → Bin. Item dapat berada di beberapa bin secara bersamaan. Transfer order memindahkan kuantitas dari satu bin ke bin lain, membuat dua baris pergerakan (GI dari sumber dan GR di tujuan). Transfer bersifat atomik — kedua baris di-commit dalam transaksi PostgreSQL yang sama.

### Otomasi Titik Reorder

Setiap item memiliki reorder_point dan reorder_qty yang dapat dikonfigurasi. Job cron NestJS berjalan setiap malam dan memeriksa semua item di mana stok saat ini telah turun di bawah titik reorder. Untuk setiap kecocokan, sistem membuat draft Purchase Request di modul pengadaan, sudah diisi dengan vendor pilihan dan kuantitas reorder. Manajer gudang meninjau dan menyetujui PR draft ini setiap pagi.

> **Peringatan: Ketidaktepatan Materialized View**

> Jika Anda menggunakan materialized view untuk total inventaris, Anda harus menangani jendela ketidaktepatan dengan hati-hati. Selama sesi penerimaan volume tinggi, kuantitas langsung dalam materialized view mungkin tertinggal hingga 5 menit. Saya menambahkan endpoint 'live balance' yang melakukan query agregasi real-time untuk item spesifik yang sedang dilihat. Jangan pernah tampilkan total yang basi di layar picking — staf gudang yang bertindak berdasarkan data basi menyebabkan masalah operasional nyata.

## Bagaimana Saya Mendekati Ini

Modul inventaris berjalan di NestJS dengan TypeORM. Saya menggunakan fungsi PostgreSQL create_movement() yang memvalidasi pergerakan, memasukkan baris, dan memicu NOTIFY untuk me-refresh klien yang terhubung via WebSocket. UI gudang React berlangganan WebSocket ini dan memperbarui kuantitas yang ditampilkan secara real-time — tidak perlu polling.

## Dashboard Langsung untuk Manajemen

Manajemen mendapatkan dashboard yang menampilkan: total nilai inventaris berdasarkan kategori, item yang bergerak lambat (tidak ada pergerakan dalam 90 hari), item di bawah titik reorder, item dengan stok negatif (tanda masalah integritas data), dan perputaran inventaris bulanan berdasarkan kategori.

## Menangani Penghitungan Inventaris Fisik (Stocktake)

Penghitungan fisik tahunan atau kuartalan adalah kenyataan di gudang Indonesia, terutama untuk bisnis dengan persyaratan audit PKWT. Sistem kami mendukung workflow 'freeze and count': kunci lokasi (tidak ada pergerakan yang diizinkan selama penghitungan), rekam kuantitas penghitungan fisik item per item, hitung varians terhadap kuantitas sistem, buat pergerakan ADJ untuk setiap varians, dan buka kunci lokasi.

## Sumber & Bacaan Lebih Lanjut

- Anchor Group — 29 Wholesale Inventory Management Statistics for 2025 — https://www.anchorgroup.tech/blog/wholesale-inventory-management-statistics
- NetSuite — 14 Top Inventory Management Trends to Know in 2025 — https://www.netsuite.com/portal/resource/articles/inventory-management/inventory-management-trends.shtml
- Omniful — Best ERP Systems for Inventory Management 2025 — https://www.omniful.ai/blog/best-erp-systems

> **Key takeaway:** Perusahaan yang menjalankan pelacakan stok real time lewat ERP melaporkan peningkatan akurasi stok 35 persen dan efisiensi operasional 40 persen lebih baik, tetapi hanya 23 persen UKM yang berinvestasi pada perangkatnya. Kesenjangannya biasanya soal disiplin proses di bagian penerimaan, bukan soal software.

## Source links

- https://www.anchorgroup.tech/blog/wholesale-inventory-management-statistics
- https://www.netsuite.com/portal/resource/articles/inventory-management/inventory-management-trends.shtml
- https://www.omniful.ai/blog/best-erp-systems

## FAQ

### Mengapa inventaris dilacak sebagai aliran event yang tidak dapat diubah, bukan langsung memperbarui kolom kuantitas?

Melacak inventaris sebagai aliran event berarti stok saat ini selalu dihitung sebagai jumlah semua pergerakan, sehingga audit trail tersedia secara otomatis dan rekonstruksi historis menjadi mudah. Pendekatan ini juga menghilangkan masalah 'ghost stock', yaitu saat kuantitas menunjukkan angka tertentu tetapi tidak ada yang bisa menjelaskan asal-usulnya. Semua perubahan — penerimaan, pengeluaran, penyesuaian, dan pengembalian — harus melalui movement engine, sehingga setiap selisih bisa ditelusuri ke tindakan pengguna dan timestamp tertentu.

### Bagaimana sistem mencegah stok hilang saat terjadi transfer antar gudang?

Setiap transfer membuat dua baris pergerakan secara atomik: Goods Issue (GI) dari bin sumber dan Goods Receipt (GR) di bin tujuan, keduanya di-commit dalam satu transaksi PostgreSQL yang sama. Jika salah satu gagal dimasukkan, tidak ada satu pun yang dicatat. Ini mencegah skenario 'in-transit limbo' di mana stok menghilang di tengah transfer dan tidak bisa dipertanggungjawabkan di lokasi mana pun.

### Apa trade-off penggunaan materialized view untuk total inventaris, dan bagaimana mengatasinya?

Materialized view yang di-refresh setiap 5 menit memberikan performa query dashboard yang cepat, tetapi menciptakan jendela ketidaktepatan — saat sesi penerimaan volume tinggi, kuantitas yang ditampilkan bisa tertinggal hingga 5 menit. Untuk mengatasinya, endpoint 'live balance' terpisah melakukan query agregasi real-time untuk item spesifik yang sedang dilihat, sedangkan materialized view hanya digunakan untuk dashboard ringkasan. Menampilkan total yang basi di layar picking sengaja dihindari karena staf gudang yang bertindak berdasarkan data basi bisa menyebabkan masalah operasional nyata.

### Bagaimana otomasi titik reorder bekerja, dan mengapa sistem membuat draft Purchase Request bukan PO otomatis?

Job cron NestJS berjalan setiap malam, memeriksa setiap item yang stoknya telah turun di bawah reorder_point yang dikonfigurasi, lalu membuat draft Purchase Request yang sudah terisi vendor pilihan dan kuantitas reorder. Sistem sengaja tidak langsung menerbitkan Purchase Order otomatis agar manajer gudang dapat meninjau dan menyetujui setiap pagi, menjaga keterlibatan manusia dalam proses. Pendekatan ini menghemat sekitar 2 jam per hari bagi tim gudang klien dari pengecekan stok manual.

### Bagaimana workflow penghitungan inventaris fisik (stocktake) menjaga audit trail tetap utuh?

Sistem menggunakan workflow 'freeze and count': lokasi gudang dikunci untuk mencegah pergerakan apa pun selama penghitungan, kuantitas fisik direkam item per item, varians terhadap kuantitas sistem dihitung, dan pergerakan ADJ dibuat untuk setiap varians sebelum lokasi dibuka kembali. Laporan varians disimpan sebagai dokumen untuk ditinjau auditor, yang sangat penting bagi bisnis di Indonesia dengan persyaratan audit PKWT. Proses yang sebelumnya memakan waktu seminggu dengan spreadsheet kini selesai dalam satu hari.

---

- HTML version: https://www.matthewswong.com/id/blog/erp-inventory-real-time-tracking/
- English: https://www.matthewswong.com/en/blog/erp-inventory-real-time-tracking/
- Site index for agents: https://www.matthewswong.com/llms.txt
- Sitemap: https://www.matthewswong.com/sitemap.xml
- API description (OpenAPI): https://www.matthewswong.com/openapi.json
