Tutorial R
Suatu kegiatan yang dilakukan secara berulang-ulang dapat ditangani dengan membuat fungsi yang dapat kita panggil secara berulang. Untuk membuat fungsi dalam R, kita gunakan perintah function()
.
Suatu kegiatan yang dilakukan secara berulang-ulang atau sangat kompleks dapat ditangani dengan membuat sebuah fungsi (function) yang dapat kita panggil/gunakan secara berulang sehingga pekerjaan kita akan lebih efektif.
Namun, sebelum membuat fungsi ada baiknya kita periksa dulu apakah fungsi yang diinginkan telah dibuat oleh orang lain. Jika fungsi tersebut telah dibuat orang lain, kita dapat menggunakan fungsi tersebut dan tidak perlu lagi susah payah membuatnya sendiri.
Untuk membuat fungsi dalam R, kita gunakan perintah function()
. Perhatikan sintaks untuk membuat fungsi berikut.
name <- function(arg1, arg2,...) {
expression
}
Arg1, Arg2...
adalah argumen yang akan diberikan kepada ekspresi berikutnya. Untuk mengembalikan hasil perhitungan dari ekspresi yang diberikan gunakan perintah retun()
atau cat()
. Perhatikan perbedaan keduanya dengan melihat contoh fungsi beserta output yang dihasilkan di bawah ini.
# Fungsi tanpa argumen
# Fungsi ini mengembalikan "Hello World"
f <- function() {
cat("Hello World!\n")
}
f()
Hello World!
# Fungsi berikut mempunyai argumen dan menentukan
# berapa banyak "Hello World" yang ingin ditampilkan.
f <- function(num) {
for(i in seq_len(num)) {
cat("Hello, World!\n")
}
}
f(3)
Hello, World!
Hello, World!
Hello, World!
# Fungsi dengan dua argumen
# Fungsi pangkat
pangkat <- function(x, pow) {
x^pow
}
pangkat(2,5)
[1] 32
## Fungsi jumlah nilai ##
intsum <- function(from, to) {
sum <- 0
for(i in from:to)
sum <- sum + i
return(sum)
}
intsum(from=1, to=5)
[1] 15
intsum(1, 5)
[1] 15
## Fungsi menampilkan barisan Fibonacci
fibo <- function(n) {
x <- c(0,1)
while (length(x) < n) {
position <- length(x)
new <- x[position] + x[position-1]
x <- c(x, new)
}
return(x)
}
fibo(10)
[1] 0 1 1 2 3 5 8 13 21 34
## Fungsi untuk memilih operasi penghitungan
exp1 <- function(x, type) {
switch(type,
kuadrat = x^2,
akar = sqrt(x)
)
}
x <- 1:5
exp1(x, "kuadrat")
[1] 1 4 9 16 25
exp1(x, "akar")
[1] 1.000000 1.414214 1.732051 2.000000 2.236068
## Membuat tabel perkalian ##
kali <- function(N) { # buat matriks hasil
mat = matrix(nrow = N, ncol = N)
for(i in 1:dim(mat)[1]) { # loop per baris
for(j in 1:dim(mat)[2]) { # loop per kolom
mat[i,j] = i*j # Perkalian
}
cat(i)
}
return(mat)
}
hasil <- kali(6)
123456
hasil
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 1 2 3 4 5 6
[2,] 2 4 6 8 10 12
[3,] 3 6 9 12 15 18
[4,] 4 8 12 16 20 24
[5,] 5 10 15 20 25 30
[6,] 6 12 18 24 30 36
## Membuat grafik dari fungsi matematika ##
x <- seq(-2, 2, by = 0.1)
y <- seq(-2, 2, by = 0.1)
f2 <- function(x,y) {
x^2y^2
}
z <- outer(x, y, f2)
persp(x, y, z, phi = 30, col = 2)
## Membuat grafik dari fungsi matematika ##
x <- seq(-10, 10, length=30)
y <- x
f <- function(x,y) {
r <- sqrt(x^2+y^2)
return(10*sin(r)/r)
}
z <- outer(x, y, f)
z[is.na(z)] <- 1
persp(x, y, z, col = "red")
Always walk through life as if you have something new to learn and you will.
Vernon Howard