# Simulasi 1000 data dari distribusi uniform (0 sampai 1)
set.seed(555)
n <- 1000
uniform_data <- runif(n, min = 0, max = 1)

# Visualisasi histogram
hist(uniform_data, breaks = 30,
     main = "Histogram Distribusi Uniform",
     xlab = "Nilai", col = "orange3")

# Simulasi 1000 data dari distribusi binomial
set.seed(555)
n_trials <- 10
p_success <- 0.5
binomial_data <- rbinom(n, size = n_trials, prob = p_success)

# Visualisasi histogram
hist(binomial_data, breaks = 30,
     main = "Histogram Distribusi Binomial",
     xlab = "Jumlah Sukses", col = "lightseagreen")

# Simulasi 1000 data dari distribusi normal
set.seed(555)
mu <- 0
sigma <- 1
normal_data <- rnorm(n, mean = mu, sd = sigma)

# Visualisasi histogram
hist(normal_data, breaks = 30,
     main = "Histogram Distribusi Normal",
     xlab = "Nilai", col = "violet")

# Simulasi 1000 data dari distribusi Poisson
set.seed(555)
lambda <- 4
poisson_data <- rpois(n, lambda)

# Visualisasi histogram
hist(poisson_data, breaks = 30,
     main = "Histogram Distribusi Poisson",
     xlab = "Jumlah Kejadian", col = "lightgoldenrod")

# Simulasi 1000 data dari distribusi eksponensial
set.seed(555)
rate <- 1
exp_data <- rexp(n, rate)

# Visualisasi histogram
hist(exp_data, breaks = 30,
     main = "Histogram Distribusi Eksponensial",
     xlab = "Nilai", col = "plum1")

# Simulasi pendapatan bulanan karyawan
set.seed(123)
n_employees <- 500
mean_income <- 10000000
sd_income <- 2000000
income_data <- rnorm(n_employees, mean = mean_income, sd = sd_income)

# Statistik
mean_simulated <- mean(income_data)
cat("Rata-rata pendapatan simulasi:", mean_simulated, "\n")
## Rata-rata pendapatan simulasi: 10069181
# Probabilitas pendapatan > Rp12.000.000
prob_above_12m <- mean(income_data > 12000000)
cat("Probabilitas pendapatan di atas Rp12.000.000:", prob_above_12m, "\n")
## Probabilitas pendapatan di atas Rp12.000.000: 0.164
# Simulasi jumlah pelanggan harian
set.seed(123)
n_days <- 30
lambda_customers <- 50
customers_data <- rpois(n_days, lambda_customers)

# Statistik
mean_customers <- mean(customers_data)
cat("Rata-rata jumlah pelanggan simulasi:", mean_customers, "\n")
## Rata-rata jumlah pelanggan simulasi: 48.96667
prob_above_60 <- mean(customers_data > 60)
cat("Probabilitas pelanggan > 60:", prob_above_60, "\n")
## Probabilitas pelanggan > 60: 0.03333333
# Simulasi distribusi binomial (diskrit)
set.seed(999)
nDiskrit <- 1000
sizeDiskrit <- 10
probDiskrit <- 0.5
binomial_samples_diskrit <- rbinom(nDiskrit, sizeDiskrit, probDiskrit)

hist(binomial_samples_diskrit, col="cyan", main="Distribusi Binomial",
     xlab="Jumlah Sukses", breaks=10)

# Simulasi distribusi normal (kontinu)
set.seed(619)
nKontinu <- 1000
meanKontinu <- 50
sdKontinu <- 10
normal_samples_kontinu <- rnorm(nKontinu, meanKontinu, sdKontinu)

hist(normal_samples_kontinu, breaks=30, probability=TRUE,
     main="Distribusi Normal", col="magenta", xlab="Nilai")

curve(dnorm(x, meanKontinu, sdKontinu), col="cyan", lwd=2, add=TRUE)

# Simulasi waktu tunggu pelanggan di cafe
set.seed(111)
nCafe <- 1000
lambdaCafe <- 1 / 5  # rata-rata 5 menit

waiting_times_cafe <- rexp(nCafe, rate=lambdaCafe)

hist(waiting_times_cafe, breaks=30, probability=TRUE,
     main="Waktu Tunggu di Cafe Kak Seto",
     col="lightgreen", xlab="Waktu Tunggu (menit)")

curve(dexp(x, rate=lambdaCafe), col="red", lwd=2, add=TRUE)