# Uji Normalitas Kolmogorov-Smirnov
# Data nilai ujian matematika kelas 6 SD (setelah perubahan)
nama <- c("A","B","C","D","F","G","H","I","J","K","L","M","N","O","P","Q")
nilai <- c(60, 50, 50, 60, 60, 60, 70, 70, 70, 70, 60, 60, 80, 90, 90, 80)
data <- data.frame(Nama = nama, Nilai = nilai)
print(data)
## Nama Nilai
## 1 A 60
## 2 B 50
## 3 C 50
## 4 D 60
## 5 F 60
## 6 G 60
## 7 H 70
## 8 I 70
## 9 J 70
## 10 K 70
## 11 L 60
## 12 M 60
## 13 N 80
## 14 O 90
## 15 P 90
## 16 Q 80
n <- length(nilai)
rata2 <- mean(nilai)
sb <- sd(nilai)
cat("n =", n, "| rata-rata =", rata2, "| simpangan baku =", round(sb, 3), "\n")
## n = 16 | rata-rata = 67.5 | simpangan baku = 12.383
# Perhitungan manual
x <- sort(unique(nilai))
f <- as.vector(table(nilai))
Fn <- cumsum(f) / n # Fn(x)
Fn_ <- c(0, head(Fn, -1)) # Fn(x-) (nilai sebelumnya)
Z <- (x - rata2) / sb
Fx <- pnorm(Z) # F(x) = Phi(Z)
sel1 <- abs(Fn - Fx)
sel2 <- abs(Fn_ - Fx)
tabel <- data.frame(x, f, Fn, Fn_, Z = round(Z, 4), Fx = round(Fx, 4),
sel1 = round(sel1, 4), sel2 = round(sel2, 4))
print(tabel)
## x f Fn Fn_ Z Fx sel1 sel2
## 1 50 2 0.125 0.000 -1.4133 0.0788 0.0462 0.0788
## 2 60 6 0.500 0.125 -0.6057 0.2724 0.2276 0.1474
## 3 70 4 0.750 0.500 0.2019 0.5800 0.1700 0.0800
## 4 80 2 0.875 0.750 1.0095 0.8436 0.0314 0.0936
## 5 90 2 1.000 0.875 1.8170 0.9654 0.0346 0.0904
D <- max(sel1, sel2)
cat("D hitung =", round(D, 4), "\n")
## D hitung = 0.2276
# Nilai kritis (n = 16, alpha = 5%)
D_tabel <- 0.327
cat("D tabel =", D_tabel, "\n")
## D tabel = 0.327
# Uji dengan fungsi bawaan R
hasil <- suppressWarnings(ks.test(nilai, "pnorm", mean = rata2, sd = sb))
print(hasil)
##
## Asymptotic one-sample Kolmogorov-Smirnov test
##
## data: nilai
## D = 0.22764, p-value = 0.3783
## alternative hypothesis: two-sided
cat("p-value =", round(hasil$p.value, 4), "\n")
## p-value = 0.3783
# Keputusan
alpha <- 0.05
if (D < D_tabel && hasil$p.value > alpha) {
cat("D < nilai kritis dan p-value > alpha -> H0 gagal ditolak: data berdistribusi normal\n")
} else {
cat("D > nilai kritis atau p-value < alpha -> H0 ditolak: data tidak berdistribusi normal\n")
}
## D < nilai kritis dan p-value > alpha -> H0 gagal ditolak: data berdistribusi normal