Tugas Praktikum 8 - Pemrograman Statistika

Soal 1

Susunlah sintaks R untuk penjumlahan deret berikut! \[z = 1 + 1 + \frac{1}{2} + \frac{1}{3} + \frac{1}{5} + \frac{1}{8} + \dots\]

x = 1 #deklarasi nilai fibonacci pertama
y = 1 #deklarasi nilai fibonacci kedua
i = 1 #inisialisasi indeks untuk suku deret
z = 0 #inisialisasi nilai z
e = 1 #inisialisasi nilai error

#looping akan terus berjalan selama nilai error masih lebih dari error min yang ditetapkan
#sebaliknya, looping akan berhenti jika nilai error kurang dari error min yang ditetapkan
while(e > 10^(-30)){ 
  
  if(i==1){ #deret sampai i=1
    b = z + 1/x
  }
  else if(i==2){ #deret sampai i=2
    b = z + 1/y
  }
  else{ #deret sampai i lainnya
    n = x+y 
    x = y
    y = n
    b = z + 1/n
    e = abs(b-z)
  }
  z = b
  i = i+1
}
b #output hasil penjumlah deret fibonacci
## [1] 3.359886

Soal 2

Susunlah sintaks R untuk penjumlahan deret berikut! \[z = 10 - 2 + 0.4 - 0.08 + \cdot \]

i = 1 #inisialisasi indeks untuk suku deret
x = 10 #deklarasi nilai awal
e = 1 #inisialisasi nilai error
z = 0 #inisialisasi nilai z

#looping akan terus berjalan selama nilai error masih lebih dari error min yang ditetapkan
#sebaliknya, looping akan berhenti jika nilai error kurang dari error min yang ditetapkan
while (e > 10^(-30)){
  y = (-1)^(i+1) #membuat urutan tanda + atau -
  a = z + y * x #menghitung nilai deret ke-i
  x = x/5 #suku i = suku i-1 dibagi 5
  e = abs(a-z)
  i = i + 1
  z = a
}
a #output hasil deret tak hingga
## [1] 8.333333

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

sortir_data <- 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)
} #function untuk sorting data
vektor <- c(13, 7, 6, 45, 21, 9, 101, 102) #data yang akan diurutkan
sortir_data(vektor) #output sorting data dari terbesar menuju terkecil
## [1] 102 101  45  21  13   9   7   6

Perbandingan dengan fungsi sort():  

sort(vektor)
## [1]   6   7   9  13  21  45 101 102

Output yang dihasilkan berbeda, karena default dari fungsi sort pada R adalah Decreasing = FALSE}, sehingga nilai terurut dari kecil ke besar.

Digunakan tambahan decreasing = TRUE, sehingga hasil sesuai dengan yang diinginkan

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