www.jagostat.com

www.jagostat.com

Website Belajar Matematika & Statistika

Website Belajar Matematika & Statistika

Tutorial R   »   Dasar-dasar Pemrograman R   ›  Struktur Loop dalam Pemrograman R
Pemrograman R

Struktur Loop dalam Pemrograman R

Dalam setiap bahasa pemrograman pasti terdapat struktur looping (perulangan), tak terkecuali dengan bahasa pemrograman R. Beberapa statement looping dalam R di antaranya yaitu for, while, dan repeat.


Flag Counter

Dalam setiap bahasa pemrograman pasti terdapat struktur looping (perulangan), tak terkecuali dengan bahasa pemrograman R. Looping digunakan untuk mengulang kode tertentu. Dengan adanya struktur looping ini, script atau sintaks dapat ditulis dengan lebih singkat. Tanpa adanya looping, penulisan sintaks akan menjadi panjang padahal menggunakan logika yang sama dan berulang-ulang.

Beberapa statement looping dalam R di antaranya yaitu for, while, dan repeat. Kita akan membahas beberapa teknik looping menggunakan tiga statement tersebut, tapi sebelum itu akan diperlihatkan bagaimana looping ini mempersingkat penulisan sintaks R.

Misalkan, kita membuat program sederhana yang akan menampilkan ucapan selamat tahun baru kepada lima orang dengan nama yaitu Catherine, Diana, Richard, Andi, dan Nurul. Output yang diharapkan tampil yaitu sebagai berikut:

                
                  "Selamat tahun baru 2020, Catherine."
                  "Selamat tahun baru 2020, Diana."
                  "Selamat tahun baru 2020, Richard."
                  "Selamat tahun baru 2020, Andi."
                  "Selamat tahun baru 2020, Nurul."
                
              

Tanpa menggunakan perulangan (looping), sintaks R yang mungkin digunakan yaitu:

                
                    print("Selamat tahun baru 2021, Catherine.") 
                    print("Selamat tahun baru 2021, Diana") 
                    print("Selamat tahun baru 2021, Richard") 
                    print("Selamat tahun baru 2021, Andi") 
                    print("Selamat tahun baru 2021, Nurul")
                
              

Sintaks untuk menampilkan ucapan selamat tahun baru kepada 5 orang mungkin tidak terlalu panjang. Sekarang bayangkan, jika kita perlu menampilkan output dengan ucapan selamat tahun baru kepada 100 orang. Itu artinya kita perlu menuliskan 100 baris seperti di atas. Tentu itu merupakan pekerjaan yang membosankan dan tidak efisien.

Sebagai contoh lain, misalkan kita ingin membuat program yang menampilkan 20 bilangan pertama dari suatu barisan fibonacci. Output yang diharapkan tampil yaitu:

                
                    0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181
                
              

Karena dalam barisan fibonacci, suku ke-n diperoleh dengan menjumlahkan dua suku sebelumnya Misalnya, suku ke-5 dengan nilai 3 diperoleh dari penjumlahan dua suku sebelumnya yakni 2 dan 1; begitu seterusnya untuk suku yang berikutnya. Dengan demikian, karena adanya proses yang sama dan berulang, kita dapat gunakan struktur perulangan (looping).

Kita akan selesaikan kedua kasus di atas menggunakan statement looping seperti disinggung di awal yakni for, while, dan repeat.

Struktur Looping dengan For

Penggunaan for loop dilakukan ketika proses perulangan sebuah kondisi dilakukan sampai pada ulangan yang telah ditentukan.

Rumus umum looping dengan for yaitu:

                
                    for (variable in vector) {
                      statement
                    }
                
              

