Nomor 1

Susunlah sintaks R untuk penjumlahan deret berikut!

\[z = 1 + 1 + \frac{1}{2} + \frac{1}{3} + \frac{1}{5} + \frac{1}{8} + ...\]

Jawab

a = 1 # bilangan fibonacci pertama
b = 1 # bilangan fibonacci kedua
i = 1 # inisialisasi indeks untuk suku deret
z = 0 # inisialisasi nilai z
err = 1 # inisialisasi nilai error

# selama masih lebih dari error min yang ditetapkan
# maka looping terus berjalan
while(err > 10^(-30)){ 
  
  if(i==1){ # deret sampai i=1
    y = z + 1/a
  }
  else if(i==2){ # deret sampai i=2
    y = z + 1/b
  }
  else{ # deret sampai i lainnya
    c = a+b 
    a = b
    b = c
    y = z + 1/c
    err = abs(y-z)
  }
  z = y
  i = i+1
}
y
## [1] 3.359886

Nomor 2

Susunlah sintaks R untuk penjumlahan deret berikut!

\[Z = 10 - 2 + 0.4 - 0.08 + ...\]

Jawab

i = 1 # inisialisasi indeks untuk suku deret
b = 10 
err = 1 # inisialisasi nilai error
z = 0
while (err > 10^(-30)){
  a = (-1)^(i+1) # untuk mengatur tanda + atau -
  y = z + a*b
  b = b/5 # suku i = suku i-1 dibagi 5
  err = abs(y-z)
  i = i + 1
  z = y
}
y
## [1] 8.333333

Nomor 3

Buatlah 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]\]

Jawab

sort_manual <- function(vektor){
  for (i in 1:length(vektor)) {
  j = i+1
  for (j in 1:length(vektor)) {
    if(vektor[i]>vektor[j]) {
      simp = vektor[i]
      vektor[i] = vektor[j]
      vektor[j] = simp}
  }
  }
  return(vektor)
}
vektor <- c(13, 7, 6, 45, 21, 9, 101, 102)
sort_manual(vektor)
## [1] 102 101  45  21  13   9   7   6

Hasilnya sama dengan fungsi sort() yang ada di R dengan menambahkan decreasing = TRUE karena secara default adalah decreasing = FALSE yang mengurutkan vektor dari kecil ke besar.

sort(vektor) # default decreasing = FALSE
## [1]   6   7   9  13  21  45 101 102
sort(vektor, decreasing = TRUE)
## [1] 102 101  45  21  13   9   7   6