TL;DR
Rumus safety stock paling akurat buat toko adalah Z dikali akar dari lead time dikali kuadrat standar deviasi permintaan harian ditambah kuadrat rata-rata permintaan dikali kuadrat standar deviasi lead time. Reorder point-nya sama dengan rata-rata permintaan harian dikali rata-rata lead time, ditambah safety stock tadi. Di Excel, dua angka ini cukup satu baris rumus per kolom yang tinggal ditarik ke bawah buat semua SKU.
Rumus safety stock di Excel yang paling akurat buat toko adalah Z dikali akar dari (lead time dikali kuadrat standar deviasi permintaan harian, ditambah kuadrat rata-rata permintaan dikali kuadrat standar deviasi lead time).
Kedengeran panjang. Tapi begitu masuk ke sel Excel, dia cuma satu baris dan tinggal ditarik ke bawah buat semua SKU.
Aku bakal kasih tiga versi rumusnya, layout kolom lengkap, plus contoh angka tiga barang dari data toko sembako sampai selesai.
Safety stock adalah stok cadangan yang kamu simpan buat nutup dua hal yang nggak bisa ditebak: penjualan yang lagi lebih rame dari biasanya, dan kiriman supplier yang telat. Reorder point adalah jumlah stok yang jadi tanda kamu harus pesan sekarang juga, isinya perkiraan penjualan selama masa tunggu ditambah safety stock tadi.
Hubungan dua angka ini sederhana:
Reorder point = (rata-rata permintaan harian x rata-rata lead time) + safety stock
Konsep min-max dan kapan angka ini dipakai udah aku bahas di manajemen stok barang. Di artikel ini fokusnya di rumus dan sel Excel-nya.
Tiga versi yang umum dipakai, dan bedanya di seberapa banyak ketidakpastian yang mereka hitung.
Safety stock = (penjualan harian tertinggi x lead time terlama) - (rata-rata penjualan harian x rata-rata lead time)
Paling gampang dihitung, nggak butuh statistik sama sekali. Kelemahannya besar: satu hari luar biasa ramai bikin angkanya melonjak jauh dan modalmu ketahan di gudang.
Safety stock = Z x standar deviasi permintaan harian x akar(lead time)
Pas dipakai kalau supplier kamu konsisten. Kalau janjinya 5 hari dan realisasinya selalu 5 hari, versi ini cukup.
Safety stock = Z x akar( lead time x (stdev permintaan)^2 + (rata-rata permintaan)^2 x (stdev lead time)^2 )
Ini yang paling cocok buat kondisi nyata di Indonesia, di mana kiriman supplier sering geser satu dua hari. Versi ini yang bakal aku pakai di contoh nanti.
Nilai Z-nya sama buat ketiga versi:
| Target layanan | Nilai Z |
|---|---|
| 90% | 1,28 |
| 95% | 1,65 |
| 98% | 2,05 |
| 99% | 2,33 |
Bikin satu sheet bernama parameter dengan 12 kolom ini. Satu baris satu SKU.
| Kolom | Isi | Sumber |
|---|---|---|
| A | Kode barang | Diketik |
| B | Nama barang | Diketik |
| C | Rata-rata penjualan harian | Rumus |
| D | Standar deviasi penjualan harian | Rumus |
| E | Rata-rata lead time (hari) | Rumus |
| F | Standar deviasi lead time | Rumus |
| G | Target layanan (desimal) | Diketik |
| H | Nilai Z | Rumus |
| I | Safety stock | Rumus |
| J | Reorder point | Rumus |
| K | Stok sekarang | Diketik atau ditarik dari sheet stok |
| L | Status | Rumus |
Datanya sendiri kamu simpan di dua sheet lain: penjualan berisi tanggal dan jumlah keluar per SKU, dan penerimaan berisi tanggal pesan dan tanggal barang datang.
Anggap data penjualan harian SKU pertama ada di penjualan!B2:B91 dan catatan lead time di penerimaan!C2:C13.
Kolom C, rata-rata penjualan harian:
=AVERAGE(penjualan!B2:B91)
Kolom D, standar deviasi penjualan harian:
=STDEV.S(penjualan!B2:B91)
Kolom E dan F, rata-rata dan standar deviasi lead time:
=AVERAGE(penerimaan!C2:C13)
=STDEV.S(penerimaan!C2:C13)
Kolom H, nilai Z dari target layanan:
=NORM.S.INV(G2)
Kolom I, safety stock versi 3:
=ROUNDUP(H2*SQRT(E2*D2^2+C2^2*F2^2),0)
Kolom J, reorder point:
=ROUNDUP(C2*E2+I2,0)
Kolom L, status peringatan:
=IF(K2<=J2,"PESAN SEKARANG","Aman")
Dua catatan teknis. Pertama, ROUNDUP dipakai biar hasilnya selalu dibulatkan ke atas, soalnya safety stock 14,2 unit artinya kamu butuh 15 unit fisik. Kedua, kalau Excel-mu pakai pengaturan bahasa Indonesia, pemisah argumen rumusnya titik koma, bukan koma.
Buat nyorot baris yang butuh tindakan, blok kolom L lalu pasang conditional formatting merah buat sel yang isinya PESAN SEKARANG. Fungsi IF yang ngerjain logikanya, formatting yang bikin kelihatan.
Aku pakai dataset toko_berkah dengan catatan penjualan 90 hari dan 12 kali penerimaan barang per SKU. Ini parameter tiga barang paling laku:
| Barang | Rata-rata harian | Stdev harian | Lead time | Stdev lead time | Target layanan |
|---|---|---|---|---|---|
| Beras 5kg | 12 | 4 | 5 hari | 1 hari | 95% |
| Minyak 1L | 8 | 3 | 4 hari | 1 hari | 95% |
| Gula 1kg | 6 | 2 | 6 hari | 2 hari | 90% |
Hitungan safety stock pakai versi 3:
Reorder point-nya:
| Barang | Permintaan selama lead time | Safety stock | Reorder point |
|---|---|---|---|
| Beras 5kg | 60 unit | 25 unit | 85 unit |
| Minyak 1L | 32 unit | 17 unit | 49 unit |
| Gula 1kg | 36 unit | 17 unit | 53 unit |
Perhatiin gula 1kg. Penjualannya paling sedikit di antara tiga barang ini, tapi reorder point-nya lebih tinggi dari minyak. Penyebabnya lead time gula 6 hari dengan variasi 2 hari, jadi ketidakpastiannya paling besar.
Ini yang jarang dibahas, padahal dampaknya ke modal paling gede. Aku hitung ulang safety stock beras 5kg pakai tiga versi rumus. Data tambahan: penjualan harian tertinggi 25 unit, lead time terlama 8 hari.
| Versi rumus | Safety stock | Nilai modal |
|---|---|---|
| Versi 1, selisih maksimum | 140 unit | Rp 9.100.000 |
| Versi 2, permintaan berubah saja | 15 unit | Rp 975.000 |
| Versi 3, permintaan dan lead time berubah | 25 unit | Rp 1.625.000 |
Selisih antara versi 1 dan versi 3 itu 115 unit, atau Rp 7,5 juta modal yang ketahan di gudang buat satu SKU doang. Dan itu belum termasuk risiko beras kelamaan disimpan.
Kenapa versi 1 sebesar itu? Soalnya dia ngambil skenario terburuk dari dua sisi sekaligus, seolah hari terlaris dan kiriman terlambat bakal kejadian barengan setiap siklus. Di 90 hari data toko_berkah, kombinasi itu nggak pernah kejadian sekali pun.
Versi 2 kelihatan paling hemat, tapi dia nganggep lead time supplier selalu tepat 5 hari. Padahal dari 12 catatan penerimaan, cuma 5 kali yang datang persis di hari kelima.
Versi 3 yang paling masuk akal buat toko_berkah: cukup buat nutup keterlambatan yang beneran kejadian, tanpa nahan modal berlebih.
$H$1, bukan H1.Pertanyaan yang sering muncul soal rumus safety stock dan reorder point aku jawab di bagian FAQ, mulai dari pilihan versi rumus sampai cara nangani barang baru tanpa riwayat penjualan.
Yang perlu diingat: pilih versi rumus sesuai seberapa konsisten supplier kamu, pakai data harian buat standar deviasi, dan bulatkan hasilnya ke atas.
Ambil satu SKU paling laku, isi 12 kolom itu, lalu bandingin reorder point yang keluar sama kebiasaan mesenmu selama ini. Kalau angkanya jauh lebih tinggi dari yang biasa kamu pakai, di situ kemungkinan sumber kehabisan stok selama ini.
Lanjut baca prosedur stok opname biar angka stok sekarang di kolom K bisa dipercaya, atau template stok barang Excel kalau pencatatan hariannya belum rapi. Buat referensi fungsi AVERAGE dan fungsi statistik lain, cek dokumentasi resmi Microsoft 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.