#PACKAGES 
library(car) 
## Loading required package: carData
library(agricolae) 

#Memanggil Data 
data = read.table(file.choose(), header = T) 
data 
##   MerekTablet JenisPelarut  Data
## 1           1            1 46.18
## 2           1            2 54.54
## 3           1            3 56.63
## 4           2            1 57.69
## 5           2            2 71.57
## 6           2            3 81.51
## 7           3            1 48.61
## 8           3            2 51.01
## 9           3            3 80.02
#Pendefinisian Variabel 
data$MerekTablet = factor(data$MerekTablet, levels = 1:3, labels = c("CDR", "Redoxon", "Enervon-C")) 
data$JenisPelarut = factor(data$JenisPelarut, levels = 1:3, labels = c("Air Biasa", "Air Soda", "Air Kelapa")) 
data 
##   MerekTablet JenisPelarut  Data
## 1         CDR    Air Biasa 46.18
## 2         CDR     Air Soda 54.54
## 3         CDR   Air Kelapa 56.63
## 4     Redoxon    Air Biasa 57.69
## 5     Redoxon     Air Soda 71.57
## 6     Redoxon   Air Kelapa 81.51
## 7   Enervon-C    Air Biasa 48.61
## 8   Enervon-C     Air Soda 51.01
## 9   Enervon-C   Air Kelapa 80.02
# Normalitas per JenisPelarut 
for(j in levels(data$JenisPelarut)){ 
  cat("\nUji Normalitas untuk Jenis Pelarut:", j, "\n") 
  print(shapiro.test(data$Data[data$JenisPelarut == j])) 
} 
## 
## Uji Normalitas untuk Jenis Pelarut: Air Biasa 
## 
##  Shapiro-Wilk normality test
## 
## data:  data$Data[data$JenisPelarut == j]
## W = 0.89987, p-value = 0.3851
## 
## 
## Uji Normalitas untuk Jenis Pelarut: Air Soda 
## 
##  Shapiro-Wilk normality test
## 
## data:  data$Data[data$JenisPelarut == j]
## W = 0.87434, p-value = 0.3079
## 
## 
## Uji Normalitas untuk Jenis Pelarut: Air Kelapa 
## 
##  Shapiro-Wilk normality test
## 
## data:  data$Data[data$JenisPelarut == j]
## W = 0.79474, p-value = 0.102
# Normalitas per MerekTablet 
for(i in levels(data$MerekTablet)){ 
  cat("\nUji Normalitas untuk Merek Tablet:", i, "\n") 
  print(shapiro.test(data$Data[data$MerekTablet == i])) 
} 
## 
## Uji Normalitas untuk Merek Tablet: CDR 
## 
##  Shapiro-Wilk normality test
## 
## data:  data$Data[data$MerekTablet == i]
## W = 0.89286, p-value = 0.3631
## 
## 
## Uji Normalitas untuk Merek Tablet: Redoxon 
## 
##  Shapiro-Wilk normality test
## 
## data:  data$Data[data$MerekTablet == i]
## W = 0.99096, p-value = 0.8182
## 
## 
## Uji Normalitas untuk Merek Tablet: Enervon-C 
## 
##  Shapiro-Wilk normality test
## 
## data:  data$Data[data$MerekTablet == i]
## W = 0.80695, p-value = 0.1312
#Homogenitas variansi# 
leveneTest(Data ~ JenisPelarut, center = mean, data = data) 
## Levene's Test for Homogeneity of Variance (center = mean)
##       Df F value Pr(>F)
## group  2  1.9806 0.2185
##        6
leveneTest(Data ~ MerekTablet, center = mean, data = data) 
## Levene's Test for Homogeneity of Variance (center = mean)
##       Df F value Pr(>F)
## group  2  2.4902 0.1632
##        6
# Uji Anava 2 Arah Tanpa Interaksi
anava2arah_tanpa_interaksi <- function(y, A, B){ 
  a <- nlevels(A)
  b <- nlevels(B) 
  N <- length(y)
  n <- N / (a * b) 
   
  FK    <- sum(y)^2 / N 
  JKT   <- sum(y^2) - FK 
  JK_A  <- sum(tapply(y, A, sum)^2) / (b * n) - FK 
  JK_B  <- sum(tapply(y, B, sum)^2) / (a * n) - FK 
  
  JKG   <- JKT - JK_A - JK_B 
   
  db_A  <- a - 1
  db_B  <- b - 1
  db_G  <- (a - 1) * (b - 1)   
  db_T  <- N - 1
  
  db    <- c(db_A, db_B, db_G, db_T) 
  JK    <- c(JK_A, JK_B, JKG, JKT) 
  KT    <- JK[1:3] / db[1:3]     
  
  F_A   <- KT[1] / KT[3] 
  F_B   <- KT[2] / KT[3] 
  F     <- c(F_A, F_B, NA, NA) 
  
  p_A   <- pf(F_A, db[1], db[3], lower.tail = FALSE)
  p_B   <- pf(F_B, db[2], db[3], lower.tail = FALSE)
  p     <- c(p_A, p_B, NA, NA) 
   
  data.frame(
    Sumber_Keragaman = c("Merek Tablet", "Jenis Pelarut", "Galat", "Total"), 
    db = db, 
    Jumlah_Kuadrat = JK, 
    Kuadrat_Tengah = c(KT, NA), 
    F_hitung = F, 
    p_value = p
  ) 
} 

anava2arah_tanpa_interaksi(y = data$Data, A = data$MerekTablet, B = data$JenisPelarut) 
##   Sumber_Keragaman db Jumlah_Kuadrat Kuadrat_Tengah F_hitung    p_value
## 1     Merek Tablet  2       479.9575      239.97874 4.269572 0.10176166
## 2    Jenis Pelarut  2       733.9193      366.95964 6.528748 0.05499073
## 3            Galat  4       224.8270       56.20674       NA         NA
## 4            Total  8      1438.7038             NA       NA         NA
uji_anava_ti = aov(Data ~ MerekTablet + JenisPelarut, data = data) 
anova(uji_anava_ti)
## Analysis of Variance Table
## 
## Response: Data
##              Df Sum Sq Mean Sq F value  Pr(>F)  
## MerekTablet   2 479.96  239.98  4.2696 0.10176  
## JenisPelarut  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