# Membuat kurva distribusi normal
x <- seq(-4, 4, length.out = 1000)

# Fungsi kepadatan distribusi normal
y <- dnorm(x, mean = 0, sd = 1)

# Membuat kurva
plot(x, y,
     type = "l",
     lwd = 3,
     col = "blue",
     main = "Kurva Distribusi Normal",
     xlab = "Nilai",
     ylab = "Frekuensi / Peluang")

# Menambahkan garis mean
abline(v = 0, col = "red", lty = 2, lwd = 2)

# Menambahkan garis standar deviasi
abline(v = c(-1, 1), col = "gray", lty = 2)
abline(v = c(-2, 2), col = "gray", lty = 2)
abline(v = c(-3, 3), col = "gray", lty = 2)

# Parameter distribusi normal
mu <- 10
varians <- 2
sd <- sqrt(varians)

# Membuat nilai x
x <- seq(mu - 4*sd, mu + 4*sd, length.out = 1000)

# Fungsi kepadatan distribusi normal
y <- dnorm(x, mean = mu, sd = sd)

# Membuat kurva
plot(x, y,
     type = "l",
     lwd = 3,
     col = "blue",
     main = "Kurva Distribusi Normal",
     xlab = "Nilai",
     ylab = "Kepadatan")

# Garis mean (μ)
abline(v = mu, col = "red", lty = 2, lwd = 2)

# Nilai rata-rata
mu <- 10

# Membuat rentang X
x <- seq(0, 20, length.out = 1000)

# Kurva 1: varians = 1
y1 <- dnorm(x, mean = mu, sd = sqrt(1))

# Kurva 2: varians = 2
y2 <- dnorm(x, mean = mu, sd = sqrt(2))

# Kurva 3: varians = 4
y3 <- dnorm(x, mean = mu, sd = sqrt(4))

# Membuat grafik pertama
plot(x, y1,
     type = "l",
     lwd = 3,
     col = "blue",
     ylim = c(0, max(y1, y2, y3)),
     main = "Kurva Distribusi Normal",
     xlab = "X",
     ylab = "Kepadatan")

# Menumpuk kurva kedua
lines(x, y2,
      lwd = 3,
      col = "red")

# Menumpuk kurva ketiga
lines(x, y3,
      lwd = 3,
      col = "green")

# Menambahkan legenda
legend("topright",
       legend = c("Varians = 1",
                  "Varians = 2",
                  "Varians = 4"),
       col = c("blue", "red", "green"),
       lwd = 3)

# Membuat rentang nilai X
x <- seq(-15, 20, length.out = 2000)

# Membuat masing-masing distribusi normal
y1 <- dnorm(x, mean = 0,  sd = 1)
y2 <- dnorm(x, mean = 2,  sd = 1)
y3 <- dnorm(x, mean = 5,  sd = 5)
y4 <- dnorm(x, mean = 10, sd = 3)
y5 <- dnorm(x, mean = 1.5, sd = 0.1)

# Membuat grafik kurva pertama
plot(x, y1,
     type = "l",
     lwd = 2,
     col = "blue",
     ylim = c(0, max(y1, y2, y3, y4, y5)),
     main = "Distribusi Normal",
     xlab = "Nilai X",
     ylab = "Kepadatan")

# Menambahkan kurva lainnya
lines(x, y2, col = "red",    lwd = 2)
lines(x, y3, col = "green",  lwd = 2)
lines(x, y4, col = "purple", lwd = 2)
lines(x, y5, col = "orange", lwd = 2)

# Menambahkan legenda
legend("topright",
       legend = c(
         "Kurva 1: μ=0, σ=1",
         "Kurva 2: μ=2, σ=1",
         "Kurva 3: μ=5, σ=5",
         "Kurva 4: μ=10, σ=3",
         "Kurva 5: μ=1.5, σ=0.1"
       ),
       col = c("blue", "red", "green", "purple", "orange"),
       lwd = 2)

# Parameter distribusi
mu <- c(0, 2, 5, 10, 1.5)
sigma <- c(1, 1, 5, 3, 0.1)

# Rentang X
x <- seq(-10, 20, length.out = 3000)

# Membuat grafik pertama
plot(x, dnorm(x, mu[1], sigma[1]),
     type = "l",
     lwd = 2.5,
     col = "blue",
     xlim = c(-10, 20),
     ylim = c(0, 1.2),
     main = "Kurva Distribusi Normal",
     xlab = "Nilai X",
     ylab = "Kepadatan")

# Kurva lainnya
lines(x, dnorm(x, mu[2], sigma[2]),
      col = "red", lwd = 2.5)

lines(x, dnorm(x, mu[3], sigma[3]),
      col = "green", lwd = 2.5)

lines(x, dnorm(x, mu[4], sigma[4]),
      col = "purple", lwd = 2.5)

lines(x, dnorm(x, mu[5], sigma[5]),
      col = "orange", lwd = 2.5)

# Legenda
legend("topright",
       legend = c(
         "Kurva 1 (μ=0, σ=1)",
         "Kurva 2 (μ=2, σ=1)",
         "Kurva 3 (μ=5, σ=5)",
         "Kurva 4 (μ=10, σ=3)",
         "Kurva 5 (μ=1.5, σ=0.1)"
       ),
       col = c("blue", "red", "green", "purple", "orange"),
       lwd = 2.5,
       cex = 0.8)

