Skip to content Skip to sidebar Skip to footer

Loop dan Vektorisasi Pada Bahasa Pemrograman R

Loop dan Vektorisasi Pada Bahasa Pemrograman R



R memiliki beberapa fitur untuk pemrograman yang mirip dengan bahasa C. Format loop dan pengecekan kondisi pada R adalah :

 

for (name in expr_1) expr_2

 

if (expr_1) expr_2 else expr_3


Misal, jika kita memiliki sebuah vektor x, dan tiap elemen x dengan nilai b, kita ingin memberikan nilai 0 ke variable y, maka programnya sebagai berikut:

 

>y <- numeric(length(x))

for (i in 1:length(x)) if (x[i] == b) y[i] <- 0 else y[i] <- 1

 

 

Beberapa instruksi dapat dieksekusi berbarengan jika diletakkan di dalam kurung kurawal :

 

for (i in 1:length(x)) { y[i] <- 0

...

}

if (x[i] == b) { y[i] <- 0

...

}

 

Selain itu, kita dapat mengeksekusi instruksi selagi kondisi true menggunakan while

 

while (myfun > minimum) {

...

}

 

Kita juga dapat menggunakan vektorisasi untuk loop pada pemberian nilai berulang, misalnya


>  z <- numeric(length(x))

>  for (i in 1:length(z)) z[i] <- x[i] + y[i]

 

 

6.1  Membuat Fungsi Sendiri

Membuat fungsi sendiri sangat dibutuhkan pada pemrograman tingkat lanjut R. Biasanya fungsi kita buat agar program utama kita mampu lakukan berbagai instruksi dengan baik pada 1 file R. Format penulisan fungsi adalah sebagai berikut:

 

name <- function(arg_1, arg_2, ...)

 

Sebagai contoh, jika kita ingin membuat fungsi bernama myfun yang membutuhkan 2 parameter untuk plot data, dan melakukan beberapa aksi, dapat digunakan contoh berikut yang dibuat pada script baru dan disimpan dengan nama file buatfungsi.r.

 

myfun <- function(S, F)

{

data <- read.table(F) plot(data$V1, data$V2, type="l") title(S)

}

 

Lalu memanggil fungsi terebut dapat digunakan perintah di bawah ini:

layout(matrix(1:3, 3, 1))


myfun("swallow", "Swal.dat") myfun("wren", "Wrenn.dat") myfun("dunnock", "Dunn.dat")

 

Contoh lainnya dengan parameter fungsi yang sudah kita tentukan sebagai berikut:

 

ricker <- function(nzero, r, K=1, time=100, from=0, to=time)

{

N <- numeric(time+1)

N[1] <- nzero

for (i in 1:time) N[i+1] <- N[i]*exp(r*(1 - N[i]/K))

Time <- 0:time

plot(Time, N, type="l", xlim=c(from, to))

}

 

Lalu jalankan fungsi diatas dengan memanggilnya sebagai berikut:

 

>  layout(matrix(1:3, 3, 1))

>  ricker(0.1, 1); title("r = 1")

>  ricker(0.1, 2); title("r = 2")

>  ricker(0.1, 3); title("r = 3")

Gambar 6.1 Contoh grafik dari hasil pemanggilan fungsi

Gambar 6.1 Contoh grafik dari hasil pemanggilan fungsi

 

 

Dari gambar 6.1 diatas, terlihat bahwa dengan memiliki kemampuan pemrograman fungsi, program yang dijalankan bs lebih dinamis dan handal.


 


Post a Comment for "Loop dan Vektorisasi Pada Bahasa Pemrograman R"

close