repeat,
while, return) pada Fungsi di Rrepeat Statement# Fungsi dengan perulangan repeat
cobarepeat <- function(n) {
data <- NULL
if (n > 0) {
repeat {
data[n] <- n
n <- n - 1
if (n == 0) break
}
data
} else {
cat("Pesan kesalahan: n harus positif! \n")
}
}
# Uji fungsi
cobarepeat(10)
## [1] 1 2 3 4 5 6 7 8 9 10
cobarepeat(-1)
## Pesan kesalahan: n harus positif!
Fungsi cobarepeat() menggunakan perulangan
repeat untuk mengisi vektor data dari
n hingga 1.
Jika n <= 0, akan muncul pesan
kesalahan.
repeat akan terus berjalan hingga kondisi
n == 0 terpenuhi, lalu break.
while Statement# Fungsi dengan perulangan while
cobarepeat2 <- function(n) {
data <- NULL
if (n > 0) {
while (n > 0) {
data[n] <- n
n <- n - 1
}
data
} else {
cat("Pesan kesalahan: n harus positif! \n")
}
}
# Uji fungsi
cobarepeat2(10)
## [1] 1 2 3 4 5 6 7 8 9 10
cobarepeat2(-1)
## Pesan kesalahan: n harus positif!
Fungsi cobarepeat2() memakai perulangan
while, lebih aman karena ada kondisi eksplisit.
Mengisi data[n] dengan nilai n, menurun
hingga 1.
Struktur logikanya hampir sama dengan versi repeat,
hanya beda bentuk kontrol.
repeat dan return# Fungsi dengan repeat dan return
cobarepeat3 <- function(n) {
data <- NULL
if (n > 0) {
repeat {
data[n] <- n
n <- n - 1
if (n == 0) return(data)
}
data # sebenarnya tidak akan sampai sini karena return lebih dulu
} else {
cat("Pesan kesalahan: n harus positif! \n")
}
}
# Uji fungsi
cobarepeat3(10)
## [1] 1 2 3 4 5 6 7 8 9 10
cobarepeat3(-1)
## Pesan kesalahan: n harus positif!
Fungsi cobarepeat3() mirip dengan
cobarepeat(), namun menggunakan return() untuk
mengembalikan hasil dan langsung keluar dari fungsi.
return(data) memastikan hasil langsung dikembalikan
saat selesai, tanpa melanjutkan proses.
Perlu dicatat bahwa bagian data di luar
repeat sebenarnya tidak akan dijalankan karena sudah
return.