Pendahuluan

Variabel random adalah variabel yang nilainya ditentukan oleh hasil percobaan acak. Terdapat dua jenis:

Tugas ini terdiri dari dua bagian:

  1. Membuat simulasi untuk distribusi diskrit dan kontinu
  2. Membuat studi kasus sendiri yang melibatkan simulasi variabel random

Bagian 1: Simulasi Distribusi Diskrit dan Kontinu


Diskrit 1 — Distribusi Binomial

Skenario: Dari 10 soal pilihan ganda, peluang seorang mahasiswa menjawab benar setiap soal adalah 0,7. Disimulasikan sebanyak 1.000 mahasiswa.

n_soal  <- 10
p_benar <- 0.7
binom_data <- rbinom(n, size = n_soal, prob = p_benar)

cat("Rata-rata soal benar:", round(mean(binom_data), 2), "\n")
## Rata-rata soal benar: 7.01
cat("Standar deviasi     :", round(sd(binom_data),   2), "\n")
## Standar deviasi     : 1.45
cat("P(benar > 8 soal)   :", round(mean(binom_data > 8), 4))
## P(benar > 8 soal)   : 0.155
hist(binom_data,
     breaks = 10,
     main   = "Distribusi Binomial (n=10, p=0.7)",
     xlab   = "Jumlah Soal Benar",
     col    = "lightblue",
     border = "white")
abline(v = mean(binom_data), col = "red", lwd = 2, lty = 2)
legend("topleft", legend = paste("Mean =", round(mean(binom_data), 2)),
       col = "red", lty = 2, lwd = 2)

Histogram menunjukkan distribusi condong ke kanan karena probabilitas sukses (p = 0,7) cukup tinggi, sehingga sebagian besar mahasiswa mampu menjawab lebih dari 7 soal dengan benar.


Diskrit 2 — Distribusi Poisson

Skenario: Rata-rata email yang masuk ke kotak masuk per jam adalah 8 email. Disimulasikan selama 1.000 jam.

lambda_email <- 8
poisson_data <- rpois(n, lambda = lambda_email)

cat("Rata-rata email per jam      :", round(mean(poisson_data), 2), "\n")
## Rata-rata email per jam      : 7.99
cat("P(email > 10 per jam)        :", round(mean(poisson_data > 10), 4))
## P(email > 10 per jam)        : 0.177
hist(poisson_data,
     breaks = 15,
     main   = "Distribusi Poisson (lambda = 8)",
     xlab   = "Jumlah Email per Jam",
     col    = "lightgreen",
     border = "white")
abline(v = lambda_email, col = "red", lwd = 2, lty = 2)
legend("topright", legend = paste("Lambda =", lambda_email),
       col = "red", lty = 2, lwd = 2)

Histogram memperlihatkan bentuk khas distribusi Poisson yang sedikit miring ke kanan, berpusat di sekitar \(\lambda = 8\).


Kontinu 1 — Distribusi Normal

Skenario: Berat badan mahasiswa di suatu universitas berdistribusi normal dengan rata-rata 65 kg dan standar deviasi 8 kg. Disimulasikan sebanyak 1.000 mahasiswa.

mu_bb    <- 65
sigma_bb <- 8
normal_data <- rnorm(n, mean = mu_bb, sd = sigma_bb)

cat("Rata-rata berat badan :", round(mean(normal_data), 2), "kg\n")
## Rata-rata berat badan : 65.34 kg
cat("P(berat > 70 kg)      :", round(mean(normal_data > 70), 4))
## P(berat > 70 kg)      : 0.29
hist(normal_data,
     breaks = 30,
     main   = "Distribusi Normal (mu=65, sigma=8)",
     xlab   = "Berat Badan (kg)",
     col    = "lightpink",
     border = "white")
abline(v = mu_bb, col = "red", lwd = 2, lty = 2)
legend("topright", legend = paste("Mean =", mu_bb, "kg"),
       col = "red", lty = 2, lwd = 2)

Histogram membentuk kurva lonceng simetris di sekitar 65 kg, sesuai karakteristik distribusi normal.


Kontinu 2 — Distribusi Eksponensial

Skenario: Waktu tunggu pelanggan di kasir supermarket berdistribusi eksponensial dengan rata-rata 3 menit. Disimulasikan sebanyak 1.000 pelanggan.

rate_kasir <- 1/3
exp_data   <- rexp(n, rate = rate_kasir)

cat("Rata-rata waktu tunggu :", round(mean(exp_data), 2), "menit\n")
## Rata-rata waktu tunggu : 3.02 menit
cat("P(tunggu > 5 menit)    :", round(mean(exp_data > 5), 4))
## P(tunggu > 5 menit)    : 0.171
hist(exp_data,
     breaks = 30,
     main   = "Distribusi Eksponensial (mean = 3 menit)",
     xlab   = "Waktu Tunggu (menit)",
     col    = "lightyellow",
     border = "white")
