Percabangan Switch dalam C: Panduan untuk Pemula

Halo sana, para pemrogram masa depan! Hari ini, kita akan melihat salah satu struktur kendali yang paling berguna dalam pemrograman C: percabangan switch. Jangan khawatir jika Anda masih baru; saya akan memandu Anda langkah demi langkah, seperti yang saya lakukan untuk ribuan murid selama tahun-tahun mengajar saya. Jadi, ambil secangkir minuman kesukaan Anda, dan mari kita mulai petualangan coding ini bersama!

C - switch statement

Apa Itu Percabangan Switch-Case?

Bayangkan Anda berada di toko es krim, dan Anda harus memilih rasa. Anda memiliki vanila, cokelat, stroberi, dan mint. Setiap pilihan akan membawa Anda ke sebuah sekop di锥 Anda. Itu betul cara kerja percabangan switch dalam pemrograman!

Percabangan switch adalah pernyataan alur kendali yang memungkinkan Anda menjalankan blok kode yang berbeda-beda berdasarkan nilai variabel atau ekspresi. Itu seperti versi yang lebih elegan dan efisien dari beberapa pernyataan if-else.

Sintaks Percabangan switch-case

Mari kita lihat struktur dasar dari pernyataan switch:

switch (ekspresi) {
case konstanta1:
// kode yang akan dieksekusi jika ekspresi sama dengan konstanta1
break;
case konstanta2:
// kode yang akan dieksekusi jika ekspresi sama dengan konstanta2
break;
...
default:
// kode yang akan dieksekusi jika ekspresi tidak cocok dengan konstanta manapun
}

Jangan khawatir jika ini terlihat sedikit menakutkan pada awalnya. Kita akan membongkar nya bagian demi bagian.

Komponen Utama:

  1. switch: Kata kunci ini memulai pernyataan switch.
  2. ekspresi: Ini adalah nilai yang dievaluasi.
  3. case: Setiap kasus mewakili nilai yang mungkin dari ekspresi.
  4. break: Kata kunci ini mengakhiri setiap blok kasus.
  5. default: Ini adalah blok opsional yang dijalankan jika tidak ada kasus yang cocok.

Cara Kerja Percabangan switch-case

Sekarang, mari kita lihat bagaimana ini benar-benar bekerja dalam praktek. Bayangkan kita membuat program sederhana yang memberikan pesan berdasarkan nilai nilai murid:

#include <stdio.h>

int main() {
char grade = 'B';

switch(grade) {
case 'A':
printf("Excelent!");
break;
case 'B':
printf("Well done!");
break;
case 'C':
printf("Good job!");
break;
case 'D':
printf("You passed.");
break;
case 'F':
printf("Better luck next time.");
break;
default:
printf("Invalid grade");
}

return 0;
}

Dalam contoh ini:

  1. Kita memiliki variabel grade yang diatur ke 'B'.
  2. Pernyataan switch mengevaluasi grade.
  3. Itu memeriksa setiap kasus hingga menemukan kesamaan ('B' dalam kasus ini).
  4. Ketika menemukan kesamaan, itu menjalankan kode di kasus itu ("Well done!").
  5. Kata kunci break kemudian keluar dari blok switch.

Jika grade tidak cocok dengan kasus mana pun, blok default akan dijalankan.

Diagram Alir Percabangan switch-case

Untuk menggambar bagaimana pernyataan switch bekerja, mari kita lihat diagram alir:

+-------------+
|   Start     |
+-------------+
|
v
+-------------------+
| Evaluate expression|
+-------------------+
|
v
+----------------------+
| Compare with case 1  |
+----------------------+
|
v
+-------------+
|    Match?   |
+-------------+
Yes |     | No
|     |
v     v
+-----------------+    +----------------------+
| Execute case 1  |    | Compare with case 2  |
+-----------------+    +----------------------+
|                     |
v                     v
+-----------+         +-------------+
|   Break   |         |    Match?   |
+-----------+         +-------------+
|               Yes |     | No
|                   |     |
|                   v     v
|         +-----------------+    +------------+
|         | Execute case 2  |    |   ...      |
|         +-----------------+    +------------+
|                   |
|                   v
|            +-----------+
|            |   Break   |
|            +-----------+
|                   |
v                   v
+-----------+        +-----------+
|    End    | <------| Default   |
+-----------+        +-----------+

