# Atmariani Ardiningrum, 5003251197
# ASSIGNMENT 3 KOMSTAT WEEK 6 

# NOMOR 1.a: Eksponensial Maclaurin
maclaurin_exp <- function(x, n) {
  hasil <- 0
  for (i in 0:n) {
    suku <- (x^i) / factorial(i)
    hasil <- hasil + suku
  }
  return(hasil)
}

hasil_1a <- maclaurin_exp(-1, 4)
print(paste("Hasil 1.a (exp -1, orde 4):", hasil_1a))
## [1] "Hasil 1.a (exp -1, orde 4): 0.375"
# NOMOR 1.b: Sinus Maclaurin
maclaurin_sin <- function(x) {
  hasil <- 0
  i <- 0
  selesai <- FALSE
  
  while (!selesai) {
    pangkat <- 2 * i + 1
    tanda <- (-1)^i
    komponen <- tanda * (x^pangkat) / factorial(pangkat)
    if (abs(komponen) < 1e-5) {
      selesai <- TRUE
    } else {
      hasil <- hasil + komponen
      i <- i + 1
    }
  }
  return(hasil)
}

hasil_1b <- maclaurin_sin(pi/6)
print(paste("Hasil 1.b (sin pi/6):", hasil_1b))
## [1] "Hasil 1.b (sin pi/6): 0.500002132588792"
# NOMOR 2: Rata-Rata Bergerak (Mt(3))
moving_average_3 <- function(data_input) {
  n <- length(data_input)
  hasil_ma <- rep(NA, n)
  
  for (t in 3:n) {
    hasil_ma[t] <- (data_input[t] + data_input[t-1] + data_input[t-2]) / 3
  }
  return(hasil_ma)
}

data_y <- 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)

hasil_2 <- moving_average_3(data_y)
tabel_final <- data.frame(
  t = 1:12,
  Data = data_y,
  Mt_3 = round(hasil_2, 2)
)

print("Hasil Nomor 2 (Tabel Rata-Rata Bergerak):")
## [1] "Hasil Nomor 2 (Tabel Rata-Rata Bergerak):"
print(tabel_final)
##     t Data Mt_3
## 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