Serial Tutorial C (33) : Control Statement – switch

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 ekspresicase 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
Lemari

2
Kulkas

3
Meja

Bersambung (rezaervani@gmail.com – rezaervani@mail.ru)

2 Comments

  1. 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….

  2. 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…

Leave a Reply

Your email address will not be published.


*