Universitas : UIN Maulana Malik Ibrahim Malang

Jurusan : Teknik Informatika

Pemrograman dan Fungsi

Kita telah membahas dasar-dasar kalkulasi menggunakan R pada Chapter 2. Pada Chapter 4 kita akan membahas dasar pemrograman menggunakan R. Pada chapter ini kita juga akan membahas bagaimana kita dapat membentuk suatu fungsi menggunakan R untuk pekerjaan yang berulang-ulang.

1. Pengertian Loop (Berulang-ulang)

Loop merupakan kode program yang berulang-ulang. Loop berguna saat kita ingin melakukan sebuah perintah yang perlu dijalankan berulang-ulang seperti melakukan perhitungan maupaun melakukan visualisasi terhadap banyak variabel secara serentak. Hal ini tentu saja membantu kita karena kita tidak perlu menulis sejumlah sintaks yang berulang-ulang. Kita hanya perlu mengatur statement berdasarkan hasil yang kita harapkan.

Pada R bentuk loop dapat bermacam-macam (“for loop”,“while loop”, dll). R menyederhanakan bentuk loop ini dengan menyediakan sejumlah fungsi seperti apply(),tapply(), dll. Sehingga loop jarang sekali muncul dalam kode R. Sehingga R sering disebut sebagai loopless loop.

Meski loop jarang muncul bukan berarti kita tidak akan melakukannya. Terkadang saat kita melakukan komputasi statistik atau matematik dan belum terdapat library yang mendukung proses tersebut, sering kali kita akan membuat sintaks sendiri berdasarkan algoritma metode tersebut. Pada algoritma tersebut sering pula terdapat loop yang diperlukan selama proses perhitungan. Secara sederhana diagram umum loop ditampilkan pada Gambar 4.1

Diagram umum loop (sumber: Primartha, 2018).

Gambar 4.1: Diagram umum loop (sumber: Primartha, 2018).

Looping merupakan suatu cara untuk mengulang suatu perintah dengan kondisi yang ditentukan. Menggunakan loop, kita dapat mengotomatiskan suatu kode yang butuh diulang dalam suatu fungsi. Looping yang digunakan dalam R yaitu for, while, dan repeat. Secara garis besar, diagram bekerjanya loop adalah sebagai berikut:

Penjelasan tipe-tipe loop:

Tipe loop Diskripsi
while Melakukan kode perintah, selama kondisi yang diberikan benar. Menguji kondisi sebelum melakukan kode perintah (badan loop)
for Seperti halnya while, hanya saja akan menguji kondisi di akhir kode perintah (badan loop)
repeat Melakukan serangkaian kode perintah beberapa kali

1.1 For Loop

Mengulangi sebuah statement atau sekelompok statement sebanyak nilai yang ditentukan di awal. Jadi operasi akan terus dilakukan sampai dengan jumlah yang telah ditetapkan di awal atau dengan kata lain tes kondisi (Jika jumlah pengulangan telah cukup) hanya akan dilakukan di akhir. Secara sederhana bentuk dari for loop dapat dituliskan sebagai berikut:

for (value in vector){
  statements
}

Berikut adalah contoh sintaks penerapan for loop:

# Membuat vektor numerik
vektor <- c(1:5)

# loop 
for(i in vektor){
  print(i)
}

## [1] 1
## [1] 2
## [1] 3
## [1] 4
## [1] 5

Loop akan dimulai dari blok statement for sampai dengan print(i). Berdasarkan loop pada contoh tersebut, loop hanya dilakukan sebanyak 5 kali sesuai dengan jumlah vektor yang ada.

1.2 While Loop

While loop merupakan loop yang digunakan ketika kita telah menetapkan stop condition sebelumnya. Blok statement/kode yang sama akan terus dijalankan sampai stop condition ini tercapai. Stop condition akan di cek sebelum melakukan proses loop. Berikut adalah pola dari while loop dapat dituliskan sebagai berikut:

while (test_expression){
  statement
}

Berikut adalah contoh penerapan dari while loop:

coba <- c("Contoh")
counter <- 1

# loop
while (counter<5){
  # print vektor
  print(coba)
  # tambahkan nilai counter sehingga proses terus berlangsung sampai counter = 5 
  counter <- counter + 1
}

## [1] "Contoh"
## [1] "Contoh"
## [1] "Contoh"
## [1] "Contoh"

Loop akan dimulai dari blok statement while sampai dengan counter <- 1. Loop hanya akan dilakukan sepanjang nilai counter < 5.

1.3 Repeat Loop

Repeat loop akan menjalankan statement/kode yang sama berulang-ulang hingga stop condition tercapai. Berikut adalah pola dari repeat loop.

repeat {
  commands
  if(condition){
    break
  }
}

Berikut adalah contoh penerapan dari repeat loop:

coba <- c("contoh")
counter <- 1
repeat {
  print(coba)
  counter <- counter + 1
  if(counter < 5){
break
  }
}

## [1] "contoh"

Loop akan dimulai dari blok statement while sampai dengan break. Loop hanya akan dilakukan sepanjang nilai counter < 5. Hasil yang diperoleh berbeda dengan while loop, dimana kita memperoleh 4 buah kata “contoh”. Hal ini disebabkan karena repeat loop melakukan pengecekan stop condition tidak di awal loop seperti while loop sehingga berapapun nilainya, selama nilainya sesuai dengan stop condition maka loop akan dihentikan. Hal ini berbeda dengan while loop dimana proses dilakukan berulang-ulang sampai jumlahnya mendekati stop condition.

1.4 Break

Break sebenarnya bukan bagian dari loop, namun sering digunakan dalam loop. Break dapat digunakan pada loop manakala dirasa perlu, yaitu saat kondisi yang disyaratkan pada break tercapai.

Berikut adalah contoh penerapan break pada beberapa jenis loop.

# for loop
a = c(2,4,6,8,10,12,14)
for(i in a){
  if(i>8){
    break
  }
  print(i)
}

## [1] 2
## [1] 4
## [1] 6
## [1] 8

# while loop
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

# repeat loop
a = 1
repeat{
  print(a)
  a = a+1
  if(a>6){
    break
  }
}

## [1] 1
## [1] 2
## [1] 3
## [1] 4
## [1] 5
## [1] 6

Kesimpulan

Loop merupakan kode program yang berulang-ulang. Loop berguna saat kita ingin melakukan sebuah perintah yang perlu dijalankan berulang-ulang seperti melakukan perhitungan maupaun melakukan visualisasi terhadap banyak variabel secara serentak. Hal ini tentu saja membantu kita karena kita tidak perlu menulis sejumlah sintaks yang berulang-ulang. Kita hanya perlu mengatur statement berdasarkan hasil yang kita harapkan.

Jenis-jenis looping yang dibahas antara lain: For Loop, While Loop, Repeat Loop, dan Break yang memiliki fungsi-fungsi tertentu.

REFERENSI

https://bookdown.org/moh_rosidi2610/Metode_Numerik/programmingandfunction.html

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

_________________________________________________________________________________________________________

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

_________________________________________________________________________________________________________