Pengertian Decision (Switch), Serta Jawaban Tugas-Tugasnya
Perintah switch merupakan pernyataan yang dirancang untuk menangani pengambilan keputusan yang melibatkan sejumlah pilihan alternatif yang diantaranya untuk menggantikan pernyataan IF bertingkat.
Setiap pernyataan 1, pernyataan 2, sampai pernyataan n dapat sebuah atau beberapa pernyataan. Pengujian pada switch akan dimulai dari konstanta 1. Apabila nilainya cocok dengan ekspresi maka pernyataan 1 akan dijalankan, kalau tidak cocok maka akan beralih ke pernyataan 2 dan seterusnya sampai hasil yang diinginkan.
Perintah break menyebabkan eksekusi diarahkan ke akhir switch kalau nilai konstanta 1 tidak sama dengan nilai ekspresi dan kemudian baru diteruskan pengujian dengan konstanta 2 dan seterusnya, jika sampai pada pengujian akhir tidak ada yang cocok maka default akan dijalankan. Bentuknya adalah sebagai berikut:
{
case konstanta1;
pernyataan1;
break;
case konstanta2;
pernyataan2;
break;
case konstanta3;
pernyataan3;
break;
case konstanta4;
pernyataan4;
break;
...
...
...
case konstanta;
pernyataan;
break;
default;
pernyataan n;
}
Dari bentuk umum diatas, dapat dijelaskan bahwa ekspresi bisa berupa ungkapan yang bernilai integer atau bertipe karakter. Setiap konstanta 1, konstanta 2, sampai konstanta n dapat berupa konstanta integer atau konstanta karakter.
Tugas Praktikum
a. Buatlah program contoh program switch (simpan dengan nama lat4_1.cpp)
main() {
int kdhari;
printf("Masukkan kode hari [1-7] : "); scanf("%d", &kdhari);
printf("\n");
switch (kdhari) {
case 1:
printf("Senin"); break;
case 2:
printf("Selasa"); break;
case 3:
printf("Rabu"); break;
case 4:
printf("Kamis"); break;
case 5:
printf("Jum'at"); break;
case 6:
printf("Sabtu"); break;
case 7:
printf("Minggu"); break;
default:
printf("Kode tidak ada");
}
printf("\n");
}
b. Buatlah program "Berdasarkan Algoritma Berikut ini" (simpan dengan nama lat4_2.cpp)
main() {
char kode;
int luas, keliling, panjang, lebar, alas, tinggi, sisi1, sisi2, sisi3, jari, pi;
float luasS, luasL, kelilingL;
printf("Masukkan kode menu [S/P/L] : ");
kode = getchar();
printf("\n");
switch (kode) {
case 'S':
printf("Masukkan alas : "); scanf("%d", &alas);
printf("Masukkan tinggi : "); scanf("%d", &tinggi);
printf("Masukkan sisi 1 : "); scanf("%d", &sisi1);
printf("Masukkan sisi 2 : "); scanf("%d", &sisi2);
printf("Masukkan sisi 3 : "); scanf("%d", &sisi3);
luasS = 0.5*alas*tinggi;
keliling = sisi1+sisi2+sisi3;
printf("\n");
printf("Luas Segitiga : %f\n", luasS);
printf("Keliling Segitiga : %d\n", keliling);
break;
case 'P':
printf("Masukkan panjang : "); scanf("%d", &panjang);
printf("Masukkan lebar : "); scanf("%d", &lebar);
luas = panjang*lebar;
keliling = 2*(panjang+lebar);
printf("\n");
printf("Luas Persegi Panjang : %d\n", luas);
printf("Keliling Persegi Panjang : %d\n", keliling);
break;
case 'L':
printf("Masukkan jari-jari : "); scanf("%d", &jari);
luasL = 3.14*jari*jari;
kelilingL = 3.14*(jari+jari);
printf("\n");
printf("Luas Lingkaran : %f\n", luasL);
printf("Keliling Lingkaran : %f\n", kelilingL);
break;
default:
printf("Kode tidak ada");
}
return 0;
}
Tugas Pendahuluan
1. Jelaskan kelebihan perintah Switch dibandingkan perintah IF!
- Kelebihan perintah Switch dibanding perintah IF yaitu Switch digunakan untuk memilih banyak pilihan, pernyataan switch tidak perlu menggunakan {} untuk mengeksekusi, programmer dapat menentukan pernyataan mana yang akan dipakai berdasarkan kemudahan membaca program dan faktor-faktor yang lain.
2. Mengapa anda sebagai programmer harus menggunakan perintah Switch dalam program!
- Sama halnya seperti perintah IF yaitu setiap program pada umumnya membutuhkan algoritma suatu keputusan atau pernyataan. Namun perintah Switch yaitu perintah pernyataan yang dirancang untuk menangani pengambilan keputusan yang melibatkan sejumlah pilihan alternatif yang dirancang diantaranya untuk menggantikan pernyataan IF bertingkat.
3. Sebutkan dan jelaskan perintah-perintah pendukung perintah Switch!
- Switch case merupakan salah satu bentuk percabangan yang digunakan untuk pilihan berjumlah banyak. Tidak dianjurkan pada pilihan yang melibatkan jangkauan (range) tetapi dianjurkan pada pilihan berupa konstanta.
4. Buatlah contoh algoritma dan program sederhana menggunakan perintah Switch dengan memakai Flowchart!
main() {
int kode;
printf("Kumpulan rumus-rumus\n");
printf("Masukkan kode [1-3] : "); scanf("%d", &kode);
printf("\n");
switch (kode) {
case 1:
printf("Rumus Luas dan Keliling Segitiga\n\n");
printf("Luas = (1/2) x Alas x Tinggi\n");
printf("Keliling = Sisi + Sisi + Sisi\n");
break;
case 2:
printf("Rumus Luas dan Keliling Persegi Panjang\n\n");
printf("Luas = Panjang x Lebar\n");
printf("Keliling = 2 x Panjang x Lebar\n");
break;
case 3:
printf("Rumus Luas dan Keliling Lingkaran\n\n");
printf("Luas = 3,14 x Jari x Jari\n");
printf("Keliling = 3,14 x (Jari + Jari)\n");
break;
default:
printf("Kode tidak ada");
}
}
Tugas Akhir
1. Buatlah algoritma dan program untuk menentukan bonus yang akan diperoleh seorang pelanggan jika diberlakukan ketentuan berikut ini:
#include <string.h>
#include <conio.h>
main() {
int pembelian;
char bonus[100];
printf("Harga pembelian : "); scanf("%d", &pembelian);
printf("\n");
if (pembelian<=100000 && pembelian<200000) {
strcpy (bonus, "Discount 5%");
}
else if (pembelian<=200000 && pembelian<300000) {
strcpy (bonus, "Tiket ke Yogya");
}
else if (pembelian<=300000 && pembelian<400000) {
strcpy (bonus, "Tiket ke Bali");
}
else if (pembelian<=400000 && pembelian<500000) {
strcpy (bonus, "Jam Tangan Rolex");
}
else if (pembelian>=500000) {
strcpy (bonus, "Tiket ke Swiss");
}
printf("Pembelian : %d\n", pembelian);
printf("Bonus : %s\n", bonus);
}
Tidak ada komentar