Job 7. Decision 3
Job 7. Decision 3
A. TUJUAN
1. Menjelaskan penggunaan pernyataan switch
B. DASAR TEORI
Pernyataan switch
Pernyataan switch merupakan pernyataan yang dirancang khusus untuk
menangani pengambilan keputusan yang melibatkan sejumlah alternatif, misalnya untuk
menggantikan pernyataan if bertingkat.
Bentuk umum pernyataan switch adalah :
switch (ekspresi)
{
case konstanta-1:
pernyataan-1;
......
break;
case konstanta-2:
.
.
.
case konstanta-n:
pernyataan-n;
.......
break;
default:
.......
.......
break;
}
dengan ekspresi dapat berupa ekspresi bertipe integer atau bertipe karakter. Demikian
juga konstanta-1, konstanta-2, …, konstanta-n dapat berupa konstanta integer atau
karakter. Setiap pernyataan-i (pernyataan-1, … , pernyataan-n) dapat berupa
pernyataan tunggal ataupun pernyataan jamak. Dalam hal ini urutan penulisan
pernyataan case tidak berpengaruh. Proses penyeleksian berlangsung sebagai berikut :
35
pengujian pada switch akan dimulai dari konstanta-1. Kalau nilai konstanta-1
cocok dengan ekspresi maka pernyataan-1 dijalankan. Kata kunci break harus
disertakan di bagian akhir setiap pernyataan case, yang akan mengarahkan eksekusi
ke akhir switch.
Kalau ternyata pernyataan-1 tidak sama dengan nilai ekspresi, pengujian dilanjutkan
pada konstanta-2, dan berikutnya serupa dengan pengujian pada konstanta-1.
Jika sampai pada pengujian case yang terakhir ternyata tidak ada kecocokan, maka
pernyataan yang mengikuti kata kunci default yang akan dieksekusi. Kata kunci
default ini bersifat opsional.
Tanda kurung kurawal tutup (}) menandakan akhir dari proses penyeleksian kondisi
case.
C. TUGAS PENDAHULUAN
Buatlah desain algoritma dan flow chart untuk setiap soal dalam percobaan.
D. PERCOBAAN
1. Tulislah kembali pernyataan-pernyataan di bawah ini dengan menggunakan
pernyataan switch
if( letter == 'X'
) sum = 0;
else if ( letter == 'Z'
) valid_flag = 1;
else if( letter == 'A'
) sum = 1;
else
printf("Unknown letter -->%c\n", letter );
36
printf("dengan format : number1 operator number2\n\n");
scanf("%f %c %f", &number1, &operator, &number2);
if(operator == '*')
result = number1 * number2;
else if(operator == '/')
result = number1 / number2;
else if(operator == '+')
result = number1 + number2;
else if(operator == '-')
result = number1 -
number2; else
valid_operator = 0;
if(valid_operator)
printf("\n%g %c %g is %g\n", number1,
operator, number2, result );
else
printf("Invalid operator!\n");
}
37
E. LAPORAN RESMI
1. Listing program beserta contoh eksekusinya
2. Buat kesimpulan tentang else-if dan switch-case, apakah ada perbedaan atau
persamaan antara dua instruksi diatas ?.
38