Control Statement – switch
Statement “switch” di C adalah cara penentuan pilihan keputusan dari banyak pilihan. Tugasnya menguji apakah sebuah variabel atau ekspresi cocok dengan suatu nilai konstanta integer, dan menjalankan perintah yang terkait dengan nilai tersebut.
Berikut adalah flowchart dari statement “switch” :
Contoh berikut menggambarkan sintak statement switch :
[sourcecode language=”cpp”]
switch (ekspresi) {
case nilai1: /* mengeksekusi unit kode 1 */
break;
case nilai2: /* mengeksekusi unit kode 2 */
break;
…
default: /* mengeksekusi aksi default (bawaan) */
break;
}
[/sourcecode]
Mari kita lihat sintak tersebut secara lebih detil :
- Dalam statement switch di C, seleksi ditentukan oleh nilai dari suatu ekspresi yang anda buat, yang diletakkan diantara dua kurung kurawal setelah kata kunci “switch“. Tipe data dari nilai, yang dihasilkan oleh ekspresi, mestilah sebuah nilai integer atau kompiler akan memberikan pesan kesalahan
- Konstanta dalam ekspresi “case“ mestilah sebuah nilai konstanta integer
- Ketika statement “break” di eksekusi, ia menyebabkan keluar dari switch. Kontrol menempatkan statement tersebut diikuti kurung kurawal penutup dari switch. Statement break tidaklah merupakan kewajiban, tetapi jika anda tidak meletakkan statement break pada akhir dari statement untuk sebuah case, statement untuk case berikutnya juga akan dieksekusi, hingga break lain ditemukan pada blok switch ditemukan. Hal ini akan membuat kesalahan logika program.
- Statement default adalah pilihan bawaan dari statement switch jika semua pernyataan case tidak terpenuhi. Statement break setelah statement default tidak diperlukan kecuali jika anda meletakkan statement case lain dibawahnya.
Contoh Statement Switch :
[sourcecode languange=”cpp”]
/*
* File: latihswitch.c
* Disusun oleh: Pengelola Blog http://tanyarezaervani.wordpress.com
* Tujuan: Mendemonstrasikan statement switch
*/
#include <stdio.h>
int main() {
int kode = 1;
printf(“Silahkan Masukkan Kode Jenis Barang(1, 2, 3):\n”);
scanf(“%d”, &kode);
switch (kode) {
case 1:
printf(“Lemari\n”);
break;
case 2:
printf(“Kulkas\n”);
break;
case 3:
printf(“Meja\n”);
break;
default:
printf(“Nilai yang anda masukkan tidak ada dalam daftar kode\n”);
}
return 0;
}
[/sourcecode]
Jika dijalankan :
1
Lemari2
Kulkas3
Meja
Bersambung (rezaervani@gmail.com – rezaervani@mail.ru)
Terima kasih sebelumnya atas tutorialnya pak,,namun saya masih bingung jika didalam casenya itu ada case lain lg sbg contoh di codig program saya :
#include
#include
int main()
{
int hrg,n,jp,th,tb;
float pjx,disc;
char bns[200],kd[200],nmp[200],kj[200],jns[200],np[200],alt[200],tl[20];
printf (“Silahkan Masukkan No Fakur : “);
scanf(“%d”,&n);
printf (“Silahkan Masukkan Tanggal Transaksi(dd-mm-yyyy) : “);
scanf(“%s”,tl);
printf (“Silahkan Masukkan Nama Pemesan : “);
scanf(“%s”,np);
printf (“Silahkan Masukkan Alamat Pemesan : “);
scanf(“%s”,alt);
printf (“Silahkan Masukkan Kode Produk : “);
scanf(“%s”, kd);
printf (“Silahkan Masukkan Kode jenis : “);
scanf(“%s”, kj);
printf (“Silahkan Masukkan Jumlah Pesanan : “);
scanf(“%d”,&jp);
if (strcmp (kd, “s1″)==0 ) { // if induk
strcpy(nmp,”Shampo sunsilk sachet”);
if (strcmp (kj, “1a”)==0) { //if anak
strcpy(jns,”Lidah Buaya”);
hrg=1000;
}
else if (strcmp (kj,”1b”)==0) { //if anak lg
strcpy(jns,”Urang Aring”);
hrg=1500;
}
else if (strcmp (kj,”1c”)==0) { //if anak lg
strcpy(jns,”Santan”);
hrg=1250;
}
else
{
hrg=0;
}
}
else if (strcmp (kd, “s2″)==0) { //coba if lagi
strcpy(nmp,”Shampo Sunsilk Botol”);
if (strcmp (kj, “1a”)==0) { //if anak
strcpy(jns,”Lidah Buaya”);
hrg=10000;
}
else if (strcmp (kj,”1b”)==0) { //if anak lg
strcpy(jns,”Urang Aring”);
hrg=15000;
}
else if (strcmp (kj,”1c”)==0) { //if anak lg
strcpy(jns,”Santan”);
hrg=12500;
}
else
{
hrg=0;
}
}
else if (strcmp (kd, “r1″)==0) { //coba if lagi
strcpy(nmp,”Rinso Warna”);
if (strcmp (kj, “1a”)==0) { //if anak
strcpy(jns,”30gr”);
hrg=1250;
}
else if (strcmp (kj,”1b”)==0) { //if anak lg
strcpy(jns,”250gr”);
hrg=1500;
}
else if (strcmp (kj,”1c”)==0) { //if anak lg
strcpy(jns,”500gr”);
hrg=1750;
}
else
{
hrg=0;
}
}
else if (strcmp (kd,”r2″)==0) {
strcpy(nmp,”Rinso Biasa”);
if (strcmp (kj, “1a”)==0) { //if anak
strcpy(jns,”30gr”);
hrg=1000;
}
else if (strcmp (kj,”1b”)==0) { //if anak lg
strcpy(jns,”250gr”);
hrg=1250;
}
else if (strcmp (kj,”1c”)==0) { //if anak lg
strcpy(jns,”500gr”);
hrg=1500;
}
else
{
hrg=0;
}
}
else
{
strcpy(kd,”Kode Yang anda masukkan salah”);
strcpy(nmp,”Kode produk Yang anda masukkan salah”);
}
//Menghitung Total Harga#####################################//
th=jp*hrg;
//Menghitung Pajak#########################################//
pjx=0.01*th;
//Menghitung Discount & Bonus#############################//
if (th>=2000000){
disc=0.15*th;
strcpy(bns,”Kipas Angin”);
}
else if (th>=15000000){
disc=0.01*th;
strcpy(bns,”T-shirt”);
}
else if (th>=1000000){
disc=0.5*th;
strcpy(bns,”Payung”);
}
else
{
strcpy(bns,”Tidak ada bonus”);
}
//Menghitung Total Pembayaran#############################//
tb=(th-disc)+pjx;
//output################################################//
printf(“\n\n\n\n\nNo Faktur : %d\n”,n);
printf(“Tanggal Transaksi :%s\n”,tl);
printf(“Nama Pemesan : %s\n”,np);
printf(“Alamat Pemesan : %s\n”,alt);
printf(“Kode Produk : %s\n”,kd);
printf(“nama produk : %s\n”,nmp);
printf(“kode jenis : %s\n”,kj);
printf(“jenis : %s\n”,jns);
printf(“harga : %d\n”,hrg);
printf(“Total harga : %d\n”,th);
printf(“Pajak :%0.2f\n”,pjx);
printf(“Discount:%0.2f\n”,disc);
printf(“Bonus :%s\n”,bns);
printf(“Total Pembayaran:%d\n”,tb);
return 0;
}
di coding diatas ada :
if (strcmp (kd, “s1″)==0 ) { // if induk
strcpy(nmp,”Shampo sunsilk sachet”);
if (strcmp (kj, “1a”)==0) { //if anak
strcpy(jns,”Lidah Buaya”);
hrg=1000;
}
else if (strcmp (kj,”1
Yang saya mau tanyakan bagaimana penulisannya jika menggunakan switch>>mohon pencerahannya….
Terima kasih sebelumnya atas tutorialnya pak,,namun saya mau tanyakan bagaimana penulisan switch ini jika didalam casenya ada case lg,,sbg contoh saya if di dalam if :
if (strcmp (kd, “s1″)==0 ) { // if induk
strcpy(nmp,”Shampo sunsilk sachet”);
if (strcmp (kj, “1a”)==0) { //if didalam if
strcpy(jns,”Lidah Buaya”);
hrg=1000;
}
else if (strcmp (kj,”1b”)==0) { //if didalam if
strcpy(jns,”Urang Aring”);
hrg=1500;
}
else if (strcmp (kj,”1c”)==0) { //if didalam if
strcpy(jns,”Santan”);
hrg=1250;
}
else
{
hrg=0;
}
}
dst…
/jika dalam switch bgaimana kah contoh penulisannya ??Mohon pencerahannnya pak
thx…