Mengapa bisnis perlu meramal?
Forecasting adalah perkiraan nilai di masa depan (permintaan, stok, harga, kunjungan) yang dihitung dari pola data masa lalu, lengkap dengan rentang ketidakpastiannya. Ramalan tidak harus tepat 100%. Yang penting, kesalahannya terukur dan bisa dikelola.
Makin jauh ke depan, kipas ketidakpastian makin lebar. Karena itu ramalan jangka pendek selalu lebih akurat daripada jangka panjang.
Bukti ilmiah singkat
Siklus forecasting
Ringkasan inti: kelebihan dan kekurangan
- Stok pas: lebih jarang kosong, lebih sedikit kedaluwarsa
- Modal yang mengendap di gudang lebih kecil
- Jadwal SDM dan anggaran lebih tepat
- Ada angka untuk negosiasi dengan vendor dan usulan ke direksi
- Jejak perhitungan siap untuk audit dan akreditasi
- Butuh data yang rapi dan cukup panjang
- Tidak bisa meramal kejadian luar biasa (pandemi, perubahan kebijakan)
- Perlu waktu, keterampilan, dan pemantauan rutin
- Bisa memberi rasa yakin palsu bila rentang ketidakpastian diabaikan
- Model rumit belum tentu lebih akurat
Ringkasan per model
| Model | Kelebihan utama | Kekurangan utama | Pakai bila |
|---|---|---|---|
| Naive | Paling sederhana | Tanpa pola | Sebagai patokan pembanding |
| Moving average | Mudah di Excel | Tertinggal saat tren | Data datar |
| SES | Adaptif, 1 parameter | Tanpa tren dan musim | Data datar dengan noise |
| Holt | Menangkap tren | Kebablasan saat tren berbalik | Volume naik/turun teratur |
| Holt-Winters | Tren + musim | Butuh ≥ 24 bulan data | Ada pola musiman |
| ARIMA/SARIMA | Fleksibel, ada interval | Rumit, perlu software | Data panjang, pola kompleks |
| Regresi | Menjelaskan sebab, bisa what-if | X juga harus diramal | Ada penyebab yang terukur |
| Machine learning | Pola nonlinier | Kotak hitam, butuh data besar | Ribuan item dan fitur |
| Croston/SBA | Khusus data banyak nol | Hanya rata-rata, bukan kapan | Tes atau barang jarang |
| Poisson | Langsung memberi peluang stok | Asumsi kejadian saling bebas | Keputusan kit tes jarang |
| Kualitatif | Bisa tanpa data | Subjektif | Layanan baru |
| Kombinasi | Paling akurat di M4 | Kerja lebih banyak | Ragu memilih satu model |
Lima hal yang perlu diingat
Jenis model forecasting
Ada empat keluarga besar. Pilihan model ditentukan oleh pola data dan tersedianya data, bukan oleh kecanggihan model.
Tabel perbandingan model
| Model | Cocok untuk pola | Data minimal | Kelebihan | Kekurangan | Contoh sehari-hari / lab |
|---|---|---|---|---|---|
| Naive (besok = hari ini) | Acak tanpa pola | 1–2 periode | Paling sederhana; patokan wajib pembanding | Mengabaikan tren & musim | Stok harian jangka sangat pendek |
| Naive musiman | Musim kuat | 1 musim penuh | Menangkap pola mingguan/tahunan | Tidak ada tren; noise ikut terbawa | Senin = Senin lalu (beban sampling pagi) |
| Moving average (3–12) | Stabil | 3–12 periode | Mudah di Excel; meredam noise | Tertinggal saat ada tren; bobot sama | Rata-rata 3 bulan pemakaian tabung EDTA |
| Weighted MA | Stabil, agak berubah | 3–6 periode | Data terbaru lebih berbobot | Bobot dipilih subjektif | Bobot 50/30/20 untuk 3 bulan terakhir |
| SES (exponential smoothing sederhana) | Level tanpa tren | ±10 periode | Adaptif, satu parameter α | Tidak menangkap tren/musim | BMHP rutin: kapas, plester, jarum |
| Holt (tren linier) | Ada tren | ±15 periode | Menangkap kenaikan/penurunan | Bisa kebablasan saat tren berbalik (pakai versi damped) | Volume tes naik setelah poli baru buka |
| Holt-Winters | Tren + musim | ≥ 2 musim (24 bulan) | Paling serbaguna untuk data bulanan | Butuh data panjang; peka pencilan | NS1, trombosit & TC saat musim DBD; penjualan Lebaran |
| ARIMA / SARIMA | Autokorelasi kompleks | ≥ 50 titik | Fleksibel; ada interval prediksi | Perlu software dan keahlian (stasioneritas) | Kunjungan IGD harian, beban listrik |
| Regresi (kausal) | Ada penyebab terukur | ≥ 30 pasang data | Menjawab "mengapa" dan simulasi what-if | Variabel X juga harus diramal; korelasi palsu | Jumlah tes = f(pasien rawat inap, BOR); permintaan = f(harga) |
| Machine learning (random forest, LightGBM, neural net) | Banyak deret & banyak fitur | Ratusan–ribuan titik | Menangkap hubungan nonlinier | Kotak hitam; mudah overfitting; butuh data besar | Ribuan SKU ritel, harga dinamis e-commerce |
| Croston / SBA / TSB | Intermiten (banyak nol) | ≥ 12 periode | Dirancang khusus untuk permintaan jarang | Meramal rata-rata, bukan kapan tepatnya | Reagen tes jarang, suku cadang alat |
| Poisson / binomial negatif | Kejadian langka | Rata-rata kejadian | Langsung memberi peluang & jumlah stok aman | Asumsi kejadian saling bebas | Permintaan crossmatch golongan langka |
| Kualitatif / Delphi | Tidak ada data | — | Bisa untuk layanan baru | Subjektif; cenderung terlalu optimis | Proyeksi layanan baru (ANA, IgE) |
| Kombinasi (ensembel) | Semua pola | Sesuai model penyusun | Terbukti paling akurat di M4 | Kerja lebih banyak | Rata-rata SES + Holt + Holt-Winters |
Laboratorium mini: lihat cara kerja tiap model
Pilih pola data. Bulan 1–24 dipakai untuk melatih model, bulan 25–30 adalah data aktual yang disembunyikan untuk menguji ramalan. Tabel di bawah grafik memeringkat semua model berdasarkan MASE (makin kecil makin baik) dan menandai model yang mengalahkan patokan naive pada data uji.
| Peringkat | Model | MAE | MAPE | MASE | Penilaian |
|---|
Regresi: meramal dari penyebabnya
Regresi mencari hubungan antara yang ingin diramal (Y) dan penyebabnya (X). Bila X sudah diketahui atau direncanakan lebih dulu (jumlah pasien, jumlah tempat tidur, jadwal poli, harga), Y bisa diramal.
Berganda: Y = a + b₁X₁ + b₂X₂ + …
Tren waktu: Y = a + b·t (t = urutan bulan)
Jenis regresi untuk forecasting
| Jenis | Bentuk | Contoh |
|---|---|---|
| Linier sederhana | Y = a + bX | Tes darah lengkap = f(pasien rawat inap) |
| Berganda | Y = a + b₁X₁ + b₂X₂ | Tes = f(pasien, jumlah hari kerja, musim DBD) |
| Tren waktu | Y = a + b·t | Volume tes per bulan naik tetap |
| Dummy musiman | Y = a + b·t + c·(bulan musim) | Lonjakan NS1 Januari–April |
| Log / eksponensial | ln Y = a + b·t | Pertumbuhan persen tetap per tahun |
| Logistik | Peluang ya / tidak | Peluang pasien perlu transfusi |
| Regresi Poisson | Jumlah kejadian | Permintaan golongan darah langka per bulan |
Cara membaca output regresi
| Output | Artinya | Patokan praktis |
|---|---|---|
| Koefisien b (slope) | Tambahan Y untuk setiap +1 X | Tanda dan besarnya harus masuk akal |
| Konstanta a | Nilai Y saat X = 0 | Sering tidak bermakna praktis |
| R² | Porsi variasi Y yang dijelaskan X | Makin mendekati 1 makin kuat; tinggi belum tentu sebab-akibat |
| Adjusted R² | R² yang dikoreksi jumlah variabel | Dipakai pada regresi berganda |
| p-value | Peluang hubungan muncul karena kebetulan | < 0,05 = signifikan |
| SE estimasi | Rata-rata jarak titik dari garis | Dasar interval prediksi dan safety stock |
| Interval prediksi 95% | Rentang nilai Y bulan berikutnya | Lebih lebar dari interval kepercayaan |
| Durbin-Watson | Autokorelasi residual | Sekitar 2 = baik; < 1,5 waspada |
| VIF | Antar-X saling berkorelasi (multikolinearitas) | > 5–10 bermasalah |
Syarat (asumsi) regresi: LINE
- Menjelaskan "mengapa", bukan hanya "berapa"
- Bisa simulasi what-if (pasien naik 10%?)
- Tersedia di Excel, SPSS, dan semua software statistik
- Ada interval prediksi untuk safety stock
- X masa depan juga harus diketahui atau diramal
- Korelasi palsu (dua hal naik bersama tanpa sebab)
- Peka pencilan dan multikolinearitas
- Data deret waktu sering melanggar asumsi saling bebas
Kalkulator regresi linier sederhana
Contoh: X = pasien rawat inap per bulan, Y = jumlah tes darah lengkap per bulan. Ganti dengan data sendiri.
Memilih model
Mulai dari tabel ringkas dan flowchart. Langkah kerja lengkapnya ada di bawah.
Tabel ringkas pemilihan model
| Pola data | Ciri di grafik | Model pertama | Alternatif | Data minimal |
|---|---|---|---|---|
| Datar | Naik-turun di sekitar rata-rata | SES | Moving average | 10 periode |
| Tren | Terus naik atau turun | Holt (damped) | Regresi tren | 15 periode |
| Musiman | Puncak berulang di bulan yang sama | Holt-Winters | SARIMA, regresi dummy | 24 bulan |
| Ikut penyebab | Naik bila pasien atau BOR naik | Regresi | Regresi + ARIMA | 30 pasang |
| Banyak nol | Banyak bulan kosong | SBA | Croston, Poisson | 12 periode |
| Tanpa data | Layanan baru | Delphi / analogi | Survei klinisi | — |
| Ribuan item | Banyak barang dan fitur | Machine learning | Kombinasi | ratusan+ |
Flowchart ringkas
ADI ≥ 1,32
pasien, BOR, harga
Delapan langkah kerja
| # | Langkah | Pertanyaan kunci | Contoh di laboratorium |
|---|---|---|---|
| 1 | Tentukan keputusan & horizon | Apa yang diputuskan? Harian, mingguan, bulanan? Lead time? | Pesan reagen kimia klinik tiap minggu, lead time 7 hari |
| 2 | Kumpulkan & bersihkan data | Ada pencilan? Ada hari stok kosong yang menyembunyikan permintaan? | Hari reagen kosong: tes dirujuk, jadi "0" bukan permintaan nol |
| 3 | Plot & kenali pola | Datar, tren, musim, banyak nol? | Grafik pemakaian 24 bulan; puncak di musim hujan |
| 4 | Pilih kandidat model | Pakai tabel dan flowchart di atas | Holt-Winters, SES, regresi |
| 5 | Bagi data latih & uji | Sisihkan periode terakhir untuk menguji | Latih 2024–2025, uji Jan–Jun 2026 |
| 6 | Ukur kesalahan | MAE, MAPE, MASE, bias; lebih baik dari naive? | MAPE 8%, MASE 0,6 |
| 7 | Terjemahkan ke keputusan | Safety stock, ROP, jadwal, harga | ROP = kebutuhan selama lead time + safety stock |
| 8 | Pantau & perbarui | Tracking signal masih ±4? | Evaluasi bulanan di rapat instalasi |
Tingkat kesalahan prediksi
Kesalahan (error) = Aktual − Ramalan. Error positif berarti ramalan terlalu rendah (risiko stok kosong). Error negatif berarti ramalan terlalu tinggi (risiko stok menumpuk dan kedaluwarsa).
| Ukuran | Rumus | Makna | Kapan dipakai | Kelemahan |
|---|---|---|---|---|
| MAE | rata-rata |A − F| | Rata-rata meleset berapa unit | Mudah dijelaskan ke manajemen | Tidak bisa membandingkan item beda skala |
| RMSE | √ rata-rata (A − F)² | Menghukum kesalahan besar lebih berat | Bila meleset jauh sangat merugikan | Peka terhadap pencilan |
| MAPE | rata-rata |A − F| / A × 100% | Rata-rata meleset berapa persen | Membandingkan antar item | Tidak bisa jika A = 0; bias pada nilai kecil |
| MASE | MAE model / MAE naive | < 1 = lebih baik dari naive | Paling adil, termasuk data jarang | Kurang intuitif |
| Bias (ME) | rata-rata (A − F) | Arah kesalahan: kurang atau lebih | Mendeteksi ramalan yang selalu miring | Error + dan − bisa saling meniadakan |
| Tracking signal | Σ(A − F) / MAE | Alarm bias kumulatif | Pemantauan rutin; batas ±4 | Perlu dihitung ulang tiap periode |
Interpretasi MAPE (Lewis, 1982)
| MAPE | Interpretasi | Contoh tindakan |
|---|---|---|
| < 10% | Sangat akurat | Pertahankan model; safety stock bisa dikurangi |
| 10–20% | Baik | Layak dipakai untuk pemesanan rutin |
| 20–50% | Cukup / layak | Pakai dengan safety stock lebih besar; cari variabel penyebab |
| > 50% | Tidak akurat | Ganti model, ubah granularitas (harian → mingguan), atau ubah strategi stok |
Akurasi dan bias itu berbeda
Ramalan yang "konsisten tapi bias" (selalu kurang 10%) mudah diperbaiki dengan koreksi. Ramalan yang menyebar perlu model yang lebih baik atau safety stock lebih besar.
Kalkulator kesalahan
Isi angka aktual dan ramalan, pisahkan dengan koma. Contoh sudah terisi.
Meramal pemeriksaan lab yang jarang
Tes jarang (misalnya ANA, procalcitonin di RS kecil, Hb elektroforesis, crossmatch golongan langka) punya banyak bulan bernilai nol. Rata-rata biasa dan MAPE menyesatkan untuk data seperti ini. Ada tiga alat yang dipakai: klasifikasi ADI/CV², metode Croston/SBA, dan distribusi Poisson untuk keputusan kit.
Langkah 1: golongkan polanya
CV² = (simpangan baku ÷ rata-rata ukuran permintaan bukan nol)²
(jumlah stabil)
(jumlah bervariasi)
Langkah 2: Croston dan SBA
Croston (1972) memisahkan dua hal: ukuran permintaan saat ada (z) dan jarak antar permintaan (p). Ramalan per periode = z ÷ p. Syntetos & Boylan (2005) menunjukkan Croston cenderung terlalu tinggi, sehingga dikoreksi menjadi SBA:
Kalkulator klasifikasi tes jarang
Langkah 3: keputusan kit dengan distribusi Poisson
Untuk tes jarang, masalah utamanya adalah reagen sisa yang terbuang setelah kit dibuka (stabilitas on-board terbatas), bukan ketepatan ramalan. Kalkulator ini menghitung peluang permintaan selama masa stabil kit, perkiraan tes terbuang, dan biaya reagen per hasil yang dilaporkan.
Strategi untuk tes jarang
| Strategi | Kapan dipakai | Efek |
|---|---|---|
| Batching (dikerjakan pada hari tetap) | Sampel stabil disimpan beberapa hari | QC/kalibrasi per run berkurang; TAT lebih panjang (sepakati dengan klinisi) |
| Kit kecil / kartrid tunggal | Tersedia format POCT atau kit isi kecil | Terbuang hampir nol; harga per tes lebih tinggi |
| Rujuk ke lab jejaring | Terbuang > 60% atau margin negatif | Tanpa stok; ada biaya kirim dan TAT lebih lama |
| KSO / reagen sewa | Vendor mau menanggung risiko stok | Biaya per hasil tes; risiko kedaluwarsa pindah ke vendor |
| Safety stock Poisson | Tes harus selalu siap (cito) | Stok minimal sesuai kuantil 95–99% |
| Agregasi waktu | Data bulanan terlalu banyak nol | Ramal per triwulan, lalu bagi rata |
Forecasting vs spontanitas: simulasi 360 hari
Simulasi satu jenis reagen (rata-rata 20 tes/hari, pola hari kerja, lonjakan 40% pada hari ke-120 s.d. 200 seperti musim DBD). Kedua cara menghadapi permintaan yang persis sama.
Pesan ketika stok "terlihat menipis" (≤ 3 hari pakai). Selalu pesan "kira-kira sebulan" (600 tes). Kalau sempat kehabisan, pesanan berikutnya digandakan karena panik.
Cek tiap Senin. Ramalan harian dengan SES diperbarui setiap hari. Pesan sampai stok = ramalan selama (lead time + 7 hari) + safety stock (z × σ × √L).
| Indikator | A. Spontan | B. Forecasting | Lebih baik |
|---|
Asumsi biaya: harga reagen Rp 15.000/tes; biaya simpan 25%/tahun dari nilai stok; tiap tes yang tidak terlayani dirujuk dengan biaya dan kehilangan Rp 60.000; biaya administrasi tiap pesanan Rp 100.000; kemasan 100 tes. Ini simulasi ilustratif, bukan data RS.
Efektivitas dan efisiensi
Efisiensi = biaya per tes terlayani • % reagen terbuang • perputaran stok = pemakaian ÷ rata-rata stok
(layanan terjaga)
(sering kosong)
Penerapan di dunia usaha
| Sektor | Yang diramal | Model yang lazim | Keputusan yang dibantu |
|---|---|---|---|
| Ritel / minimarket | Penjualan per barang per hari | Holt-Winters, ML untuk ribuan barang | Isi rak, promosi, stok menjelang hari raya |
| Manufaktur | Pesanan produk, bahan baku | ARIMA, regresi | Jadwal produksi, pembelian bahan (MRP) |
| Rumah sakit | Kunjungan, BOR, IGD | SARIMA, regresi kalender | Jadwal dokter & perawat, tempat tidur |
| Laboratorium | Volume tes, reagen, BMHP | SES, Holt-Winters, Croston | Pesan reagen, jadwal ATLM, usulan KSO |
| Bank darah / UPDRS | Kebutuhan PRC, TC, FFP per golongan | Regresi data pasien + musiman | Permintaan ke UTD, menekan kedaluwarsa TC |
| Apotek / farmasi | Obat fast & slow moving | SES, Croston untuk obat jarang | Rencana kebutuhan obat, pengendalian ED |
| Restoran / katering | Porsi per hari | Naive musiman (hari dalam minggu) | Belanja bahan segar, sisa makanan |
| Keuangan | Pendapatan, arus kas | Regresi, ARIMA | Anggaran, kebutuhan kas, investasi |
| Penetapan harga | Permintaan pada berbagai harga | Regresi elastisitas | Tarif paket, diskon, harga dinamis |
Forecasting untuk harga: elastisitas
Perbandingan menyeluruh
| Aspek | Spontan (berdasarkan perasaan) | Forecasting (berdasarkan data) |
|---|---|---|
| Dasar keputusan | Ingatan, kebiasaan, panik | Pola data + ukuran ketidakpastian |
| Stok kosong | Sering, terutama saat lonjakan | Jarang; ada safety stock terukur |
| Kedaluwarsa | Tinggi setelah pesanan panik | Rendah; pesanan kecil dan rutin |
| Modal tertanam | Besar dan tidak menentu | Kecil dan terencana |
| Jumlah pesanan | Sedikit tapi besar-besar | Lebih sering, lebih kecil (perlu proses rutin) |
| Negosiasi dengan vendor/manajemen | Lemah, tanpa angka | Kuat: ada proyeksi kebutuhan dan biaya |
| Kesiapan menghadapi audit/akreditasi | Sulit menjelaskan dasar pemesanan | Jejak perhitungan terdokumentasi |
Aplikasi untuk pemodelan
Mulailah dari yang sudah dikuasai. Excel cukup untuk sebagian besar kebutuhan instalasi. Naik ke SPSS atau JASP untuk regresi yang lebih lengkap, lalu ke R atau Python bila itemnya banyak atau perlu Croston dan ARIMA otomatis.
| Aplikasi | Biaya | Kesulitan | Model yang tersedia | Kelebihan | Kekurangan |
|---|---|---|---|---|---|
| Microsoft Excel | Berbayar (umumnya sudah ada di kantor) | Mudah | MA, SES (FORECAST.ETS), Holt-Winters otomatis (Forecast Sheet), regresi (LINEST, Data Analysis) | Sudah dikenal; rumus terlihat | Tidak ada ARIMA dan Croston bawaan; rawan salah rumus |
| Google Sheets | Gratis | Mudah | FORECAST, TREND, LINEST, GROWTH; MA dan SES manual | Daring, mudah dibagi, terhubung ke form | Fitur statistik terbatas |
| IBM SPSS Statistics | Berbayar (lisensi) | Sedang | Regresi lengkap; exponential smoothing dan ARIMA (menu Forecasting, Expert Modeler) | Menu klik; output lengkap dan dikenal di dunia kesehatan | Mahal; tanpa Croston |
| JASP / jamovi | Gratis | Mudah | Regresi, korelasi, uji asumsi | Tampilan mirip SPSS, gratis | Fitur deret waktu terbatas |
| Minitab | Berbayar | Sedang | MA, SES, Holt, Winters, ARIMA, regresi | Kuat untuk mutu dan deret waktu | Lisensi mahal |
| EViews / Stata | Berbayar | Sedang | ARIMA, regresi ekonometrik lanjut | Standar riset ekonomi | Lebih untuk peneliti |
| R (RStudio) | Gratis | Perlu belajar kode | Semua: ETS, ARIMA, Croston, TSB, regresi, ML | Paling lengkap untuk forecasting; otomatis untuk banyak item | Perlu menulis skrip |
| Python | Gratis | Perlu belajar kode | statsmodels, Prophet, statsforecast, scikit-learn | Fleksibel; bisa dihubungkan ke sistem dan aplikasi | Perlu menulis skrip |
| Power BI / Tableau | Ada versi gratis/berbayar | Mudah | Forecast otomatis (exponential smoothing) di grafik garis | Dashboard menarik untuk manajemen | Model "kotak hitam", pengaturan terbatas |
| Software perencanaan perusahaan (ERP / SAP IBP) | Mahal | Sedang | Forecast terintegrasi stok dan pembelian | Otomatis dan terhubung ke gudang | Untuk organisasi besar |
| Asisten AI (Claude, dll.) | Gratis/berbayar | Mudah | Membuat skrip R/Python, rumus Excel, dan menafsirkan output | Mempercepat belajar dan analisis | Hasil tetap perlu dicek dengan data dan logika |
Resep cepat Excel
| Kebutuhan | Rumus / menu |
|---|---|
| Moving average 3 bulan | =AVERAGE(B2:B4) lalu tarik ke bawah |
| SES manual (α di sel $E$1) | =$E$1*B3+(1-$E$1)*C3 |
| Holt-Winters otomatis | =FORECAST.ETS(A26; B2:B25; A2:A25; 12) atau menu Data → Forecast Sheet |
| Interval prediksi ETS | =FORECAST.ETS.CONFINT(A26; B2:B25; A2:A25; 0,95) |
| Regresi tren / sebab | =FORECAST.LINEAR(X_baru; Y; X), =SLOPE(Y;X), =INTERCEPT(Y;X), =RSQ(Y;X) |
| Regresi lengkap (p-value, R²) | Aktifkan Analysis ToolPak → Data → Data Analysis → Regression |
| MAPE | =AVERAGE(ABS((B2:B13-C2:C13)/B2:B13)) (array) |
| Peluang Poisson ≥ k | =1-POISSON.DIST(k-1; λ; TRUE) |
Excel berbahasa Indonesia memakai titik koma (;) sebagai pemisah argumen. Excel berbahasa Inggris memakai koma (,).
Resep cepat SPSS
| Kebutuhan | Menu |
|---|---|
| Tetapkan data sebagai deret waktu | Data → Define Date and Time (pilih bulan dan tahun awal) |
| Exponential smoothing / ARIMA otomatis | Analyze → Forecasting → Create Traditional Models → Method: Expert Modeler |
| Regresi linier | Analyze → Regression → Linear (centang Durbin-Watson dan Collinearity diagnostics) |
| Grafik pola data | Analyze → Forecasting → Sequence Charts |
Contoh skrip R
library(forecast)
y <- ts(c(120,135,128,150,160,155,170,182,175,190,198,205,
210,222,215,240,250,245,262,270,268,285,290,300),
frequency = 12, start = c(2024, 1))
fit_ets <- ets(y) # SES/Holt/Holt-Winters dipilih otomatis
fit_arima <- auto.arima(y) # ARIMA otomatis
fc <- forecast(fit_ets, h = 6)
plot(fc); accuracy(fit_ets)
croston(c(0,2,0,0,3,0,1,0,0,4,0,2), h = 3) # tes jarang
summary(lm(tes ~ pasien, data = df)) # regresiContoh skrip Python
import pandas as pd
from statsmodels.tsa.holtwinters import ExponentialSmoothing
import statsmodels.formula.api as smf
y = pd.Series([...], index=pd.date_range("2024-01", periods=24, freq="MS"))
hw = ExponentialSmoothing(y, trend="add", seasonal="add",
seasonal_periods=12).fit()
print(hw.forecast(6))
model = smf.ols("tes ~ pasien + hari_kerja", data=df).fit()
print(model.summary()) # koefisien, R², p-value, Durbin-WatsonJalur belajar yang disarankan
Contoh kasus soal
Kerjakan dulu, lalu ketuk soal untuk membuka pembahasan.
Kasus 1 — Moving average dan SES untuk tabung EDTA
Pemakaian tabung EDTA 5 bulan terakhir: 1.200, 1.260, 1.180, 1.300, 1.340. Hitung ramalan bulan ke-6 dengan (a) moving average 3 bulan, (b) SES α = 0,3 dengan ramalan awal F₁ = 1.200.
(a) MA3 = (1.180 + 1.300 + 1.340) ÷ 3 = 1.273 tabung.
| Bulan | Aktual | Ramalan SES | Perhitungan |
|---|---|---|---|
| 1 | 1.200 | 1.200,0 | nilai awal |
| 2 | 1.260 | 1.200,0 | 0,3×1.200 + 0,7×1.200 |
| 3 | 1.180 | 1.218,0 | 0,3×1.260 + 0,7×1.200 |
| 4 | 1.300 | 1.206,6 | 0,3×1.180 + 0,7×1.218 |
| 5 | 1.340 | 1.234,6 | 0,3×1.300 + 0,7×1.206,6 |
| 6 | ? | 1.266,2 | 0,3×1.340 + 0,7×1.234,6 |
Interpretasi: data cenderung naik, jadi SES dan MA tertinggal di bawah nilai terbaru (1.340). Bila kenaikan berlanjut, model Holt lebih tepat.
Kasus 2 — Menghitung MAPE, bias, dan membaca hasilnya
Aktual: 100, 120, 90, 110. Ramalan: 95, 110, 100, 105. Hitung MAE, MAPE, dan bias. Apakah ramalan cenderung terlalu tinggi atau terlalu rendah?
| Periode | A | F | A − F | |A − F| / A |
|---|---|---|---|---|
| 1 | 100 | 95 | +5 | 5,00% |
| 2 | 120 | 110 | +10 | 8,33% |
| 3 | 90 | 100 | −10 | 11,11% |
| 4 | 110 | 105 | +5 | 4,55% |
MAE = 30 ÷ 4 = 7,5 unit. MAPE = 28,99% ÷ 4 = 7,25% (sangat akurat menurut Lewis). Bias = +10 ÷ 4 = +2,5: ramalan sedikit terlalu rendah, sehingga ada risiko kecil kekurangan stok.
Kasus 3 — Safety stock dan titik pesan ulang reagen
Pemakaian rata-rata 40 tes/hari, simpangan baku error ramalan 8 tes/hari, lead time 9 hari, target layanan 95% (z = 1,65). Berapa safety stock dan ROP?
Interpretasi: pesan ulang ketika stok tersisa 400 tes. Bila forecasting diperbaiki sampai σ = 4, safety stock turun separuh menjadi 20 tes dengan tingkat layanan yang sama.
Kasus 4 — Menggolongkan tes jarang (ADI/CV²)
Jumlah tes X per bulan selama 12 bulan: 0, 2, 0, 0, 3, 0, 1, 0, 0, 4, 0, 2. Golongkan polanya dan pilih metodenya.
Bulan yang ada permintaan: 5 (ukuran 2, 3, 1, 4, 2). ADI = 12 ÷ 5 = 2,4.
Rata-rata ukuran = 12 ÷ 5 = 2,4. Varians = (0,16 + 0,36 + 1,96 + 2,56 + 0,16) ÷ 5 = 1,04. SD = 1,02. CV = 1,02 ÷ 2,4 = 0,425. CV² = 0,18.
ADI ≥ 1,32 dan CV² < 0,49 → Intermiten. Gunakan SBA untuk rata-rata kebutuhan (± 1 tes/bulan) dan Poisson untuk menentukan stok. Coba angka ini di kalkulator Bab 7.
Kasus 5 — Buka kit atau rujuk?
Rata-rata permintaan 1 tes/bulan. Kit berisi 24 tes, stabil 30 hari setelah dibuka, harga Rp 3.000.000, tarif Rp 250.000/tes. Berapa peluang tidak ada permintaan dalam sebulan, berapa tes terbuang per kit, dan apa keputusannya?
P(0) = e−1 = 36,8%. P(≥ 3 tes) = 1 − e−1(1 + 1 + 0,5) = 8,0%.
Dalam 30 hari rata-rata hanya ±1 tes terpakai, sehingga ±23 dari 24 tes terbuang (96%). Biaya reagen per hasil ≈ Rp 3.000.000, jauh di atas tarif Rp 250.000.
Keputusan: Rujuk ke lab jejaring atau cari format kartrid tunggal. Buka layanan sendiri baru layak bila permintaan mendekati isi kit dalam masa stabil (± 20 tes/bulan).
Kasus 6 — Hitung kerugian pemesanan spontan
Dalam setahun, pemesanan spontan menyebabkan 6 kali kehabisan, masing-masing 3 hari, dengan 25 tes/hari dirujuk (biaya Rp 60.000/tes), ditambah 2 kit kedaluwarsa @ Rp 4.000.000. Setelah memakai forecasting: 1 kali kehabisan 1 hari, tidak ada kedaluwarsa, dan safety stock 400 tes (Rp 15.000/tes, biaya simpan 25%/tahun). Hitung penghematannya.
| Komponen | Spontan | Forecasting |
|---|---|---|
| Rujukan karena kosong | 6×3×25×60.000 = Rp 27.000.000 | 1×25×60.000 = Rp 1.500.000 |
| Kedaluwarsa | 2×4.000.000 = Rp 8.000.000 | Rp 0 |
| Biaya simpan safety stock | — | 400×15.000×25% = Rp 1.500.000 |
| Total | Rp 35.000.000 | Rp 3.000.000 |
Penghematan Rp 32.000.000/tahun (91%), dan efektivitas layanan naik karena hari kosong turun dari 18 menjadi 1.
Kasus 7 — Pola musiman komponen darah
Data 3 tahun menunjukkan permintaan TC selalu naik pada Januari–April (musim DBD) sekitar 30–40% di atas rata-rata, dan secara umum naik ±5% per tahun. Model apa yang dipilih, berapa data minimalnya, dan apa risikonya kalau memakai moving average?
Ada tren + musim, jadi pilih Holt-Winters atau SARIMA, minimal 2 musim (24 bulan). Data 3 tahun sudah cukup.
Moving average akan selalu "terlambat": stok kurang di awal musim DBD dan berlebih ketika musim selesai. Untuk TC yang umur simpannya hanya ±5 hari, kelebihan langsung berarti kedaluwarsa. Hal ini sejalan dengan studi Stanford: memodelkan pola hari dan data pasien menurunkan kedaluwarsa trombosit dari 10,5% menjadi 3,2%.
Kasus 8 — Membaca tracking signal
Selama 8 minggu, jumlah error (A − F) = +60 tes dan MAE = 10 tes. Hitung tracking signal dan tentukan tindakannya.
TS = +6 melewati batas ±4. Ramalan secara sistematis terlalu rendah, kemungkinan karena ada tren baru (misalnya poli baru atau dokter baru). Tindakan: naikkan α, pindah ke model Holt, atau tambahkan variabel penyebab (jumlah kunjungan poli).
Kasus 9 — Elastisitas tarif
Tarif paket cek kesehatan naik 10%. Elastisitas diperkirakan −0,5. Volume awal 1.000 paket/bulan, tarif Rp 100.000. Bagaimana perubahan pendapatannya?
Volume turun 0,5 × 10% = 5% → 950 paket. Pendapatan baru = 950 × Rp 110.000 = Rp 104.500.000 (naik 4,5% dari Rp 100.000.000). Permintaan inelastis (|E| < 1), jadi kenaikan tarif masih menambah pendapatan. Bila E = −1,5, volume turun 15% dan pendapatan justru turun 6,5%.
Kasus 10 — Regresi: tes darah lengkap vs pasien rawat inap
Data 5 bulan (dalam ratusan): pasien rawat inap X = 10, 12, 14, 16, 18; tes darah lengkap Y = 25, 29, 33, 36, 42. Buat persamaan regresi, ramal Y bila bulan depan X = 20, lalu tafsirkan.
Rata-rata X = 14, rata-rata Y = 33. Σ(X−X̄)(Y−Ȳ) = 82; Σ(X−X̄)² = 40.
Bila X = 20: Y = 4,3 + 2,05 × 20 = 45,3 ratus = ± 4.530 tes. R² = 0,99 (hubungan sangat kuat).
Interpretasi: setiap tambahan 100 pasien rawat inap menambah ± 205 tes darah lengkap. Bila rencana RS menambah tempat tidur, kebutuhan reagen hematologi bisa langsung dihitung. Coba angka ini di kalkulator Bab 4.
Glosarium
Singkatan dan istilah yang dipakai di aplikasi ini.
| Istilah | Pengertian singkat |
|---|
Sumber ilmiah
- Makridakis S, Spiliotis E, Assimakopoulos V. The M4 Competition: results, findings, conclusion and way forward. Int J Forecasting. 2018;34(4):802–808. Tautan
- Guan L, Tian X, Gombar S, dkk. Big data modeling to predict platelet usage and minimize wastage in a tertiary care system. PNAS. 2017;114(43):11368–11373. Tautan
- Syntetos AA, Boylan JE, Croston JD. On the categorization of demand patterns. J Oper Res Soc. 2005;56(5):495–503. Tautan
- Syntetos AA, Boylan JE. The accuracy of intermittent demand estimates. Int J Forecasting. 2005;21:303–314.
- Croston JD. Forecasting and stock control for intermittent demands. Oper Res Q. 1972;23(3):289–303.
- Hyndman RJ, Koehler AB. Another look at measures of forecast accuracy. Int J Forecasting. 2006;22(4):679–688.
- Lewis CD. Industrial and Business Forecasting Methods. London: Butterworths; 1982.
- Hyndman RJ, Athanasopoulos G. Forecasting: Principles and Practice, ed. 3. OTexts. Tautan