Dalam kasus pertama kita, sintaks untuk menampilkan output ucapan selamat tahun baru kepada lima orang dapat diringkas menjadi:

                
                    for(name in c("Catherine.", "Diana.", "Richard.", "Andi.", "Nurul.")) {
                      print(paste("Selamat tahun baru 2020,", name))
                    }
                    
                    [1] "Selamat tahun baru 2020, Catherine."
                    [1] "Selamat tahun baru 2020, Diana."
                    [1] "Selamat tahun baru 2020, Richard."
                    [1] "Selamat tahun baru 2020, Andi."
                    [1] "Selamat tahun baru 2020, Nurul."
                
              
                
                    for(tahun in 2015:2020) {
                      print(paste("Selamat tahun baru,", tahun))
                    }
                    
                    [1] "Selamat tahun baru, 2015"
                    [1] "Selamat tahun baru, 2016"
                    [1] "Selamat tahun baru, 2017"
                    [1] "Selamat tahun baru, 2018"
                    [1] "Selamat tahun baru, 2019"
                    [1] "Selamat tahun baru, 2020"
                
              

Berikut adalah contoh penggunaan for loop untuk menampilkan 10 bilangan pertama dari barisan Fibonacci.

                
                    fibonacci <- function(n) {
                      if(n <= 1) {
                        return(n)
                      } else {
                        return(fibonacci(n-1) + fibonacci(n-2))
                      }
                    }
                
              
                
                    # menerima input dari user
                    suku_ke_n = as.integer(readline(prompt="Berapa suku yang ingin ditampilkan? "))
                    
                    Output:
                    Berapa suku yang ingin ditampilkan? (isikan angka di sini...)
                
              

Memeriksa apakah jumlah suku ke n yang dimasukkan sudah valid atau tidak. Jika sudah valid tampilkan barisan Fibonacci.

                
                    if(suku_ke_n <= 0) {
                      print("Silahkan masukkan sebuah bilangan positif.")
                    } else {
                      print("Barisan Fibonacci:")
                      for(i in 0:(suku_ke_n-1)) {
                        print(fibonacci(i))
                      }
                    }
                    
                    Output:
                    [1] "Barisan Fibonacci:"
                    [1] 0
                    [1] 1
                    [1] 1
                    [1] 2
                    [1] 3
                    [1] 5
                    [1] 8
                    [1] 13
                    [1] 21
                    [1] 34
                
              
Struktur Looping dengan While

Perulangan while (while loop) dilakukan ketika proses perulangan terjadi sampai suatu kondisi tertentu terpenuhi.

Rumus umum looping dengan while yaitu:

                
                    while (condition) {
                        statement	
                    }
                
              

Berikut ini adalah contoh penggunaan loop while untuk menampilkan 20 bilangan pertama dari barisan fibonacci.

                
                    Fib = numeric(20)
                    Fib[1] = 1
                    Fib[2] = 1
                    i = 3
                    while (i <= 20) {
                      Fib[i] = Fib[i - 1] + Fib[i - 2]
                      i = i + 1
                    }
                    Fib
                    
                    [1]  1  1  2  3  5  8 13 21 34 55
                
              

Perhatikan bahwa loop (perulangan) hanya akan dilakukan sepanjang nilai i <= 10.

Struktur Looping dengan Repeat

Untuk perulangan repeat (repeat loop), kondisi diberikan di akhir statement.

Rumus umum looping dengan repeat yaitu:

                
                    repeat {
                      statement
                    }
                
              
                
                    ## repeat looping
                    n <- 0
                    repeat {
                      n <- n + 1
                      if(n > 10)
                      {
                        break
                      }
                      print(n)
                    }
                    
                    Output:
                    [1] 1
                    [1] 2
                    [1] 3
                    [1] 4
                    [1] 5
                    [1] 6
                    [1] 7
                    [1] 8
                    [1] 9
                    [1] 10
                
              
                
                    ## repeat loop
                    sum <- 1
                    repeat {
                      sum <- sum + 2;
                      print(sum);
                      if(sum > 11)
                        break;
                    }
                    
                    Output:
                    [1] 3
                    [1] 5
                    [1] 7
                    [1] 9
                    [1] 11
                    [1] 13
                
              
Artikel Terkait

Courage is like a muscle. We strengthen it by use.