Tugas Praktikum Pertemuan 8 ProgStat

Syaza Abdu Razzaq

30/10/2021

Soal

A. Hitung Deret

Susunlah sintaks R untuk penjumlahan deret berikut!

\[ Z=1+1+1/2 + 1/3+1/5+1/8+⋯\]

formula1 <- function(init.values = c(1,1), tolerance = 1e-5 ){
  
  formula1 <- sum(1/init.values)
  
  end.loop <- FALSE
  while(!end.loop){
    new.value <- sum(init.values) 
    new.value.inv <- 1/new.value
    formula1 <- formula1 + new.value.inv
  
    init.values <- c(init.values, new.value)[-1]

    # periksa kriteria stoping
    if(new.value.inv < tolerance){ end.loop <- TRUE }
    
    }
  
  return(formula1)
  
}
Z <- formula1()
Z
## [1] 3.359872

B. Hitung Deret

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

formula2 <- function(i=0, tolerance = 1e-5){
  
 jumlah.deret <- 0
  
  end.loop <- FALSE
  while(!end.loop){
    new.value <- (10)*(-1/5)^i
    jumlah.deret <- jumlah.deret + new.value
  
  i <- i+1
  
  if(abs(new.value) < tolerance){ end.loop <- TRUE }
  
  }
  
  return(jumlah.deret)
  
}
Test<-formula2()
Test
## [1] 8.333332

C. Sort Data

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

data.sort <- function(data.vector, sortdata = "asc"){
  
  n <- length(data.vector)
  for(i in 1:(n-1)) {
    for(j in (i+1):n) {
      
      if((sortdata == "asc"  && data.vector[i] > data.vector[j]) || 
         (sortdata == "desc" && data.vector[i] < data.vector[j])) {
        
        a <- data.vector[i]
        data.vector[i] <- data.vector[j]
        data.vector[j] <- a
      }
      
    }
  }
  
  return(data.vector)
}

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

#Sort Ascending
data.sort(x)
## [1]   6   7   9  13  21  45 101 102
#Sort Descending
data.sort(x, "desc")
## [1] 102 101  45  21  13   9   7   6
#Compare dengan fungsi sort
sort(x)
## [1]   6   7   9  13  21  45 101 102
sort(x, decreasing = T)
## [1] 102 101  45  21  13   9   7   6