Simulasi Sederhana: Variabel Random Uniform

Distribusi uniform adalah distribusi di mana semua nilai dalam interval tertentu memiliki probabilitas yang sama.

# 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 Distribusi Diskrit: Distribusi Binomial

Distribusi binomial menggambarkan jumlah sukses dalam n percobaan independen dengan probabilitas sukses p.

# 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 Distribusi Kontinu: Distribusi Normal

Distribusi normal adalah distribusi kontinu yang berbentuk lonceng, dengan mean mu dan standar deviasi sigma.

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

Distribusi Poisson (Diskrit)

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

Distribusi Poisson digunakan untuk memodelkan jumlah kejadian langka dalam interval waktu atau ruang.

Histogram menunjukkan distribusi yang miring ke kanan, yang khas untuk distribusi Poisson dengan lambda kecil. ### Distribusi Eksponensial (Kontinu)

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

Distribusi eksponensial digunakan untuk memodelkan waktu antara kejadian dalam proses Poisson.

Histogram menunjukkan distribusi yang miring ke kanan, dengan nilai-nilai yang semakin kecil semakin sering muncul.

Latihan Studi Kasus

Studi Kasus 1: Simulasi Pendapatan Bulanan

# 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

Studi Kasus 2: Simulasi Jumlah Pelanggan

# 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

Tugas Tambahan

1.Buat simulasi untuk distribusi diskrit dan distribusi kontinu.

Distribusi Diskrit (Distribusi Poisson)

# Parameter
lambda <- 5  # Rata-rata kejadian dalam suatu interval

# Simulasi 1000 data dari distribusi Poisson
set.seed(123)
simulasi_poisson <- rpois(1000, lambda)

# Plot hasil simulasi
hist(simulasi_poisson, breaks=20, col="lightblue",
     main="Distribusi Poisson",
     xlab="Jumlah Kejadian",
     ylab="Frekuensi")

Distribusi Kontinu (Distribusi Normal)

# Parameter
mean <- 50    # Rata-rata
sd <- 10      # Standar deviasi

# Simulasi 1000 data dari distribusi Normal
set.seed(123)
simulasi_normal <- rnorm(1000, mean=mean, sd=sd)

# Plot hasil simulasi
hist(simulasi_normal, breaks=30, col="lightgreen",
     main="Distribusi Normal",
     xlab="Nilai",
     ylab="Frekuensi",
     probability=TRUE)

# Tambahkan kurva densitas normal
curve(dnorm(x, mean=mean, sd=sd), col="red", lwd=2, add=TRUE)

2. Buat studi kasus sendiri yang melibatkan simulasi variabel random dari distribusi yang telah dipelajari.

Sebuah pabrik produksi botol plastik ingin mensimulasikan jumlah cacat produk dan waktu antar kegagalan mesin untuk mengoptimalkan sistem produksi. Dari data historis, diketahui bahwa:

  1. Jumlah botol cacat per jam mengikuti distribusi Poisson dengan rata-rata 3 cacat per jam, 2. Waktu antar kegagalan mesin mengikuti distribusi eksponensial dengan rata-rata 8 jam antar kegagalan.

Manajemen ingin melakukan simulasi untuk 1000 jam produksi guna memahami pola cacat produk dan kegagalan mesin.

# Simulasi jumlah botol cacat per jam (Distribusi Poisson)
lambda_cacat <- 3  # Rata-rata cacat per jam
set.seed(123)
simulasi_cacat <- rpois(1000, lambda=lambda_cacat)

# Simulasi waktu antar kegagalan mesin (Distribusi Eksponensial)
lambda_kegagalan <- 1/8  # Rata-rata 8 jam antar kegagalan
set.seed(123)
simulasi_kegagalan <- rexp(1000, rate=lambda_kegagalan)

# Plot jumlah botol cacat
hist(simulasi_cacat, breaks=20, col="lightblue",
     main="Distribusi Jumlah Botol Cacat per Jam",
     xlab="Jumlah Botol Cacat",
     ylab="Frekuensi")

# Plot waktu antar kegagalan mesin
hist(simulasi_kegagalan, breaks=30, col="lightgreen",
     main="Distribusi Waktu Antar Kegagalan Mesin",
     xlab="Waktu Antar Kegagalan (jam)",
     ylab="Frekuensi",
     probability=TRUE)

# Tambahkan kurva densitas eksponensial
curve(dexp(x, rate=lambda_kegagalan), col="red", lwd=2, add=TRUE)