## Nomor 1 : Pendekatan Deret Maclaurin
### a. Pendekatan Nilai Eksponensial

# Fungsi Eksponensial
eksponensial <- function(x, n){
  sum <- 1
  
  for(i in 1:n) {
    sum <- sum + x^i/factorial(i)
  }
  return(sum)
}

eksponensial(-1, 5)
[1] 0.3666667
### b. 
faktorial <- function(x){
  fakt <- 1
  if(x<= 0){
    return(1)
  } else {
    for(i in 1:x){
      fakt <- fakt*i
  }
  return(fakt)
  }
}

sin_function <-  function(x){
  sum <- x
  i <-  1
  suku <- 1

while(suku > 10^(-5)){
  pembilang <- x^(2*i + 1)
  penyebut <- faktorial (2*i + 1)
  suku <-  pembilang/penyebut

if (suku < 10^(-5)) {
  break
}

sum <- sum + ((-1)^i*suku)

i <- i+1
}
return(sum)
}

sin_function(pi/6)
[1] 0.5000021
## Nomor 2: Fungsi rata-rata gerak dari suatu data
hitung_ma <- function(data_input, k=3){
  n <- length(data_input)
  hasil_ma <-  rep(NA, n)

  for (t in k:n){
    kelompok_data <- data_input[(t-k+1):t]
    hasil_ma[t] <- mean(kelompok_data)
  }
  return(hasil_ma)
}

#Input data berdasarkan tabel
t_index <- 1:12
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)

mt_3 <- hitung_ma(data_y, k=3)

tabel_ma <- data.frame(
t = t_index,
data = data_y,
mt_3 = round(mt_3, 2)
)

print(tabel_ma)
    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
LS0tDQp0aXRsZTogIkFzc2lnbm1lbnQgMyINCmF1dGhvcjogIk5hYmlsYSBBZGluYSBaYWhyYSINCm91dHB1dDogaHRtbF9ub3RlYm9vaw0KLS0tDQoNCmBgYHtyfQ0KIyMgTm9tb3IgMSA6IFBlbmRla2F0YW4gRGVyZXQgTWFjbGF1cmluDQojIyMgYS4gUGVuZGVrYXRhbiBOaWxhaSBFa3Nwb25lbnNpYWwNCg0KIyBGdW5nc2kgRWtzcG9uZW5zaWFsDQpla3Nwb25lbnNpYWwgPC0gZnVuY3Rpb24oeCwgbil7DQogIHN1bSA8LSAxDQogIA0KICBmb3IoaSBpbiAxOm4pIHsNCiAgICBzdW0gPC0gc3VtICsgeF5pL2ZhY3RvcmlhbChpKQ0KICB9DQogIHJldHVybihzdW0pDQp9DQoNCmVrc3BvbmVuc2lhbCgtMSwgNSkNCmBgYA0KYGBge3J9DQojIyMgYi4gDQpmYWt0b3JpYWwgPC0gZnVuY3Rpb24oeCl7DQogIGZha3QgPC0gMQ0KICBpZih4PD0gMCl7DQogICAgcmV0dXJuKDEpDQogIH0gZWxzZSB7DQogICAgZm9yKGkgaW4gMTp4KXsNCiAgICAgIGZha3QgPC0gZmFrdCppDQogIH0NCiAgcmV0dXJuKGZha3QpDQogIH0NCn0NCg0Kc2luX2Z1bmN0aW9uIDwtICBmdW5jdGlvbih4KXsNCiAgc3VtIDwtIHgNCiAgaSA8LSAgMQ0KICBzdWt1IDwtIDENCg0Kd2hpbGUoc3VrdSA+IDEwXigtNSkpew0KICBwZW1iaWxhbmcgPC0geF4oMippICsgMSkNCiAgcGVueWVidXQgPC0gZmFrdG9yaWFsICgyKmkgKyAxKQ0KICBzdWt1IDwtICBwZW1iaWxhbmcvcGVueWVidXQNCg0KaWYgKHN1a3UgPCAxMF4oLTUpKSB7DQogIGJyZWFrDQp9DQoNCnN1bSA8LSBzdW0gKyAoKC0xKV5pKnN1a3UpDQoNCmkgPC0gaSsxDQp9DQpyZXR1cm4oc3VtKQ0KfQ0KDQpzaW5fZnVuY3Rpb24ocGkvNikNCmBgYA0KYGBge3J9DQojIyBOb21vciAyOiBGdW5nc2kgcmF0YS1yYXRhIGdlcmFrIGRhcmkgc3VhdHUgZGF0YQ0KaGl0dW5nX21hIDwtIGZ1bmN0aW9uKGRhdGFfaW5wdXQsIGs9Myl7DQogIG4gPC0gbGVuZ3RoKGRhdGFfaW5wdXQpDQogIGhhc2lsX21hIDwtICByZXAoTkEsIG4pDQoNCiAgZm9yICh0IGluIGs6bil7DQogICAga2Vsb21wb2tfZGF0YSA8LSBkYXRhX2lucHV0Wyh0LWsrMSk6dF0NCiAgICBoYXNpbF9tYVt0XSA8LSBtZWFuKGtlbG9tcG9rX2RhdGEpDQogIH0NCiAgcmV0dXJuKGhhc2lsX21hKQ0KfQ0KDQojSW5wdXQgZGF0YSBiZXJkYXNhcmthbiB0YWJlbA0KdF9pbmRleCA8LSAxOjEyDQpkYXRhX3kgPC0gYyg0LjEsIDQuOSwgNi4yLCA2LjksIDYuOCwgNC40LCA1LjcsIDUuOCwgNi45LCA0LjcsIDYuMCwgNC45KQ0KDQptdF8zIDwtIGhpdHVuZ19tYShkYXRhX3ksIGs9MykNCg0KdGFiZWxfbWEgPC0gZGF0YS5mcmFtZSgNCnQgPSB0X2luZGV4LA0KZGF0YSA9IGRhdGFfeSwNCm10XzMgPSByb3VuZChtdF8zLCAyKQ0KKQ0KDQpwcmludCh0YWJlbF9tYSkNCmBgYA0K