A <- c(-1, 1, -1, 1)
B <- c(-1, -1, 1, 1)
C <- A * B

P1 <- c(129, 189, 132, 39)
P2 <- c(163, 224, 83, 27)
P3 <- c(117, 278, 89, 51)

df <- data.frame(A, B, C, P1, P2, P3)
df$Y <- rowMeans(df[, c("P1","P2","P3")])
df$Y
## [1] 136.3333 230.3333 101.3333  39.0000
contrast <- function(factor, y) sum(factor * y)

K_A <- contrast(df$A, df$Y)
K_B <- contrast(df$B, df$Y)
K_C <- contrast(df$C, df$Y)

K_A; K_B; K_C 
## [1] 31.66667
## [1] -226.3333
## [1] -156.3333
Ef_A <- K_A / 4
Ef_B <- K_B / 4
Ef_C <- K_C / 4

Ef_A
## [1] 7.916667
Ef_B
## [1] -56.58333
Ef_C
## [1] -39.08333
rep <- 3

SS_A <- (K_A^2 / 4) * rep
SS_B <- (K_B^2 / 4) * rep
SS_C <- (K_C^2 / 4) * rep

SS_A
## [1] 752.0833
SS_B
## [1] 38420.08
SS_C
## [1] 18330.08
raw <- c(P1, P2, P3)
SS_total <- sum((raw - mean(raw))^2)

SS_total
## [1] 64378.25
SS_error <- SS_total - (SS_A + SS_B + SS_C)
SS_error
## [1] 6876
ANOVA <- data.frame(
  Source = c("A","B","C","Error","Total"),
  SS = c(SS_A, SS_B, SS_C, SS_error, SS_total),
  DF = c(1, 1, 1, 8, 11)
)

ANOVA$MS <- ANOVA$SS / ANOVA$DF
ANOVA$Fvalue <- ANOVA$MS / ANOVA$MS[4]

ANOVA
##   Source         SS DF         MS     Fvalue
## 1      A   752.0833  1   752.0833  0.8750242
## 2      B 38420.0833  1 38420.0833 44.7005042
## 3      C 18330.0833  1 18330.0833 21.3264495
## 4  Error  6876.0000  8   859.5000  1.0000000
## 5  Total 64378.2500 11  5852.5682  6.8092707
den <- SS_A + SS_B + SS_C

Percent <- (c(SS_A, SS_B, SS_C) / den) * 100
names(Percent) <- c("A","B","C")

round(Percent, 2)
##     A     B     C 
##  1.31 66.81 31.88