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"