Perintah For...Next
Salah satu keunggulan komputer dibandingkan dengan manusia adalah dapat
mengerjakan sesuatu secara berulang-ulang tanpa mengalami penurunan kualitas
terhadap hasil kerja.
Salah satu perintah perulangan di Visual Basic ada For…Next Statements
yang merupakan perulangan dengan menggunakan sistem counter dengan menggunakan
syntax sebagai berikut :
For counter [ As datatype ] = start To end [ Step step ]
[ statements ]
[ Exit For ]
[ statements ]
Next [ counter ]
|
Contoh :
Dim I As Integer
For I = 1 To 100 'Defaultnya
Step 1
Console.WriteLine(I)
Next I
Atau
For I As Integer = 1 To 100 'Defaultnya Step 1
Console.WriteLine(I)
Next I
|
Akan mencetak daftar bilangan 1 s/d 100
Catatan :
Dari segi looping pemakaian :
Dim I As Integer
For I = 1 To 100 'Defaultnya
Step 1
Console.WriteLine(I)
Next I
Tidak berbeda dengan
For I As Integer = 1 To 100 'Defaultnya Step 1
Console.WriteLine(I)
Next I
Tapi jika ditinjau dari lingkup pemakaian variabel, maka variabel I
pada contoh pertama adalah variabel local Sub Main, sedangkan variabel I pada
contoh kedua adalah variable local untuk blok looping.
Contoh :
Dim I As Integer
For I = 1 To 100 'Defaultnya
Step 1
Console.WriteLine(I)
Next I
Console.WriteLine(I)
'Akan tercetak 101
Sedangkan
For I As Integer = 1 To 100 'Defaultnya Step 1
Console.WriteLine(I)
Next I
Console.WriteLine(I)
'Terjadi error pada saat
kompilasi
Dimana pesan error adalah error BC30451:
Name I is not declared.
|
Dim I As Integer
For I = 1 To 100 Step 2
Console.WriteLine(I)
Next I
|
Akan mencetak daftar bilangan ganjil 1 s/d 99
Catatan : Step tidak selamanya harus berupa bilangan bulat, tetapi juga
dapat berupa bilangan floating point.
For I As Single = 1 To 10 Step 0.1
Console.WriteLine(I)
Next I
|
Akan mencetak daftar bilangan 1, 1.1, 1.2, 1.3, …,10
Bagaimana dengan perulangan dari besar ke kecil ?
Perulangan dari besar ke kecil dapat dilakukan dengan menentukan nilai
Step negatif.
Contoh :
For I As Integer = 100 To 1 Step -1
Console.WriteLine(I)
Next I
|
Akan mencetak daftar bilangan 100, 99. 98, …, 1
Dapatkah anda menerangkan fungsi dan contoh pemakaian Exit For ?
Exit For merupakan perintah keluar dari looping tanpa bersyarat,
artinya kalau perintah Exit For ditemukan maka proses program dilanjutkan ke
perintah dibawah Next.
Adapun contoh pemakaian Exit For adalah misalnya kita ingin membuat
password dengan jumlah kesempatan coba sebanyak 3 kali.
Option Explicit On
Imports System
Module ModPass
Sub Main()
Dim I As Integer
Dim Pass
As String
For I = 1 To 3 Step 1
Console.Write("Password
:")
Pass = Console.ReadLine()
If Pass.ToUpper()
="INDOPROG" Then 'Jika Password
Benar
Exit For 'Keluar dari Looping
End If
Next I
If I > 3 Then
Console.WriteLine("Proses Login
Gagal !")
Else
Console.WriteLine("Welcome
!")
End If
End Sub
End Module
|
Jika perintah For … Next melakukan looping berdasarkan counter, maka
perintah Do … Loop melakukan looping
berdasarkan kondisi, adapun tata cara penulisannya adalah sebagai berikut :
Do { While | Until } condition
[ statements ]
[ Exit Do ]
[ statements ]
Loop
|
Atau
Do
[ statements ]
[ Exit Do ]
[ statements ]
Loop { While | Until
} condition
|
Catatan :
Perbedaan antara kedua struktur perulangan diatas adalah posisi
pemeriksaan kondisi yang akan diuji, pada struktur yang pertama pengujian
kondisi dilakukan sebelum statements dikerjakan, sedangkan pada struktur yang
kedua pengujuan dilakukan setelah statement dikerjakan.
Sebagaimana dengan Exit For, perintah Exit Do akan mengakhiri Looping
tanpa bersyarat, yang artinya jika perintah Exit Do ditemukan, maka proses
Looping akan segera dihentikan dan dilanjutkan ke Statement dibawah Loop.
|
Contoh :
Option Explicit On
Imports System
Module DoLoop
Sub Main()
Dim Dat() As Integer
Dim Jd,DTemp As Integer
Jd = 0
Do
Console.Write("Data Ke-{0}
:", Jd+1)
DTemp = Console.ReadLine()
If DTemp <> 0 Then
ReDim Preserve Dat(Jd)
Dat(Jd) = DTemp
Jd+=1
End If
Loop Until DTemp = 0 'Ulangi sampai Dtemp diisi 0
For I As Integer = 0 To Jd-1
Console.WriteLine("Data
Ke-{0} adalah {1}",I+1, Dat(I))
Next I
End Sub
End
Module
|
Catatan :
Pada contoh diatas, mula-mula kita mendeklarasikan suatu array tanpa
diikuti dengan ukuran, kemudian proses akan dilanjutkan dengan pembacaan data
ke variabel Dtemp, dab jika nilai Dtemp bukan 0 (nol), maka ukuran array akan
dialokasi ulang dengan perintah ReDim Preserve yang akan mempertahankan isi
array, dan pembacaan data akan terus diulang sampai Dtemp diisi dengan 0
(nol).
|
Selain struktur Do…Loop, juga tersedia
perintah perulangan dengan tata cara penulisan sebagai berikut.
While condition
[ statements ]
End While
|
Pada prinsipnya struktur While … End While sama dengan Do While … Loop.
Perintah For Each…Next digunakan untuk melakukan iterasi berdasarkan
collection tertentu, misalnya kita ingin mencetak semua elemen dalam suatu
array, penulisan dengan perintah For Each dapat dilakukan sebagai berikut :
For Each element [ As datatype ] In group
[ statements ]
[ Exit For ]
[ statements ]
Next [ element ]
|
Contoh :
Option Explicit On
Imports System
Module DoLoop
Sub Main()
Dim Dat() As Integer
Dim Jd,DTemp As Integer
Jd = 0
Do
Console.Write("Data Ke-{0}
:", Jd+1)
DTemp = Console.ReadLine()
If DTemp <> 0 Then
ReDim Preserve Dat(Jd)
Dat(Jd) = DTemp
Jd+=1
End If
Loop Until DTemp = 0
For Each Data As Integer In Dat
Console.WriteLine("Data pada
array {0}", Data)
Next
End Sub
End
Module
|
Catatan :
Array pada Visual Basic merupakan collection pada System.Array,
sehingga pemakaian perintah For Each akan mendapatkan elemen 0 s/d element
terakhir dari array.
|