# NUR AMIRA AMALINA - 5003251004 - STATISTIKA (D)
# NOMOR 1A
fact <- function(n) {
  hasil <- 1
  for (i in 1:n) {
    hasil <- hasil * i
  }
  return(hasil)
}
 
exp_maclaurin <- function(x, n) {
  hasil <- 1
  for (i in 1:n) {
    hasil <- hasil + x^i / fact(i)
  }
  return(hasil)
}
 
exp_maclaurin(-1, 5)
## [1] 0.3666667
# NOMOR 1B
sin_maclaurin <- function(x) {
  hasil <- 0
  suku  <- x
  i     <- 1
  while (abs(suku) >= 1e-5) {
    hasil <- hasil + suku
    suku  <- -suku * x^2 / ((2*i + 1) * (2*i))
    i     <- i + 1
  }
  return(hasil)
}

sin_maclaurin(pi / 6)
## [1] 0.5000021
# NOMOR 2
rata_bergerak <- function(y, k) {
  n   <- length(y)
  mt  <- rep(NA, n)
  for (t in k:n) {
    jumlah <- 0
    for (j in 0:(k-1)) {
      jumlah <- jumlah + y[t - j]
    }
    mt[t] <- jumlah / k
  }
  return(mt)
}

# Data
y <- c(4.1, 4.9, 6.2, 6.9, 6.8, 4.4, 5.7, 5.8, 6.9, 4.7, 6, 4.9)

# Hitung Mt(3)
mt3 <- rata_bergerak(y, k = 3)

print(data.frame(t = 1:length(y), Data = y, Mt3 = mt3), row.names = FALSE)
##   t Data      Mt3
##   1  4.1       NA
##   2  4.9       NA
##   3  6.2 5.066667
##   4  6.9 6.000000
##   5  6.8 6.633333
##   6  4.4 6.033333
##   7  5.7 5.633333
##   8  5.8 5.300000
##   9  6.9 6.133333
##  10  4.7 5.800000
##  11  6.0 5.866667
##  12  4.9 5.200000