Mata Kuliah : Kalkulus

Prodi : Teknik Informatika

Lembaga : Universitas Islam Negeri Maulana Malik Ibrahim Malang

1. Apa itu fungsi (function)?

Fungsi (function) dalam adalah kode-kode yang disusun untuk melakukan tugas tertentu, seperti perhitungan matematis, pembacaan data, analisis statistik, dan lainnya. Seperti halnya fungsi matematika yang kita kenal, f(x)f(x), yang akan memetakan nilai x1x1 ke f(x1)f(x1) sesuai dengan aturan pemetaannya. Dalam fungsi R, fungsi membutuhkan (atau tidak membutuhkan) input (seperti x1x1), kemudian akan mengeluarkan output (seperti halnya f(x1)f(x1)).

Struktur fungsi dalam R, adalah sebagai berikut:

fungsiku <- function (argument1, argument2, …){
statements
return (object)
}

Keterangan:
1. Nama fungsi: untuk membuat fungsi, dahului dengan nama fungsi tersebut.
2. Argument: argumen merupakan input fungsi.
3. Statement: merupakan badan fungsi yang berisi pernyataan/perintah yang dibuka dan ditutup menggunakan kurung kurawal {}.
4. Return: perintah untuk mendefinisikan output fungsi tersebut.

Contoh fungsi untuk menghitung luas suatu segitiga. Untuk menghitung luas segitiga, diperlukan nilai input panjang alas dan tinggi.

luassegitiga <- function(a, t){
  luas = 0.5*a*t
  return(luas)
}

Untuk menggunakan fungsi tersebut, cukup ketikkan nama fungsi beserta inputnya pada console/script R, contoh:

luassegitiga(4, 8)

## [1] 16

Kita dapat pula membuat fungsi dengan input yang dapat diisikan atau diabaikan. Misalkan, buat fungsi perkalian f(a,b,c.d)=a∗b∗c/df(a,b,c.d)=a∗b∗c/d, namun variabel cc dan dd dapat diisi suatu nilai atau diabaikan. Apabila variabel dd diabaikan, maka fungsi akan menjadi f(a,b,c)=a∗b∗cf(a,b,c)=a∗b∗c. Apabila variabel cc diabaikan, maka fungsi akan menjadi f(a,b,d)=a∗b/df(a,b,d)=a∗b/d dan hal serupa apabila keduanya diabaikan. Fungsi demikian, dapat dituliskan sebagai berikut:

perkalian <- function(a, b, c = TRUE, d = TRUE){
  kali = a*b*c/d
  return(kali)
}

perkalian(4, 3, d = 2)

## [1] 6

2.Pengenalan Fungsi Pada R

Fungsi merupakan sekumpulan instruksi atau statement yang dapat melakukan tugas khusus. Sebagai contoh fungsi perkalian untuk menyelesaikan operasi perkalian, fungsi pemangkatan hanya untuk operasi pemangkatan, dll.

Pada R terdapat 2 jenis fungsi, yaitu: build in fuction dan user define function. build in fnction merupakan fungsi bawaan R saat pertama kita menginstall R. Contohnya adalah mean(), sum(), ls(), rm(), dll. Sedangkan user define fuction merupakan fungsi-fungsi yang dibuat sendiri oleh pengguna.

Fungsi-fungsi buatan pengguna haruslah dideklarasikan (dibuat) terlebih dahulu sebelum dapat dijalankan. Pola pembentukan fungsi adalah sebagai berikut:

function_name <- function(argument_1, argument_2, ...){
  function body
}

Catatan:

  • function_name : Nama dari fungsi R. R akan menyimpan fungsi tersebut sebagai objek

  • argument_1, argument_2, … : Argument bersifat opsional (tidak wajib). Argument dapat digunakan untuk memberi inputan kepada fungsi

  • function body : Merupakan inti dari fungsi. Fuction body dapat terdiri atas 0 statement (kosong) hingga banyak statement.

  • return : Fungsi ada yang memiliki output atau return value ada juga yang tidak. Jika fungsi memiliki return value maka return value dapat diproses lebih lanjut

Berikut adalah contoh penerapan user define function:

# Fungsi tanpa argument
bilang <- function(){
  print("Hello World!!")
}

# Print
bilang()

## [1] "Hello World!!"

# Fungsi dengan argumen
tambah <- function(a,b){
  print(a+b)
}

# Print
tambah(5,3)

## [1] 8

# Fungsi dengan return value
kali <- function(a,b){
  return(a*b)
}

# Print
kali(4,3)

## [1] 12

2. Pengenalan Debugging Pada R

Sering kali fungsi atau sintaks yang kita tulis menghasilkan error sehingga output yang kita harapkan tidak terjadi. Debugging merupakan langkah untuk mengecek error yang terjadi. Untuk lebih memahami proses debugging, berikut penulis sajikan contoh error pada suatu fungsi dapat terjadi:

f1 <- function(x){
  xsq <- x^2
  xsqminus4 <- xsq - 4
  print(xsqminus4)
  log(xsqminus4-4)
}

f1(6:1)

## [1] 32 21 12  5  0 -3

## Warning in log(xsqminus4 - 4): NaNs produced

## [1] 3.332 2.833 2.079 0.000   NaN   NaN

Untuk mengecek error yang terjadi dari sintaks tersebut, kita dapat menggunakan fungsi debug(). Pembaca tinggal memasukkan nama fungsi kedalam fungsi debug(). Fungsi tersebut akan secara otomatis akan menampilkan hasil samping dari pengaplikasian fungsi f1() untuk melihat sumber atau tahapan dimana error mulai muncul.

debug(f1)
f1(1:6)

## debugging in: f1(1:6)
## debug at <text>#1: {
##     xsq <- x^2
##     xsqminus4 <- xsq - 4
##     print(xsqminus4)
##     log(xsqminus4 - 4)
## }
## debug at <text>#2: xsq <- x^2
## debug at <text>#3: xsqminus4 <- xsq - 4
## debug at <text>#4: print(xsqminus4)
## [1] -3  0  5 12 21 32
## debug at <text>#5: log(xsqminus4 - 4)

## Warning in log(xsqminus4 - 4): NaNs produced

## exiting from: f1(1:6)

## [1]   NaN   NaN 0.000 2.079 2.833 3.332

Berdasarkan hasil debugging, NaN (missing value) muncul pada tahapan debug ke-4 (pembaca dapat melakukan enter terus menerus sampai proses debug selesai). Hal ini disebabkan karena terdapat nilai negatif pada objek xsqminu4-4 yang selanjutnya dilakukan transformasi logaritmik. Untuk menghentikan proses debugging pembaca dapat mengetikkan undebug(f1).

Referensi

  1. Bloomfield, V.A. 2014. Using R for Numerical Analysis in Science and Engineering. CRC Press

  2. Primartha, R. 2018. Belajar Machine Learning Teori dan Praktik. Penerbit Informatika : Bandung.

  3. Rosadi,D. 2016. Analisis Statistika dengan R. Gadjah Mada University Press: Yogyakarta.

  4. https://rstudio-pubs-static.s3.amazonaws.com/368914_12993fc28035494d8c31d81929ef071a.html

    _________________________________________________________________________________________________________

    Kunjungi Rpubs saya untuk melihat penjelasan yang lain https://rpubs.com/henyrimadana

    _________________________________________________________________________________________________________