#1a+1b
exp_maclaurin <- function(x, n){
  hasil <- 0

  for(i in 0:n){
    hasil <- hasil + (x^i)/factorial(i)
  }

  return(hasil)
}

exp_maclaurin(-1, 5)
## [1] 0.3666667
sin_maclaurin <- function(x){
  
  hasil <- 0
  i <- 0
  komponen <- x
  
  while(abs(komponen) >= 10^-5){
    
    komponen <- ((-1)^i * x^(2*i+1))/factorial(2*i+1)
    
    hasil <- hasil + komponen
    
    i <- i + 1
  }
  
  return(hasil)
}

sin_maclaurin(pi/6)
## [1] 0.5
moving_average <- function(data, k){
  
  n <- length(data)
  hasil <- rep(NA, n)
  
  #2
  for(i in k:n){
    hasil[i] <- mean(data[(i-k+1):i])
  }
  
  return(hasil)
}

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

M3 <- moving_average(data,3)

tabel <- data.frame(
  t = 1:length(data),
  Data = data,
  M3 = round(M3,2)
)

tabel
##     t Data   M3
## 1   1  4.1   NA
## 2   2  4.9   NA
## 3   3  6.2 5.07
## 4   4  6.9 6.00
## 5   5  6.8 6.63
## 6   6  4.4 6.03
## 7   7  5.7 5.63
## 8   8  5.8 5.30
## 9   9  6.9 6.13
## 10 10  4.7 5.80
## 11 11  6.0 5.87
## 12 12  4.9 5.20