Kasus 1

# Data
lama <- c(50, 55, 48, 60, 52, 58, 45, 53, 56, 59)
baru <- c(48, 50, 47, 55, 53, 54, 40, 52, 56, 56)
no_mesin <- 1:10

# Plot
library(ggplot2)
library(tidyr)
df <- data.frame(Mesin = factor(no_mesin),
                 Lama = lama,
                 Baru = baru) %>%
      pivot_longer(-Mesin, names_to = "Pelumas", values_to = "Konsumsi")

ggplot(df, aes(x = Mesin, y = Konsumsi, fill = Pelumas)) +
  geom_bar(stat = "identity", position = "dodge") +
  labs(title = "Perbandingan Konsumsi Energi per Mesin",
       y = "kWh/ton", x = "Mesin") +
  theme_minimal()

library(tidyr)
library(ggplot2)

# Data
df_paired <- data.frame(
  Mesin = 1:10,
  Lama = lama,
  Baru = baru
)

# Ubah ke format long
df_long <- pivot_longer(df_paired, 
                        cols = c(Lama, Baru), 
                        names_to = "Pelumas", 
                        values_to = "Konsumsi")

# Atur urutan faktor agar Lama di kiri, Baru di kanan
df_long$Pelumas <- factor(df_long$Pelumas, levels = c("Lama", "Baru"))

# Plot
ggplot(df_long, aes(x = Pelumas, y = Konsumsi, group = Mesin)) +
  geom_line(color = "gray") +
  geom_point(size = 3, aes(color = Pelumas)) +
  labs(title = "Perubahan Konsumsi Energi per Mesin",
       x = "Pelumas", y = "Konsumsi Energi (kWh/ton)") +
  theme_minimal()

dfree <- 9
x_vals <- seq(-4, 4, 0.01)
t_dist <- dt(x_vals, df = dfree)

plot(x_vals, t_dist, type = "l", lwd = 2, col = "black",
     main = "Distribusi t dengan Area Kritis",
     ylab = "Density", xlab = "t")

# Area kritis
crit_val <- qt(0.975, dfree)
abline(v = c(-crit_val, crit_val), col = "red", lty = 2)
abline(v = 3.56, col = "blue", lwd = 2)

legend("topright", legend = c("Batas Kritis", "t Hitung"),
       col = c("red", "blue"), lty = c(2,1), lwd = 2)

PDF Kasus dan Soal: https://drive.google.com/drive/folders/1f4QWCu7xCEEKa8M7bwJR0gxbi9Nhcuyt?usp=drive_link


Kasus 2

library(ggplot2)

# Data
x1 <- c(4.0, 5.5, 4.2, 5.3, 4.5, 5.0, 4.6, 5.1)  # BioSubur
x2 <- c(5.2, 4.5, 5.5, 4.8, 5.0, 5.3, 4.6, 5.4, 4.7, 5.0)  # NutriPrima

df <- data.frame(
  Pupuk = factor(c(rep("BioSubur", length(x1)), rep("NutriPrima", length(x2))),
                 levels = c("BioSubur", "NutriPrima")),
  Panen = c(x1, x2)
)

ggplot(df, aes(x = Pupuk, y = Panen, fill = Pupuk)) +
  geom_boxplot(alpha = 0.6, outlier.shape = NA) +
  geom_jitter(width = 0.15, size = 2, alpha = 0.8) +
  labs(title = "Sebaran Hasil Panen Tomat per Pupuk",
       x = "Jenis Pupuk", y = "Hasil Panen (kg/petak)") +
  theme_minimal() +
  theme(legend.position = "none")

suppressPackageStartupMessages(library(dplyr))

# Hitung rata-rata dan SD/SEM
summary_df <- df %>%
  group_by(Pupuk) %>%
  summarise(
    Mean = mean(Panen),
    SD = sd(Panen),
    N = n(),
    SEM = SD / sqrt(N)
  )

# Plot
ggplot(summary_df, aes(x = Pupuk, y = Mean, fill = Pupuk)) +
  geom_bar(stat = "identity", width = 0.6, alpha = 0.7) +
  geom_errorbar(aes(ymin = Mean - SEM, ymax = Mean + SEM), width = 0.2) +
  labs(title = "Rata-rata Hasil Panen dengan Error Bar (SEM)",
       x = "Jenis Pupuk", y = "Rata-rata Panen (kg/petak)") +
  theme_minimal() +
  theme(legend.position = "none")

PDF Kasus dan Soal: https://drive.google.com/drive/folders/1n2MZMTy9K-2FqkzucCEkohJnXrk1lmuC?usp=drive_link


