Do...Loop di VBA Excel, Solusi Saat Jumlah Perulangan Belum Diketahui

Apa Itu Do...Loop?

Do...Loop adalah struktur perulangan yang akan terus menjalankan blok kode selama suatu kondisi bernilai True atau sampai kondisi tertentu terpenuhi.

Berbeda dengan For...Next, Anda tidak perlu menentukan berapa kali proses akan diulang.


Bentuk Dasar Do...Loop

VBA menyediakan beberapa variasi Do...Loop.

Bentuk pertama:

Do While kondisi

    'Kode

Loop

Pada bentuk ini, kondisi diperiksa sebelum blok kode dijalankan.

Jika kondisi bernilai False, perulangan tidak akan dijalankan sama sekali.


Do Until

Selain Do While, terdapat juga Do Until.

Do Until kondisi

    'Kode

Loop

Perulangan akan terus berjalan selama kondisi masih False dan berhenti ketika kondisi menjadi True.


Memahami Perbedaan While dan Until

Misalkan nilai awal variabel adalah:

i = 1

Menggunakan Do While:

Do While i <= 5

    Debug.Print i

    i = i + 1

Loop

Output:

1
2
3
4
5

Sedangkan dengan Do Until:

Do Until i > 5

    Debug.Print i

    i = i + 1

Loop

Hasilnya sama, hanya cara penulisan kondisinya yang berbeda.


Loop dengan Kondisi di Akhir

Kondisi juga dapat diperiksa setelah blok kode dijalankan.

Do

    'Kode

Loop While kondisi

atau

Do

    'Kode

Loop Until kondisi

Pada bentuk ini, isi perulangan pasti dijalankan minimal satu kali, kemudian barulah kondisi diperiksa.


Contoh 1 — Membaca Data Sampai Baris Kosong

Misalkan kolom A berisi daftar nama dengan jumlah yang tidak tetap.

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

Perulangan akan berhenti ketika menemukan sel kosong.


Contoh 2 — Menjumlahkan Angka

Sub Hitung()

    Dim i As Integer
    Dim Total As Long

    i = 1

    Do While i <= 10

        Total = Total + i

        i = i + 1

    Loop

    MsgBox Total

End Sub

Contoh 3 — Menggunakan Do Until

Sub ContohUntil()

    Dim Angka As Integer

    Angka = 1

    Do Until Angka = 11

        Debug.Print Angka

        Angka = Angka + 1

    Loop

End Sub

Studi Kasus

Misalkan Anda ingin mencari baris terakhir yang masih memiliki data.

Dim Baris As Long

Baris = 2

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

    Baris = Baris + 1

Loop

MsgBox "Baris terakhir berisi data : " & Baris - 1

Karena jumlah data tidak diketahui sebelumnya, Do...Loop menjadi solusi yang sederhana.


Do...Loop vs For...Next

Do...LoopFor...Next
Berdasarkan kondisi Berdasarkan jumlah iterasi
Cocok jika jumlah perulangan belum diketahui Cocok jika jumlah perulangan sudah diketahui
Lebih fleksibel Lebih sederhana untuk perulangan tetap
Berpotensi menjadi perulangan tak berujung jika kondisi tidak berubah Berhenti sesuai nilai akhir yang ditentukan

Kesalahan yang Sering Terjadi

Lupa Mengubah Nilai Kondisi

Perhatikan contoh berikut.

Dim i As Integer

i = 1

Do While i <= 10

    Debug.Print i

Loop

Kode tersebut akan menghasilkan perulangan tanpa akhir karena nilai i tidak pernah berubah.

Seharusnya:

i = i + 1

ditambahkan di dalam blok perulangan.


Salah Memilih While atau Until

Pilih bentuk yang paling mudah dipahami.

Jika logika program berbunyi:

"Selama masih ada data..."

gunakan Do While.

Jika berbunyi:

"Berhenti ketika menemukan..."

gunakan Do Until.


Menggunakan Do...Loop untuk Jumlah Iterasi Tetap

Jika jumlah pengulangan sudah diketahui, For...Next biasanya lebih ringkas dan lebih mudah dibaca.


Tips Praktis

💡 Gunakan Do While ketika kondisi untuk melanjutkan proses lebih mudah dituliskan.

💡 Gunakan Do Until ketika lebih mudah menentukan kondisi berhentinya.

💡 Pastikan kondisi di dalam perulangan selalu berubah agar tidak terjadi infinite loop.

💡 Gunakan Do...Loop untuk membaca data yang jumlahnya berubah-ubah.

💡 Pilih For...Next jika jumlah iterasi sudah diketahui sejak awal.


Ringkasan

StrukturKegunaan
Do While Mengulang selama kondisi bernilai True
Do Until Mengulang hingga kondisi bernilai True
Loop While Memeriksa kondisi setelah blok dijalankan
Loop Until Memeriksa kondisi berhenti setelah blok dijalankan

Kesimpulan

Do...Loop merupakan struktur perulangan yang sangat berguna ketika jumlah iterasi tidak dapat ditentukan sejak awal. Dengan memanfaatkan kondisi sebagai pengendali perulangan, Anda dapat membuat makro yang lebih fleksibel untuk membaca data, melakukan pencarian, maupun menjalankan proses hingga syarat tertentu terpenuhi. Kunci penggunaan Do...Loop adalah memastikan kondisi selalu diperbarui agar perulangan dapat berhenti pada waktu yang tepat.

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.
Didik Rahwiniyanto, S.Si., M.Pd.
Mujiburrohman, M.Pd.
Mohammad Zikky, S.ST, M.T
Amien sawedi, S.Pd.
Didik P Wicaksono, M.Pd.