Home » R » Tutorial R Language : Function Pada R Language

Tutorial R Language : Function Pada R Language

by Hanifah Nurbaeti
by Hanifah Nurbaeti

Definisi Fungsi(Function)

Fungsi adalah sekumpulan pernyataan yang disusun bersama untuk melakukan tugas tertentu. R Language memiliki sejumlah besar fungsi built-in dan pengguna dapat membuat fungsinya sendiri.

Fungsi juga dapat berarti blok kode yang hanya berjalan saat dipanggil. Fungsi atau function ini digunakan untuk mengirimkan data yang di kenal sebagai parameter ke dalam suatu fungsi dan akan mengembalikan data sebagai hasilnya atau outputnya.

Di R, fungsi adalah sebuah objek sehingga interpreter R dapat meneruskan kontrol ke fungsi tersebut, bersama dengan argumen yang mungkin diperlukan agar fungsi tersebut menyelesaikan tindakannya.

Fungsi tersebut pada gilirannya akan melakukan tugasnya dan mengembalikan kontrol ke interpreter serta hasil apa pun yang mungkin disimpan di objek lain.

Syntax

Gunakan keyword function() untuk membuat fungsi pada R:

function_name <- function(arg_1, arg_2, ...) {
   Function body 
}

Komponen Function

Beberapa bagian yang berbeda dari function pada R Language adalah :

  • Function Name – Ini adalah nama sebenarnya dari fungsi tersebut. Disimpan di lingkungan R sebagai objek dengan nama ini.
  • Argumen – Argumen adalah sebuah placeholder. Saat suatu fungsi dipanggil, maka R meneruskan nilai ke argumen. Argumen bersifat opsional; artinya, suatu fungsi boleh tidak berisi sebuah argumen. Argumen juga dapat memiliki nilai default.
  • Function Body – Function Body dapat berisi kumpulan pernyataan yang mendefinisikan fungsi.
  • Return Value – Nilai kembali dari suatu fungsi adalah ekspresi terakhir dalam badan fungsi yang akan dievaluasi.

R memiliki banyak fungsi built-in yang dapat langsung dipanggil dalam program tanpa mendefinisikannya terlebih dahulu. Kita juga dapat membuat dan menggunakan fungsi sendiri yang disebut sebagai fungsi yang ditentukan pengguna.

Membuat Fungsi

Jangan lupa untuk membuat sebuah fungsi, gunakan kata kunci function():

Contoh

my_function <- function() { # buat fungsi dengan nama my_function
  print("Hello World!")
}

#belum ada output karena belum dipanggil fungsinya

Panggil Fungsi

Untuk memanggil suatu fungsi, gunakan nama fungsi diikuti dengan tanda kurung, seperti my_function():

Contoh

my_function <- function() {
  print("Hello World!")
}

my_function() # panggil fungsi bernama my_function

Output :

[1] "Hello World!"

Argumen

Suatu informasi dapat dimasukkan ke dalam fungsi sebagai argumen.

Argumen dapat ditentukan setelah nama fungsi, di dalam tanda kurung. Bisa juga menambahkan argumen sebanyak yang diinginkan, cukup pisahkan dengan koma.

Contoh berikut memiliki fungsi dengan satu argumen (fname). Saat fungsi dipanggil, R akan meneruskan nama depan, yang digunakan di dalam fungsi untuk mencetak nama lengkap:

Contoh

my_function <- function(fname) {
  paste(fname, "Stark")
}

my_function("Peter")
my_function("Lois")
my_function("Stewie")

Output :

[1] "Peter Stark"
[1] "Lois Stark"
[1] "Stewie Stark"

Memanggil Fungsi tanpa Argumen

Contoh :

# Buat fungsi tanpa argumen.
new.function <- function() {
   for(i in 1:5) {
      print(i^2)
   }
}	

# Panggil fungsi tanpa memberikan argumen.
new.function()

Output :

[1] 1
[1] 4
[1] 9
[1] 16
[1] 25

Memanggil Fungsi dengan Nilai Argumen (menurut posisi dan nama)

Argumen ke pemanggilan fungsi dapat diberikan dalam urutan yang sama seperti yang ditentukan dalam fungsi atau dapat diberikan dalam urutan yang berbeda tetapi ditetapkan ke nama argumen.

