library(car)
## Warning: package 'car' was built under R version 4.5.3
## Loading required package: carData
## Warning: package 'carData' was built under R version 4.5.3
library(agricolae)
## Warning: package 'agricolae' was built under R version 4.5.3
#Memanggil Data
data=read.table(file.choose(), header=T)
data
##   tablet jenis_pelarut  data
## 1      1             1 46.18
## 2      2             1 57.69
## 3      3             1 48.61
## 4      1             2 54.54
## 5      2             2 71.57
## 6      3             2 51.01
## 7      1             3 56.63
## 8      2             3 81.51
## 9      3             3 80.02
#Pendefinisian Variabel
data$tablet=factor(data$tablet,levels=1:3,labels=c("cdr","redoxon","enervonC"))
data$jenis_pelarut=factor(data$jenis_pelarut,levels=1:3,labels=c("Airbiasa","Airsoda","AirKelapa"))
data
##     tablet jenis_pelarut  data
## 1      cdr      Airbiasa 46.18
## 2  redoxon      Airbiasa 57.69
## 3 enervonC      Airbiasa 48.61
## 4      cdr       Airsoda 54.54
## 5  redoxon       Airsoda 71.57
## 6 enervonC       Airsoda 51.01
## 7      cdr     AirKelapa 56.63
## 8  redoxon     AirKelapa 81.51
## 9 enervonC     AirKelapa 80.02
# Normalitas per tablet
for(j in levels(data$tablet)){
  cat("\nUji Normalitas untuk tablet:", j, "\n")
  print(shapiro.test(data$data[data$tablet==j]))
}
## 
## Uji Normalitas untuk tablet: cdr 
## 
##  Shapiro-Wilk normality test
## 
## data:  data$data[data$tablet == j]
## W = 0.89286, p-value = 0.3631
## 
## 
## Uji Normalitas untuk tablet: redoxon 
## 
##  Shapiro-Wilk normality test
## 
## data:  data$data[data$tablet == j]
## W = 0.99096, p-value = 0.8182
## 
## 
## Uji Normalitas untuk tablet: enervonC 
## 
##  Shapiro-Wilk normality test
## 
## data:  data$data[data$tablet == j]
## W = 0.80695, p-value = 0.1312
# Normalitas per jenis_pelarut
for(i in levels(data$jenis_pelarut)){
  cat("\nUji Normalitas untuk jenis_pelarut:", i, "\n")
  print(shapiro.test(data$data[data$jenis_pelarut==i]))
}
## 
## Uji Normalitas untuk jenis_pelarut: Airbiasa 
## 
##  Shapiro-Wilk normality test
## 
## data:  data$data[data$jenis_pelarut == i]
## W = 0.89987, p-value = 0.3851
## 
## 
## Uji Normalitas untuk jenis_pelarut: Airsoda 
## 
##  Shapiro-Wilk normality test
## 
## data:  data$data[data$jenis_pelarut == i]
## W = 0.87434, p-value = 0.3079
## 
## 
## Uji Normalitas untuk jenis_pelarut: AirKelapa 
## 
##  Shapiro-Wilk normality test
## 
## data:  data$data[data$jenis_pelarut == i]
## W = 0.79474, p-value = 0.102
#Homogenitas variansi#
leveneTest(data~tablet, 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
leveneTest(data~jenis_pelarut, 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
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", "EnervonC"), 
  Faktor_Kolom = c("AirBiasa", "AirSoda", "AirKelapa")
))

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 = db,
    JK = JK,
    KT = KT,
    F_hit = F,
    F_tabel = Ft,
    p_value = p
  )
  
  print(hasil, digits = 5, na.print = "", row.names = FALSE)
}


anava2arah_tanpa(Y, alpha = 0.05)
##        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
data <- as.data.frame(as.table(Y))
colnames(data) <- c("Faktor_Baris", "Faktor_Kolom", "Freq")
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