Pada bagian ini, kita melakukan simulasi untuk Distribusi Binomial (mewakili distribusi diskrit) dan Distribusi Normal (mewakili distribusi kontinu).
# ==========================================
# A. SIMULASI DISTRIBUSI DISKRIT (Binomial)
# ==========================================
# Skenario: Simulasi pelemparan 10 keping koin diulang 1000 kali.
set.seed(123)
n_koin <- 10 # Jumlah koin
p_sukses <- 0.5 # Peluang angka muncul
simulasi_binom <- rbinom(1000, size = n_koin, prob = p_sukses)
# Visualisasi Distribusi Diskrit
hist(simulasi_binom,
main = "Distribusi Binomial\n(Jumlah Sukses dari 10 Koin)",
xlab = "Jumlah Sukses",
ylab = "Frekuensi",
col = "lightblue",
breaks = seq(-0.5, 10.5, 1))
# ==========================================
# B. SIMULASI DISTRIBUSI KONTINU (Normal)
# ==========================================
# Skenario: Simulasi tinggi badan 1000 mahasiswa (rata-rata 165 cm, SD 8 cm).
set.seed(123)
simulasi_normal <- rnorm(1000, mean = 165, sd = 8)
# Visualisasi Distribusi Kontinu
hist(simulasi_normal,
main = "Distribusi Normal\n(Tinggi Badan Mahasiswa)",
xlab = "Tinggi Badan (cm)",
ylab = "Frekuensi",
col = "lightgreen",
breaks = 30)
Deskripsi: Sebuah klinik mengevaluasi operasionalnya. Jumlah kedatangan pasien per hari mengikuti Distribusi Poisson (\(\lambda\) = 25). Sementara waktu pelayanan dokter untuk setiap pasien mengikuti Distribusi Uniform (10 hingga 30 menit).
Tujuan: Menghitung peluang klinik kedatangan lebih dari 30 pasien dalam sehari, dan peluang pasien dilayani lebih dari 25 menit.
# ==========================================
# A. Simulasi Kedatangan Pasien (Poisson)
# ==========================================
set.seed(456)
# Simulasi kedatangan untuk 100 hari kerja
kedatangan_pasien <- rpois(100, lambda = 25)
# Menghitung probabilitas kedatangan > 30 pasien/hari
prob_lebih_30 <- sum(kedatangan_pasien > 30) / length(kedatangan_pasien)
cat("Probabilitas kedatangan lebih dari 30 pasien/hari:", prob_lebih_30, "\n")
## Probabilitas kedatangan lebih dari 30 pasien/hari: 0.19
# ==========================================
# B. Simulasi Waktu Pelayanan (Uniform)
# ==========================================
set.seed(456)
# Simulasi waktu pelayanan untuk 1000 pasien
waktu_pelayanan <- runif(1000, min = 10, max = 30)
# Menghitung probabilitas pelayanan > 25 menit
prob_lama <- sum(waktu_pelayanan > 25) / length(waktu_pelayanan)
cat("Probabilitas waktu pelayanan lebih dari 25 menit:", prob_lama, "\n")
## Probabilitas waktu pelayanan lebih dari 25 menit: 0.281
# ==========================================
# C. Visualisasi Studi Kasus
# ==========================================
par(mfrow=c(1,2)) # Membagi jendela grafik menjadi 2 (kiri-kanan)
hist(kedatangan_pasien,
main="Kedatangan Pasien\n(Poisson)",
col="pink",
xlab="Jumlah Pasien per Hari",
breaks=10)
hist(waktu_pelayanan,
main="Waktu Pelayanan\n(Uniform)",
col="lightyellow",
xlab="Waktu (menit)",
breaks=20)
# Mengembalikan layout grafik ke semula (1 grafik penuh)
par(mfrow=c(1,1))