Fungsi dan Scope
Fungsi adalah blok kode yang dibuat untuk menjalankan tugas tertentu. Dengan fungsi, kode bisa ditulis lebih rapi, mudah dibaca, dan bisa digunakan kembali.
Scope
Scope menentukan di mana suatu variabel bisa digunakan.
Local Scope
tampilkan_nama <- function() {
nama <- "Budi"
print(nama)
}
tampilkan_nama()
Penjelasan: Variabel
namadibuat di dalam fungsi, sehingga hanya aman digunakan di dalam fungsi tersebut.
Global Scope
mata_kuliah <- "Pemrograman Open Source"
tampilkan_mata_kuliah <- function() {
print(mata_kuliah)
}
tampilkan_mata_kuliah()
print(mata_kuliah)
Penjelasan: Variabel
mata_kuliahdibuat di luar fungsi, sehingga bisa dibaca dari dalam dan luar fungsi.
Membuat Fungsi
Fungsi di R dibuat menggunakan function().
sapa <- function() {
print("Halo, selamat belajar R")
}
sapa()
Penjelasan: Fungsi
sapa()tidak akan berjalan sebelum dipanggil.
Parameter dan Argumen
sapa <- function(nama) {
print(paste("Halo,", nama))
}
sapa("Budi")
sapa("Ani")
Penjelasan:
namaadalah parameter, sedangkan"Budi"dan"Ani"adalah argumen yang dikirim ke fungsi.
Default Parameter
sapa <- function(nama = "Mahasiswa") {
print(paste("Halo,", nama))
}
sapa()
sapa("Budi")
Penjelasan: Jika argumen tidak dikirim, parameter
namamenggunakan nilai default.
Return Value
Di R, nilai terakhir di dalam fungsi bisa menjadi hasil return. Namun agar lebih jelas, kita juga bisa menggunakan return().
tambah <- function(a, b) {
hasil <- a + b
return(hasil)
}
total <- tambah(10, 5)
print(total)
Fungsi dengan Vector
hitung_rata_rata <- function(nilai) {
total <- sum(nilai)
rata_rata <- total / length(nilai)
return(rata_rata)
}
daftar_nilai <- c(80, 90, 75, 85)
print(hitung_rata_rata(daftar_nilai))
Penjelasan: Fungsi menerima vector nilai, menjumlahkan semua isinya, lalu membagi total dengan jumlah data.
Fungsi dengan Banyak Return
Untuk mengembalikan beberapa nilai, gunakan list().
hitung_nilai <- function(nilai) {
nilai_tertinggi <- max(nilai)
nilai_terendah <- min(nilai)
rata_rata <- mean(nilai)
return(list(
tertinggi = nilai_tertinggi,
terendah = nilai_terendah,
rata_rata = rata_rata
))
}
hasil <- hitung_nilai(c(80, 90, 75, 85))
print(hasil$tertinggi)
print(hasil$terendah)
print(hasil$rata_rata)
Anonymous Function
Anonymous function adalah fungsi tanpa nama. Di R, fungsi seperti ini sering digunakan bersama sapply(), lapply(), atau apply().
nilai <- c(1, 2, 3, 4, 5)
kuadrat <- sapply(nilai, function(angka) angka ^ 2)
print(kuadrat)
Penjelasan: Fungsi
function(angka) angka ^ 2dijalankan untuk setiap elemen vectornilai.
Kapan Menggunakan Fungsi
- Gunakan fungsi jika ada logika yang dipakai berulang kali.
- Gunakan fungsi jika kode mulai panjang dan sulit dibaca.
- Gunakan parameter agar fungsi bisa menerima input yang berbeda.
- Gunakan
return()atau nilai akhir fungsi agar hasilnya bisa digunakan lagi.
Latihan Singkat
Coba buat program sederhana dengan ketentuan berikut:
- Buat variabel global
nama_kelas. - Buat fungsi yang menampilkan
nama_kelas. - Buat fungsi
hitung_luas_persegi_panjang()dengan parameterpanjangdanlebar. - Buat fungsi
hitung_rata_rata()yang menerima vector nilai. - Buat fungsi yang mengembalikan nilai tertinggi, nilai terendah, dan rata-rata menggunakan
list(). - Gunakan
sapply()untuk menghitung kuadrat dari setiap angka.