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 = "pink")
Simulasi Distribusi Diskrit: Distribusi Binomial
#Simulasi 1000 variabel random dari diatribusi binomial
n_trials <- 10 #jumlah Percobaan
p_succcess <- 0.5 #Probabilitas sukses
binomial_data <- rbinom(n, size = n_trials, prob = p_succcess)
#Plot histogram
hist(binomial_data, breaks = 30, main = "Histogram Distribusi Binomial", xlab = "Jumlah Sukses", col = "blue")
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 = "lightblue")
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 = "lightgreen")
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 Stusi 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
#Distribusi Diskrit
set.seed(123)
lambda <- 5 # Parameter lambda
n <- 125
poisson_data <- rpois(n, lambda)
hist(poisson_data, breaks = 30, main = "Histogram Distribusi POisson", xlab = " Jumlah Kejadian", col = "lightgreen")
#Distribusi Kontinu
n <- 1000
mean <- 0
sd <- 1
normal_data <- rnorm(n, mean, sd)
hist(exp_data, breaks = 30, main = "Histogram Distribusi Eksponensial", xlab = "Nilai", col = "lightcoral")
2. Buat studi kasus sendiri yang melibatkan simulasi variabel random dari distribusi yang telah dipelajari.
Sebuah kafe ingin menganalisis dua aspek dari operasionalnya untuk meningkatkan efisiensi dan kepuasan pelanggan. kafe tersebut ingin memodelkan jumlah pengunjung per jam yang datang selama 24 jam. Berdasarkan data historis, jumlah pengunjung per jam rata-rata 10 pengunjung per jam. kafe juga ingin memodelkan waktu tunggu pelanggan dari saat memesan hingga pesanan mereka siap. Waktu tunggu ini diketahui dengan rata-rata waktu tunggu 5 menit
set.seed(123)
#Parameter distribusi poisson
lambda <- 10 #rata-rata jumlah pengunjung per jam
n_hours <- 24 #jumlah jam dalam sehari
pengunjung <- rpois(n_hours, lambda)
#Menampilkan data
cat("Jumlah Pengunjung per Jam:\n")
## Jumlah Pengunjung per Jam:
print(pengunjung)
## [1] 8 9 14 10 10 15 11 5 4 13 11 11 10 8 15 11 3 7 6 8 6 8 4 6
#menghitung rata-rata dan standar deviasi
mean <- mean(pengunjung)
sd <- sd(pengunjung)
cat("\nRata-rata jumlah pengunjung per jam:", mean, "\n")
##
## Rata-rata jumlah pengunjung per jam: 8.875
cat("Standar deviasi jumlah pengunjung per jam:", sd, "\n")
## Standar deviasi jumlah pengunjung per jam: 3.417506
#memvisualisasi dengan histogram
hist(pengunjung, breaks = seq(min(pengunjung)-0.5, max(pengunjung)+0.5, by=1),
main = "Histogram Jumlah Pengunjung per Jam",
xlab = "Jumlah Pengunjung",
col = "lightblue",
)
# Parameter distribusi Eksponensial
mu <- 5 # Rata-rata waktu tunggu (menit)
n_pelanggan <- 100 # Jumlah pelanggan
# Simulasi data waktu tunggu
waktu_tunggu <- rexp(n_pelanggan, rate = 1/mu)
# Tampilkan data
cat("\nWaktu Tunggu Pelanggan (menit):\n")
##
## Waktu Tunggu Pelanggan (menit):
print(waktu_tunggu)
## [1] 7.03273782 2.53307864 1.29778909 12.98446058 6.14512866 3.95340879
## [7] 3.14640039 6.27320501 2.94342321 5.64645017 2.10182401 36.05503788
## [13] 4.22860983 1.12771003 5.50169409 11.24152846 6.81867150 2.88195834
## [19] 13.62637925 6.56081521 0.45295675 1.53101925 5.33606535 1.56758128
## [25] 4.87320075 9.43911658 2.82294301 12.88480665 5.23847874 5.12220671
## [31] 5.13934808 1.42334230 7.81525944 0.21044146 0.49315445 0.49284656
## [37] 1.40192581 1.47893479 4.86214824 4.62013612 8.21202263 8.09956384
## [43] 12.68072770 7.60774812 1.90007102 1.19256483 2.33243712 0.21135726
## [49] 1.59838450 3.21805460 2.86281552 1.08027751 22.49336699 9.28545277
## [55] 3.42729319 7.19726313 8.65576992 6.22391650 7.31650280 7.68696989
## [61] 0.02299563 5.54382734 1.49985159 5.96001504 5.57464352 0.33687945
## [67] 2.40334360 7.85227170 1.29973053 9.28461144 2.31609810 1.18017873
## [73] 5.91049711 0.29835686 2.01619221 4.71469920 2.08290322 3.76609202
## [79] 0.94343194 4.38426936 0.95018910 4.89539103 1.61687914 6.60238777
## [85] 1.59230324 8.02533648 0.72867058 9.01564659 0.15029727 6.51720275
## [91] 0.99896122 8.75728121 8.81834166 4.21521789 1.74376388 16.48912400
## [97] 2.00853087 5.50350867 6.64461586 3.20951324
# Hitung rata-rata dan standar deviasi
mean <- mean(waktu_tunggu)
sd <- sd(waktu_tunggu)
cat("\nRata-rata waktu tunggu:", mean, "menit\n")
##
## Rata-rata waktu tunggu: 5.084628 menit
cat("Standar deviasi waktu tunggu:", sd, "menit\n")
## Standar deviasi waktu tunggu: 5.013486 menit
# Visualisasi dengan histogram
hist(waktu_tunggu, breaks = 20,
main = "Histogram Waktu Tunggu Pelanggan",
xlab = "Waktu Tunggu (menit)",
col = "lightpink",
)