- 1 1. Pendahuluan: Apa itu Percabangan Kondisional dalam C?
- 2 2. Sintaks Dasar dan Cara Menggunakan switch-case
- 3 3. Karakteristik dan Hal yang Perlu Diperhatikan dalam switch-case
- 4 4. Perbedaan dengan if-else: Mana yang Sebaiknya Dipilih?
- 5 5. Contoh Lanjutan: Cara Membuat switch-case Lebih Praktis
- 6 6. Kesalahan Umum dan Cara Mengatasinya
- 7 7. Ringkasan dan Langkah Selanjutnya
1. Pendahuluan: Apa itu Percabangan Kondisional dalam C?
Pentingnya dan Peran Percabangan
Dalam pemrograman, percabangan memainkan peran yang sangat penting. Dengan mengeksekusi proses yang berbeda berdasarkan kondisi tertentu, program dapat menjadi lebih fleksibel dan efisien.
Dasar Percabangan dalam Bahasa C
Dalam bahasa C, ada dua cara utama untuk melakukan percabangan:
- Pernyataan if-else
- Pernyataan switch-case
Di antara keduanya, switch-case sangat efektif ketika ada beberapa kondisi yang jelas, karena dapat menangani percabangan dengan lebih efisien.
Peran dan Penggunaan switch-case
Pernyataan switch-case
adalah struktur kontrol yang membagi eksekusi berdasarkan nilai dari suatu variabel. Sangat berguna dalam skenario berikut:
- Program pemilihan menu
- Klasifikasi berdasarkan angka atau karakter
- Manajemen status sederhana
Contoh Skenario Penggunaan
Sebagai contoh, bayangkan sebuah aplikasi yang mengeksekusi perintah berbeda berdasarkan nomor menu. Jika pengguna memilih “1”, program akan memberi instruksi “Mulai”; jika memilih “2”, instruksi akan menjadi “Keluar”.
Keuntungan Mempelajari switch-case
- Kode lebih ringkas dan mudah dibaca
- Percabangan lebih terstruktur sehingga meminimalkan kesalahan
- Meningkatkan efisiensi program
Dalam artikel ini, kami akan membahas secara detail mulai dari sintaks dasar switch-case, contoh penerapan, hingga poin penting yang perlu diperhatikan. Dengan memahaminya, Anda dapat meningkatkan keterampilan praktis dalam pemrograman C.

2. Sintaks Dasar dan Cara Menggunakan switch-case
Sintaks Dasar
Berikut adalah sintaks dasar dari switch-case
:
switch (ekspresi) {
case KONSTANTA1:
// Proses 1
break;
case KONSTANTA2:
// Proses 2
break;
default:
// Proses lainnya
}
Contoh Kode: Program Penentuan Hari
#include <stdio.h>
int main() {
int day;
printf("Masukkan nomor hari (1〜7): ");
scanf("%d", &day);
switch (day) {
case 1:
printf("Senin\n");
break;
case 2:
printf("Selasa\n");
break;
case 3:
printf("Rabu\n");
break;
case 4:
printf("Kamis\n");
break;
case 5:
printf("Jumat\n");
break;
case 6:
printf("Sabtu\n");
break;
case 7:
printf("Minggu\n");
break;
default:
printf("Input tidak valid\n");
}
return 0;
}
Poin Penting dari Contoh Ini
- Pernyataan
break
digunakan di setiap kasus untuk mengontrol alur eksekusi. - Pernyataan
default
digunakan untuk menangani input yang tidak valid.
Keuntungan Menggunakan switch-case
- Meningkatkan keterbacaan: Percabangan lebih sederhana dan mudah dipahami.
- Mengurangi jumlah kode: Lebih efisien untuk banyak kondisi pada variabel yang sama.
- Mencegah kesalahan: Penanganan input yang tidak sesuai bisa dilakukan dengan mudah.
3. Karakteristik dan Hal yang Perlu Diperhatikan dalam switch-case
Karakteristik 1: Sederhana dan Mudah Dibaca
Pernyataan switch-case
membuat percabangan dengan banyak kondisi lebih ringkas, sehingga meningkatkan keterbacaan kode.
Karakteristik 2: Spesifik untuk Tipe Integer dan Karakter
Pernyataan switch-case
dirancang khusus untuk menangani nilai bertipe integer (int) dan karakter (char).
Hal yang Perlu Diperhatikan
1. Jangan Lupa break
int num = 1;
switch (num) {
case 1:
printf("Satu\n");
case 2:
printf("Dua\n");
default:
printf("Lainnya\n");
}
Hasil Output:
Satu
Dua
Lainnya
Solusi:
int num = 1;
switch (num) {
case 1:
printf("Satu\n");
break;
case 2:
printf("Dua\n");
break;
default:
printf("Lainnya\n");
}
2. Hanya Bisa Menggunakan Konstanta
int x = 10;
switch (x) {
case x: // Error
printf("Ini error\n");
break;
}
Versi yang Benar:
#define VALUE 10
switch (x) {
case VALUE:
printf("Berhasil\n");
break;
}
Ringkasan
- Jangan lupa menulis break – untuk mencegah fall-through yang tidak diinginkan.
- Gunakan hanya konstanta – variabel atau ekspresi tidak dapat digunakan.
- Atur struktur bersarang – gunakan komentar dan indentasi untuk menjaga keterbacaan.

