Switch
Pernyataan switch adalah cara alternatif untuk menulis multiple if-else yang lebih rapi dan mudah dibaca.
Contoh Masalah
Bagaimana cara membuat keputusan berdasarkan nilai tertentu? Misalnya:
- Menentukan nama hari berdasarkan angka
- Menentukan jenis file berdasarkan ekstensi
- Menentukan kategori nilai
Penyelesaian
package main
import (
"fmt"
"strings"
)
func main() {
// 1. Switch untuk hari
hari := 3
fmt.Print("Hari ke-", hari, " adalah ")
switch hari {
case 1:
fmt.Println("Senin")
case 2:
fmt.Println("Selasa")
case 3:
fmt.Println("Rabu")
case 4:
fmt.Println("Kamis")
case 5:
fmt.Println("Jumat")
case 6:
fmt.Println("Sabtu")
case 7:
fmt.Println("Minggu")
default:
fmt.Println("Hari tidak valid")
}
// 2. Switch untuk ekstensi file
namaFile := "dokumen.pdf"
ekstensi := strings.ToLower(namaFile[strings.LastIndex(namaFile, ".")+1:])
fmt.Printf("\nFile %s adalah ", namaFile)
switch ekstensi {
case "pdf":
fmt.Println("dokumen PDF")
case "jpg", "jpeg", "png":
fmt.Println("file gambar")
case "mp3", "wav":
fmt.Println("file audio")
default:
fmt.Println("file tidak dikenal")
}
// 3. Switch dengan kondisi
nilai := 85
fmt.Printf("\nNilai %d mendapat grade ", nilai)
switch {
case nilai >= 90:
fmt.Println("A")
case nilai >= 80:
fmt.Println("B")
case nilai >= 70:
fmt.Println("C")
case nilai >= 60:
fmt.Println("D")
default:
fmt.Println("E")
}
}
Penjelasan Kode
Switch Biasa
- Membandingkan nilai dengan case
- Case harus unik
- Default untuk nilai yang tidak cocok
Switch dengan Multiple Case
- Beberapa nilai dalam satu case
- Dipisahkan dengan koma
Switch tanpa Variabel
- Menggunakan kondisi langsung
- Mirip if-else
Output
Hari ke-3 adalah Rabu
File dokumen.pdf adalah dokumen PDF
Nilai 85 mendapat grade B
Tips
- Gunakan switch untuk kode yang lebih rapi dari if-else
- Default case sebaiknya selalu ada
- Go switch tidak perlu break (otomatis break)
- Bisa menggunakan fallthrough untuk lanjut ke case berikutnya