Soal 1

Susunlah sintaks R untuk penjumlahan deret berikut!

    z = 1 + 1 + 1/2 + 1/3 + 1/5 + 1/8 + ...  

Jawab

Deret diatas merupakan deret Reciprocal Fibonacci Constant, dimana nilai penyebutnya 1, dan pembilangnya hasil penjumlahan dari dua angka sebelumnya.

Untuk menjawab soal diatas maka akan dilakukan tahapan-tahapan sebagai berikut:

  • menuliskan rumus dalam bentuk fungsi
  • mendefinisikan kriteria stopping
  • Mendefinisikan nilai-nilai awal
  • menuliskan iterasi dalam bentuk deret
  • Hasil Akhir.

Adapun sintaks yang digunakan adalah sebagai berikut:

#menuliskan rumus dalam bentuk function
fz1 <- function(n){
  penyebut = c()
  Un = c()
  
  penyebut[1] = 1
  penyebut[2] = 1
  Un[1] = 1/1
  Un[2] = 1/1
  
  if (n<3) {
    return(Un[n])
  }
  else {
    for (i in 3:n) {
      penyebut[i] = penyebut[i-2] + penyebut[i-1]
      Un[i] = 1/penyebut[i]
    }
    return(Un[i])
  }
}
#mendefinisikan kriteria stopping
stopping_criteria <- function(y_current,y_before){
  abs(y_current-y_before)
}

#mendefinisikan nilai-nilai awal
#nilai awal kriteria stopping
error <- 10
#nilai awal deret
z0 <- 0
# nilai awal iterasi
n <- 1

#Menuliskan iterasi dalam bentuk deret
while (error>0.00001) {
  z <- z0 + fz1(n)
  error <- stopping_criteria(z,z0)
  z0 <- z
  n <- n+1
}
#final result
z
## [1] 3.359872

Berdasarkan hasil perhitungan diatas maka di peroleh hasil jumlah dari deret Reciprocal Fibonacci Constant dengan suku pertama dan kedua 1 adalah sebesar = 3.359872

Soal 2

Susunlah sintaks R untuk penjumlahan deret berikut!

    Z = 10 - 2 + 0.4 - 0.08 + ...

Jawab

Untuk menjawab soal diatas maka akan dilakukan tahapan-tahapan sebagai berikut:

  • menuliskan rumus dalam bentuk fungssi, adapun rumus fungsi deret tersebut adalah:

      Z= ((-1)^(n+1))*10*(0.2^(n-1))  
  • mendefinisikan kriteria stopping

  • Mendefinisikan nilai-nilai awal

  • menuliskan iterasi dalam bentuk deret

  • Hasil Akhir.

Adapun sintaks yang digunakan adalah sebagai berikut:

#menuliskan rumus dalam bentuk function
fz2 <- function(n){
  ((-1)^(n+1))*10*(0.2^(n-1))
}
#mendefinisikan kriteria stopping
stopping_criteria <- function(y_current,y_before){
  abs(y_current-y_before)
}

#mendefinisikan nilai-nilai awal
#nilai awal kriteria stopping
error <- 10
#nilai awal deret
z0 <- 0
# nilai awal iterasi
n <- 1

#Menuliskan iterasi dalam bentuk deret
while (error>0.00001) {
  z <- z0 + fz2(n)
  error <- stopping_criteria(z,z0)
  z0 <- z
  n <- n+1
}
#final result
z
## [1] 8.333332

Berdasarkan hasil perhitungan diatas diperoleh jumlah total dari deret Z adalah 8.333332

Soal 3

Buatlaah fungsi untuk mengurutkan vektor berikut dari besar ke kecil, bandingkan hasilnya dengan menggunakan fungsi sort yang ada di R.

    X = [13,76,45,21,9,101,102]  

Jawab

Untuk menjawab pertanyaan diatas maka akan dilakukan dengan tahapan-tahapan sebafai berikut:

  • menginput deret bilangan
  • mendefinisikan objek baru yang akan digunakan untuk menampilkan hasil sortir
  • jumlah amatan
  • melakukan iterasi
  • melihat hasil akhir
  • mengurutkan dengan fungsi sort yang ada di R
  • membandingkan hasil keduanya

Adapun sintaks yang digunakan adalah sebagai berikut:

# menginput deret bilangan
x <- c(13,7,6,45,21,9,101,102)
# mendefinisikan objek baru yang akan digunakan untuk menampilkan hasil sortir
x_sort <- x
#jumlah amatan 
n_x <- length(x)
#iterasi tingkat 1
for(i in 1:(n_x-1)){
  #iterasi tingkat 2
  for(j in 1:(n_x-i)) {
    # Pemeriksaan kondisi apakah elemen ke-j+1 lebih besar dari elemen ke-j
    if(x_sort[j+1] > x_sort[j]) {
      # jika terpenuhi
      #Buat tempat sementara untuk menyimpan elemen ke-j yang akan ditukar
      tmp <- x_sort[j]
      # Ganti nilai elemen ke-j dengan nilai yang ada pada elemen ke j+1
      x_sort[j] <- x_sort[j+ 1]
      # Ganti nilai elemen j+1 dengan nilai yang ada dalam objek temp
      x_sort[j+1] <- tmp
    }
  }
}

#Hasil sort
x_sort
## [1] 102 101  45  21  13   9   7   6
#menggunakan fungsi sort di R
sort(x,decreasing = TRUE)
## [1] 102 101  45  21  13   9   7   6

Berdasarkan kedua hasil diatas dapat dilihat bahwa sorting yang dilakukan dengan sintaks manual menghasilkan urutan yang sama dengan ketika data dishorting dengan menggunakan fungsi sort yang tersedia di R.