Kalau kamu sedang belajar Golang dan mulai masuk ke bagian perulangan, selamat ya kamu sedang memasuki salah satu fitur paling penting, paling sering dipakai, dan kadang paling bikin frustasi kalau salah kondisi. Untungnya, di Golang semuanya dibuat simpel. Tidak seperti bahasa lain yang punya while, do...while, dan for dengan tiga puluh variasi, Golang itu straight to the point: hanya ada satu keyword perulangan, yaitu for.
Yep, cuma itu.
Tapi jangan salah meski cuma satu, kemampuannya sudah cukup untuk menangani semua kebutuhan looping kamu. Termasuk looping klasik, looping tanpa batas, sampai looping ala anak gaul dengan range.
Apa Itu Perulangan dalam Golang?
Perulangan (looping) adalah proses menjalankan blok kode secara berulang sesuai kondisi tertentu. Misalnya kamu punya tugas menyapa teman sebanyak lima kali.
Daripada kamu menulis:
fmt.Println("Halo Asep")
fmt.Println("Halo Asep")
fmt.Println("Halo Asep")
fmt.Println("Halo Asep")
fmt.Println("Halo Asep")
Lebih baik kamu pakai loop. Tinggal satu kali tulis, jadi lima kali jalan.
Lebih hemat kode, lebih cepat, dan lebih enak dilihat.
Dalam Golang, looping paling umum digunakan untuk:
-
Mengakses data dalam array, slice, atau map
-
Mengulang proses hingga kondisi tertentu terpenuhi
-
Menjalankan operasi berulang seperti animasi, kalkulasi, atau membaca data
-
Membuat program berjalan terus (misal: server)
Nah, sekarang mari masuk ke prakteknya!
Perulangan ‘for’ Biasa
Format paling standar dari for di Golang mirip dengan bahasa C atau Java.
Bentuknya:
for init; condition; post {
// kode kamu
}
Mari bedah satu per satu:
-
init → dijalankan satu kali di awal loop
-
condition → dicek di setiap iterasi, kalau false maka loop berhenti
-
post → dijalankan setiap akhir iterasi
Contoh paling klasik:
for i := 1; i <= 5; i++ {
fmt.Println("Iterasi ke-", i)
}
Output:
Iterasi ke- 1
Iterasi ke- 2
Iterasi ke- 3
Iterasi ke- 4
Iterasi ke- 5
Kenapa ini penting?
Karena pola for model ini adalah dasar dari hampir semua perulangan.
Kamu bisa menggunakannya untuk menghitung, iterasi berurutan, atau bahkan membuat algoritma besar.
Perulangan Tanpa Kondisi (Mirip while)
Golang nggak punya keyword while.
Tapi tenang, kamu bisa membuat perulangan model while dengan cara:
for condition {
// kode
}
Contoh:
i := 1
for i <= 5 {
fmt.Println("Nilai i:", i)
i++
}
Sama persis dengan:
while (i <= 5)
{
...
}
Kenapa berguna?
Karena kamu bisa bikin loop yang bergantung pada kondisi variabel yang berubah dari dalam.
Perulangan Tanpa Batas (Infinite Loop)
Ini cocok untuk program server, worker, listener, atau kalau kamu lagi iseng.
for {
fmt.Println("Halo, aku tidak akan berhenti...")
}
Tapi hati-hati.
Kalau ini kamu jalankan di production tanpa alasan jelas, DevOps bisa marah besar.
Untuk keluar dari loop ini kamu harus pakai break atau return.
Perulangan dengan range
Sekarang ini favorit semua programmer Golang. range sangat berguna untuk membaca isi:
-
array
-
slice
-
map
-
string
-
channel
Formatnya:
for index, value := range collection {
...
}
Contoh dengan slice
names := []string{"Andi", "Budi", "Cici"}
for i, name := range names {
fmt.Println("Index:", i, "Nama:", name)
}
Output:
Index: 0 Nama: Andi
Index: 1 Nama: Budi
Index: 2 Nama: Cici
Kalau kamu cuma butuh value, index bisa kamu buang pakai _:
for _, name := range names {
fmt.Println(name)
}
Kalau cuma perlu index?
for i := range names {
fmt.Println("Index:", i)
}
Contoh dengan map
scores := map[string]int{
"Asep": 90,
"Ujang": 85,
"Sari": 95,
}
for name, score := range scores {
fmt.Println(name, ":", score)
}
Di map, urutan tidak pernah dijamin. Jadi jangan kaget kalau outputnya acak tiap run.
Perulangan untuk String
Ingat: string di Golang adalah kumpulan byte, bukan kumpulan karakter Unicode.
Dengan range, Golang otomatis membaca rune (karakter):
text := "Halo"
for i, char := range text {
fmt.Println(i, string(char))
}
Bagus untuk string berisi karakter non-ASCII.
Menggunakan break dan continue
Golang menyediakan cara untuk mengontrol alur loop.
break
Memberhentikan perulangan.
for i := 1; i <= 10; i++ {
if i == 5 {
break
}
fmt.Println(i)
}
Loop berhenti saat i == 5.
continue
Skip iterasi saat ini dan lanjut ke berikutnya.
for i := 1; i <= 5; i++ {
if i == 3 {
continue
}
fmt.Println(i)
}
Angka 3 dilewati.
Label pada Perulangan
Biasanya dipakai saat nested loop (loop di dalam loop).
Tanpa label, break hanya berhenti di loop paling dalam.
Dengan label:
outer:
for i := 1; i <= 3; i++ {
for j := 1; j <= 3; j++ {
if j == 2 {
break outer
}
fmt.Println(i, j)
}
}
Loop langsung berhenti semua ketika j == 2.
Fitur ini tidak wajib, tapi sangat berguna saat algoritma kompleks.
Contoh Studi Kasus
Mari lihat contoh simpel yang dipakai di dunia nyata.
A. Menghitung jumlah angka genap
numbers := []int{1,2,3,4,5,6,7,8,9,10}
count := 0
for _, n := range numbers {
if n%2 == 0 {
count++
}
}
fmt.Println("Jumlah angka genap:", count) B. Cek apakah email sudah terdaftar
emails := []string{"a@gmail.com", "b@gmail.com", "c@gmail.com"}
target := "b@gmail.com"
found := false
for _, e := range emails {
if e == target {
found = true
break
}
}
fmt.Println("Email ditemukan:", found)C. Looping untuk server (infinite loop)
for {
fmt.Println("Menunggu request...")
time.Sleep(1 * time.Second)
} Tips Penting agar Perulangan Kamu Efisien
Golang terkenal cepat, tapi tetap ada trik untuk performa:
✅ Hindari melakukan operasi berat di dalam loop
Misalnya sorting, query database, parsing besar.
✅ Gunakan range untuk data collection
Lebih rapi dan idiomatis.
✅ Gunakan break saat kondisi sudah terpenuhi
Bikin program lebih cepat.
✅ Hindari infinite loop tanpa jeda
Minimal kasih time.Sleep() atau buat mekanisme keluar.
✅ Untuk map, ingat bahwa urutannya acak
Jangan buat logika yang mengandalkan urutan map.
Perulangan di Golang itu sederhana, kuat, dan sangat fleksibel.
Meskipun hanya ada satu keyword (for), kamu bisa menggunakannya sebagai:
-
loop klasik (
for init; condition; post) -
loop ala while (
for condition) -
infinite loop (
for {}) -
loop untuk array, slice, map, string (
for range) -
loop bersarang yang bisa dikendalikan dengan label
Dengan menguasai for dan range, kamu sudah memegang salah satu pondasi terpenting dalam pemrograman Golang.
Semakin sering kamu latihan, semakin natural rasanya.
Dan siapa tahu, nanti kamu bisa bikin kode yang bukan hanya rapi dan cepat, tapi juga bisa bikin programmer lain bilang:
“Wah ini sih Golang banget cara ngodingnya!”

0 Comments:
Posting Komentar