Dibuat oleh Laskar Brahimanov Riadi 5003251048

Nomor 1

# 1a
eksponen <- function(x, n){
  sum <- 1
  for(i in 1:n){
    sum <- sum + x^i/factorial(i)
  }
  return(sum)
}
eksponen(-1, 5)
[1] 0.3666667
# 1b
faktorial <- function(x){
  fact <- 1
  if(x <= 0){
    return(1)
  }else{
    for(i in 1:x){
      fact <- fact*i
    }
    return(fact)
  }
}

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 
    sum <-  sum + (-1)^i * suku
    i = i+1
  }
  return(sum)
}
sin_function(pi/6)
[1] 0.5

Nomor 2

moving_average <- function(data, k) {
  n <- length(data)
  Mt <- rep(NA, n)
  for (t in k:n) {
    Mt[t] <- mean(data[(t - k + 1):t])
  }
  return(Mt)
}

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)
Mt3 <- moving_average(data, 3)
hasil <- data.frame(
  t    = 1:length(data),
  Data = data,
  Mt3  = round(Mt3, 2)
)
print(hasil)
LS0tDQp0aXRsZTogIkFzc2lnbm1lbnQgMyBLb21wdXRhc2kgU3RhdGlzdGlrYSBEIExhc2thciBCcmFoaW1hbm92IFJpYWRpIg0Kb3V0cHV0OiBodG1sX25vdGVib29rDQotLS0NCg0KRGlidWF0IG9sZWggTGFza2FyIEJyYWhpbWFub3YgUmlhZGkgNTAwMzI1MTA0OA0KDQojIE5vbW9yIDENCg0KYGBge3J9DQojIDFhDQpla3Nwb25lbiA8LSBmdW5jdGlvbih4LCBuKXsNCiAgc3VtIDwtIDENCiAgZm9yKGkgaW4gMTpuKXsNCiAgICBzdW0gPC0gc3VtICsgeF5pL2ZhY3RvcmlhbChpKQ0KICB9DQogIHJldHVybihzdW0pDQp9DQpla3Nwb25lbigtMSwgNSkNCg0KIyAxYg0KZmFrdG9yaWFsIDwtIGZ1bmN0aW9uKHgpew0KICBmYWN0IDwtIDENCiAgaWYoeCA8PSAwKXsNCiAgICByZXR1cm4oMSkNCiAgfWVsc2V7DQogICAgZm9yKGkgaW4gMTp4KXsNCiAgICAgIGZhY3QgPC0gZmFjdCppDQogICAgfQ0KICAgIHJldHVybihmYWN0KQ0KICB9DQp9DQoNCnNpbl9mdW5jdGlvbiA8LSBmdW5jdGlvbih4KXsNCiAgc3VtIDwtIHgNCiAgaSA8LSAgMQ0KICBzdWt1ICA8LSAxDQogIHdoaWxlKHN1a3UgPiAxMF4oLTUpKXsNCiAgICBwZW1iaWxhbmcgPC0geF4oMippICsgMSkNCiAgICBwZW55ZWJ1dCA8LSBmYWt0b3JpYWwoMippICsgMSkNCiAgICBzdWt1IDwtIHBlbWJpbGFuZy9wZW55ZWJ1dCANCiAgICBzdW0gPC0gIHN1bSArICgtMSleaSAqIHN1a3UNCiAgICBpID0gaSsxDQogIH0NCiAgcmV0dXJuKHN1bSkNCn0NCnNpbl9mdW5jdGlvbihwaS82KQ0KYGBgDQoNCiMgTm9tb3IgMg0KYGBge3J9DQptb3ZpbmdfYXZlcmFnZSA8LSBmdW5jdGlvbihkYXRhLCBrKSB7DQogIG4gPC0gbGVuZ3RoKGRhdGEpDQogIE10IDwtIHJlcChOQSwgbikNCiAgZm9yICh0IGluIGs6bikgew0KICAgIE10W3RdIDwtIG1lYW4oZGF0YVsodCAtIGsgKyAxKTp0XSkNCiAgfQ0KICByZXR1cm4oTXQpDQp9DQoNCmRhdGEgPC0gYyg0LjEsIDQuOSwgNi4yLCA2LjksIDYuOCwgNC40LCA1LjcsIDUuOCwgNi45LCA0LjcsIDYsIDQuOSkNCk10MyA8LSBtb3ZpbmdfYXZlcmFnZShkYXRhLCAzKQ0KaGFzaWwgPC0gZGF0YS5mcmFtZSgNCiAgdCAgICA9IDE6bGVuZ3RoKGRhdGEpLA0KICBEYXRhID0gZGF0YSwNCiAgTXQzICA9IHJvdW5kKE10MywgMikNCikNCnByaW50KGhhc2lsKQ0KYGBgDQoNCg==