Kasus 3

library(ggplot2)

df <- 8
t_hit <- 1.333
t_crit <- qt(0.95, df)  # alpha=0.05 satu sisi kanan

# buat data untuk kurva distribusi t
x <- seq(-4, 4, length.out = 1000)
y <- dt(x, df)

data_t <- data.frame(x = x, y = y)

ggplot(data_t, aes(x, y)) +
  geom_line(linewidth = 1, color = "blue") +
  geom_area(data = subset(data_t, x >= t_crit), aes(x, y), fill = "red", alpha = 0.3) +
  geom_vline(xintercept = t_crit, color = "red", linetype = "dashed", linewidth = 1) +
  geom_vline(xintercept = t_hit, color = "darkgreen", linetype = "dashed", linewidth = 1) +
  annotate("text", x = t_crit + 0.4, y = 0.2, label = "t kritis", color = "red", size = 5) +
  annotate("text", x = t_hit, y = 0.15, label = "t hitung", color = "darkgreen", size = 5) +
  labs(title = "Distribusi t (df=8) dan Posisi Statistik Uji",
       subtitle = "Uji satu arah kanan, alpha=0.05",
       x = "t value",
       y = "Density") +
  theme_minimal()

PDF Kasus dan Soal: https://drive.google.com/drive/folders/1uTmRr3oY-IQcTtD_BSH4fnuQaSiWx7Jz?usp=drive_link


Kasus 4

library(ggplot2)
suppressPackageStartupMessages(library(gridExtra))

x <- c(35, 40, 48, 55, 60, 65, 70, 75, 82, 88, 95, 100)
df <- data.frame(skor = x)

# Histogram dan density bebas warning
p1 <- ggplot(df, aes(x = skor)) +
  geom_histogram(aes(y = after_stat(density)), bins = 6,
                 fill = "lightblue", color = "black", alpha = 0.7) +
  geom_density(color = "red", linewidth = 1) +
  labs(title = "Distribusi Skor Sikap Responden",
       x = "Skor Sikap", y = "Density") +
  theme_minimal()

# Boxplot
p2 <- ggplot(df, aes(y = skor)) +
  geom_boxplot(fill = "lightgreen") +
  labs(title = "Boxplot Skor Sikap Responden",
       y = "Skor Sikap") +
  theme_minimal()

# Chi-square plot
df_chisq <- data.frame(x = seq(0, 40, length.out = 1000))
df_chisq$y <- dchisq(df_chisq$x, df = 11)

p3 <- ggplot(df_chisq, aes(x = x, y = y)) +
  geom_line(color = "blue", linewidth = 1) +
  geom_vline(xintercept = 31.49, color = "red", linetype = "dashed", linewidth = 1) +
  geom_vline(xintercept = 17.28, color = "darkgreen", linetype = "dotted", linewidth = 1) +
  annotate("text", x = 31.5, y = 0.05, label = "Statistik Uji = 31.49", color = "red", hjust = 0) +
  annotate("text", x = 17.5, y = 0.07, label = "Nilai Kritis = 17.28", color = "darkgreen", hjust = 0) +
  labs(title = "Distribusi Chi-square (df = 11)",
       x = expression(chi^2), y = "Density") +
  theme_minimal()

# Tampilkan semua grafik
grid.arrange(p1, p2, p3, nrow = 3)

PDF Kasus dan Soal: https://drive.google.com/drive/folders/1gmz9yRq-J1x65MOqN_v7nblagKFoJRQ9?usp=drive_link


Kasus 5

# Data diketahui
mu0 <- 40        # nilai hipotesis nol
sigma <- 3       # simpangan baku populasi
n <- 36          # ukuran sampel
x_bar <- 41.2    # rata-rata sampel
alpha <- 0.05

# Nilai kritis untuk uji dua arah
z_krit <- qnorm(1 - alpha/2)

# Rentang nilai x
x <- seq(mu0 - 4*sigma, mu0 + 4*sigma, length.out = 1000)
se <- sigma / sqrt(n)
y <- dnorm(x, mean = mu0, sd = se)

# Plot distribusi normal
plot(x, y, type = "l", lwd = 2, col = "black",
     ylab = "Kerapatan", xlab = "Kekuatan Tekan (MPa)",
     main = "Uji Hipotesis Dua Arah – Distribusi Normal")

# Daerah penolakan
x_reject_left <- x[x <= mu0 - z_krit * se]
y_reject_left <- y[x <= mu0 - z_krit * se]
polygon(c(x_reject_left, rev(x_reject_left)), 
        c(y_reject_left, rep(0, length(y_reject_left))), 
        col = rgb(1, 0, 0, 0.3), border = NA)

