# DATA (baris = Merk Tablet, kolom = Jenis Pelarut) #
Y <- matrix(c(46.18, 54.54, 56.63,
              57.69, 71.57, 81.51,
              48.61, 51.01, 80.02),
            nrow=3, byrow=TRUE,
            dimnames=list(
              Faktor_Baris=c("CDR", "Redoxon", "Enervon-C"),
              Faktor_Kolom=c("Air Biasa", "Air Soda", "Air Kelapa")))
Y
##             Faktor_Kolom
## Faktor_Baris Air Biasa Air Soda Air Kelapa
##    CDR           46.18    54.54      56.63
##    Redoxon       57.69    71.57      81.51
##    Enervon-C     48.61    51.01      80.02
# UJI NORMALITAS #
# Berdasarkan Merk Tablet #
shapiro.test(Y[,1])
## 
##  Shapiro-Wilk normality test
## 
## data:  Y[, 1]
## W = 0.89987, p-value = 0.3851
shapiro.test(Y[,2])
## 
##  Shapiro-Wilk normality test
## 
## data:  Y[, 2]
## W = 0.87434, p-value = 0.3079
shapiro.test(Y[,3])
## 
##  Shapiro-Wilk normality test
## 
## data:  Y[, 3]
## W = 0.79474, p-value = 0.102
# Berdasarkan Jenis Pelarut #
shapiro.test(Y[1,])
## 
##  Shapiro-Wilk normality test
## 
## data:  Y[1, ]
## W = 0.89286, p-value = 0.3631
shapiro.test(Y[2,])
## 
##  Shapiro-Wilk normality test
## 
## data:  Y[2, ]
## W = 0.99096, p-value = 0.8182
shapiro.test(Y[3,])
## 
##  Shapiro-Wilk normality test
## 
## data:  Y[3, ]
## W = 0.80695, p-value = 0.1312
# UJI HOMOGENITAS LEVENE #
library(car)
## Loading required package: carData
data <- as.data.frame(as.table(Y))
# Homogenitas berdasarkan Merk Tablet #
leveneTest(Freq ~ Faktor_Baris, data=data,center=mean)
## Levene's Test for Homogeneity of Variance (center = mean)
##       Df F value Pr(>F)
## group  2  2.4902 0.1632
##        6
# Homogenitas berdasarkan Jenis Pelarut #
leveneTest(Freq ~ Faktor_Kolom, data=data,center=mean)
## Levene's Test for Homogeneity of Variance (center = mean)
##       Df F value Pr(>F)
## group  2  1.9806 0.2185
##        6
# ANAVA 2 ARAH TANPA INTERAKSI #
anava2arah_tanpa <- function(Y, alpha=0.05){
  a <- nrow(Y)
  b <- ncol(Y)
  N <- a*b
  
  FK   <- sum(Y)^2/N
  JKT  <- sum(Y^2) - FK
  JK_A <- sum(rowSums(Y)^2)/b - FK
  JK_B <- sum(colSums(Y)^2)/a - FK
  JKG  <- JKT - JK_A - JK_B
  
  db <- c(a-1, b-1, (a-1)*(b-1), N-1)
  JK <- c(JK_A, JK_B, JKG, JKT)
  KT <- JK/db
  F <- c(KT[1:2]/KT[3], NA, NA)
  Ft <- c(qf(1-alpha, db[1:2], db[3]), NA, NA)
  p <- c(pf(F[1:2], db[1:2], db[3],
            lower.tail=FALSE), NA, NA)
  
  hasil <- data.frame(
    Sumber=c("Faktor Baris", "Faktor Kolom",
             "Galat", "Total"),
    db, JK, KT,
    F_hit=F,
    F_tabel=Ft,
    p_value=p
  )
  print(hasil, digits=5, na.print="",
        row.names=FALSE)
}

anava2arah_tanpa(Y)
##        Sumber db      JK      KT  F_hit F_tabel  p_value
##  Faktor Baris  2  479.96 239.979 4.2696  6.9443 0.101762
##  Faktor Kolom  2  733.92 366.960 6.5287  6.9443 0.054991
##         Galat  4  224.83  56.207     NA      NA       NA
##         Total  8 1438.70 179.838     NA      NA       NA
# PEMBANDING DENGAN FUNGSI BAWAAN R #
data <- as.data.frame(as.table(Y))
anova(aov(Freq ~ Faktor_Baris + Faktor_Kolom,
          data=data))
## Analysis of Variance Table
## 
## Response: Freq
##              Df Sum Sq Mean Sq F value  Pr(>F)  
## Faktor_Baris  2 479.96  239.98  4.2696 0.10176  
## Faktor_Kolom  2 733.92  366.96  6.5287 0.05499 .
## Residuals     4 224.83   56.21                  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1