Soal Latihan

  1. Misalkan saja ada sebuah vektor \(x=[3,1,4,1,5,9,2,6,5]\) buat program untuk mengurutkan vektor tersebut dari kecil ke besar, kemudian bandingkan hasilnya dengan fungsi sort! Gunakan algoritme pada slide kuliah ke-16 !
x=c(3,1,4,1,5,9,2,6,5)
n=length(x)
while (is.unsorted(x)) {
  for (i in 1:(n - 1)) {
    j=i+1
    if (x[i] > x[j]) {
      tmp <- x[i]
      x[i] <- x[j]
      x[j] <- tmp
    }
  }
  print(x)
}
## [1] 1 3 1 4 5 2 6 5 9
## [1] 1 1 3 4 2 5 5 6 9
## [1] 1 1 3 2 4 5 5 6 9
## [1] 1 1 2 3 4 5 5 6 9
x
## [1] 1 1 2 3 4 5 5 6 9

Perbandingan dengan Fungsi Sort

sort(x)
## [1] 1 1 2 3 4 5 5 6 9

Dapat dilihat bahwa hasilnya sama.

  1. Berdasarkan jawaban nomor 1, Buatlah fungsi yang bernama fungsi_urutan dengan yang memiliki input x dan outputnya merupakan vector yang sudah terurut!
x=c(3,1,4,1,5,9,2,6,5)
n=length(x)
fungsi_urutan_awal <- function(x) {
  for (i in 1:(n - 1)) {
    j=i+1
    if (x[i] > x[j]) {
      tmp <- x[i]
      x[i] <- x[j]
      x[j] <- tmp
    }
  }
  x
}
fungsi_urutan <- function(x) {
  while (is.unsorted(x)) {
    x <- fungsi_urutan_awal(x)
  }
  x
}
fungsi_urutan(x)
## [1] 1 1 2 3 4 5 5 6 9
  1. Susunlah sintaks R untuk penjumlahan deret berikut! \(z=2−\frac65+\frac{8}{10}−\frac{10}{17}+\frac{12}{26}−...\) hint: Cari terlebih dahulu formula/rumus dari deret tersebut

Jawaban:

Rumus dari deret tersebut adalah \(z=\sum_{n=1}^n (−1)^{n+1} \frac{2n+2}{n^2+1}\)

  1. Menuliskan rumus fungsi dalam bentuk function
fz <- function(n){
  (-1)^(n+1)*((2*n+2)/((n^2)+1))
}
  1. Mendefinisikan kriteria Stopping
stopping_criteria <- function(y_current,y_before){
  abs(y_current-y_before)
}
  1. Mendefinisikan nilai-nilai awal
#nilai awal kriteria stopping
error <- 10
#nilai awal deret
z0 <- 0
# nilai awal iterasi
n <- 1
  1. Menuliskan iterasi untuk mencari jumlah deret
while (error>0.00001) {
  z <- z0 + fz(n)
  error <- stopping_criteria(z,z0)
  z0 <- z
  n <- n+1
}
# final result
z 
## [1] 1.267197
# criteria stopping
error
## [1] 1e-05
  1. Susunlah sintaks R untuk penjumlahan deret berikut!\(z=\frac{2}{5}+\frac{3}{40}+\frac{6}{135}+\frac{11}{320}+\frac{18}{625}+\frac{27}{1080}+...\)

hint: Cari terlebih dahulu formula/rumus dari deret tersebut

Jawaban:

Rumus dari deret tersebut adalah \(z=\sum_{n=1}^n \frac{n^2-2n+3}{5n^3}\)

  1. Menuliskan rumus fungsi dalam bentuk function
fz4 <- function(n){
  ((n*2-2*n+3)/((5*n^3)))
}
  1. Mendefinisikan kriteria Stopping
stop4 <- function(y_current,y_before){
  abs(y_current-y_before)
}
  1. Mendefinisikan nilai-nilai awal
#nilai awal kriteria stopping
error <- 10
#nilai awal deret
z0 <- 0
# nilai awal iterasi
n <- 1
  1. Menuliskan iterasi untuk mencari jumlah deret
while (error>0.00001) {
  z <- z0 + fz4(n)
  error <- stop4(z,z0)
  z0 <- z
  n <- n+1
}
# final result
z 
## [1] 0.7210513
# criteria stopping
error
## [1] 9.375e-06