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")
| 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 |
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"
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"
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"
Semakin lama simulasi dilakukan (misal 1000 hari), nilai rata-rata simulasi akan semakin mendekati nilai ekspektasi yaitu 70.