Fungsi adalah sekumpulan pernyataan yang disusun untuk melakukan tugas tertentu. R memiliki banyak fungsi built-in (bawaan) serta kita dapat membuat fungsi sendiri.
Di pemrograman R, fungsi adalah suatu objek sehingga R dapat meneruskan kontrol ke fungsi tersebut bersama dengan argumen yang mungkin diperlukan agar fungsi tersebut menyelesaikan sebuah tindakan.
Fungsi tersebut pada gilirannya melakukan tugasnya dan mengembalikan kontrol ke interpreter serta hasil output apapun yang mungkin disimpan di objek (variabel) lain.
Sintaks dasar definisi fungsi R adalah sebagai berikut -
nama_fungsi <- function(argumen_1, argumen_2, ...){
Fungsi yang kita inginkan
}
Komponen Fungsi
Suatu fungsi pada R terdiri dari bagian-bagian berikut :
Nama Fungsi : Untuk memberi nama yang unik untuk sebuah fungsi.
Argumen-argumen : Tempat untuk memberikan pernyataan atau input. Sifatnya opsional, artinya suatu fungsi juga boleh tanpa memiliki argumen. Argumen-argumen ini juga dapat memiliki nilai default.
Badan Fungsi : Kumpulan pernyataan yang mendefinisikan fungsi itu sendiri. Misalkan fungsi kuadrat = x^2, dengan input atau argumen x.
Return Value : Nilai keluaran dari suatu fungsi adalah ekspresi terakhir dalam badan fungsi yang akan dievaluasi.
Menggunakan Fungsi Built-in atau Bawaan R Contoh sederhana dari fungsi built-in adalah seq(), mean(), max(), sum(), paste(…), dll.
# Membuat barisan dari 20 sampai 40
print(seq(20,40))
## [1] 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
# Menghitung rata-rata barisan bilangan 20 sampai 40
print(mean(20:40))
## [1] 30
# Menghitung jumlah barisan bilangan 20 sampai 40
print(sum(20:40))
## [1] 630
Membuat Fungsi Sendiri
# Mendefinisikan fungsi yang menghasilkan bilangan kuadrat
# Misalkan
# input = 3
# output = 9
fungsi_kuadrat <- function(a) { #fungsi_kuadrat : nama fungsi, a : argumen
b <- a^2 #badan fungsi
print(b) #return value
}
# Memanggil dan menggunakan fungsi
fungsi_kuadrat(6)
## [1] 36
Membuat Fungsi Tanpa Argumen
# Mendefinisikan fungsi yang menghasilkan bilangan kuadrat
# Misalkan
# input = 3
# output = 9
fungsi_kuadrat <- function() {
b <- 6^2
print(b)
}
# Memanggil dan menggunakan fungsi
fungsi_kuadrat()
## [1] 36
Membuat Fungsi dengan Argumen lebih dari Satu
fungsi_baru <- function(a,b,c) {
hasil <- a * b + c
print(hasil)
}
# Memanggil dan menggunakan fungsi berdasarkan posisi argumen
fungsi_baru(5,3,11)
## [1] 26
# Memanggil dan menggunakan fungsi berdasarkan nama argumen
fungsi_baru(c=11, b=3, a=5)
## [1] 26
Membuat Fungsi dengan Argumen Default
fungsi_baru <- function(a=4, b=1, c=0) {
hasil <- a * b + c
print(hasil)
}
# Memanggil dan menggunakan fungsi tanpa argumen
fungsi_baru()
## [1] 4
# Memanggil dan menggunakan fungsi dengan mengisi argumen
fungsi_baru(c=11, b=3, a=5)
## [1] 26
Fungsi Tidak Berjalan Jika
fungsi_baru <- function(a,b,c) {
hasil <- a * b + c
print(hasil)
}
# Memanggil dan menggunakan fungsi dengan mengisi argumen yang tidak lengkap
# hapus nilai c=0
fungsi_baru(a=11, b=3, c=0)
## [1] 33
# Memanggil dan menggunakan fungsi dengan mengisi argumen yang tidak lengkap
fungsi_baru(c=11, b=3)
Output :
Error in fungsi_baru(a = 11, b = 3) :
argument "c" is missing, with no default
Percabangan adalah pernyataan if dan else dalam pemrograman. Pernyataan ini memungkinkan kita untuk memberikan syarat untuk sebuah perintah dijalankan atau tidak, atau dengan kata lain mengambil keputusan.
Sintaks if statement pada R
if(kondisi) {
pernyataan
}
Jika kondisi yang dimaksud TRUE maka pernyataan akan dieksekusi. Namun, jika tidak maka pernyataan tidak akan dijalankan.
x <- 5
if(x > 0) {
print("Bilangan Positif")
}
## [1] "Bilangan Positif"
Sintaks if else statement pada R
if(kondisi) {
pernyataan 1
} else {
pernyataan 2
}
Jika kondisi yang dimaksud TRUE maka pernyataan 1 akan dieksekusi. Namun jika tidak maka pernyataan 2 yang akan dijalankan.
x <- -29
if(x > 0) {
print("Bilangan Non-Negatif")
} else {
print("Bilangan Negatif")
}
## [1] "Bilangan Negatif"
Menulis percabangan dengan satu baris perintah
x=12
if(x > 0) print("Bilangan Non-Negatif") else print("Bilangan Negatif")
## [1] "Bilangan Non-Negatif"
Sintaks if else statement banyak pada R
x <- 0
if(x > 0) {
print("Bilangan Negatif")
} else if (x==0) {
print("Bilangan nol")
} else{
print("Bilangan Potitif")
}
## [1] "Bilangan nol"
Sintaks if else statement bersarang (if didalam if) pada R
x <- 0
if( x >= 0) {
if(x/2 == 0) { #if didalam if(x>0)
print("Bilangan Non-Negatif Genap")
} else {
print("Bilangan Non-Negatif Ganjil")
}
} else {
print("Bilangan Negatif")
}
## [1] "Bilangan Non-Negatif Genap"
Perulangan dilakukan ketika kita ingin melakukan hal yang berulang entah itu adalah penambahan fungsi atau hanya sebuah perulangan yang biasa digunakan dalam sebuah program. Ada beberapa statement pada perulangan diantaranta for, while, dan repeat.
Sintaks for loop pada R : Perulangan for pada R adalah perulangan pada suatu fungsi atau proses pada objek-objek didalam suatu barisan. Misal kita memiliki barisan [1,2,3] dan kita ingin menghasilkan bilangan kuadrat untuk masing-masing elemen pada barisan tersebut. Maka kita perolej [1^2, 2^2, 3^2] hasilnya [1,4,9]
for(variabel dalam barisan) {
}
Contoh kita akan melakukan perulangan fungsi print pada barisan bilangan 1
for (i in 1:10) {
print(i)
}
## [1] 1
## [1] 2
## [1] 3
## [1] 4
## [1] 5
## [1] 6
## [1] 7
## [1] 8
## [1] 9
## [1] 10
Sintaks while loop pada R : Berbeda dengan for, pada perulangan while kita membutuhkan nilai awal. Kemudian dengan kondisi tertentu pada variabel target, suatu perintah dapat terus berjalan. Jika kondisi sudah tidak dipenuhi maka perintah akan berhenti dijalankan.
inisialisasi nilai variabel
while(kondisi) {
mengubah nilai variabel
}
misalkan kita akan melakukan fungsi print jika bilangan x tidak lebih dari 5
x=1
while(x <= 5){ #Kondisi selama x tidak lebih dari 5
print(x) #print bilangan
x = x+1 #mengubah nilai
}
## [1] 1
## [1] 2
## [1] 3
## [1] 4
## [1] 5
Sintaks repeat loop pada R : Perulangan repeat pada R dibuat khusus untuk melakukan perintah berulang-ulang tanpa harus membentuk suatu barisan seperti pada perulangan for.
inisisalisasi variabel
repeat{
}
contoh kita akan melakukan print bilangan i sampai i terbaru adalah sama dengan 5
i = 1
repeat{
print(i)
if(i==5) {break()}
i = i + 1
}
## [1] 1
## [1] 2
## [1] 3
## [1] 4
## [1] 5