“Cabang A habis mie, Cabang B numpuk, gudang pusat penuh 200 dus.” Kenal situasi ini?
Sabtu siang, cabang paling rame Anda habis Indomie. Kasir dihujani komplain, admin kirim pesan panik di grup, supir yang harusnya drop ke cabang itu malah pulang setengah kosong karena daftar pengiriman berubah mendadak. Masalahnya bukan stok kurang—gudang pusat masih ada 200 dus. Yang berantakan ritmenya: siapa minta apa, dikirim kapan, lewat rute mana, dan stok tiap cabang harusnya diset di angka berapa. Kalau ini dibiarkan, biaya kirim naik, rak kosong terus, dan uang nyangkut di stok yang salah tempat.
Berikut langkah konkret yang bisa langsung Anda terapkan. Bukan teori. Ada angka, contoh, dan cara ngerjainnya tahap demi tahap.
1) Kunci dulu ritme operasional: cut-off, jadwal transfer, dan approval
Jangan biarkan permintaan cabang datang acak sepanjang hari. Tetapkan jam dan aturan main yang jelas.
- Tetapkan cut-off harian. Contoh: semua request antar-cabang masuk maksimal pukul 12:00 untuk pengiriman H+1. Yang masuk setelah itu otomatis H+2. Tulis ini di SOP dan tempel di setiap kantor cabang.
- Jadwal transfer tetap. Misal: rute Barat (Cabang A, B) kirim Senin-Rabu-Jumat, rute Timur (Cabang C, D) Selasa-Kamis-Sabtu. Permintaan urgent hanya 1 kali per hari pukul 15:00 dengan batas qty (misal maksimal 10% penjualan harian SKU terkait) agar gudang tidak kacau.
- Form permintaan standar (bukan chat bebas). Kolom wajib: SKU, satuan, stok saat ini, penjualan 7 hari terakhir, kebutuhan sampai H+3, alasan permintaan (habis/promo/retur). Contoh isian: “Indomie Ayam Bawang 40pcs, stok 8 dus, jual 10 dus/7 hari, butuh 25 dus (cover 3 hari), alasan: weekend traffic.”
- Approval bertingkat berbasis nilai. Di atas Rp5 juta per request perlu persetujuan area manager. Sistem harus auto-block kalau melewati plafon.
- Target layanan jelas. OTIF (On Time In Full) minimal 95%. Artinya 95 dari 100 order antar-cabang harus tiba sesuai janji dan lengkap. Pasang dashboard yang mudah dibaca.
2) Atur stok per cabang pakai angka: ROP, Min–Max, ABC, dan FEFO
Stok tiap cabang jangan “feeling based”. Pakai rumus sederhana supaya rak aman tapi tidak kebanyakan.
- Langkah hitung cepat:
- Rata-rata jual harian (30 hari terakhir) per SKU per cabang. Contoh: Indomie di Cabang A = 10 dus/hari.
- Lead time antar-cabang dari gudang: misal 2 hari (order H, kirim H+1, terima H+2).
- Safety stock praktis: 20–40% dari kebutuhan lead time. Ambil 30% jika demand fluktuatif.
- Reorder Point (ROP) = (Demand harian x Lead time) + Safety stock.
- Contoh angka: Demand 10 dus/hari, LT 2 hari → kebutuhan LT = 20 dus. Safety 30% = 6 dus. ROP = 26 dus. Kalau stok turun menyentuh 26 dus, cabang WAJIB minta kirim.
- Min–Max per cabang: Min = ROP. Max = Min + (Demand harian x cover days). Cover days: A (SKU cepat) 10–14 hari, B 7–10 hari, C 3–5 hari. Contoh kategori A: Max = 26 + (10 x 12) = 146 dus. Kirim untuk mengangkat stok dari posisi sekarang ke Max, jangan “seadanya”.
- ABC by penjualan 3 bulan. Top 20% SKU = A, next 30% = B, sisa = C. Fokuskan cycle count dan ruang rak terbaik ke A; A boleh cover 10–14 hari, C cukup 3–5 hari supaya modal tidak nyangkut.
- FEFO/FIFO tergantung kadaluarsa. Barang ber-expiry wajib FEFO (First Expired First Out). Simpan data batch & tanggal kedaluwarsa; alarm 60 hari sebelum expired, dan potong harga 10–20% di minggu terakhir jika perlu.
3) Alokasi adil saat stok terbatas + strategi push/pull
Beda kondisi, beda strategi. Jangan semua “ditarik” cabang terus; sesekali perlu “dorong” dari pusat.
- Mode pull (harian): Cabang minta berdasarkan Min–Max. Cocok untuk alur stabil.
- Mode push (momen promo/launch): Kirim frontload ke cabang berdasarkan tier performa: misal A/B/C = 60% / 30% / 10% dari stok khusus promo. Target 2x penjualan harian untuk cover 3 hari awal promo sehingga rak tidak kosong di H1.
- Fair-share saat stok gudang terbatas. Alokasikan proporsional dari kebutuhan. Rumus sederhana: Jatah cabang = (Demand 14 hari cabang / Total demand 14 hari semua cabang) x Stok tersedia.
Contoh: Stok tersedia 100 dus; demand 14 hari: A=60, B=30, C=10. Total=100. Maka A=60 dus, B=30, C=10. Kalau minta lebih, tahan ke gelombang berikutnya. - Fast-track anti kosong rak: Jika cabang A stockout SKU A, kirim 2x demand harian sebagai penyangga (misal 20 dus) lewat slot urgent, sisanya ikut jadwal reguler. Ini menekan kehilangan penjualan tanpa memecah ritme gudang.
4) Rapikan gudang dan proses picking: bin, wave, scanner, dan hitung berkala
Kalau gudang acak, rencana bagus pun tumbang. Mulai dari layout sampai penghitungan.
- Bin location jelas. Kode sederhana: Aisle-Rak-Shelf (misal A03-R2-S1). Tempel label besar. Waktu cari barang harus < 30 detik per SKU.
- Zone & wave picking. Kelompokkan item cepat (A) di dekat staging. Buat wave per rute (misal Rute Barat jam 10:00, Rute Timur jam 13:00). Target 120–150 line item/jam per picker tergantung kepadatan.
- Multi-satuan konsisten. Tetapkan konversi: 1 dus = 40 pcs, 1 pack = 10 pcs. Dilarang input satuan bebas. Minimalkan salah hitung saat picking dan receiving.
- Staging & loading. Sediakan area 2x3 m per rute. Pakai tote/koli berlabel outlet. Loading urutan terbalik (drop terakhir masuk dulu) supaya bongkar cepat.
- Scanner/barcode. Wajib scan saat picking dan scan saat loading. Target picking error < 0,3%. Untuk barang expired, scan batch & tanggal.
- Cycle count disiplin. Hitung fisik 20% SKU per minggu (prioritaskan A), sehingga sebulan semua SKU tersentuh. KPI shrinkage < 0,5% dari nilai persediaan per bulan.
- Receiving & retur. Saat terima antar-cabang: foto segel, cek acak 5% koli, catat selisih di berita acara. Barang rusak/retur taruh di lokasi QTN (karantina) dengan alasan terkode: BRK (rusak), EXP (mendekati kadaluarsa), OVT (overtransfer).
5) Rencanakan rute & kontrol biaya kirim: cluster, limit drop, dan POD
Rute yang rapi bikin biaya turun dan janji ke cabang ketemu realita.
- Cluster rute by radius. Gabungkan drop dalam radius 10–15 km. Jangan lintas kota bolak-balik di hari yang sama.
- Batasan operasional. Maksimal 20 drop per driver per hari atau 200 koli per truk (mana yang tercapai duluan). Kalau lewat, pecah jadi dua rute.
- Cut-off perencanaan rute. Kunci daftar kirim pukul 16:00, cetak route sheet lengkap (alamat, nomor PIC, urutan drop, catatan waktu muat-bongkar). Target waktu bongkar per cabang 10–15 menit.
- Waktu layanan. Hindari jam padat 07:00–09:00 dan 16:00–19:00 untuk area macet. Pasang delivery window ke setiap cabang, misal 09:00–12:00.
- POD digital (Proof of Delivery). Foto barang di rak/area penerimaan + tanda tangan penerima. Simpan nomor KTP/PIC. Klaim selisih tanpa POD dianggap tidak valid kecuali ada berita acara.
- KPI biaya & layanan. Pantau biaya per drop (target < Rp12.000 per drop untuk intra-kota), OTIF ≥ 95%, lead time rata-rata < 1,5 hari, dan fill rate ≥ 96%. Review 30 menit tiap Senin pagi, aksi cepat untuk SKU/cabang yang meleset.
Kalau semua sudah rapi, sistemnya jangan ketinggalan
Begini biasanya macet: aturan sudah oke, tapi data tercecer di spreadsheet, chat, dan kertas nota. Di titik ini, Anda butuh satu sistem yang pegang kendali stok per cabang, permintaan–persetujuan antar-cabang, picking list, batch–expired, sampai laporan OTIF.
Contohnya, Marlin (POS & ERP) dipakai banyak UMKM retail/distributor untuk hal-hal di atas tanpa perlu tim IT. Anda bisa set Min–Max & ROP per cabang, jalankan request–transfer antar cabang dengan approval & jadwal, catat batch/expired & FEFO, pakai multi-satuan yang konsisten, cetak picking list per rute, dan lihat dashboard fill rate, OTIF, aging stok per outlet. Harga/promo pun bisa beda per cabang dengan periode yang jelas. Mulai saja dari pilot 30 hari di 1 gudang + 1–2 cabang, fokus ke Top 100 SKU, ukur KPI di atas, lalu gulirkan ke cabang lain. Kalau alurnya sudah klik, Anda bakal heran kenapa dulu rak sering kosong padahal stok ada.