#Muhammad Dzaki Naufal
#5003241147
#kelas D

#1a
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
#1b
sin_maclaurin <- function(x) {
  hasil <- 0
  i <- 0
  repeat {
    suku <- ((-1)^i * x^(2*i + 1)) / factorial(2*i + 1)
    hasil <- hasil + suku
    
    if (abs(suku) < 1e-5) {
      break
    }
    
    i <- i + 1
  }
  return(hasil)
}


sin_maclaurin(pi/6)
## [1] 0.5
#2b

data <- c(4.1, 4.9, 6.2, 6.9, 6.8, 4.4, 5.7, 5.8, 6.9, 4.7, 6.0, 4.9)
print(data)
##  [1] 4.1 4.9 6.2 6.9 6.8 4.4 5.7 5.8 6.9 4.7 6.0 4.9
moving_average <- function(data, k = 3) {
  n <- length(data)
  hasil <- rep(NA, n)
  
  for (t in k:n) {
    hasil[t] <- mean(data[(t-k+1):t])
  }
  
  return(hasil)
}

MA3 <- moving_average(data, 3)
MA3
##  [1]       NA       NA 5.066667 6.000000 6.633333 6.033333 5.633333 5.300000
##  [9] 6.133333 5.800000 5.866667 5.200000
#rapihkan data
t <- 1:length(data)

hasil <- data.frame(
  t = t,
  Data = data,
  MA3 = round(MA3, 2)
)

print(hasil)
##     t Data  MA3
## 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