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