Dalam R, fungsi adalah blok kode yang dirancang untuk melakukan tugas tertentu. Fungsi memungkinkan untuk menulis kode yang dapat digunakan kembali dan menjaga alur kerja tetap terorganisir.
Yang dimaksud dalam fungsi disini adalah user define function yang
merupakan fungsi-fungsi yang dibuat sendiri oleh pengguna. Fungsi di R
didefinisikan menggunakan kata kunci function()
.
Berikut adalah sintaks dasar untuk membuat fungsi:
nama_fungsi <- function(argumen1, argumen2, ...) {
# Isi fungsi
hasil <- argumen1 + argumen2 # Contoh operasi
return(hasil) # Mengembalikan hasil
}
nama_fungsi(argumen1, argumen2, ...)
Elemen Fungsi
Nama Fungsi: Nama yang diberikan untuk fungsi, digunakan untuk memanggilnya.
Argumen: Variabel input yang diperlukan oleh fungsi untuk menjalankan tugas.
Isi Fungsi: Kode yang dieksekusi saat fungsi dipanggil yang biasanya berisi perhitungan/operasi lain.
Return: Fungsi mengembalikan hasil yang bisa berupa angka,
vektor, data frame, atau objek lain. Jika tidak ada
return()
, fungsi akan mengembalikan hasil dari baris
terakhir dalam blok kode.
Luas Segitiga
luassegitiga <- function (a, t){
luas = 0.5*a*t
return (luas)
}
luassegitiga(4,8)
## [1] 16
Kuadrat
kuadrat <- function(x) {
rumus = x^2
return (rumus)
}
kuadrat(10)
## [1] 100
Faktorial
FAKTORIAL=function(x){
fak=1
for (i in 1:x){fak=fak*i}
return(fak)
}
x=3
FAKTORIAL(x)
## [1] 6
Koef. Determinasi
rsq <- function(x, y) {
rumus = cor(x, y) ^ 2
return (rumus)
}
x <- c(1, 2, 3, 4, 5)
y <- c(2, 4, 3, 8, 10)
rsq(x,y)
## [1] 0.8474576
Koef. Variasi
KOEF.VAR=function(x){
rata=mean(x)
simp=sd(x)
KV=simp/rata*100
return(KV)
}
x<-c(1,2,3,3,4)
KOEF.VAR(x)
## [1] 43.8529
Aritmatika
x=2;y=3
ARITMATIKA=function(x,y){
jumlah=x+y
kali=x*y
hasil=c(jumlah,kali)
names(hasil)<-c('JUMLAH','KALI')
return(hasil)
}
ARITMATIKA(x,y)
## JUMLAH KALI
## 5 6
Kombinasi
KOMBINASI=function(n,x){
komb=factorial(n)/(factorial(x) * factorial(n - x))
return(komb)
}
n=5;x=2
KOMBINASI(n,x)
## [1] 10
Binomial
# Definisi fungsi kombinasi
komb <- function(n, x) {
factorial(n) / (factorial(x) * factorial(n - x))
}
BINOMIAL=function(n,x,p){
peluang=komb(n,x)*p^(x)*(1-p)^(n-x)
return(peluang)
}
n=5;x=4;p=0.5
BINOMIAL(n,x,p)
## [1] 0.15625
Looping merupakan suatu cara untuk mengulang suatu perintah dengan
kondisi yang ditentukan. Looping yang digunakan dalam R yaitu
for
, while
, dan repeat
.
Secara umum, diagramnya adalah:
Looping for
adalah salah satu bentuk perulangan yang
digunakan untuk mengulang sejumlah perintah berdasarkan elemen-elemen
dalam suatu objek, seperti vektor, list, atau range. Perulangan ini akan
berjalan sebanyak jumlah elemen yang ada dalam objek tersebut.
for (variabel in urutan) {
# kode yang dijalankan dalam setiap iterasi
}
Contoh 1
for (i in 1:5) {
print(i)
}
## [1] 1
## [1] 2
## [1] 3
## [1] 4
## [1] 5
Contoh 2
for (i in 1:5) {
hasil <- i^2
print(hasil)
}
## [1] 1
## [1] 4
## [1] 9
## [1] 16
## [1] 25
Contoh 3
Loop melalui list:
data_list <- list(nama = "Sri", umur = 5, kota = "Bima")
for (elemen in data_list) {
print(elemen)
}
## [1] "Sri"
## [1] 5
## [1] "Bima"
Contoh 4
Nested for loop (loop bersarang)
for (i in 1:3) {
for (j in 1:2) {
print(paste("i =", i, ", j =", j))
}
}
## [1] "i = 1 , j = 1"
## [1] "i = 1 , j = 2"
## [1] "i = 2 , j = 1"
## [1] "i = 2 , j = 2"
## [1] "i = 3 , j = 1"
## [1] "i = 3 , j = 2"
Contoh 5
Menggunakan next untuk melompati iterasi tertentu jika suatu kondisi terpenuhi.
for (i in 1:10) {
if (i %% 2 != 0) {
next # Lewati angka ganjil
}
print(i)
}
## [1] 2
## [1] 4
## [1] 6
## [1] 8
## [1] 10
Looping while
adalah salah satu bentuk perulangan yang
akan terus dijalankan selama kondisi tertentu bernilai TRUE. Dengan
while
, kamu dapat mengulang serangkaian perintah sampai
suatu kondisi tidak lagi terpenuhi. Jika kondisi tersebut tidak pernah
menjadi FALSE, maka perulangan akan terus berjalan tanpa henti
(infinite loop).
while (kondisi) {
# kode yang dijalankan selama kondisi bernilai TRUE
}
Contoh 1
x <- 1 # Inisialisasi variabel
while (x <= 5) {
print(x)
x <- x + 1 # Menambahkan x agar perulangan berhenti
}
## [1] 1
## [1] 2
## [1] 3
## [1] 4
## [1] 5
Contoh 2
x <- 1
while (TRUE) {
print(x)
x <- x + 1
if (x > 5) {
break # Hentikan loop ketika x lebih dari 5
}
}
## [1] 1
## [1] 2
## [1] 3
## [1] 4
## [1] 5
Contoh 3
a = 2
b = 4
while(a<7){
print(a)
a = a +1
if(b+a>10){
break
}
}
## [1] 2
## [1] 3
## [1] 4
## [1] 5
## [1] 6
Contoh 4
jumlah <- 0
i <- 1
while (i <= 10) {
jumlah <- jumlah + i # Tambah i ke jumlah
i <- i + 1 # Increment i
}
print(paste("Total jumlah:", jumlah))
## [1] "Total jumlah: 55"
Contoh 5
i <- 1
while (i <= 10) {
i <- i + 1 # Increment i terlebih dahulu
if (i %% 2 != 0) {
next # Lewati iterasi jika i ganjil
}
print(i)
}
## [1] 2
## [1] 4
## [1] 6
## [1] 8
## [1] 10
Looping repeat
adalah salah satu bentuk perulangan yang
akan terus berjalan tanpa batas hingga dihentikan secara eksplisit
dengan pernyataan break. Karena repeat tidak memiliki kondisi seperti
while
atau for
, perulangan akan berjalan
selamanya kecuali ada kondisi tertentu yang menghentikan loop.
repeat {
# kode yang akan dijalankan berulang kali
if (kondisi) {
break # Menghentikan loop jika kondisi terpenuhi
}
}
Contoh 1
x <- 1
repeat {
print(x)
x <- x + 1
if (x > 5) {
break # Hentikan perulangan ketika x lebih dari 5
}
}
## [1] 1
## [1] 2
## [1] 3
## [1] 4
## [1] 5
Contoh 2
repeat {
angka <- sample(1:10, 1)
print(angka)
if (angka == 7) {
break # Hentikan perulangan jika angka = 7
}
}
## [1] 5
## [1] 2
## [1] 1
## [1] 1
## [1] 7
Contoh 3
jumlah <- 0
i <- 1
repeat {
jumlah <- jumlah + i # Tambah i ke jumlah
i <- i + 1 # Increment i
if (i > 10) {
break # Hentikan loop jika i lebih dari 10
}
}
print(paste("Total jumlah:", jumlah))
## [1] "Total jumlah: 55"
Contoh 4
angka <- 2 # Mulai dari bilangan genap terkecil
repeat {
if (angka > 20) {
break # Hentikan loop jika angka lebih dari 20
}
print(angka) # Tampilkan angka genap
angka <- angka + 2 # Increment
}
## [1] 2
## [1] 4
## [1] 6
## [1] 8
## [1] 10
## [1] 12
## [1] 14
## [1] 16
## [1] 18
## [1] 20
Contoh 5
i <- 1
repeat {
i <- i + 1 # Increment i terlebih dahulu
if (i > 10) {
break # Hentikan loop jika i lebih dari 10
}
if (i %% 2 != 0) {
next # Lewati iterasi jika i ganjil
}
print(i)
}
## [1] 2
## [1] 4
## [1] 6
## [1] 8
## [1] 10
Spector, P. (2016). Data manipulation with R. CRC Press.
Wickham, H., & Grolemund, G. (2016). R for data science: Import, tidy, transform, visualize, and model data. O’Reilly Media.
Direktorat Statistik Kesejahteraan Rakyat, BPS, saptahas@bps.go.id