Tabel Distribusi dan Interval
Permintaan <- c(50, 60, 70, 80, 90)
Frekuensi <- c(10, 20, 40, 20, 10)
Probabilitas <- Frekuensi / sum(Frekuensi)
Prob_Kumulatif <- cumsum(Probabilitas)
Dibulatkan dan diubah ke integer agar tidak error di sprintf
Batas_Bawah <- as.integer(round(c(1, (Prob_Kumulatif[-length(Prob_Kumulatif)] * 100) + 1)))
Batas_Atas <- as.integer(round(Prob_Kumulatif * 100))
Pembuatan string interval yang sudah direvisi
Interval <- paste(sprintf("%02d", Batas_Bawah), "-", sprintf("%02d", Batas_Atas))
Tabel_Distribusi <- data.frame(
Permintaan = Permintaan,
Frekuensi = Frekuensi,
Probabilitas = Probabilitas,
Prob_Kumulatif = Prob_Kumulatif,
Interval = Interval
)
print(Tabel_Distribusi)
## Permintaan Frekuensi Probabilitas Prob_Kumulatif Interval
## 1 50 10 0.1 0.1 01 - 10
## 2 60 20 0.2 0.3 11 - 30
## 3 70 40 0.4 0.7 31 - 70
## 4 80 20 0.2 0.9 71 - 90
## 5 90 10 0.1 1.0 91 - 100
Nilai Ekspektasi Teoritis
Ekspektasi <- sum(Permintaan * Probabilitas)
print(paste("Nilai Ekspektasi:", Ekspektasi))
## [1] "Nilai Ekspektasi: 70"
Pembangkitan Bilangan Acak dan Simulasi 5 Hari
set.seed(456)
Bil_Acak_5 <- sample(1:100, 5, replace = TRUE)
# Memastikan fungsi tentukan_permintaan sudah ada (jika belum dijalankan di cell sebelumnya)
tentukan_permintaan <- function(acak) {
for (i in 1:length(Batas_Atas)) {
if (acak <= Batas_Atas[i]) {
return(Permintaan[i])
}
}
}
Hasil_Prediksi_5 <- sapply(Bil_Acak_5, tentukan_permintaan)
Tabel_Simulasi_5_Hari <- data.frame(
Hari = 1:5,
Bilangan_Acak = Bil_Acak_5,
Prediksi_Permintaan = Hasil_Prediksi_5
)
print(Tabel_Simulasi_5_Hari)
## Hari Bilangan_Acak Prediksi_Permintaan
## 1 1 35 70
## 2 2 38 70
## 3 3 85 80
## 4 4 27 60
## 5 5 25 60
Rata-rata Hasil Simulasi 5 Hari
Rata_rata_Simulasi_5 <- mean(Tabel_Simulasi_5_Hari$Prediksi_Permintaan)
print(paste("Rata-rata Simulasi 5 Hari:", Rata_rata_Simulasi_5))
## [1] "Rata-rata Simulasi 5 Hari: 68"
Pembangkitan Bilangan Acak dan Simulasi 20 Hari
set.seed(123)
Bil_Acak <- sample(1:100, 20, replace = TRUE)
tentukan_permintaan <- function(acak) {
for (i in 1:length(Batas_Atas)) {
if (acak <= Batas_Atas[i]) {
return(Permintaan[i])
}
}
}
Hasil_Prediksi <- sapply(Bil_Acak, tentukan_permintaan)
Tabel_Simulasi_20_Hari <- data.frame(
Hari = 1:20,
Bilangan_Acak = Bil_Acak,
Prediksi_Permintaan = Hasil_Prediksi
)
print(Tabel_Simulasi_20_Hari)
## Hari Bilangan_Acak Prediksi_Permintaan
## 1 1 31 70
## 2 2 79 80
## 3 3 51 70
## 4 4 14 60
## 5 5 67 70
## 6 6 42 70
## 7 7 50 70
## 8 8 43 70
## 9 9 14 60
## 10 10 25 60
## 11 11 90 80
## 12 12 91 90
## 13 13 69 70
## 14 14 91 90
## 15 15 57 70
## 16 16 92 90
## 17 17 9 50
## 18 18 93 90
## 19 19 99 90
## 20 20 72 80
Rata-rata Hasil Simulasi
Rata_rata_Simulasi <- mean(Tabel_Simulasi_20_Hari$Prediksi_Permintaan)
print(paste("Rata-rata Simulasi:", Rata_rata_Simulasi))
## [1] "Rata-rata Simulasi: 74"