# --- Input data ---
perlakuan <- rep(c("T0", "T1", "T2", "T3"), each = 6)
nilai <- c(
  5.96, 9.77, 5.61, 7.58, 8.40, 7.78,        # T0
  14.02, 14.47, 13.98, 13.87, 14.12, 12.55,  # T1
  9.67, 9.67, 6.04, 6.44, 6.28, 5.96,        # T2
  4.85, 4.64, 5.61, 4.95, 5.24, 4.95         # T3
)

data <- data.frame(perlakuan, nilai)

# --- ANOVA ---
model <- aov(nilai ~ perlakuan, data = data)
anova_res <- anova(model)
print(anova_res)
## Analysis of Variance Table
## 
## Response: nilai
##           Df  Sum Sq Mean Sq F value    Pr(>F)    
## perlakuan  3 256.327  85.442  54.868 7.827e-10 ***
## Residuals 20  31.145   1.557                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# --- Uji Lanjut Duncan (DMRT) ---
library(agricolae)
duncan <- duncan.test(model, "perlakuan", group = TRUE)
print(duncan)
## $statistics
##    MSerror Df    Mean       CV
##   1.557241 20 8.43375 14.79644
## 
## $parameters
##     test    name.t ntr alpha
##   Duncan perlakuan   4  0.05
## 
## $duncan
##      Table CriticalRange
## 2 2.949998      1.502879
## 3 3.096506      1.577518
## 4 3.189616      1.624952
## 
## $means
##        nilai       std r        se   Min   Max     Q25   Q50     Q75
## T0  7.516667 1.5485305 6 0.5094508  5.61  9.77  6.3650  7.68  8.2450
## T1 13.835000 0.6621405 6 0.5094508 12.55 14.47 13.8975 14.00 14.0950
## T2  7.343333 1.8102891 6 0.5094508  5.96  9.67  6.1000  6.36  8.8625
## T3  5.040000 0.3397646 6 0.5094508  4.64  5.61  4.8750  4.95  5.1675
## 
## $comparison
## NULL
## 
## $groups
##        nilai groups
## T1 13.835000      a
## T0  7.516667      b
## T2  7.343333      b
## T3  5.040000      c
## 
## attr(,"class")
## [1] "group"
# --- Hitung FK (F-Korelasi) & KK (Koefisien Keragaman) ---
JK_perlakuan <- anova_res["perlakuan", "Sum Sq"]
JK_galat <- anova_res["Residuals", "Sum Sq"]
FK <- JK_perlakuan / JK_galat

mean_val <- mean(data$nilai)
mse <- deviance(model) / df.residual(model)
KK <- sqrt(mse) / mean_val * 100

cat("FK:", round(FK, 1), "\n")
## FK: 8.2
cat("KK:", round(KK, 1), "%\n")
## KK: 14.8 %
# --- Tabel ringkas rata-rata + huruf Duncan ---
# Jika hasil grouping ada
# Ambil hasil Duncan
# --- Tabel ringkas rata-rata + huruf Duncan ---
hasil_ringkas <- data.frame(
  Perlakuan = rownames(duncan$groups),
  Rata_rata = round(as.numeric(duncan$groups$nilai), 2),
  Simbol = duncan$groups$groups
)

# Urutkan dari rata-rata terbesar ke terkecil
hasil_ringkas <- hasil_ringkas[order(-hasil_ringkas$Rata_rata), ]

print(hasil_ringkas)
##   Perlakuan Rata_rata Simbol
## 1        T1     13.84      a
## 2        T0      7.52      b
## 3        T2      7.34      b
## 4        T3      5.04      c
# --- Input data ---
perlakuan <- rep(c("T0", "T1", "T2", "T3"), each = 6)
nilai <- c(
  5.96, 9.77, 5.61, 7.58, 8.40, 7.78,        # T0
  14.02, 14.47, 13.98, 13.87, 14.12, 12.55,  # T1
  9.67, 9.67, 6.04, 6.44, 6.28, 5.96,        # T2
  4.85, 4.64, 5.61, 4.95, 5.24, 4.95         # T3
)

