# Simulasi 1000 variabel random dari distribusi uniform
set.seed(123) # 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 = "lightblue")

# Simulasi 1000 variabel random dari distribusi binomial
n_trials <- 10 # Jumlah percobaan
p_success <- 0.5 # Probabilitas sukses
binomial_data <- rbinom(n, size = n_trials, prob = p_success)
# Plot histogram
hist(binomial_data, breaks = 30, main = "Histogram Distribusi Binomial", xlab
= "Jumlah Sukses", col = "lightgreen")

# Simulasi 1000 variabel random dari distribusi normal
mu <- 0 # Mean
sigma <- 1 # Standar deviasi
normal_data <- rnorm(n, mean = mu, sd = sigma)
# Plot histogram
hist(normal_data, breaks = 30, main = "Histogram Distribusi Normal", xlab =
"Nilai", col = "lightpink")

lambda <- 3 # Parameter lambda
poisson_data <- rpois(n, lambda)
hist(poisson_data, breaks = 30, main = "Histogram Distribusi Poisson", xlab =
"Jumlah Kejadian", col = "lightyellow")

rate <- 1 # Parameter rate
exp_data <- rexp(n, rate)
hist(exp_data, breaks = 30, main = "Histogram Distribusi Eksponensial", xlab
= "Nilai", col = "lightcoral")

# Simulasi pendapatan bulanan
set.seed(123)
n_employees <- 500
mean_income <- 10000000
sd_income <- 2000000
income_data <- rnorm(n_employees, mean = mean_income, sd = sd_income)
# 1. Rata-rata pendapatan simulasi
mean_simulated <- mean(income_data)
cat("Rata-rata pendapatan simulasi:", mean_simulated, "\n")
## Rata-rata pendapatan simulasi: 10069181
# 2. Probabilitas pendapatan di atas Rp 12.000.000
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
# Simulasi jumlah pelanggan
set.seed(123)
n_days <- 30
lambda_customers <- 50
customers_data <- rpois(n_days, lambda_customers)
# 1. Rata-rata jumlah pelanggan simulasi
mean_customers <- mean(customers_data)
cat("Rata-rata jumlah pelanggan simulasi:", mean_customers, "\n")
## Rata-rata jumlah pelanggan simulasi: 48.96667
# 2. Probabilitas jumlah pelanggan lebih dari 60
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
Latihan
Jawaban No 1
# Simulasi 100 nilai dari distribusi binomial
set.seed(123) # untuk replikasi
data_binomial <- rbinom(n = 100, size = 10, prob = 0.3)
# Ringkasan dan histogram
summary(data_binomial)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.00 2.00 3.00 3.02 4.00 7.00
hist(data_binomial, col = "skyblue", main = "Histogram Distribusi Binomial", xlab = "Jumlah Sukses")

# Simulasi 100 nilai dari distribusi normal (mean = 50, sd = 10)
set.seed(123)
data_normal <- rnorm(n = 100, mean = 50, sd = 10)
# Ringkasan dan histogram
summary(data_normal)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 26.91 45.06 50.62 50.90 56.92 71.87
hist(data_normal, col = "lightgreen", main = "Histogram Distribusi Normal", xlab = "Nilai")

Jawaban No 2
Studi Kasus:
Sebuah toko menerima pesanan harian. Jumlah pesanan per hari
mengikuti distribusi Poisson (λ = 5), dan waktu pemrosesan setiap
pesanan mengikuti distribusi eksponensial dengan rata-rata 20 menit (λ =
1/20). Simulasikan selama 30 hari dan hitung total waktu pemrosesan per
hari.
set.seed(123)
# Jumlah hari simulasi
jumlah_hari <- 30
# Simulasikan jumlah pesanan harian (Distribusi Poisson)
pesanan_per_hari <- rpois(n = jumlah_hari, lambda = 5)
# Simulasi waktu proses per hari
waktu_proses_total <- numeric(jumlah_hari)
for (i in 1:jumlah_hari) {
jumlah_pesanan <- pesanan_per_hari[i]
if (jumlah_pesanan > 0) {
waktu_pesanan <- rexp(n = jumlah_pesanan, rate = 1/20) # eksponensial (mean = 20)
waktu_proses_total[i] <- sum(waktu_pesanan)
} else {
waktu_proses_total[i] <- 0
}
}
# Buat data frame hasil simulasi
hasil_simulasi <- data.frame(
Hari = 1:jumlah_hari,
Pesanan = pesanan_per_hari,
Total_Waktu_Proses = round(waktu_proses_total, 2)
)
# Tampilkan hasil simulasi
print(hasil_simulasi)
## Hari Pesanan Total_Waktu_Proses
## 1 1 4 119.08
## 2 2 7 192.82
## 3 3 4 66.08
## 4 4 8 169.56
## 5 5 9 334.33
## 6 6 2 28.06
## 7 7 5 90.99
## 8 8 8 162.63
## 9 9 5 34.92
## 10 10 5 164.88
## 11 11 9 147.56
## 12 12 5 139.16
## 13 13 6 112.12
## 14 14 5 69.87
## 15 15 2 46.40
## 16 16 8 83.65
## 17 17 3 40.92
## 18 18 2 32.88
## 19 19 4 77.45
## 20 20 9 198.79
## 21 21 8 176.69
## 22 22 6 140.96
## 23 23 6 93.21
## 24 24 11 197.30
## 25 25 6 121.20
## 26 26 6 65.68
## 27 27 5 154.63
## 28 28 5 127.93
## 29 29 4 119.04
## 30 30 3 38.45
# Plot total waktu pemrosesan
plot(hasil_simulasi$Hari, hasil_simulasi$Total_Waktu_Proses,
type = "b", col = "blue", pch = 16,
main = "Total Waktu Proses per Hari",
xlab = "Hari", ylab = "Total Waktu Proses (menit)")
