1. Persiapan Data Dasar

Kita definisikan tabel probabilitas dan hitung probabilitas kumulatif untuk menentukan interval.

# Tabel data
df_monte <- data.frame(
  Permintaan = c(50, 60, 70, 80, 90),
  Frekuensi = c(10, 20, 40, 20, 10)
)

# Menghitung Probabilitas dan Kumulatif
df_monte <- df_monte %>%
  mutate(
    Probabilitas = Frekuensi / sum(Frekuensi),
    Prob_Kumulatif = cumsum(Probabilitas),
    Batas_Bawah = lag(Prob_Kumulatif, default = 0) * 100 + 1,
    Batas_Atas = Prob_Kumulatif * 100
  )

# Koreksi untuk baris pertama agar mulai dari 0
df_monte$Batas_Bawah[1] <- 0

knitr::kable(df_monte, caption = "Tabel Interval Bilangan Acak")
Tabel Interval Bilangan Acak
Permintaan Frekuensi Probabilitas Prob_Kumulatif Batas_Bawah Batas_Atas
50 10 0.1 0.1 0 10
60 20 0.2 0.3 11 30
70 40 0.4 0.7 31 70
80 20 0.2 0.9 71 90
90 10 0.1 1.0 91 100

2. Menghitung Nilai Ekspektasi

Rumus ekspektasi: \(E = \sum(x \cdot P(x))\).

ekspektasi <- sum(df_monte$Permintaan * df_monte$Probabilitas)
print(paste("Nilai Ekspektasi (Teoritis):", ekspektasi))
## [1] "Nilai Ekspektasi (Teoritis): 70"

3. Simulasi 5 Hari

Bangkitkan angka acak baru menggunakan fungsi runif atau sample.

set.seed(212) # Agar hasil konsisten
angka_acak_5 <- sample(0:100, 5, replace = TRUE)

# Fungsi untuk mencocokkan angka acak ke permintaan
get_demand <- function(rn) {
  df_monte$Permintaan[which(rn >= df_monte$Batas_Bawah & rn <= df_monte$Batas_Atas)]
}

hasil_5 <- sapply(angka_acak_5, get_demand)
rata_5 <- mean(hasil_5)

print(paste("Hasil Permintaan 5 Hari:", paste(hasil_5, collapse = ", ")))
## [1] "Hasil Permintaan 5 Hari: 80, 80, 70, 80, 90"
print(paste("Rata-rata 5 Hari:", rata_5))
## [1] "Rata-rata 5 Hari: 80"

4. Simulasi 20 Hari ke Depan

Untuk 20 hari, kita juga bangkitkan angka acak baru menggunakan fungsi runif atau sample.

set.seed(212) # Agar hasil konsisten
angka_acak_20 <- sample(0:100, 20, replace = TRUE)
hasil_20 <- sapply(angka_acak_20, get_demand)
rata_20 <- mean(hasil_20)

print(paste("Rata-rata 20 Hari:", rata_20))
## [1] "Rata-rata 20 Hari: 71"

Kesimpulan

Semakin lama simulasi dilakukan (misal 1000 hari), nilai rata-rata simulasi akan semakin mendekati nilai ekspektasi yaitu 70.