#=========================================================
# LATIHAN PREDIKSI PERMINTAAN ES TEH
# METODE DISTRIBUSI FREKUENSI / EXPECTED VALUE
#=========================================================

#-----------------------------
# 1. INPUT DATA
#-----------------------------
permintaan <- c(50, 60, 70, 80, 90)
frekuensi  <- c(10, 20, 40, 20, 10)

# Total hari observasi
total_hari <- sum(frekuensi)

#-----------------------------
# 2. HITUNG PROBABILITAS
#-----------------------------
probabilitas <- frekuensi / total_hari

# Tampilkan tabel probabilitas
data.frame(
  Permintaan = permintaan,
  Frekuensi = frekuensi,
  Probabilitas = probabilitas
)
##   Permintaan Frekuensi Probabilitas
## 1         50        10          0.1
## 2         60        20          0.2
## 3         70        40          0.4
## 4         80        20          0.2
## 5         90        10          0.1
#-----------------------------
# 3. HITUNG NILAI HARAPAN
# E(X) = Σ x * p(x)
#-----------------------------
rata_harian <- sum(permintaan * probabilitas)

cat("Rata-rata permintaan per hari =", rata_harian, "gelas\n")
## Rata-rata permintaan per hari = 70 gelas
#-----------------------------
# 4. PREDIKSI 5 HARI KE DEPAN
#-----------------------------
prediksi_5 <- rata_harian * 5
cat("Prediksi 5 hari ke depan =", prediksi_5, "gelas\n")
## Prediksi 5 hari ke depan = 350 gelas
#-----------------------------
# 5. PREDIKSI 20 HARI KE DEPAN
#-----------------------------
prediksi_20 <- rata_harian * 20
cat("Prediksi 20 hari ke depan =", prediksi_20, "gelas\n")
## Prediksi 20 hari ke depan = 1400 gelas
#-----------------------------
# 6. VISUALISASI DATA
#-----------------------------
barplot(frekuensi,
        names.arg = permintaan,
        col = "skyblue",
        main = "Frekuensi Permintaan Es Teh",
        xlab = "Permintaan (gelas)",
        ylab = "Frekuensi")

#=========================================================
# SELESAI
#=========================================================
#====================================================
# LATIHAN 2
# Simulasi Data Distribusi Eksponensial dan Normal
#====================================================

# Agar hasil random selalu sama
set.seed(123)

#----------------------------------------------------
# 1. BANGKITKAN DATA
#----------------------------------------------------

# Variabel permintaan (10 data) distribusi eksponensial
permintaan <- rexp(10, rate = 1/70)

# Dibulatkan agar realistis (gelas)
permintaan <- round(permintaan)

# Variabel frekuensi distribusi normal
frekuensi <- rnorm(10, mean = 20, sd = 5)

# Dibulatkan
frekuensi <- round(frekuensi)

# Jika ada nilai negatif, ubah jadi positif
frekuensi[frekuensi < 0] <- 1

# Tampilkan data
data.frame(permintaan, frekuensi)
##    permintaan frekuensi
## 1          59        18
## 2          40        26
## 3          93        22
## 4           2        22
## 5           4        21
## 6          22        17
## 7          22        29
## 8          10        22
## 9         191        10
## 10          2        24
#----------------------------------------------------
# 2. HITUNG RATA-RATA PERMINTAAN
#----------------------------------------------------
rata_permintaan <- mean(permintaan)

cat("Rata-rata permintaan per hari =", rata_permintaan, "\n")
## Rata-rata permintaan per hari = 44.5
#----------------------------------------------------
# 3. PREDIKSI
#----------------------------------------------------

prediksi_5    <- rata_permintaan * 5
prediksi_20   <- rata_permintaan * 20
prediksi_100  <- rata_permintaan * 100
prediksi_1000 <- rata_permintaan * 1000

cat("Prediksi 5 hari    =", prediksi_5, "\n")
## Prediksi 5 hari    = 222.5
cat("Prediksi 20 hari   =", prediksi_20, "\n")
## Prediksi 20 hari   = 890
cat("Prediksi 100 hari  =", prediksi_100, "\n")
## Prediksi 100 hari  = 4450
cat("Prediksi 1000 hari =", prediksi_1000, "\n")
## Prediksi 1000 hari = 44500
#----------------------------------------------------
# 4. VISUALISASI
#----------------------------------------------------

hist(permintaan,
     col="skyblue",
     main="Histogram Permintaan",
     xlab="Jumlah Permintaan")

hist(frekuensi,
     col="pink",
     main="Histogram Frekuensi",
     xlab="Frekuensi")