Section Artikel
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.
Gunakan keyword function()
untuk membuat fungsi pada R:
function_name <- function(arg_1, arg_2, ...) {
Function body
}
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.
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
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!"
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"
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
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
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
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.
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.
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
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
Ada dua cara untuk membuat fungsi bertingkat / bersarang (nested), yaitu:
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).
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
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
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.