Nomor 1a

faktorial<-function(k){
  hasil<-1
  for(i in 1:k){
    hasil<-hasil*i
  }
  return(hasil)
}

exp_maclaurin<-function(x,n){
  result<-0
  for(k in 0:n){
    result<-result+(x^k/faktorial(k))
    
  }
  return(result)
}
print(paste("exp(-1) orde 5 =", exp_maclaurin(-1,4)))
## [1] "exp(-1) orde 5 = Inf"
print(paste("exp(-1) nilai sejati =", exp(-1)))
## [1] "exp(-1) nilai sejati = 0.367879441171442"

nomor 1b

sin_maclaurin<-function(x){
  result<-0
  k<-0
  komponen<-x
  while(abs(komponen)>=10^-5) {
    komponen<-(-1)^k*x^(2*k+1)/faktorial(2*k+1)
    result<-result+komponen
    k<-k+1
  }
  return(result)
}
print(paste("sin(pi/6) =",sin_maclaurin(pi/6)))
## [1] "sin(pi/6) = 0.499999991869023"

nomor 2

rata_rata_bergerak<-function(data,k=3) {
  n<-length(data)
  Mt<-c()
  for (t in 1:n){
    if(t<k){
      Mt[t]<-NA
    }else{
      total<-0
      for (i in (t-k+1):t) {
        total<-total+data[i]
      }
      Mt[t]<-total/k
    }
  }
  return(Mt)
}
data_soal <- 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<-rata_rata_bergerak(data_soal)

print(data.frame(t=1:12,Data=data_soal,Mt3=round(Mt3,2)))
##     t Data  Mt3
## 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