Contoh :

# Buat fungsi dengan argumen
new.function <- function(a,b,c) {
   result <- a * b + c
   print(result)
}

# panggil fungsi sesuai posisi argumen.
new.function(5,3,11)

# Panggil fungsi seuai nama argumen.
new.function(a = 11, b = 5, c = 3)

Output :

[1] 26
[1] 58

Memanggil Fungsi dengan Argumen Default

Kita dapat mendefinisikan nilai argumen dalam definisi fungsi dan memanggil fungsi tersebut tanpa memberikan argumen apa pun untuk mendapatkan hasil default. Tapi kita juga bisa memanggil fungsi tersebut dengan memberikan nilai baru dari argumen dan mendapatkan hasil non default.

Contoh :

# Buat fungsi dengan argumen
new.function <- function(a = 3, b = 6) {
   result <- a * b
   print(result)
}

# Panggil fungsi tanpa memberikan argumen apa pun.
new.function()

# Panggil fungsi dengan memberikan nilai baru dari argumen.
new.function(9,5)

Output :

[1] 18
[1] 45

Parameter atau Argumen?

Istilah “parameter” dan “argumen” dapat digunakan untuk hal yang sama, yaitu sama-sama untuk memberikan informasi yang dikirimkan ke dalamsuatu fungsi.

Dari perspektif fungsi:

Parameter adalah variabel yang terdaftar di dalam tanda kurung dalam definisi fungsi.

Argumen adalah nilai yang dikirim ke fungsi saat dipanggil.

Jumlah Argumen

Secara default, fungsi harus dipanggil dengan jumlah argumen yang benar. Artinya jika fungsi mengharapkan 2 argumen, maka harus memanggil fungsi dengan 2 argumen tersebut, tidak lebih, dan tidak kurang:

Contoh
Fungsi ini mengharapkan 2 argumen, dan mendapat 2 argumen:

my_function <- function(fname, lname) {
  paste(fname, lname)
}

my_function("Tony", "Griffin")

Output :

[1] “Tony Griffin”

Jika ingin mencoba memanggil fungsi dengan 1 atau 3 argumen, maka kita akan menemukan error:

Contoh
Fungsi ini mengharapkan 2 argumen dan mendapat 1 argumen, maka yang terjadi adalah error:

my_function <- function(fname, lname) {
  paste(fname, lname)
}

my_function("Tony")

Output :

Error in paste(fname, lname) :
  argument "lname" is missing, with no default
Calls: my_function -> print -> paste
Execution halted

artinya :

Eksekusi dihentikan karena tidak terdapat argumen “lname” sedangkan pada fungsi dideskripsikan ada argumen “lname”. Jadi argumen “lname” harus di isi tidak bisa dibiarkan kosong.

Nilai Parameter Default

Contoh berikut menunjukkan cara menggunakan nilai parameter default.

Jika kita memanggil fungsi tanpa argumen, maka kita gunakan nilai default:

Contoh

my_function <- function(country = "Indonesia") {
  paste("Saya dari", country)
}

my_function("Swedia")
my_function("India")
my_function() # akan mendapatkan nilai default, yaitu Indonesia
my_function("Jepang")

Output :

[1] “Saya dari Swedia”
[1] “Saya dari India”
[1] “Saya dari Indonesia”
[1] “Saya dari Jepang

Return Values

Gunakan fungsi retun() untuk mengembalikan hasil dari fungsi yang di buat :

Contoh

my_function <- function(x) {
  return (5 * x)
}

print(my_function(3))
print(my_function(5))
print(my_function(9))

Output :

[1] 15
[1] 25
[1] 45

Fungsi Bersarang

Ada dua cara untuk membuat fungsi bertingkat / bersarang (nested), yaitu:

  • Panggil fungsi di dalam fungsi lain.
  • Tulis fungsi di dalam fungsi.

Contoh 1
Panggil fungsi dalam fungsi lain:

Nested_function <- function(x, y) {
  a <- x + y
  return(a)
}

Nested_function(Nested_function(2,2), Nested_function(3,3))

Output :

[1] 10

Penjelasan Kode

Fungsinya digunakan utnuk memberitahu x untuk menambahkan y.