abline(v = mean(exp_data), col = "red", lwd = 2, lty = 2)
legend("topright", legend = paste("Mean =", round(mean(exp_data), 2), "menit"),
       col = "red", lty = 2, lwd = 2)

Histogram memperlihatkan distribusi yang sangat miring ke kanan — mayoritas pelanggan hanya menunggu sebentar, namun ada sebagian kecil yang menunggu jauh lebih lama.


Bagian 2: Studi Kasus Sendiri

Simulasi Operasional Bioskop

Latar belakang: Sebuah bioskop ingin menganalisis pola operasionalnya selama setahun (365 hari). Terdapat tiga variabel yang dimodelkan:

Variabel Distribusi Parameter
Jumlah penonton per sesi Poisson \(\lambda = 120\)
Durasi film Normal \(\mu = 110\) menit, \(\sigma = 15\) menit
Waktu antar kedatangan penonton Eksponensial mean = 2 menit

Pertanyaan:

  1. Berapa rata-rata penonton per sesi?
  2. Berapa probabilitas penonton melebihi 140 orang?
  3. Berapa probabilitas durasi film antara 90–120 menit?
  4. Berapa probabilitas waktu antar kedatangan kurang dari 1 menit?

set.seed(42)
n_hari <- 365

(a) Jumlah Penonton per Sesi — Distribusi Poisson

lambda_penonton <- 120
penonton_data   <- rpois(n_hari, lambda = lambda_penonton)

cat("Rata-rata penonton per sesi  :", round(mean(penonton_data), 2), "\n")
## Rata-rata penonton per sesi  : 119.48
cat("P(penonton > 140)            :", round(mean(penonton_data > 140), 4), "\n")
## P(penonton > 140)            : 0.0301
cat("P(penonton < 100)            :", round(mean(penonton_data < 100), 4))
## P(penonton < 100)            : 0.0247

(b) Durasi Film — Distribusi Normal

mu_durasi    <- 110
sigma_durasi <- 15
durasi_data  <- rnorm(n_hari, mean = mu_durasi, sd = sigma_durasi)

cat("Rata-rata durasi film          :", round(mean(durasi_data), 2), "menit\n")
## Rata-rata durasi film          : 108.78 menit
cat("P(durasi antara 90-120 menit)  :", round(mean(durasi_data >= 90 & durasi_data <= 120), 4))
## P(durasi antara 90-120 menit)  : 0.6712

(c) Waktu Antar Kedatangan — Distribusi Eksponensial

rate_kedatangan <- 1/2
kedatangan_data <- rexp(n_hari, rate = rate_kedatangan)

cat("Rata-rata waktu antar kedatangan :", round(mean(kedatangan_data), 2), "menit\n")
## Rata-rata waktu antar kedatangan : 2.05 menit
cat("P(waktu antar kedatangan < 1 mnt):", round(mean(kedatangan_data < 1), 4))
## P(waktu antar kedatangan < 1 mnt): 0.3836

Visualisasi Studi Kasus

par(mfrow = c(1, 3))

hist(penonton_data,
     breaks = 20, col = "steelblue", border = "white",
     main = "Jumlah Penonton\n(Poisson, λ=120)",
     xlab = "Jumlah Penonton")
abline(v = mean(penonton_data), col = "red", lwd = 2, lty = 2)

hist(durasi_data,
     breaks = 20, col = "coral", border = "white",
     main = "Durasi Film\n(Normal, μ=110, σ=15)",
     xlab = "Durasi (menit)")
abline(v = mean(durasi_data), col = "red", lwd = 2, lty = 2)

hist(kedatangan_data,
     breaks = 20, col = "mediumseagreen", border = "white",
     main = "Waktu Antar Kedatangan\n(Eksponensial, mean=2)",
     xlab = "Waktu (menit)")
abline(v = mean(kedatangan_data), col = "red", lwd = 2, lty = 2)

par(mfrow = c(1, 1))

Kesimpulan

  1. Bagian 1 menunjukkan bahwa setiap distribusi memiliki bentuk histogram yang khas: Binomial dan Poisson (diskrit) membentuk pola batang, Normal (kontinu) membentuk lonceng simetris, dan Eksponensial (kontinu) sangat miring ke kanan.

  2. Studi kasus bioskop membuktikan bahwa variabel-variabel operasional dunia nyata dapat dimodelkan secara efektif menggunakan distribusi probabilitas yang sesuai, memungkinkan analisis seperti peluang kepadatan penonton atau estimasi waktu operasional.