Tugas 8 STA561 - Pemrograman Statistika

No.1

Susunlah sintaks R untuk penjumlahan deret berikut!

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

Algoritma :

  1. Mulai
  2. Tentukan dua nilai awal, yaitu x[1]=1, x[2]=1
  3. Tentukan batas toleransi awal
  4. Hitung nilai Z = 1/x[1] +1/x[2]
  5. Dimulai dengan i=3, Hitung elemen berikutnya, x[i] dengan menjumlahkan dua elemen sebelumnya, x[i] = x[i−2]+x[i−1]
  6. Hitung Z=Z+1/x[i]
  7. Periksa apakah elemen deret masih dalam batas toleransi
  8. Ulangi langkah 5, 6 dan 7 hingga batas toleransi tidak lagi terpenuhi
  9. Print nilai Z
  10. Selesai

Sintaks R

deret1 <- function(tol){
  
  # inisiasi x awal
  x <- c(1,1)

  # nilai kumulatif
  z0 <- 1/x[1]+ 1/x[2]

  # minimal dimulai dari i=3
  i <- 3

  while(tol > 10^(-7)) {
  
    x[i] <- x[i-2]+x[i-1] # inisiasi untuk penyebut fibonacci
    z1 <- z0 + 1/x[i]
    
    tol <- abs(z1-z0)
    z0 <- z1
    i <- i+1
  
  }
  return(z1)
} 

deret1(10^(-6))
[1] 3.359886

No. 2

Susunlah sintaks R untuk penjumlahan deret berikut!

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

Algoritma :

  1. Mulai
  2. Tentukan batas toleransi
  3. Hitung nilai z awal, z=0
  4. Tentukan iterasi permulaan, i=0
  5. Hitung nilai Z, dimana Z = Z + 10*((-1/5)^i)
  6. Ulangi langkah 4,5,6 hingga batas toleransi tidak terpenuhi
  7. Print nilai Z
  8. Selesai

Sintaks R

z0 <- 0
tol <- 10

i=0

while(tol>10^(-7)){
  z1 <- z0 + 10*((-1/5)^i)
  tol <- abs(z1-z0)
  z0 <- z1
  i <- i+1
}

z1
[1] 8.333333

No. 3

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

x = {13, 7, 6, 45, 21, 9, 101, 102}

Algoritma :

  1. Baca data x i (i=1,2,3 , …,
  2. i=1
  3. j=i+1
  4. Jika x[i] < x[j] , lanjutkan ke langkah 5 Selainnya, pertukarkan nilai x[j] dengan x[i] 5.j=j +1
  5. Jika j<=n, lanjutkan ke langkah 4 Selainnya, i=i+1 dan j=i+1
  6. Jika i<=n, lanjutkan ke langkah 4 Selainnya print x[i], (i=1, 2, 3, …,
  7. Selesai

Sintaks R

x_sort <- function(x){
  
  # menampung hasil x yang telah disortir
  sort.x <- x
  
  # menentukan panjang vektor
  n <- length(x)
  
  #iterasi tingkat 1
  for (i in 1:(n - 1)){
    
    # iterasi tingkat 2
    for(j in 1:(n-i)){
      
      if(sort.x[j+1] < sort.x[j]){
        tmp <- sort.x[j]
        sort.x[j] <- sort.x[j+1]
        sort.x[j+1] <- tmp
      }
    }
  }
  return(sort.x)
}

x <- c(13, 7, 6, 45, 21, 9, 101, 102)

x_sort(x)
[1]   6   7   9  13  21  45 101 102
# perbnadingan ddengan fungsi sort yang ada di R
sort(x)
[1]   6   7   9  13  21  45 101 102