Input pertama adalah Nested_function (2,2) adalah “x” dari fungsi utama.

Input kedua adalah Nested_function (3,3) adalah “y” dari fungsi utama.

Oleh karena itu, outputnya sebagai berikut : (2 + 2) + (3 + 3) = 10.

Contoh 2
Tulis fungsi di dalam suatu fungsi:

Outer_func <- function(x) {
  Inner_func <- function(y) {
    a <- x + y
    return(a)
  }
  return (Inner_func)
}
output <- Outer_func(3) # untuk memanggil fungsi  Outer_func
output(5)

Output :

[1] 8

Penjelasan Kode

Kita tidak bisa langsung memanggil fungsi karena Inner_func telah didefinisikan (bersarang) di dalam Outer_func.

Maka, kita perlu memanggil Outer_func terlebih dahulu untuk memanggil Inner_func sebagai langkah kedua.

Kita perlu membuat variabel baru yang disebut output dan memberinya nilai, yaitu 3 di sini.

Kemudian cetak output dengan nilai yang diinginkan dari “y”, yang dalam hal ini adalah 5.

Oleh karena itu, keluarannya adalah 8 (3 + 5).

Recursion(Perulangan)

R juga dapat menerima rekursi fungsi, yang berarti fungsi yang ditentukan dapat memanggil dirinya sendiri.

Rekursi adalah konsep matematika dan pemrograman yang umum. Artinya suatu fungsi dapat memanggil dirinya sendiri untuk dapat melakukan perulangan(rekursi) melalui data untuk mencapai hasil.

Pengembang harus sangat berhati-hati dengan rekursi karena dapat dengan mudah tergelincir ke dalam penulisan fungsi yang tidak pernah berhenti, atau yang menggunakan memori atau daya prosesor dalam jumlah berlebih. Namun, bila ditulis dengan benar, rekursi bisa menjadi pendekatan pemrograman yang sangat efisien dan elegan secara matematis.

Dalam contoh ini kita memiliki contoh, tri_recursion () adalah fungsi yang telah kita definisikan untuk memanggil dirinya sendiri (“recurse”). Kita akanmenggunakan variabel k sebagai data, yang berkurang (-1) setiap kali kita lakuka pengulangan atau rekursi . Rekursi berakhir ketika kondisinya tidak lebih besar dari 0 (yaitu ketika 0).

Bagi developer baru, perlu beberapa waktu untuk mengetahui cara kerjanya, cara terbaik untuk mengetahuinya adalah dengan menguji dan memodifikasinya.

Contoh

tri_recursion <- function(k) {
  if (k > 0) {
    result <- k + tri_recursion(k - 1)
    print(result)
  } else {
    result = 0
    return(result)
  }
}
tri_recursion(6)

Output :

[1] 1
[1] 3
[1] 6
[1] 10
[1] 15
[1] 21

Built-in Function(Fungsi bawaan)

Contoh sederhana dari fungsi built-in adalah seq(), mean(), max(), sum(x) dan paste(…) dll. Fungsi tersebut secara langsung dipanggil oleh program yang ditulis oleh pengguna.

Contoh

# Buat urutan angka dari 32 hingga 44(sequence).
print(seq(32,44))

# Temukan rata-rata angka dari 25 hingga 82(mean).
print(mean(25:82))

# Temukan jumlah angka dari 41 hingga 68(sum).
print(sum(41:68))

Output :

[1] 32 33 34 35 36 37 38 39 40 41 42 43 44
[1] 53.5
[1] 1526

Lazy Evaluation of Function

Argumen ke fungsi dievaluasi secara lazy evaluation yang artinya, argumen ke fungsi hanya dievaluasi saat diperlukan oleh function body.

Contoh

# Buat sebuah fungsi dengan argumen.
new.function <- function(a, b) {
   print(a^2)
   print(a)
   print(b)
}

# Evaluasi fungsi tanpa memasukkan salah satu argumen.
new.function(6)

Output :

[1] 36
[1] 6
Error in print(b) : argument "b" is missing, with no default

Sekian dulu penjelasan mengenai function atau fungsi yang ada pada R. Semoga mudah untuk dipelajari yaaa.

You may also like