Switch

Dasar-Dasar dari Switch Statement

Switch adalah sebuah alternatif dari if statement, terutama jika berhubungan dengan “else if X... else if Y... else if Z...” yang banyak. Apa pun yang dapat kalian lakukan dengan switch, kalian juga pasti dapat melakukannya menggunakan if.

Sudah sangat umum untuk kita ingin melakukan sesuatu yang berbeda berdasarkan nilai dari suatu variabel. Contohnya, misal kita punya menu dengan lima pilihan. Pengguna mengetikkan pilihan mereka, yang kita simpan dalam variabel. Lalu kita ingin melakukan sesuatu yang berbeda berdasarkan nilai yang mereka pilih.

Menggunakan alat yang kita sudah tahu, kita mungkin akan berpikir untuk menggunakan if-else. Atau mungkin sebuah if/else-if/else-if/else-if/else-if/else. Seperti ini:

int pilihanMenu = 3;

if (pilihanMenu == 1)
    Console.WriteLine("Anda telah memilih pilihan pertama");
else if (pilihanMenu == 2)
    Console.WriteLine("Anda telah memilih pilihan kedua, mantab");
else if (pilihanMenu == 3)
    Console.WriteLine("Bruh, seleramu buruk");
else if (pilihanMenu == 4)
    Console.WriteLine("Ayolah bro, 4?!");
else if (pilihanMenu == 5)
    Console.WriteLine("...");
else
    Console.WriteLine("Woi, itu bahkan bukan pilihan");

Sebenarnya itu juga sudah cukup, akan tetapi ada cara lain untuk melakukan ini, menggunakan switch.

Untuk membuatnya menggunakan switch, kita akan menggunakan keyword switch, dan sebuah keyword case untuk setiap “kasus” yang kita punya. Kita juga akan menggunakan break dan default, tetapi kita akan membahasnya nanti. Program kita di atas akan terlihat seperti di bawah ini jika menggunakan switch:

int pilihanMenu = 3;
switch (pilihanMenu)
{
    case 1:
        Console.WriteLine("Anda telah memilih pilihan pertama");
        break;
    case 2:
        Console.WriteLine("Anda telah memilih pilihan kedua, mantab");
        break;
    case 3:
        Console.WriteLine("Bruh, seleramu buruk");
        break;
    case 4:
        Console.WriteLine("Ayolah bro, 4?!");
        break;
    case 5:
        Console.WriteLine("...");
        break;
    default:
        Console.WriteLine("Woi, itu bahkan bukan pilihan");
        break;
}

Seperti yang dapat kalian lihat, kit memulainya dengan switch, lalu di dalam kurung, kita masukkan variabel yang akan menjadi dasar dari “switch” kita.

Lalu kita punya urutan case statement, yang mengindikasikan jika nilai variabel isinya sama dengan apa yang ada dalam case, blok kode yang ada di dalam case akan di jalankan.

Pada setiap blok case, kalian harus menuliskan keyword break, yang akan mengembalikan alur eksekusi kembali ke seluruh switch, dan lalu dilanjutkan ke bagian kode selanjutnya.

Kita juga bisa punya blok default, yang akan dijalankan jika setiap kasus (case) tidak ada yang sesuai nilainya (mirip seperti else di akhir if yang kita tulis sebelumnya).

Switch juga tidak boleh berisi logika sembarangan pada kondisi di case. Jadi kalau di if statement kan kita dapat menulis seperti if (x < 10), nah di switch hal tersebut tidak bisa dilakukan, kalian tidak dapat menuliskan case < 10: ataupun case x < 10:. Jika kalian ingin logika yang sembarang, kalian harus kembali menggunakan if saja.

Tipe yang Diperbolehkan pada Switch Statement

Di contoh di atas, kita tahu bahwa kita dapat menggunakan int dalam sebuah switch statement. Tidak semua tipe dapat digunakan dalam switch, tetapi ada banyak yang bisa. Berikut merupakan tipe-tipe yang dapat digunakan: bool, string, tipe integral apa pun (termasuk char). Ada juga enumeration, tetapi kita belum sampai di sana.

Last updated