Perulangan Do...Loop pada VBA Excel: Mengulang Proses Selama Kondisi Terpenuhi

 

Mengapa Perlu Mempelajari Do...Loop?

Pada artikel sebelumnya, Anda telah mempelajari perulangan For...Next yang digunakan ketika jumlah pengulangan sudah diketahui, misalnya mengulang proses sebanyak 10 atau 100 kali.

Namun, bagaimana jika Anda tidak mengetahui berapa kali proses harus diulang?

Misalnya:

  • Membaca data hingga menemukan baris kosong.

  • Meminta pengguna mengisi input sampai data yang dimasukkan benar.

  • Menjalankan proses hingga suatu kondisi terpenuhi.

Dalam kondisi seperti ini, Do...Loop merupakan pilihan yang lebih tepat.


Mengenal Do...Loop

Do...Loop adalah struktur perulangan yang akan menjalankan suatu blok kode selama kondisi tertentu bernilai True atau hingga kondisi tertentu menjadi True, tergantung bentuk penulisannya.

Berbeda dengan For...Next yang mengandalkan jumlah iterasi, Do...Loop bergantung pada kondisi.

Dengan kata lain:

For...Next → Mengulang berdasarkan jumlah.

Do...Loop → Mengulang berdasarkan kondisi.


Bentuk Dasar Do...Loop

VBA menyediakan beberapa bentuk penulisan Do...Loop.

1. Do While...Loop

Perulangan dilakukan selama kondisi bernilai True.

Do While kondisi

    pernyataan

Loop

2. Do Until...Loop

Perulangan dilakukan selama kondisi masih False.

Do Until kondisi

    pernyataan

Loop

3. Do...Loop While

Kondisi diperiksa setelah blok kode dijalankan.

Do

    pernyataan

Loop While kondisi

4. Do...Loop Until

Do

    pernyataan

Loop Until kondisi

Memahami Perbedaannya

Perhatikan ilustrasi berikut.

Misalkan terdapat variabel:

Nilai = 1

Do While

Do While Nilai <= 5

    Nilai = Nilai + 1

Loop

Artinya:

Selama nilai masih kurang dari atau sama dengan 5, perulangan akan terus dilakukan.


Do Until

Do Until Nilai > 5

    Nilai = Nilai + 1

Loop

Artinya:

Perulangan akan berhenti ketika nilai sudah lebih besar dari 5.

Walaupun bentuknya berbeda, kedua contoh di atas menghasilkan proses yang sama.


Contoh Sederhana

Menampilkan angka 1 sampai 5.

Sub ContohDo()

    Dim i As Integer

    i = 1

    Do While i <= 5

        Debug.Print i

        i = i + 1

    Loop

End Sub

Output

1
2
3
4
5

Contoh Menggunakan Do Until

Sub ContohDoUntil()

    Dim i As Integer

    i = 1

    Do Until i > 5

        Debug.Print i

        i = i + 1

    Loop

End Sub

Outputnya sama seperti contoh sebelumnya.


Ilustrasi Cara Kerja

Misalkan terdapat kode berikut.

i = 1

Do While i <= 3

    MsgBox i

    i = i + 1

Loop

Proses yang terjadi adalah:

IterasiNilai iKondisiHasil
1 1 True Menampilkan 1
2 2 True Menampilkan 2
3 3 True Menampilkan 3
4 4 False Perulangan berhenti

Kapan Menggunakan Do...Loop?

Gunakan Do...Loop ketika:

  • Jumlah pengulangan belum diketahui.

  • Membaca data sampai menemukan baris kosong.

  • Menunggu pengguna memberikan input yang benar.

  • Melakukan validasi data.

  • Mengolah data hingga kondisi tertentu terpenuhi.


Studi Kasus 1

Membaca Data Sampai Baris Kosong

Sub BacaData()

    Dim Baris As Long

    Baris = 2

    Do While Cells(Baris, 1).Value <> ""

        Debug.Print Cells(Baris, 1).Value

        Baris = Baris + 1

    Loop

End Sub

Kode tersebut akan membaca seluruh data pada kolom A mulai baris kedua hingga menemukan sel kosong.


Studi Kasus 2

Memberi Warna Sel yang Berisi Nilai

