Distribusi uniform adalah distribusi di mana semua nilai dalam interval tertentu memiliki probabilitas yang sama.
set.seed(555) # Set seed untuk reproducibility
n <- 1000
uniform_data <- runif(n, min = 0, max = 1)
# Plot histogram
hist(uniform_data, breaks = 30, main = "Histogram Distribusi Uniform", xlab = "Nilai", col = "lightskyblue")
Distribusi binomial menggambarkan jumlah sukses dalam n percobaan independen dengan probabilitas sukses p.
n_trials <- 10
p_success <- 0.5
binomial_data <- rbinom(n, size = n_trials, prob = p_success)
hist(binomial_data, breaks = 30, main = "Histogram Distribusi Binomial", xlab = "Jumlah Sukses", col = "lightseagreen")
Distribusi normal adalah distribusi kontinu yang berbentuk lonceng.
mu <- 0
sigma <- 1
normal_data <- rnorm(n, mean = mu, sd = sigma)
hist(normal_data, breaks = 30, main = "Histogram Distribusi Normal", xlab = "Nilai", col = "violet")
lambda <- 4
poisson_data <- rpois(n, lambda)
hist(poisson_data, breaks = 30, main = "Histogram Distribusi Poisson", xlab = "Jumlah Kejadian", col = "lightgoldenrod")
rate <- 1
exp_data <- rexp(n, rate)
hist(exp_data, breaks = 30, main = "Histogram Distribusi Eksponensial", xlab = "Nilai", col = "plum1")
set.seed(123)
n_employees <- 500
mean_income <- 10000000
sd_income <- 2000000
income_data <- rnorm(n_employees, mean = mean_income, sd = sd_income)
mean_simulated <- mean(income_data)
cat("Rata-rata pendapatan simulasi:", mean_simulated, "\n")
## Rata-rata pendapatan simulasi: 10069181
prob_above_12m <- sum(income_data > 12000000) / n_employees
cat("Probabilitas pendapatan di atas Rp 12.000.000:", prob_above_12m, "\n")
## Probabilitas pendapatan di atas Rp 12.000.000: 0.164
set.seed(123)
n_days <- 30
lambda_customers <- 50
customers_data <- rpois(n_days, lambda_customers)
mean_customers <- mean(customers_data)
cat("Rata-rata jumlah pelanggan simulasi:", mean_customers, "\n")
## Rata-rata jumlah pelanggan simulasi: 48.96667
prob_above_60 <- sum(customers_data > 60) / n_days
cat("Probabilitas jumlah pelanggan lebih dari 60:", prob_above_60, "\n")
## Probabilitas jumlah pelanggan lebih dari 60: 0.03333333
set.seed(999)
nDiskrit <- 1000
sizeDiskrit <- 10
probDiskrit <- 0.5
binomial_samples_diskrit <- rbinom(nDiskrit, sizeDiskrit, probDiskrit)
hist(binomial_samples_diskrit, main="Histogram Distribusi Binomial", col="cyan", xlab="Jumlah sukses", breaks=10)
set.seed(619)
nKontinu <- 1000
meanKontinu <- 50
sdKontinu <- 10
normal_samples_kontinu <- rnorm(nKontinu, meanKontinu, sdKontinu)
hist(normal_samples_kontinu, main="Histogram Distribusi Normal", col="magenta", xlab="Nilai", breaks=30, probability=TRUE)
curve(dnorm(x, meanKontinu, sdKontinu), col="cyan", lwd=2, add=TRUE)
Kak Seto adalah pemilik salah satu cafe di Semarang. Ia ingin memahami pola waktu tunggu pelanggan sebelum dilayani agar dapat mengoptimalkan jumlah barista yang dikerahkan. Berdasarkan data historis, diketahui bahwa waktu tunggu pelanggan mengikuti distribusi eksponensial dengan rata-rata 5 menit.
Kak Seto ingin mensimulasikan 1000 pelanggan untuk memahami distribusi waktu tunggu mereka dan memvisualisasikannya dalam histogram.
set.seed(111)
nCafe <- 1000
lambdaCafe <- 1/5
waiting_times_cafe <- rexp(nCafe, rate=lambdaCafe)
hist(waiting_times_cafe,
main="Histogram Waktu Tunggu Pelanggan di Cafe Kak Seto",
col="lightgreen",
xlab="Waktu Tunggu (menit)",
breaks=30,
probability=TRUE)
curve(dexp(x, rate=lambdaCafe), col="red", lwd=2, add=TRUE)
Bentuk Histogram: Histogram menunjukkan bahwa sebagian besar pelanggan dilayani dalam waktu singkat (sekitar 5 menit), tetapi ada beberapa yang menunggu lebih lama.
Distribusi Eksponensial: Kurva merah menunjukkan fungsi kepadatan probabilitas distribusi eksponensial, yang sesuai dengan histogram data simulasi.
Implikasi Kak Seto:
- Mayoritas pelanggan menunggu kurang dari 10 menit.
- Ada kemungkinan kecil bahwa beberapa pelanggan akan menunggu lebih lama.
- Jika Kak Seto ingin mengurangi waktu tunggu, ia bisa menambah jumlah barista terutama pada jam sibuk.