1 Gambaran Umum tentang Pernyataan Perulangan
Dalam bahasa Go, pernyataan perulangan memungkinkan kita untuk menjalankan sebuah blok kode beberapa kali. Ketika Anda perlu melakukan operasi tertentu secara berulang, pernyataan perulangan menjadi sangat berguna. Misalnya, Anda mungkin ingin mengiterasi setiap elemen dalam sebuah array, atau mengulangi sebuah operasi hingga kondisi tertentu terpenuhi. Di Go, pernyataan perulangan sebagian besar diimplementasikan menggunakan kata kunci for, yang merupakan satu-satunya pernyataan perulangan dalam bahasa Go. Penggunaan yang benar dari pernyataan perulangan sangat penting untuk menulis kode yang efisien dan mudah dipelihara.
2 Dasar-dasar Perulangan for
2.1 Struktur Perulangan for
Perulangan for dalam bahasa Go terdiri dari tiga bagian:
- Pernyataan inisialisasi: dieksekusi sebelum iterasi pertama, biasanya digunakan untuk mendeklarasikan penghitung perulangan.
-
Ekspresi kondisi: dievaluasi sebelum setiap iterasi. Jika kondisinya
true, blok perulangan dieksekusi. - Pernyataan pos: dieksekusi setelah blok kode setiap iterasi, biasanya digunakan untuk memperbarui penghitung perulangan.
Syntax dari perulangan for adalah sebagai berikut:
for pernyataan inisialisasi; ekspresi kondisi; pernyataan pos {
// kode badan perulangan
}
2.2 Contoh Sederhana Perulangan for
Mari kita pahami proses eksekusi perulangan for melalui contoh sederhana:
package main
import "fmt"
func main() {
for i := 0; i < 5; i++ {
fmt.Println("Nilai i adalah:", i)
}
}
Pada contoh ini, variabel i diinisialisasi sebagai 0. Perulangan for memeriksa apakah kondisi i < 5 adalah benar. Jika kondisinya benar, blok perulangan dieksekusi dan nilai i dicetak. Setelah menjalankan blok perulangan, nilai i diperbarui dengan i++ (operasi penambahan), dan kemudian perulangan memeriksa kondisi lagi hingga nilai i mencapai 5, pada saat kondisinya menjadi salah dan perulangan for berhenti.
2.3 Contoh Perulangan for Lainnya
Perulangan for dalam bahasa Go sangat fleksibel dan dapat ditulis dalam berbagai bentuk untuk menangani skenario yang berbeda.
2.3.1 Perulangan Tanpa Batas
Di Go, Anda dapat menghilangkan pernyataan inisialisasi, ekspresi kondisi, dan pernyataan pos dari perulangan for, menciptakan perulangan tanpa batas yang akan berjalan sampai diakhiri oleh pernyataan break atau nilai kembalian dari suatu fungsi.
for {
// Kode dalam perulangan tanpa batas
if kondisiTertentu {
break // Keluar dari perulangan ketika kondisi tertentu terpenuhi
}
}
2.3.2 Perulangan Hanya dengan Kondisi
Di Go, Anda juga dapat menggunakan perulangan for yang hanya berisi kondisi, mirip dengan while dalam bahasa pemrograman lain.
n := 0
for n < 5 {
fmt.Println(n)
n++
}
Kode di atas akan mencetak 0 hingga 4, dan perulangan akan berakhir ketika n mencapai 5.
2.3.3 Perulangan melalui sebuah array atau slice
Di Go, kata kunci range digunakan untuk menyederhanakan iterasi melalui setiap elemen dari sebuah array atau slice.
items := []int{1, 2, 3, 4, 5}
for indeks, nilai := range items {
fmt.Printf("Indeks: %d, Nilai: %d\n", indeks, nilai)
}
Kode di atas akan mencetak indeks dan nilai dari setiap elemen. Jika Anda hanya memerlukan nilai dari elemen-elemen tersebut, Anda dapat menggunakan _ untuk mengabaikan indeks.
for _, nilai := range items {
fmt.Printf("Nilai: %d\n", nilai)
}
Catatan: Penggunaan array akan dijelaskan secara detail di bab-bab berikutnya. Jika Anda tidak memahami bagian ini, tidak masalah asalkan Anda memahami bahwa
forloop dapat digunakan dengan cara ini.
2.3.4 Melooping melalui peta
Saat melakukan iterasi melalui peta, kombinasi dari loop for dan ekspresi range sangat kuat. Ini memungkinkan Anda untuk mendapatkan setiap pasangan kunci-nilai dari peta.
colors := map[string]string{"red": "#ff000", "green": "#00ff00", "blue": "#000ff"}
for key, value := range colors {
fmt.Printf("Kunci: %s, Nilai: %s\n", key, value)
}
Dalam contoh ini, kita mencetak semua kunci dan nilainya yang sesuai dalam peta colors. Seperti saat melakukan iterasi melalui potongan data, jika Anda hanya memerlukan kunci atau nilai, Anda dapat memilih untuk mengabaikan yang lainnya.
Catatan: Penggunaan peta akan dijelaskan secara rinci dalam bab-bab berikutnya. Jika Anda tidak memahami bagian ini, itu tidak masalah selama Anda memahami bahwa loop
fordapat digunakan seperti ini.
3 Mengendalikan alur dari loop
3.1 Menggunakan break untuk mengakhiri loop
Terkadang kita perlu keluar dari loop sebelum waktunya ketika kondisi tertentu terpenuhi, dan dalam kasus seperti itu, pernyataan break dapat digunakan. Berikut adalah contoh penggunaan break untuk keluar dari loop:
package main
import "fmt"
func main() {
for i := 0; i < 10; i++ {
if i == 5 {
break // Keluar dari loop ketika i sama dengan 5
}
fmt.Println("Nilai i adalah:", i)
}
// Outputnya hanya akan berisi nilai dari 0 hingga 4
}
3.2 Menggunakan continue untuk melewati iterasi
Dalam situasi tertentu, kita mungkin ingin melewati iterasi saat ini dan melanjutkan dengan iterasi berikutnya dalam loop. Hal ini dapat dicapai menggunakan pernyataan continue. Berikut adalah contohnya:
package main
import "fmt"
func main() {
for i := 0; i < 10; i++ {
if i%2 != 0 {
continue // Lewati iterasi ini jika i ganjil
}
fmt.Println("Bilangan Genap:", i)
}
}