1 Fungsi

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

  1. Nama Fungsi: Nama yang diberikan untuk fungsi, digunakan untuk memanggilnya.

  2. Argumen: Variabel input yang diperlukan oleh fungsi untuk menjalankan tugas.

  3. Isi Fungsi: Kode yang dieksekusi saat fungsi dipanggil yang biasanya berisi perhitungan/operasi lain.

  4. 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

2 Looping

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:

2.1 Looping for

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

2.2 Looping while

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

2.3 Looping repeat

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

3 Referensi

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,