Selasa, 03 Juni 2014

LOOPING

LOOPING

Apa itu looping?
Looping digunakan untuk tujuan perulangan. Proses perulangan tersebut akan berhenti jika telah mencapai nilai tertentu. Looping atau perulangan sangat berguna untuk optimisasi program yang dibuat. Dengan algoritma tertentu program yang dibuat akan menjadi lebih singkat jika ditulis dengan perulangan daripada harus menulisnya satu persatu. Kali ini akan dibahas Looping dengan bahasa Visual Basic.

Macam-macam Bentuk Looping
A.   Do While – Loop atau Do – Loop While
Perulangan Do While – Loop adalah perulangan yang akan dijalankan jika kondisi bernilai TRUE (memenuhi syarat) dan akan berhenti pada saat kondisi bernilai FALSE (tidak memenuhi syarat).

Struktur kode 1:
Do While {kondisi}
{pernyataan}
Loop

Struktur kode 2:
Do
{pernyataan}
Loop While 
{kondisi}

Cara baca: “Lakukan perulangan {pernyataan} jika {kondisi} bernilai True”
Perbedaan pada struktur kode 1 dan struktur kode 2 hanya pada saat pertama kali perulangan dijalankan.

Pada struktur kode 1, kondisi akan diperiksa terlebih dahulu. Jika kondisi bernilai Truemaka perulangan dari pernyataan akan diproses.

Sedangkan pada struktur kode 2, pernyataan perulangan akan dijalankan terlebih dahulu kemudian baru melakukan pemeriksaan kondisi. Dengan begitu maka akan menghasilkan perulangan minimal 1 kali.

B.   Do Until – Loop atau Do – Loop Until
Kebalikan dari Perulangan Do While – Loop  adalah Do Until – Loop yaitu perulangan yang akan dijalankan jika kondisi bernilai FALSE (tidak memenuhi syarat) dan akan berhenti pada saat kondisi bernilai TRUE (memenuhi syarat).

Struktur kode 1:
Do Until {kondisi}
     {pernyataan}
Loop

Struktur kode 2:

Do
     {pernyataan}
Loop Until {kondisi}

Cara baca: “Lakukan perulangan {pernyataan} jika {kondisi} bernilai False” atau “Lakukan perulangan {pernyataan} sampai/hingga {kondisi} bernilai benar sehingga perulangan berhenti”
Perbedaan pada struktur kode 1 dan struktur kode 2 hanya pada saat pertama kali perulangan dijalankan.

Pada struktur kode 1, kondisi akan diperiksa terlebih dahulu. Jika kondisi bernilai Falsemaka perulangan dari pernyataan akan diproses.

Sedangkan pada struktur kode 2, pernyataan perulangan akan dijalankan terlebih dahulu kemudian baru melakukan pemeriksaan kondisi. Dengan begitu maka akan menghasilkan perulangan minimal 1 kali.

C.   Perulangan While - Wend
Jenis perulangan While-Wend hampir sama dengan Do-While – Loop, hanya beda struktur dalam penulisan kode-nya saja.

Struktur kode:
While {kondisi}
{aksi}
Wend

Pada struktur perulangan While-Wend, jika kondisi bernilai True, maka aksi akan dijalankan.

D.   Perulangan For - Next
Perulangan For-Next adalah jenis perulangan dengan jumlah perulangan(looping) sudah ditentukan terlebih dahulu (dengan variabel ber-type integer).  
Struktur kode:
For {penghitung} = {awal} to {akhir}
{pernyataan}
Next {penghitung}

Atau struktur kode dengan pertambahan:

For {penghitung} = {awal} To {akhir} Step {pertambahan}
{pernyataan}
Next {penghitung}

Cara baca: “Lakukan perhitungan {pernyataan} mulai dari nilai {awal} sampai dengan {akhir} dengan pertambahan ke {penghitung} sebesar {pertambahan}”

Penjelasan:
{penghitung} adalah variabel bertipe integer yang nilainya berubah-ubah sesuai jumlah perulangan yang terpenuhi. {awal} adalah nilai awal dari variabel {penghitung} yang akan diproses pertamakali dalam perulangan. {akhir} adalah nilai akhir dari variabel {penghitung} yang akan mengakhiri proses perulangan. {pertambahan} adalah nilai pertambahan yang akan ditambahkan ke variabel {penghitung} untuk proses perulangan selanjutnya (berlaku jika ditambahkan kode Step). Jika tidak memakai pertambahan Step maka secara default nilai pertambahannya adalah 1.
Untuk perulangan bernilai positif ( menaik ) maka nilai {awal} harus lebih kecil atau sama dengan nilai {akhir}. Sedangkan untuk perulangan bernilai negatif (menurun) maka nilai {awal} harus lebih besar atau sama dengan nilai {akhir}.

E.   Perulangan For Each- Next
Perulangan ini adalah perulangan untuk operasi kontrol pada suatu object atau container.
Struktur kode :

For Each {element} In {group}
     {pernyataan} 
Next

contoh: Misalnya, pada sebuah Form dengan name Form1 mempunyai 12 Textbox dengan name Text1 – Text12. Form tersebut tersedia sebuah tombol / Command dengan nama Command1 yang berfungsi untuk mengosongkan teks pada semua textbox yang ada pada form tersebut. Penulisan kode untuk tombol Command1 adalah sebagai berikut :

 Private Sub Command1_Click()
‘Menggunakan perulangan For Each - Next
For Each txt In Form1.Controls
     If typeOf txt Is TextBox Then
           Txt.Text = ””
     End If 
Next
End Sub

Contoh lain

Pada contoh berikut, pernyataan dalam loop terus berjalan sampai variabel indeks lebih besar dari 10. The Sampai klausa adalah pada akhir loop.
 
Dim index As Integer = 0
Do
    Debug.Write(index.ToString & " ")
    index += 1
Loop Until index > 10
 
Debug.WriteLine("")
' Output: 0 1 2 3 4 5 6 7 8 9 10 

Contoh berikut ini menggunakan klausul Sementara bukannya Sampai klausa, dan kondisi diuji pada awal loop, bukan di akhir.

Dim index As Integer = 0
Do While index <= 10
    Debug.Write(index.ToString & " ")
    index += 1
Loop
 
Debug.WriteLine("")
' Output: 0 1 2 3 4 5 6 7 8 9 10 

Dalam contoh berikut, kondisi berhenti loop ketika variabel indeks lebih besar dari 100. Pernyataan Jika dalam lingkaran, bagaimanapun, menyebabkan Exit Do pernyataan untuk menghentikan loop ketika variabel indeks lebih besar dari 10.

Dim index As Integer = 0
Do While index <= 100
    If index > 10 Then 
        Exit Do 
    End If
 
    Debug.Write(index.ToString & " ")
    index += 1
Loop
 
Debug.WriteLine("")
' Output: 0 1 2 3 4 5 6 7 8 9 10 

Contoh berikut membaca semua baris dalam sebuah file teks. Metode OpenText membuka file tersebut dan mengembalikan StreamReader yang membaca karakter. Dalam kondisi Do ... Loop, metode Peek dari StreamReader menentukan apakah ada karakter tambahan.

Private Sub ShowText(ByVal textFilePath As String)

    If System.IO.File.Exists(textFilePath) = False Then
        Debug.WriteLine("File Not Found: " & textFilePath)
    Else 
        Dim sr As System.IO.StreamReader = System.IO.File.OpenText(textFilePath)
 
        Do While sr.Peek() >= 0
            Debug.WriteLine(sr.ReadLine())
        Loop
 
        sr.Close()
    End If 
End Sub


Tidak ada komentar:

Posting Komentar