x_reject_right <- x[x >= mu0 + z_krit * se]
y_reject_right <- y[x >= mu0 + z_krit * se]
polygon(c(x_reject_right, rev(x_reject_right)), 
        c(y_reject_right, rep(0, length(y_reject_right))), 
        col = rgb(1, 0, 0, 0.3), border = NA)

# Garis rata-rata sampel
abline(v = x_bar, col = "blue", lwd = 2, lty = 2)

# Tambahkan legenda
legend("topright", legend = c("Distribusi Normal", "Daerah Tolak Hâ‚€", "Rata-rata Sampel"),
       col = c("black", rgb(1, 0, 0, 0.3), "blue"), lwd = c(2, 10, 2), lty = c(1, NA, 2), pch = c(NA, 15, NA))

PDF Kasus dan Soal: https://drive.google.com/drive/folders/1Y4hWlU1nDdI1S_KOOy-JTRakMsj65upo?usp=drive_link


Kasus 6

# Data diketahui
n <- 300
x <- 87
phat <- x / n      # proporsi sampel
p0 <- 0.35         # proporsi hipotesis nol
alpha <- 0.10

# Statistik uji
z <- (phat - p0) / sqrt(p0 * (1 - p0) / n)
z_krit <- qnorm(alpha)  # karena uji satu sisi kiri

# Rentang untuk x-axis (z-score)
z_range <- seq(-4, 4, length.out = 1000)
y <- dnorm(z_range)

# Plot distribusi normal standar
plot(z_range, y, type = "l", lwd = 2, col = "black",
     xlab = "Z", ylab = "Kerapatan",
     main = "Uji Proporsi – Uji Satu Sisi Kiri")

# Daerah tolak (area merah)
x_reject <- z_range[z_range <= z_krit]
y_reject <- y[z_range <= z_krit]
polygon(c(x_reject, rev(x_reject)), 
        c(y_reject, rep(0, length(y_reject))), 
        col = rgb(1, 0, 0, 0.3), border = NA)

# Garis z hitung
abline(v = z, col = "blue", lwd = 2, lty = 2)

# Legenda
legend("topright", legend = c("Distribusi Normal", "Daerah Tolak Hâ‚€", "Z Hitung"),
       col = c("black", rgb(1, 0, 0, 0.3), "blue"),
       lwd = c(2, 10, 2), lty = c(1, NA, 2), pch = c(NA, 15, NA))

PDF Kasus dan Soal: https://drive.google.com/drive/folders/1nrHDURogNR-4YyorrBGW4fW8LAjHLetD?usp=drive_link


Kasus 7

# Diketahui
xbar1 <- 75.004
xbar2 <- 75.015
sigma1_sq <- 0.0025
sigma2_sq <- 0.0036
n1 <- 10
n2 <- 12
alpha <- 0.05

# Statistik uji
z <- (xbar1 - xbar2) / sqrt(sigma1_sq / n1 + sigma2_sq / n2)

# Nilai kritis
z_crit <- qnorm(1 - alpha/2)

# Rentang z
z_vals <- seq(-4, 4, length.out = 1000)
density_vals <- dnorm(z_vals)

# Plot distribusi normal standar
plot(z_vals, density_vals, type = "l", lwd = 2, col = "black",
     xlab = "Z", ylab = "Kerapatan",
     main = "Uji Z Dua Sampel – Uji Dua Arah")

# Daerah tolak H0 di dua sisi
x_left <- z_vals[z_vals <= -z_crit]
y_left <- density_vals[z_vals <= -z_crit]
polygon(c(x_left, rev(x_left)), c(y_left, rep(0, length(y_left))),
        col = rgb(1, 0, 0, 0.3), border = NA)

x_right <- z_vals[z_vals >= z_crit]
y_right <- density_vals[z_vals >= z_crit]
polygon(c(x_right, rev(x_right)), c(y_right, rep(0, length(y_right))),
        col = rgb(1, 0, 0, 0.3), border = NA)

# Garis z hitung
abline(v = z, col = "blue", lwd = 2, lty = 2)

# Legenda
legend("topright", legend = c("Distribusi Normal", "Daerah Tolak Hâ‚€", "Z Hitung"),
       col = c("black", rgb(1, 0, 0, 0.3), "blue"),
       lwd = c(2, 10, 2), lty = c(1, NA, 2), pch = c(NA, 15, NA))

