www.jagostat.com

www.jagostat.com

Website Belajar Matematika & Statistika

Website Belajar Matematika & Statistika

Tutorial R   »   Dasar-dasar Pemrograman R   ›  Membuat Fungsi dalam Pemrograman R
Pemrograman R

Membuat Fungsi dalam Pemrograman 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().


Flag Counter

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")
                
              
Artikel Terkait

Always walk through life as if you have something new to learn and you will.