data <- data.frame(perlakuan, nilai)

# --- ANOVA ---
model <- aov(nilai ~ perlakuan, data = data)
anova_res <- anova(model)
print(anova_res)
## Analysis of Variance Table
## 
## Response: nilai
##           Df  Sum Sq Mean Sq F value    Pr(>F)    
## perlakuan  3 256.327  85.442  54.868 7.827e-10 ***
## Residuals 20  31.145   1.557                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# --- Uji Lanjut Duncan (DMRT) ---
library(agricolae)
duncan <- duncan.test(model, "perlakuan", group = TRUE)
print(duncan)
## $statistics
##    MSerror Df    Mean       CV
##   1.557241 20 8.43375 14.79644
## 
## $parameters
##     test    name.t ntr alpha
##   Duncan perlakuan   4  0.05
## 
## $duncan
##      Table CriticalRange
## 2 2.949998      1.502879
## 3 3.096506      1.577518
## 4 3.189616      1.624952
## 
## $means
##        nilai       std r        se   Min   Max     Q25   Q50     Q75
## T0  7.516667 1.5485305 6 0.5094508  5.61  9.77  6.3650  7.68  8.2450
## T1 13.835000 0.6621405 6 0.5094508 12.55 14.47 13.8975 14.00 14.0950
## T2  7.343333 1.8102891 6 0.5094508  5.96  9.67  6.1000  6.36  8.8625
## T3  5.040000 0.3397646 6 0.5094508  4.64  5.61  4.8750  4.95  5.1675
## 
## $comparison
## NULL
## 
## $groups
##        nilai groups
## T1 13.835000      a
## T0  7.516667      b
## T2  7.343333      b
## T3  5.040000      c
## 
## attr(,"class")
## [1] "group"
# =====================================================
# === Perhitungan FK manual (Correction Factor) ===
# =====================================================
GT <- sum(data$nilai)                      # Grand total
treat <- length(unique(data$perlakuan))    # Jumlah perlakuan
rep <- length(data$nilai) / treat          # Jumlah ulangan

FK_manual <- (GT^2) / (treat * rep)
cat("Faktor Koreksi (FK manual):", round(FK_manual, 2), "\n")
## Faktor Koreksi (FK manual): 1707.08
# =====================================================
# === Perhitungan F hitung dari ANOVA ===
# =====================================================
KT_perlakuan <- anova_res["perlakuan", "Mean Sq"]
KT_galat     <- anova_res["Residuals", "Mean Sq"]
Fhitung <- KT_perlakuan / KT_galat
cat("Fhitung (F ratio):", round(Fhitung, 2), "\n")
## Fhitung (F ratio): 54.87
# =====================================================
# === Koefisien Keragaman (KK) ===
# =====================================================
mean_val <- mean(data$nilai)
mse <- KT_galat
KK <- sqrt(mse) / mean_val * 100
cat("Koefisien Keragaman (KK):", round(KK, 2), "%\n")
## Koefisien Keragaman (KK): 14.8 %
# =====================================================
# === Tabel ringkas rata-rata + huruf Duncan ===
# =====================================================
hasil_ringkas <- data.frame(
  Perlakuan = rownames(duncan$groups),
  Rata_rata = round(duncan$groups$nilai, 2),
  Simbol    = duncan$groups$groups
)

# Urutkan dari rata-rata terbesar ke terkecil
hasil_ringkas <- hasil_ringkas[order(-hasil_ringkas$Rata_rata), ]
print(hasil_ringkas)
##   Perlakuan Rata_rata Simbol
## 1        T1     13.84      a
## 2        T0      7.52      b
## 3        T2      7.34      b
## 4        T3      5.04      c