PDF Kasus dan Soal: https://drive.google.com/drive/folders/1pif5C8g0iXQnJXGaqzI3KWydgWz8aRWQ?usp=drive_link


Kasus 8

# Diketahui
n1 <- 400; x1 <- 48; p1_hat <- x1 / n1
n2 <- 500; x2 <- 45; p2_hat <- x2 / n2
alpha <- 0.01

# Proporsi gabungan
p_pool <- (x1 + x2) / (n1 + n2)

# Z hitung
z <- (p1_hat - p2_hat) / sqrt(p_pool * (1 - p_pool) * (1/n1 + 1/n2))

# Z kritis
z_crit <- qnorm(1 - alpha)

# Plot distribusi normal standar
z_vals <- seq(-4, 4, length.out = 1000)
density_vals <- dnorm(z_vals)

plot(z_vals, density_vals, type = "l", lwd = 2, col = "black",
     xlab = "Z", ylab = "Kerapatan",
     main = "Uji Z Dua Proporsi – Satu Sisi Kanan")

# Daerah tolak H0
x_right <- z_vals[z_vals >= z_crit]
y_right <- density_vals[z_vals >= z_crit]
polygon(c(x_right, rev(x_right)), c(y_right, rep(0, length(y_right))),
        col = rgb(1, 0, 0, 0.3), border = NA)

# Garis z hitung
abline(v = z, col = "blue", lwd = 2, lty = 2)

# Legenda
legend("topright", legend = c("Distribusi Normal", "Daerah Tolak Hâ‚€", "Z Hitung"),
       col = c("black", rgb(1, 0, 0, 0.3), "blue"),
       lwd = c(2, 10, 2), lty = c(1, NA, 2), pch = c(NA, 15, NA))

PDF Kasus dan Soal: https://drive.google.com/drive/folders/1Zv6OC16GwpkI8bZkpTPigfQSijKTE9L_?usp=drive_link


Kasus 9

# Data
x1 <- c(2650, 2750, 2500, 2800, 2670, 2730, 2530, 2770, 2700)
x2 <- c(2600, 2700, 2450, 2730, 2530, 2670, 2550)

n1 <- length(x1)
n2 <- length(x2)
mean1 <- mean(x1)
mean2 <- mean(x2)
var1 <- var(x1)
var2 <- var(x2)

# Pooled variance
sp2 <- ((n1 - 1)*var1 + (n2 - 1)*var2) / (n1 + n2 - 2)

# t hitung
t_hitung <- (mean1 - mean2) / sqrt(sp2 * (1/n1 + 1/n2))

# Derajat bebas dan nilai kritis
df <- n1 + n2 - 2
alpha <- 0.01
t_kritis <- qt(1 - alpha, df)

# Plot distribusi t
t_vals <- seq(-4, 4, length.out = 1000)
density_vals <- dt(t_vals, df)

plot(t_vals, density_vals, type = "l", lwd = 2, col = "black",
     xlab = "t", ylab = "Kerapatan",
     main = "Uji t Dua Sampel – Satu Sisi Kanan")

# Daerah tolak H0
x_reject <- t_vals[t_vals >= t_kritis]
y_reject <- dt(x_reject, df)
polygon(c(x_reject, rev(x_reject)), c(y_reject, rep(0, length(y_reject))),
        col = rgb(1, 0, 0, 0.3), border = NA)

# Garis t hitung
abline(v = t_hitung, col = "blue", lwd = 2, lty = 2)

# Legenda
legend("topright", legend = c("Distribusi t", "Daerah Tolak Hâ‚€", "t Hitung"),
       col = c("black", rgb(1, 0, 0, 0.3), "blue"),
       lwd = c(2, 10, 2), lty = c(1, NA, 2), pch = c(NA, 15, NA))

PDF Kasus dan Soal: https://drive.google.com/drive/folders/1cIfRewuM7WKi2X4QWFy_O1t1Hm2Qyf5M?usp=drive_link


Kasus 10

# Parameter
mu_0 <- 1100       # Rata-rata populasi (hipotesis nol)
x_bar <- 1091      # Rata-rata sampel
sigma <- 25        # Standar deviasi populasi
n <- 40            # Ukuran sampel
alpha <- 0.05      # Tingkat signifikansi

# Statistik uji z
z_hit <- (x_bar - mu_0) / (sigma / sqrt(n))
z_kritis <- qnorm(alpha, lower.tail = TRUE)

# Vektor untuk distribusi normal standar
z_vals <- seq(-4, 4, length.out = 1000)
densitas <- dnorm(z_vals)

