Tugas Praktikum 8
Algoritma Iteratif
Perulangan iteratif merupakan perulangan yang melakukan proses perulangan terhadap sekelompok instruksi di mana perulangan tersebut akan berhenti jika batasan syarat sudah tidak terpenuhi.
Algoritma iteratif
Teknik Iteratif merupakan suatu teknik pembuatan algoritma dengan pemanggilan procedure beberapa kali atau hingga suatu kondisi tertentu terpenuhi.
Tidak ada variabel lokal baru
Program tidak sederhana
Menggunakan perulangan for dan while
Perulangan iteratif merupakan perulangan yang melakukan proses perulangan terhadap sekelompok intruksi. Perulangan dilakukan dalam batasan syarat tertentu. Ketika syarat tersebut tidak terpenuhi lagi maka perulangan akan terhenti.
Kelebihan perulangan iteratif:
Mudah dipahami dan mudah melakukan debugging ketika ada perulangan yang salah.
Dapat melakukan nested loop atau yang disebut dengan looping bersarang.
Jarang terjadi overflow karena batasan dan syarat perulangan yang jelas.
Kelemahan perulangan iteratif:
Tidak dapat menggunakan batasan berupa fungsi.
Perulangan dengan batasan yang luas akan menyulitkan dalam pembuatan program perulangan itu sendiri.
Nomor 1
Susunlah sintaks R untuk penjumlahan deret berikut!
\[𝑧 = 1 + 1 + \frac{1}{2} + \frac{1}{3} + \frac{1}{5} + \frac{1}{8}+ ⋯ \]
a = 1
b = 1
i = 1
z = 0
e = 1
while(e > 10^(-5)){
if(i==1){
y = z + 1/a
}
else if(i==2){
y = z + 1/b
}
else{
c = a+b
a = b
b = c
y = z + 1/c
e = abs(y-z)
}
z = y
i = i+1
}z## [1] 3.359872
e## [1] 8.237707e-06
Nomor 2
Susunlah sintaks R untuk penjumlahan deret berikut!
\[ z = 10-2+0.4-0.08+... \]
i <- 1
x <- 10
e <- 10
z0 <- 0
while (e > 10^(-5)){
a <- (-1)^(i+1)
z1 <- z0 + a*x
x <- x/5
e <- abs(z1-z0)
i <- i + 1
z0 <- z1
}z1## [1] 8.333332
e## [1] 5.12e-06
Nomor 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] \]
x <- c(13, 7, 6, 45, 21, 9, 101, 102)
fungsiUrutan <- function(x){
# jumlah amatan
n <- length(x)
# Iterasi 1
for (i in 1:n) {
j <- i+1
# Iterasi 2
for (j in 1:n) {
# Pemeriksaan kondisi apakah elemen ke-j+1 lebih besar dari elemen ke-j
if(x[i] > x[j]) {
simp <- x[i]
x[i] <- x[j]
x[j] <- simp}
}
}
return(x)
}# Menerapkan fungsi urutan
fungsiUrutan(x)## [1] 102 101 45 21 13 9 7 6