# Parameter
mu <- c(0, 2, 5, 10, 1.5)
sigma <- c(1, 1, 5, 3, 0.1)

# Rentang X
x <- seq(-15, 20, length.out = 3000)

# 5 grafik dalam 1 tampilan
par(mfrow = c(2, 3),
    mar = c(4, 4, 3, 2))

# Warna
warna <- c("blue", "red", "green", "purple", "orange")

# Membuat 5 kurva
for(i in 1:5) {
  
  y <- dnorm(x, mean = mu[i], sd = sigma[i])
  
  plot(x, y,
       type = "l",
       lwd = 4,
       col = warna[i],
       main = paste0("Kurva ", i),
       sub = paste0("μ = ", mu[i], "   σ = ", sigma[i]),
       xlab = "Nilai X",
       ylab = "Kepadatan",
       cex.main = 1.2,
       cex.lab = 1)
}

# Mengembalikan tampilan R ke normal
par(mfrow = c(1, 1))

# =========================================================
# SIMULASI DISTRIBUSI KONTINU
# =========================================================

# Membuat 9 grafik dalam satu tampilan
par(mfrow = c(3, 3),
    mar = c(4, 4, 3, 2))

# =========================================================
# 1. DISTRIBUSI t
# =========================================================

x <- seq(-5, 5, length.out = 1000)
y <- dt(x, df = 5)

plot(x, y,
     type = "l",
     lwd = 3,
     col = "blue",
     main = "Distribusi t",
     xlab = "X",
     ylab = "Kepadatan")

# =========================================================
# 2. DISTRIBUSI F
# =========================================================

x <- seq(0, 6, length.out = 1000)
y <- df(x, df1 = 5, df2 = 10)

plot(x, y,
     type = "l",
     lwd = 3,
     col = "red",
     main = "Distribusi F",
     xlab = "X",
     ylab = "Kepadatan")

# =========================================================
# 3. DISTRIBUSI CHI-SQUARE
# =========================================================

x <- seq(0, 20, length.out = 1000)
y <- dchisq(x, df = 5)

plot(x, y,
     type = "l",
     lwd = 3,
     col = "green",
     main = "Distribusi Chi-Square",
     xlab = "X",
     ylab = "Kepadatan")

# =========================================================
# 4. DISTRIBUSI GAMMA
# =========================================================

x <- seq(0, 20, length.out = 1000)
y <- dgamma(x, shape = 2, rate = 0.5)

plot(x, y,
     type = "l",
     lwd = 3,
     col = "purple",
     main = "Distribusi Gamma",
     xlab = "X",
     ylab = "Kepadatan")

# =========================================================
# 5. DISTRIBUSI WEIBULL
# =========================================================

x <- seq(0, 5, length.out = 1000)
y <- dweibull(x, shape = 2, scale = 1)

plot(x, y,
     type = "l",
     lwd = 3,
     col = "orange",
     main = "Distribusi Weibull",
     xlab = "X",
     ylab = "Kepadatan")

# =========================================================
# 6. DISTRIBUSI EKSPONENSIAL
# =========================================================

x <- seq(0, 10, length.out = 1000)
y <- dexp(x, rate = 0.5)

plot(x, y,
     type = "l",
     lwd = 3,
     col = "brown",
     main = "Distribusi Eksponensial",
     xlab = "X",
     ylab = "Kepadatan")

# =========================================================
# 7. DISTRIBUSI PARETO
# =========================================================

# Parameter Pareto
alpha <- 3
xm <- 1

x <- seq(xm, 10, length.out = 1000)

# Fungsi kepadatan Pareto
y <- alpha * xm^alpha / x^(alpha + 1)

plot(x, y,
     type = "l",
     lwd = 3,
     col = "darkgreen",
     main = "Distribusi Pareto",
     xlab = "X",
     ylab = "Kepadatan")

# =========================================================
# 8. DISTRIBUSI UNIFORM
# =========================================================

x <- seq(0, 10, length.out = 1000)

# d-uniform
y <- dunif(x, min = 0, max = 10)

plot(x, y,
     type = "l",
     lwd = 3,
     col = "darkcyan",
     main = "Distribusi Uniform",
     xlab = "X",
     ylab = "Kepadatan")

# =========================================================
# 9. DISTRIBUSI BETA
# =========================================================

x <- seq(0, 1, length.out = 1000)
y <- dbeta(x, shape1 = 2, shape2 = 5)

plot(x, y,
     type = "l",
     lwd = 3,
     col = "magenta",
     main = "Distribusi Beta",
     xlab = "X",
     ylab = "Kepadatan")

# Mengembalikan layout grafik
par(mfrow = c(1, 1))
# Distribusi t
x <- seq(-5, 5, length.out = 1000)
y <- dt(x, df = 5)

plot(x, y,
     type = "l",
     lwd = 3,
     col = "blue",
     main = "Distribusi t",
     xlab = "Nilai X",
     ylab = "Kepadatan")