SOAL 1
# =================
# Memuat Dataset
# ================
df <- data.frame(
Mahasiswa=c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20),
Waktu_dalam_menit=c(18,22,25,21,19,24,20,23,26,22,21,27,19,23,24,25,20,22,21,23)
)
df
## Mahasiswa Waktu_dalam_menit
## 1 1 18
## 2 2 22
## 3 3 25
## 4 4 21
## 5 5 19
## 6 6 24
## 7 7 20
## 8 8 23
## 9 9 26
## 10 10 22
## 11 11 21
## 12 12 27
## 13 13 19
## 14 14 23
## 15 15 24
## 16 16 25
## 17 17 20
## 18 18 22
## 19 19 21
## 20 20 23
# =============================
# Mengurutkan data dari terkecil
# ==============================
a <- df$Waktu_dalam_menit
x_sorted <- sort(a)
x_sorted
## [1] 18 19 19 20 20 21 21 21 22 22 22 23 23 23 24 24 25 25 26 27
# ===============================
# Hitung ECDF
# ===============================
n <- length(a) #panjang data
i <- 1:n
S_x <- i / n # S(x_i)
S_prev <- (i - 1) / n # S(x_{i-1})
head(data.frame(i, x_sorted, S_x, S_prev))
## i x_sorted S_x S_prev
## 1 1 18 0.05 0.00
## 2 2 19 0.10 0.05
## 3 3 19 0.15 0.10
## 4 4 20 0.20 0.15
## 5 5 20 0.25 0.20
## 6 6 21 0.30 0.25
# ===============================
# Hitung distribsi teoritis normal
# ================================
mu_hat <- mean(x_sorted)
sigma_hat <- sd(x_sorted)
cat("Rata-rata adalah: ", mu_hat,"\n")
## Rata-rata adalah: 22.25
cat("Standar Deviasi adalah: ", sigma_hat, "\n")
## Standar Deviasi adalah: 2.446802
z_i <- (x_sorted - mu_hat) / sigma_hat
head(z_i)
## [1] -1.7369608 -1.3282642 -1.3282642 -0.9195675 -0.9195675 -0.5108708
# ==============================
# Hitung CDF Teoritis F0(x)
# ==============================
F0_x <- pnorm(x_sorted, mean = mu_hat, sd = sigma_hat)
head(F0_x)
## [1] 0.04119704 0.09204543 0.09204543 0.17889941 0.17889941 0.30472075
# =================
# Hitung 2 selisih
# =================
diff1 <- abs(S_x - F0_x) # |S(x_i) - F0(x_i)|
diff2 <- abs(S_prev - F0_x) # |S(x_{i-1}) - F0(x_i)|
head(data.frame(
i = i,
x_i = x_sorted,
S_x = S_x,
S_prev = S_prev,
F0_x = F0_x,
diff1 = diff1,
diff2 = diff2
))
## i x_i S_x S_prev F0_x diff1 diff2
## 1 1 18 0.05 0.00 0.04119704 0.008802959 0.041197041
## 2 2 19 0.10 0.05 0.09204543 0.007954575 0.042045425
## 3 3 19 0.15 0.10 0.09204543 0.057954575 0.007954575
## 4 4 20 0.20 0.15 0.17889941 0.021100593 0.028899407
## 5 5 20 0.25 0.20 0.17889941 0.071100593 0.021100593
## 6 6 21 0.30 0.25 0.30472075 0.004720752 0.054720752
# ===============================================
# Ambil Nilai maksimum sebagai nilai statistik D
# ===============================================
D_statistik <- max(c(diff1, diff2))
cat("Nilai D Statistik: ", D_statistik, "\n")
## Nilai D Statistik: 0.09527925
# =============================================
# Membandingkan dengan nilai tabel kritis
# =============================================
alpha <- 0.05
D_crit <- 1.36 / sqrt(n)
cat("Nilai D Kritis: ", D_crit, "\n")
## Nilai D Kritis: 0.3041052
# =====================================
# Membuat Keputusan
# =====================================
D_statistik <= D_crit #TRUE: gagal tolak H0; FALSE: tolak H0
## [1] TRUE
# ==============================
# Interpretasi UJI K-S
# =============================
if (D_statistik > D_crit) {
cat("Keputusan (dengan nilai kritis): Tolak H0,
data tidak mengikuti distribusi normal N(mu_hat, sigma_hat).\n")
} else {
cat("Keputusan (dengan nilai kritis): Gagal menolak H0, tidak ada bukti kuat bahwa data
menyimpang dari normal N(mu_hat, sigma_hat).\n")
}
## Keputusan (dengan nilai kritis): Gagal menolak H0, tidak ada bukti kuat bahwa data
## menyimpang dari normal N(mu_hat, sigma_hat).
SOAL 2
library(tidyr)
library(ggplot2)
# ===========================
# Memuat Dataset
# ===========================
df <- data.frame(
Spesimen = c(1,2,3,4,5,6,7,8),
Pabrik_A = c(52,55,53,54,56,55,53,54),
Pabrik_B = c(49,50,51,48,52,50,49,51),
Pabrik_C = c(47,46,45,44,46,45,47,44)
)
df
## Spesimen Pabrik_A Pabrik_B Pabrik_C
## 1 1 52 49 47
## 2 2 55 50 46
## 3 3 53 51 45
## 4 4 54 48 44
## 5 5 56 52 46
## 6 6 55 50 45
## 7 7 53 49 47
## 8 8 54 51 44
# =======================
# Mengubah ke format long
# ======================
df_long <- df %>%
pivot_longer(
cols = c(Pabrik_A, Pabrik_B, Pabrik_C),
names_to = "Pabrik",
values_to = "Nilai"
)
df_long
## # A tibble: 24 × 3
## Spesimen Pabrik Nilai
## <dbl> <chr> <dbl>
## 1 1 Pabrik_A 52
## 2 1 Pabrik_B 49
## 3 1 Pabrik_C 47
## 4 2 Pabrik_A 55
## 5 2 Pabrik_B 50
## 6 2 Pabrik_C 46
## 7 3 Pabrik_A 53
## 8 3 Pabrik_B 51
## 9 3 Pabrik_C 45
## 10 4 Pabrik_A 54
## # ℹ 14 more rows
# ==================================
# Visualisasi Boxplot per pabrik
# ==================================
ggplot(df_long, aes(x = Pabrik, y = Nilai, fill = Pabrik)) +
geom_boxplot() +
labs(
title = "Boxplot Nilai per Pabrik",
x = "Pabrik",
y = "Nilai"
) +
theme_minimal()

# ==========================================
# Melakukan UJI BARLET dengan alpha = 0.05
# =========================================
bartlet.test <- bartlett.test(Nilai ~ Pabrik, data = df_long)
hasil_bartlett <- bartlett.test(Nilai ~ Pabrik, data = df_long)
cat("=== Uji Bartlett ===\n")
## === Uji Bartlett ===
cat("Statistik Uji : ", hasil_bartlett$statistic, "\n")
## Statistik Uji : 0.07139142
cat("Derajat bebas : ", hasil_bartlett$parameter, "\n")
## Derajat bebas : 2
cat("p-value : ", hasil_bartlett$p.value, "\n")
## p-value : 0.9649339
SOAL 3
library(BSDA)
## Warning: package 'BSDA' was built under R version 4.5.2
## Loading required package: lattice
##
## Attaching package: 'BSDA'
## The following object is masked from 'package:datasets':
##
## Orange
# =================================
# Memuat dataset
# =================================
df <- data.frame(
Karyawan = c(1,2,3,4,5,6,7,8,9,10,11,12),
Kantor = c(8,7,9,4,7,5,11,8,9,8,11,6),
WFH = c(10,9,8,6,7,10,12,7,10,9,12,7)
)
df
## Karyawan Kantor WFH
## 1 1 8 10
## 2 2 7 9
## 3 3 9 8
## 4 4 4 6
## 5 5 7 7
## 6 6 5 10
## 7 7 11 12
## 8 8 8 7
## 9 9 9 10
## 10 10 8 9
## 11 11 11 12
## 12 12 6 7
# ============================================
# Menghitung selisih produktivitas berpasangan
# ============================================
df$Selisih <- df$WFH-df$Kantor
df
## Karyawan Kantor WFH Selisih
## 1 1 8 10 2
## 2 2 7 9 2
## 3 3 9 8 -1
## 4 4 4 6 2
## 5 5 7 7 0
## 6 6 5 10 5
## 7 7 11 12 1
## 8 8 8 7 -1
## 9 9 9 10 1
## 10 10 8 9 1
## 11 11 11 12 1
## 12 12 6 7 1
# =======================================
# Melakukan Uji Tanda (Sign Test)
# =======================================
sign_result <- SIGN.test(x = df$WFH, y = df$Kantor, alternative = "two.sided")
sign_result
##
## Dependent-samples Sign-Test
##
## data: df$WFH and df$Kantor
## S = 9, p-value = 0.06543
## alternative hypothesis: true median difference is not equal to 0
## 95 percent confidence interval:
## 0.1063636 2.0000000
## sample estimates:
## median of x-y
## 1
##
## Achieved and Interpolated Confidence Intervals:
##
## Conf.Level L.E.pt U.E.pt
## Lower Achieved CI 0.8540 1.0000 2
## Interpolated CI 0.9500 0.1064 2
## Upper Achieved CI 0.9614 0.0000 2
# =======================================
# Melakukan Uji Wilcoxon Signed-rank
# =======================================
wilcox_test <- wilcox.test(df$WFH, df$Kantor,
alternative = "greater",
paired = TRUE,
exact = FALSE)
wilcox_test
##
## Wilcoxon signed rank test with continuity correction
##
## data: df$WFH and df$Kantor
## V = 58, p-value = 0.01235
## alternative hypothesis: true location shift is greater than 0
# =================================
# Membandingkan kedua hasil
# =================================
cat("\n--- HASIL PERBANDINGAN ---\n")
##
## --- HASIL PERBANDINGAN ---
cat("Uji Tanda (Sign Test): p-value =", sign_result$p.value, "\n")
## Uji Tanda (Sign Test): p-value = 0.06542969
cat("Wilcoxon Signed-Rank Test: p-value =", wilcox_test$p.value, "\n")
## Wilcoxon Signed-Rank Test: p-value = 0.01235484
if(sign_result$p.value < 0.05){
cat("→ Sign Test MENOLAK H0: Ada peningkatan produktivitas.\n")
} else {
cat("→ Sign Test GAGAL menolak H0: Tidak terbukti ada peningkatan.\n")
}
## → Sign Test GAGAL menolak H0: Tidak terbukti ada peningkatan.
if(wilcox_test$p.value < 0.05){
cat("→ Wilcoxon MENOLAK H0: Ada peningkatan produktivitas.\n")
} else {
cat("→ Wilcoxon GAGAL menolak H0: Tidak terbukti ada peningkatan.\n")
}
## → Wilcoxon MENOLAK H0: Ada peningkatan produktivitas.