Sub WarnaiData()

    Dim Baris As Long

    Baris = 1

    Do Until Cells(Baris, 1).Value = ""

        Cells(Baris, 1).Interior.Color = vbYellow

        Baris = Baris + 1

    Loop

End Sub

Program akan terus memberi warna hingga menemukan baris kosong.


Menggunakan Exit Do

Seperti Exit For, VBA juga menyediakan Exit Do.

Sub ExitLoop()

    Dim i As Integer

    i = 1

    Do While i <= 100

        If i = 10 Then Exit Do

        Debug.Print i

        i = i + 1

    Loop

End Sub

Perulangan langsung berhenti ketika nilai i mencapai 10.


Perbandingan For...Next dan Do...Loop

For...NextDo...Loop
Jumlah perulangan sudah diketahui Jumlah perulangan belum diketahui
Menggunakan variabel penghitung Menggunakan kondisi
Cocok untuk iterasi tetap Cocok untuk validasi dan pembacaan data
Sintaks lebih sederhana Lebih fleksibel

Tips Pemrograman

✔ Gunakan For...Next jika jumlah pengulangan sudah diketahui.

✔ Gunakan Do...Loop jika perulangan bergantung pada kondisi.

✔ Pastikan kondisi perulangan dapat berubah agar tidak terjadi infinite loop.

✔ Gunakan tipe data Long saat bekerja dengan nomor baris pada Excel.


Kesalahan yang Sering Terjadi

1. Lupa Mengubah Nilai Variabel

Do While i <= 10

    Debug.Print i

Loop

Kode di atas akan menyebabkan infinite loop, karena nilai i tidak pernah berubah.

Perbaikannya:

Do While i <= 10

    Debug.Print i

    i = i + 1

Loop

2. Kondisi Salah

Do While i > 10

Padahal nilai awal i adalah 1.

Akibatnya, perulangan tidak pernah dijalankan.


3. Lupa Loop

Do While i <= 5

    Debug.Print i

Kode tersebut akan menghasilkan kesalahan sintaks karena blok perulangan belum ditutup.


Ringkasan

Hal-hal penting yang perlu diingat:

  • Do...Loop adalah perulangan berbasis kondisi.

  • Terdapat empat bentuk utama Do...Loop.

  • Do While mengulang selama kondisi benar.

  • Do Until mengulang sampai kondisi menjadi benar.

  • Exit Do digunakan untuk menghentikan perulangan sebelum selesai.

  • Selalu pastikan kondisi dapat berubah agar tidak terjadi infinite loop.


Latihan Mandiri

Latihan 1

Buat program yang menampilkan angka 1 sampai 20 menggunakan Do While.


Latihan 2

Buat program yang memberi warna hijau pada seluruh sel di kolom A hingga menemukan sel kosong.


Latihan 3

Buat program yang menghitung jumlah data pada kolom B hingga menemukan baris kosong, kemudian tampilkan hasilnya menggunakan MsgBox.


Kesimpulan

Perulangan Do...Loop sangat berguna ketika jumlah pengulangan belum dapat ditentukan sejak awal. Dengan memanfaatkan kondisi sebagai pengendali perulangan, Anda dapat membuat program yang lebih fleksibel untuk membaca data, melakukan validasi, maupun mengotomatisasi berbagai proses di Excel.

Setelah menguasai For...Next dan Do...Loop, Anda telah memahami dua jenis perulangan utama dalam VBA Excel yang akan menjadi dasar dalam membangun aplikasi yang lebih kompleks.

Hubungi Kami

Kantor Berkreasi
Alamat :
Pens Sky Venture - Sukolilo Surabaya
Karangrejo Tmur 17 Surabaya

Email : kantor.berkreasi@gmail.com
WA : wa.me/6287761589881  
(Support  Mbak Ana)

Tim Pengembang

Dr. Rojabi Azharghany, M.Si, S.Sos
Dr. H. Agus Sulthoni Imami, S.Psi. M.Pd.I.
Ali Ishaq, M.Pd.
Mujiburrohman, M.Pd.
Mohammad Zikky, S.ST, M.T
Iqbal F. Rakhmat, SE., MM., M.Kom, CPISM, MCE
Budi Prasetya, ST., MM.
Amien sawedi, S.Pd.
Didik P Wicaksono, M.Pd.