Simulasi Sederhana : variabel Random Uniform
# 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
# 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
# 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 Eksponensial (Kontinu)
rate <- 1 # Parameter rate
exp_data <- rexp(n, rate)
hist(exp_data, breaks = 30, main = "Histogram Distribusi Eksponensial", xlab = "Nilai", col = "lightcoral")
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.
# Set seed untuk reproduktibilitas
set.seed(123)
# Jumlah sampel
n <- 1000
# Distribusi Diskrit
# Binomial
binomial_sample <- rbinom(n, size=10, prob=0.5)
# Poisson: lambda=4
poisson_sample <- rpois(n, lambda=4)
# Distribusi Kontinu
normal_sample <- rnorm(n, mean=50, sd=10)
# Eksponensial: rate=0.2
exponential_sample <- rexp(n, rate=0.2)
# Plot histogram
par(mfrow=c(2,2)) # Menyusun grafik dalam bentuk 2x2
# Histogram Distribusi Binomial
hist(binomial_sample, breaks=20, col="skyblue", main="Distribusi Binomial", xlab="Nilai", probability=TRUE)
lines(density(binomial_sample), col="red", lwd=2)
# Histogram Distribusi Poisson
hist(poisson_sample, breaks=20, col="lightgreen", main="Distribusi Poisson", xlab="Nilai", probability=TRUE)
lines(density(poisson_sample), col="brown", lwd=2)
# Histogram Distribusi Normal
hist(normal_sample, breaks=30, col="gold", main="Distribusi Normal", xlab="Nilai", probability=TRUE)
lines(density(normal_sample), col="blue", lwd=2)
# Histogram Distribusi Eksponensial
hist(exponential_sample, breaks=30, col="pink", main="Distribusi Eksponensial", xlab="Nilai", probability=TRUE)
lines(density(exponential_sample), col="red", lwd=2)
par(mfrow=c(1,1)) # Kembali ke layout default
2. Buat studi kasus sendiri yang melibatkan simulasi variabel random dari distribusi yang telah dipelajari. Perusahaan Adidas memproduksi bola sepak dalam jumlah besar untuk memenuhi permintaan global. Manajer produksi ingin menganalisis waktu penyelesaian proses produksi untuk mengoptimalkan efisiensi dan mengurangi keterlambatan.
Terdapat 4 tahap utama dalam produksi bola yang dapat dimodelkan menggunakan distribusi probabilitas:
# Set seed untuk hasil yang dapat direproduksi
set.seed(123)
# Jumlah simulasi (misalnya 1000 observasi)
n <- 1000
# Tahap Pemotongan Bahan (Distribusi Binomial)
pemotongan <- rbinom(n, size=20, prob=0.9) # 20 panel per bola, 90% peluang sukses
# Tahap Jahitan (Distribusi Normal)
jahitan <- rnorm(n, mean=35, sd=5) # Waktu menjahit rata-rata 35 menit, SD=5 menit
# Tahap Inspeksi Kualitas (Distribusi Poisson)
inspeksi <- rpois(n, lambda=5) # Jumlah bola cacat per hari, rata-rata 5
# Tahap Pengemasan & Distribusi (Distribusi Eksponensial)
pengiriman <- rexp(n, rate=1/2) # Waktu antar pengiriman, rata-rata 2 jam
# Menampilkan ringkasan statistik
summary(data.frame(pemotongan, jahitan, inspeksi, pengiriman))
## pemotongan jahitan inspeksi pengiriman
## Min. :13.00 Min. :20.95 Min. : 0.00 Min. : 0.005708
## 1st Qu.:17.00 1st Qu.:31.56 1st Qu.: 3.00 1st Qu.: 0.586853
## Median :18.00 Median :35.14 Median : 5.00 Median : 1.465544
## Mean :18.02 Mean :35.06 Mean : 5.03 Mean : 2.015321
## 3rd Qu.:19.00 3rd Qu.:38.28 3rd Qu.: 7.00 3rd Qu.: 2.693373
## Max. :20.00 Max. :51.95 Max. :14.00 Max. :13.890007
# Visualisasi hasil dengan histogram
par(mfrow=c(2,2))
# Histogram distribusi Binomial (Tahap Pemotongan)
hist(pemotongan, breaks=20, col="skyblue", main="Pemotongan Bahan (Binomial)", xlab="Panel Berhasil", probability=TRUE)
lines(density(pemotongan), col="red", lwd=2)
# Histogram distribusi Normal (Tahap Jahitan)
hist(jahitan, breaks=30, col="lightgreen", main="Jahitan (Normal)", xlab="Waktu (menit)", probability=TRUE)
lines(density(jahitan), col="blue", lwd=2)
# Histogram distribusi Poisson (Tahap Inspeksi)
hist(inspeksi, breaks=10, col="orange", main="Inspeksi Kualitas (Poisson)", xlab="Bola Cacat", probability=TRUE)
lines(density(inspeksi), col="red", lwd=2)
# Histogram distribusi Eksponensial (Tahap Pengiriman)
hist(pengiriman, breaks=30, col="gold", main="Pengiriman (Eksponensial)", xlab="Waktu antar Pengiriman (jam)", probability=TRUE)
lines(density(pengiriman), col="blue", lwd=2)
par(mfrow=c(1,1)) # Kembali ke layout default