Pertemuan 8
Perulangan (Looping)
Ada saatnya dimana kita dihadapkan situasi ketika pemrograman perlu mengeksekusi blok
kode yang dilakukan beberapa kali. Secara umum, pernyataan dieksekusi secara berurutan:
Pernyataan pertama dalam suatu fungsi dijalankan pertama, diikuti oleh yang kedua, dan
seterusnya.
Bahasa pemrograman menyediakan berbagai struktur kontrol yang memungkinkan jalur
eksekusi yang lebih rumit.
Pernyataan loop memungkinkan kita untuk mengeksekusi pernyataan atau baris-baris
pernyataan yang diproses beberapa kali dan berikut ini adalah bentuk umum flowchart dari
pernyataan loop atau perulangan yang dilakukan sebagian besar bahasa pemrograman
Gambar 8.1 Flowchart perulangan
Perintah perulangan merupakan suatu kontrol perulangan yang berfungsi untuk melakukan
perulangan (Literasi) dari suatu blok program secara berulang-ulang yang ditentukan oleh
nilai awal dan nilai akhir.
[Link] menyediakan jenis loop berikut untuk menangani persyaratan perulangan. Klik
tautan berikut untuk memeriksa detailnya.
Tipe Perulangan Keterangan
Perulangan pada blok pernyataan ini akan berlangsung selama
Do Loop kondisi terpenuhi atau bernilai True atau benar. Itu bisa
dihentikan kapan saja dengan pernyataan Exit Do.
Perulangan ini akan mengulang baris-baris pernyataan beberapa
For...Next kali dan indeks loop menghitung jumlah iterasi loop saat loop
dijalankan.
Perulangan ini akan mengulang mengulangi baris-baris
pernyataan untuk setiap elemen dalam koleksi. Loop ini
For Each...Next
digunakan untuk mengakses dan memanipulasi semua elemen
dalam array atau koleksi [Link].
Ini mengeksekusi serangkaian pernyataan selama kondisi yang
While... End While
diberikan adalah True/benar.
Ini bukan konstruksi perulangan. Ini mengeksekusi serangkaian
With... End With pernyataan yang berulang kali merujuk ke satu objek atau
struktur.
Kita dapat menggunakan satu atau lebih loop di dalam loop
Nested loops
While, For, atau Do lainnya.
Do Loop
Sintaks untuk konstruksi loop ini adalah
Do { While | Until } kondisi
[ statements ]
[ Continue Do ]
[ statements ]
[ Exit Do ]
[ statements ]
Loop
atau
Do
[ statements ]
[ Continue Do ]
[ statements ]
[ Exit Do ]
[ statements ]
Loop { While | Until } kondisi
Flow Diagram
Gambar 8.2. Flowchart Do Loop
Contoh
Module loops
Sub Main()
' pendefinisian variabel
Dim a As Integer = 10
'eksekusi do loop
Do
[Link]("nilai a adalah: {0}", a)
a = a + 1
Loop While (a < 20)
[Link]()
End Sub
End Module
Ketika kode di atas dikompilasi dan dijalankan, itu menghasilkan hasil sebagai berikut
Gambar 8.3 Hasil output Do Loop
Program akan berperilaku dengan cara yang sama, jika Anda menggunakan pernyataan Until,
bukan While
Module loops
Sub Main()
' pendefinisian variabel
Dim a As Integer = 10
'eksekusi do loop
Do
[Link]("nilai a adalah: {0}", a)
a = a + 1
Loop Until (a = 20)
[Link]()
End Sub
End Module
For...Next Loop
Sintaks untuk konstruksi loop ini adalah
For counter [ As datatype ] = start To end [ Step step ]
[ statements ]
[ Continue For ]
[ statements ]
[ Exit For ]
[ statements ]
Next [ counter ]
Flow Diagram
Gambar 8.4 Flowchart For...Next Loop
Program akan berperilaku dengan cara yang sama, jika Anda menggunakan pernyataan Until,
bukan While
Module loops
Sub Main()
Dim a As Byte
' eksekusi for loop
For a = 10 To 20
[Link]("Nilai a adalah: {0}", a)
Next
[Link]()
End Sub
End Module
Ketika kode di atas dikompilasi dan dijalankan, itu menghasilkan hasil sebagai berikut
Gambar 8.5 Hasil output For...Next Loop
Jika Anda ingin menggunakan ukuran langkah 2, misalnya, Anda hanya perlu menampilkan
angka genap, antara 10 dan 20
Module loops
Sub Main()
Dim a As Byte
' eksekusi for loop
For a = 10 To 20 Step 2
[Link]("Nilai a adalah: {0}", a)
Next
[Link]()
End Sub
End Module
Ketika kode di atas dikompilasi dan dijalankan, itu menghasilkan hasil sebagai berikut
Gambar 8.6 Hasil output For...Next step 2
Each...Next Loop
Sintaks untuk konstruksi loop ini adalah
For Each element [ As datatype ] In group
[ statements ]
[ Continue For ]
[ statements ]
[ Exit For ]
[ statements ]
Next [ element ]
Contoh
Module loops
Sub Main()
Dim anArray() As Integer = {1, 3, 5, 7, 9}
Dim arrayItem As Integer
'Menampilkan isi
For Each arrayItem In anArray
[Link](arrayItem)
Next
[Link]()
End Sub
End Module
Ketika kode di atas dikompilasi dan dijalankan, itu menghasilkan hasil sebagai berikut
Gambar 8.7 Hasil output Each...Next Loop
While... End While Loop
Ini mengeksekusi serangkaian pernyataan selama kondisi yang diberikan adalah True.
Sintaks untuk konstruksi loop ini adalah
While condition
[ statements ]
[ Continue While ]
[ statements ]
[ Exit While ]
[ statements ]
End While
Di sini, pernyataan bisa berupa satu pernyataan atau satu blok pernyataan. Kondisinya dapat
berupa ekspresi apa pun, dan true adalah logika true. Perulangan melakukan iterasi saat
kondisinya benar.
Ketika kondisi menjadi salah, kontrol program melewati garis segera setelah loop.
Flow Diagram
Gambar 8.8 Flowchart While... End While Loop
Di sini, poin kunci dari loop While adalah bahwa loop mungkin tidak akan pernah berjalan.
Ketika kondisi diuji dan hasilnya salah, badan pengulangan akan dilewati dan pernyataan
pertama setelah pengulangan while akan dijalankan.
Contoh
Module loops
Sub Main()
Dim a As Integer = 10
' eksekusi while loop '
While a < 20
[Link]("Nilai a adalah : {0}", a)
a = a + 1
End While
[Link]()
End Sub
End Module
Ketika kode di atas dikompilasi dan dijalankan, itu menghasilkan hasil sebagai berikut
Gambar 8.9 Hasil output While... End While Loop
Nested Loops/ Loop Bersarang
[Link] memungkinkan menggunakan satu loop di dalam loop lain. Bagian berikut
menunjukkan beberapa contoh untuk mengilustrasikan konsep tersebut.
Sintaks untuk pernyataan loop For bersarang di [Link] adalah sebagai berikut
For counter1 [ As datatype1 ] = start1 To end1 [ Step step1 ] For
counter2 [ As datatype2 ] = start2 To end2 [ Step step2 ]
...
Next [ counter2 ]
Next [ counter 1]
Sintaks untuk pernyataan loop While bersarang di [Link] adalah sebagai berikut
While condition1
While condition2
...
End While
End While
Sintaks untuk pernyataan Do ... While loop bersarang di [Link] adalah sebagai berikut
Do { While | Until } condition1
Do { While | Until } condition2
...
Loop
Loop
Catatan terakhir tentang loop bersarang adalah Anda dapat meletakkan semua jenis loop di dalam
jenis loop lainnya. Misalnya, loop for dapat berada di dalam loop while atau sebaliknya.
Contoh
Program berikut menggunakan loop for bersarang untuk menemukan bilangan prima dari 2
hingga 100
Module loops
Sub Main()
' mendefinisikan variabel
Dim i, j As Integer
For i = 2 To 100
For j = 2 To i
' jika faktor ditemukan, bukan bilangan
prima If ((i Mod j) = 0) Then
Exit For
End If
Next j
If (j > (i \ j)) Then
[Link]("{0} adalah bilangan prima", i)
End If
Next i
[Link]()
End Sub
End Module
Ketika kode di atas dikompilasi dan dijalankan, itu menghasilkan hasil sebagai beriku t
Gambar 8.10 Hasil output Nested Loops