# Plot
plot(z_vals, densitas, type = "l", lwd = 2, col = "black",
     ylab = "Kerapatan", xlab = "z",
     main = "Uji Z Satu Sisi Kiri – Efektivitas Sistem Pendinginan Baru")

# Daerah penolakan H0 (warna merah)
z_reject <- z_vals[z_vals <= z_kritis]
polygon(c(z_reject, rev(z_reject)),
        c(dnorm(z_reject), rep(0, length(z_reject))),
        col = rgb(1, 0, 0, 0.3), border = NA)

# Garis vertikal untuk z_hitung
abline(v = z_hit, col = "blue", lwd = 2, lty = 2)

# Legenda
legend("topright", legend = c("Distribusi Z", "Daerah Tolak Hâ‚€", "z Hitung"),
       col = c("black", rgb(1, 0, 0, 0.3), "blue"),
       lwd = c(2, 10, 2), lty = c(1, NA, 2), pch = c(NA, 15, NA))

PDF Kasus dan Soal: https://drive.google.com/drive/folders/1sok1CFqTHseCNA0g3ygLSQ22BMYwxbUl?usp=drive_link


Kasus 11

# Parameter dari data
s1_sq <- 0.0002182  # Ragam Mesin M1 (lebih besar)
s2_sq <- 0.0000622  # Ragam Mesin M2 (lebih kecil)
f_stat <- s1_sq / s2_sq

# Derajat bebas
df1 <- 13 - 1  # n1 - 1
df2 <- 10 - 1  # n2 - 1
alpha <- 0.10

# Nilai kritis F (satu sisi kanan)
f_critical <- qf(1 - alpha, df1, df2)

# Plot distribusi F
f_vals <- seq(0, 6, length.out = 1000)
densitas <- df(f_vals, df1, df2)

plot(f_vals, densitas, type = "l", lwd = 2, col = "black",
     main = "Uji F Satu Sisi Kanan – Perbandingan Ragam Mesin M1 dan M2",
     xlab = "Nilai F", ylab = "Kerapatan")

# Area penolakan (daerah kritis)
polygon(c(f_vals[f_vals > f_critical], rev(f_vals[f_vals > f_critical])),
        c(densitas[f_vals > f_critical], rep(0, sum(f_vals > f_critical))),
        col = rgb(1, 0, 0, 0.3), border = NA)

# Garis vertikal untuk F hitung
abline(v = f_stat, col = "blue", lwd = 2, lty = 2)

# Garis vertikal untuk F kritis
abline(v = f_critical, col = "darkred", lwd = 2, lty = 3)

# Legenda
legend("topright", legend = c("Distribusi F", "Daerah Tolak Hâ‚€", "F Hitung", "F Kritis"),
       col = c("black", rgb(1, 0, 0, 0.3), "blue", "darkred"),
       lwd = c(2, 10, 2, 2), lty = c(1, NA, 2, 3), pch = c(NA, 15, NA, NA))

PDF Kasus dan Soal: https://drive.google.com/drive/folders/1jqFwgthn8yQsWr3HmNQqmAnalNhIQ3AF?usp=drive_link


Kasus 12

# Data skor per metode
metode <- factor(rep(c("A", "B", "C", "D"), times = c(5, 6, 7, 6)))

skor <- c(
  75, 80, 72, 78, 70,         # Metode A
  82, 88, 85, 90, 80, 86,     # Metode B
  88, 92, 95, 85, 90, 87, 93, # Metode C
  78, 82, 80, 75, 85, 77      # Metode D
)

# Buat data frame
data <- data.frame(
  Metode = metode,
  Skor = skor
)

# Analisis ANOVA
anova_model <- aov(Skor ~ Metode, data = data)
summary(anova_model)
##             Df Sum Sq Mean Sq F value  Pr(>F)    
## Metode       3  764.6  254.88   18.31 5.9e-06 ***
## Residuals   20  278.3   13.92                    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# Plot boxplot
boxplot(Skor ~ Metode,
        data = data,
        main = "Perbandingan Skor Proyek Akhir Berdasarkan Metode Pengajaran",
        xlab = "Metode Pengajaran",
        ylab = "Skor Proyek Akhir",
        col = c("lightblue", "lightgreen", "lightpink", "lightyellow"),
        border = "darkgray")

# Tambahkan garis rata-rata keseluruhan
abline(h = mean(skor), col = "red", lty = 2)
legend("topright", legend = "Rata-rata total", col = "red", lty = 2, bty = "n")

PDF Kasus dan Soal: https://drive.google.com/drive/folders/1orRBxAG1Eh3qzFCj4rb2UcaXngotkZfP?usp=drive_link