Diagram alir ini menunjukkan bagaimana pernyataan switch mengevaluasi setiap kasus dan menjalankan blok kode yang cocok.

Aturan untuk Menggunakan Percabangan switch-case

Untuk menggunakan pernyataan switch secara efektif, ingat aturan berikut:

Aturan Deskripsi
Tipe Ekspresi Ekspresi switch harus bertipe integer (int, char, dll.) atau bertipe enumerasi.
Konstanta Kasus Label kasus harus berupa konstanta atau nilai literal, bukan variabel.
Kasus Unik Setiap nilai kasus harus unik dalam pernyataan switch.
Pernyataan Break Gunakan break untuk keluar dari blok switch setelah kasus dijalankan.
Kasus Default Kasus default opsional dan dapat muncul di mana saja dalam blok switch.

Contoh Percabangan switch-case Lainnya

Mari kita lihat beberapa contoh lain untuk memperkuat pemahaman kita.

Contoh 1: Hari Dalam Minggu

#include <stdio.h>

int main() {
int day = 4;

switch(day) {
case 1:
printf("Monday");
break;
case 2:
printf("Tuesday");
break;
case 3:
printf("Wednesday");
break;
case 4:
printf("Thursday");
break;
case 5:
printf("Friday");
break;
case 6:
printf("Saturday");
break;
case 7:
printf("Sunday");
break;
default:
printf("Invalid day number");
}

return 0;
}

Program ini akan mencetak "Thursday" karena day diatur ke 4.

Contoh 2: Kalkulator

#include <stdio.h>

int main() {
char operator;
double n1, n2;

printf("Enter an operator (+, -, *, /): ");
scanf("%c", &operator);
printf("Enter two operands: ");
scanf("%lf %lf",&n1, &n2);

switch(operator)
{
case '+':
printf("%.1lf + %.1lf = %.1lf", n1, n2, n1+n2);
break;
case '-':
printf("%.1lf - %.1lf = %.1lf", n1, n2, n1-n2);
break;
case '*':
printf("%.1lf * %.1lf = %.1lf", n1, n2, n1*n2);
break;
case '/':
printf("%.1lf / %.1lf = %.1lf", n1, n2, n1/n2);
break;
default:
printf("Error! operator is not correct");
}

return 0;
}

Program ini membuat kalkulator sederhana menggunakan pernyataan switch.

Percabangan switch-case dengan Menggabungkan Kasus

kadang-kadang, Anda mungkin ingin beberapa kasus menjalankan kode yang sama. Anda dapat melakukan ini dengan menempatkan kasus bersamaan:

#include <stdio.h>

int main() {
char grade = 'B';

switch(grade) {
case 'A':
case 'B':
case 'C':
printf("You passed!");
break;
case 'D':
case 'F':
printf("You need to improve.");
break;
default:
printf("Invalid grade");
}

return 0;
}

Dalam contoh ini, nilai grade A, B, dan C semua menghasilkan "You passed!", sedangkan D dan F menghasilkan "You need to improve."

Dan itu saja! Anda baru saja belajar tentang pernyataan switch dalam C. Ingat, latihan membuat Anda mahir. Cobalah menulis sendiri pernyataan switch dan eksperimen dengan berbagai skenario. Sebelum Anda tahu, Anda akan menjadi ahli dalam menggunakan switch!

Happy coding, dan semoga switch Anda selalu menemukan kasus yang benar!

Credits: Image by storyset