Switch Expression
Switch expression adalah cara lain untuk melakukan percabangan di golang. Switch expression juga ada pada hampir semua bahasa pemrograman. Switch expression bisa dikatakan sebagai versi sederhana dari if expression. Switch expression digunakan untuk melakukan pengecekan kondisi pada suatu variabel. Sebagai contoh, kita bisa menggunakan switch expression untuk cek apakah variabel kategory sama dengan CAT1, sama dengan CAT2, atau CAT3.
Perhatikan contoh berikut ini.
package main
import "fmt"
func main() {
var category = "CAT1"
switch category {
case "CAT1":
fmt.Println("Kategori CAT1")
case "CAT2":
fmt.Println("Kategori CAT2")
default:
fmt.Println("Kategori tidak dikenali")
}
}
output:
Kategori CAT1
Pada contoh kode diatas kita melakukan pengecekan pada variabel category. Maksud dari keyword case "CAT1"
adalah jika variabel category sama dengan CAT1.
Keyword default
pada switch expression fungsinya sama seperti else pada if expression. Kode dalam blok default akan dieksekusi apabila semua kondisi salah.
Short Statement Pada Switch Expression
Selain if expression, short statement juga dapat kita buat pada switch expression. Untuk cara membuatnya juga kurang lebih sama seperti pada if expression.
Perhatikan contoh berikut.
package main
import "fmt"
func main() {
switch married := true; married {
case true:
fmt.Println("Sudah menikah")
case false:
fmt.Println("Belum menikah")
}
}
output:
Sudah menikah
Pada contoh di atas, kita mendeklarasikan variabel married sebelum switch expression. Variabel inilah yang nantinya akan digunakan untuk pengecekan kondisi pada switch expression.
Kita tidak harus menggunakan keyword default karena variabel married bertipe data boolean yang mana nilanya hanya antara true atau false.
Switch Expression Tanpa Kondisi
Di golang, kondisi pada switch tidaklah wajib. Kita bisa memindahkan kondisi yang sebelumnya berada di keyword switch menjadi berada pada tiap keyword case. Dengan begitu, sekarang switch akan terlihat seperti if expression.
Untuk lebih jelasnya perhatikan contoh berikut.
package main
import "fmt"
func main() {
id := "A1"
switch {
case id == "A1":
fmt.Println("ID = A1")
case id == "A2":
fmt.Println("ID = A2")
default:
fmt.Println("ID Invalid")
}
}
output:
ID = A1
Pada contoh kode di atas kita memindahkan pengecekan untuk variabel id ke setiap keyword case milik switch expression. Ini terlihat seperti if, else if, dan else expression.
Berikutnya: #18: For Loop - Belajar Golang Dari Dasar