SOAL 1

susunlah sintaks R untuk penjumlahan deret berikut! z=1+1+1/2+1/3+1/5+1/8+…

Jawaban

#mendefinisikan nilai- nilai awal
p = 1
q = 1
#nilai iterasi
n = 1
#nilai awal
x = 0
#error
e = 1
while(e > 10^(-5)){
  if(n==1){
    y = x + 1/p
    x = y
  }
  else if(n==2){
    y = x + 1/q
    x = y
  }
  else{
    r = p+q
    p = q
    q = r
    y = x + 1/r
    e = abs(y-x)
  }
  x = y
  n = n+1
}
y
## [1] 3.359872

SOAL 2

Susunlah sintaks R untuk penjumlahan deret berikut ! Z = 10-2+0,4-0,08+…

jawaban

#mendefinisikan nilai-nilai awal
i = 1
z = 10
error = 1
z0 = 0
while (error > 10^(-10)){
  a = (-1)^(i+1)
  z1 = z0 + a*z #suku beikutnya
  z = z/5
  error = abs(z1-z0)
  i = i + 1
  z0 = z1
}
z1
## [1] 8.333333

SOAL 3

Buat lah fungsi untuk mengurutkan vektor berikut dari besar ke kecil. Bandingkan hasilnya dengan menggunakan fungsi sort yang ada di R.

x=[13,7,6,45,21,9,101,102]

jawaban

set.seed(8)
x <- c(13,7,6,45,21,9,101,102)
urutan<- function(x){
  n_x <- length(x)
  
  for(i in 1:(n_x-1)){
    for(j in 1:(n_x-i)) {
      if(x[j+1] > x[j]) {
        tmp <- x[j]
        x[j] <- x[j+ 1]
        x[j+1] <- tmp
      }
    }
  }
  return(x)
}

#mencoba menerapkan fungsi urutan
urutan(x)
## [1] 102 101  45  21  13   9   7   6

setelah dibuat fungsi untuk mengurutkan data x dari data terbesar ke terkecil, diperoleh output seperti diatas, dan kemudian dibandingkan fungsi urutan yng dibuat dengan fungsi sort,sebagai berikut:

set.seed(8)
#perbandingan dengan sort
microbenchmark::microbenchmark(sort(x),urutan(x))
## Warning in microbenchmark::microbenchmark(sort(x), urutan(x)): less accurate
## nanosecond times to avoid potential integer overflows
## Unit: microseconds
##       expr    min     lq     mean median     uq     max neval
##    sort(x) 12.177 12.751 14.05685 12.956 13.325 109.101   100
##  urutan(x)  3.198  3.362  3.56823  3.485  3.649   7.585   100

berdasarkan hasil perbandingan pada fungsi urutan yang dibuat dengan fungsi sort diperoleh nilai rata-rata fungsi urutan lebih kecil dari fungsi sort , yang berart menunjukkan bahwa fungsi yag dibuat lebih efisien waktu dibandingkan dengan fungsi sort.