4. Perbedaan dengan if-else: Mana yang Sebaiknya Dipilih?
Perbedaan Dasar
1. Cara Evaluasi Kondisi
- Pernyataan if-else mengevaluasi ekspresi logis (perbandingan, kondisi majemuk, dsb.).
- Pernyataan switch-case bercabang berdasarkan kesesuaian dengan nilai tertentu (konstanta atau karakter).
Tabel Perbandingan
Aspek Perbandingan | if-else | switch-case |
---|---|---|
Ekspresi Kondisi | Dapat menggunakan ekspresi logis atau rentang nilai | Terbatas pada nilai integer atau karakter tertentu |
Keterbacaan | Sulit dibaca jika kondisinya terlalu kompleks | Lebih mudah dibaca dengan daftar kasus yang jelas |
Kecepatan | Dapat lebih lambat dalam beberapa kasus | Biasanya dioptimalkan oleh compiler sehingga lebih cepat |
Ekstensibilitas | Fleksibel untuk menambah kondisi baru | Kurang fleksibel, terbatas pada konstanta atau nilai spesifik |
Penggunaan | Cocok untuk rentang nilai atau kondisi kompleks | Ideal untuk pilihan menu atau nilai yang jelas |
Contoh Praktis
Contoh if-else:
int score = 85;
if (score >= 90) {
printf("A\n");
} else if (score >= 70) {
printf("B\n");
} else {
printf("C\n");
}
Contoh switch-case:
int grade = 2;
switch (grade) {
case 1:
printf("A\n");
break;
case 2:
printf("B\n");
break;
case 3:
printf("C\n");
break;
default:
printf("F\n");
}
5. Contoh Lanjutan: Cara Membuat switch-case Lebih Praktis
1. Menggabungkan Beberapa Kasus
char grade = 'A';
switch (grade) {
case 'A':
case 'B':
printf("Lulus\n");
break;
case 'C':
printf("Ujian Ulang\n");
break;
default:
printf("Tidak Lulus\n");
}
2. Memanfaatkan Fall-through
int score = 85;
switch (score / 10) {
case 10:
case 9:
printf("Sangat Baik\n");
break;
case 8:
case 7:
printf("Baik\n");
break;
default:
printf("Tidak Lulus\n");
}
3. switch-case Bersarang
int menu = 1;
int subMenu = 2;
switch (menu) {
case 1:
switch (subMenu) {
case 1:
printf("Submenu 1-1\n");
break;
case 2:
printf("Submenu 1-2\n");
break;
}
break;
case 2:
printf("Menu 2\n");
break;
}
6. Kesalahan Umum dan Cara Mengatasinya
1. Lupa Menulis break
int num = 1;
switch (num) {
case 1:
printf("Satu\n");
case 2:
printf("Dua\n");
default:
printf("Lainnya\n");
}
Solusi:
int num = 1;
switch (num) {
case 1:
printf("Satu\n");
break;
case 2:
printf("Dua\n");
break;
default:
printf("Lainnya\n");
}
2. Menggunakan Variabel pada Label case
int x = 10;
switch (x) {
case x: // Error
printf("Nilainya 10\n");
break;
}
Versi yang Benar:
#define VALUE 10
switch (x) {
case VALUE:
printf("Berhasil\n");
break;
}
3. Menghilangkan Pernyataan default
int num = 5;
switch (num) {
case 1:
printf("Satu\n");
break;
case 2:
printf("Dua\n");
break;
}
Solusi:
switch (num) {
case 1:
printf("Satu\n");
break;
case 2:
printf("Dua\n");
break;
default:
printf("Lainnya\n");
}

7. Ringkasan dan Langkah Selanjutnya
1. Ringkasan Poin Penting
- Sintaks Dasar dan Penggunaan
switch-case
adalah struktur kontrol yang praktis untuk bercabang berdasarkan nilai tertentu.- Sederhana, mudah dibaca, dan cocok untuk kondisi dengan pilihan yang jelas.
- Karakteristik dan Hal Penting
switch-case
hanya menerima konstanta bertipe integer atau karakter.- Lupa menulis
break
bisa menyebabkan fall-through yang tidak diinginkan.
- Perbedaan dengan if-else
- if-else cocok untuk kondisi kompleks atau rentang nilai, sedangkan switch-case lebih baik untuk kondisi dengan nilai pasti.
- Memilih struktur yang tepat akan membuat program lebih efisien.
- Contoh Lanjutan
- Bisa menggabungkan beberapa kasus, menggunakan fall-through untuk rentang nilai, atau membuat
switch-case
bersarang. - Kombinasi dengan fungsi atau struktur lain membuat kode lebih fleksibel.
- Kesalahan Umum dan Solusinya
- Memahami kesalahan umum (lupa
break
, salah menggunakan variabel, tidak adadefault
) membantu mempercepat debug.
2. Langkah Selanjutnya
1. Membuat Program Praktis
Gunakan pengetahuan ini untuk membuat program berikut:
- Kalkulator: operasi aritmetika menggunakan
switch-case
. - Aplikasi Menu: membangun menu bertingkat dengan percabangan.
- Sistem Penilaian: klasifikasi otomatis berdasarkan skor.
2. Belajar Topik Terkait
Untuk menguasai percabangan lebih lanjut, pelajari juga:
- if-else tingkat lanjut: teknik percabangan lebih kompleks.
- Perulangan (for, while): menggabungkan loop dengan percabangan.
- Fungsi dan struct: manajemen program berskala besar.
3. Optimasi dan Debugging
- Gunakan alat debugging: untuk menemukan dan memperbaiki error lebih cepat.
- Lakukan code review: berbagi kode dengan orang lain untuk mendapat masukan.
3. Kesimpulan
switch-case
adalah alat yang kuat untuk membuat percabangan lebih efisien dalam bahasa C. Dengan memahami dasar hingga penerapan lanjutannya, Anda dapat meningkatkan keterbacaan dan performa program.
Gunakan artikel ini sebagai referensi, tulis kode sendiri, dan berlatih secara bertahap. Dengan begitu, keterampilan pemrograman Anda akan meningkat secara konsisten dan Anda siap melangkah ke topik yang lebih kompleks!