# 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)")