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