Sabtu, 16 November 2013

ALPRO (PERCABANGAN)



PERCABANGAN/PEMILIHAN


Didalam pemrograman kita harus dapat menentukan aksi apa yang harus dikerjakan oleh pemroses (processor) ketika sebuah kondisi terpenuhi. Suatu struktue dasar algoritma yang memiliki satu atau lebih kondisi tertentu dimana sebuah instruksi dilaksanakan jika sebuah kondisi/persaratan terpenuhi. Ada beberapa struktur pemilihan, ialah sebagai berikut:

1.      Pernyataan IF
pernyataan if digunakan untuk melakukan proses percabangan yang memiliki beberapa kemungkinan didalam suatu program. Pernataan if diklafisikasikan ke dalam tiga bagian, yaitu; didasarkan atas satu kasus, dua kasus, dan lebih dari dua kasus.

1.1   Satu kasus
Pemilihan jenis ini adalah pemilihan yang paling sederhana karena hanya mengandung satu kondisi yang akan di periksa. Berikut ini bentik umum dari penggunahaan percabangan if satu kasus.
                  If  (kondisi) Statemen_yang_akan_dieksekusi;

      Bentuk umum diatas berlaku apabila anda hanya memiliki sebuah statemen didalam  blok pengecekan. Namun apabila anda memiliki beberapa statemen, makan bentuk umumnya menjadi seperti dibaah ini;
                  If (kondisi)      
                      {
                          Statement_pertama;
                          Statement_kedua;
                           . . . .
`                    }
     
1.2   Dua kasus
Bertuk percabangan ini merupakan perluasan dari bentuk pertama, hanya saja disini didefenifikan pula statemen yang akan dilakukan apabila kondisi yang diperiksa bernilai salah (tidak terpenuhi). Apadapun cara yang digunakan utuk melakukan hal tersebut adalah dengan menambah kan kata kunci else  didalam blok pengecekan. Hal ini menyebabkan statemen untuk pemilihan untuk dua kasus sering dikenal dengan pernyataan if-else. Berikut ini bentuk umum atau kerangka yang digunakan dalam bahasa C untuk melakukan pemilihan dua kasus;



            If (kondisi)
            Statement_yang_akan_dieksekusi_jika_kondisi_benar;
            Else
Statement_yang_akan_dieksekusi_jika_kondisi_benar;
                     
                      Atau:
If (kondisi)
{
Statement_yang_akan_dieksekusi_jika_kondisi_benar1;
Statement_yang_akan_dieksekusi_jika_kondisi_benar1;
}
Else
{
Statement_yang_akan_dieksekusi_jika_kondisi_salah1;
Statement_yang_akan_dieksekusi_jika_kondisi_salah2;
}

         

1.3  Lebih dari dua kasus
Pada percabangan jenis ini kita diizinkan untuk menempatkan beberapa (lebih dari Satu) kondisi sesuai dengan kebutuhan program yang akan kita buat. Berikut ini gambaran yang akan menunjukkan  konsep dari pemilihan statemen yang didasarkan atas tiga kasus atau lebih.

                  If (kondisi1) {statement_yang_akan_dieksekusi};
                  If (kondis2)  {statement_yang_akan_dieksekusi};
                  If (kondisi3) {statement_yang_akan_dieksekusi};
                  Else {statement_alternatif};

Pada gambaran diatas, mula-mula program akan melakukan pengecekan terhadap kondisi1. Apabila kondisi1 benar, maka program akan langsung mengeksekusi statemen yang didefenisikan didalamnya. Namun, apabila kondisi1 bernilai salah maka program akan melakukan pengecekan terhadap kondisi2. Apabila kondisi dua juga bernilai salah maka program akan melanjutkkan ke pengecekan kondisi3. Apbila ternyata kondisi3 juga bernilai salah maka program akan mengeksekusi statemen alternatifyang didefenisikan, yaitu statemen yeng terdapat pada bagian akhir blok pengecekan (pada bagian else).

                 


2.      Pernyataan Switch-Case
 Pernyataan switch digunakan melakukan pemilihan terhadap banyaknya kemungkinan ekspresi yang memiliki nilai-nilai konstan. Oleh karena itu, ekspresi yang didefenisikan harus menghasilkan nilai yang bertipe bilangan bulat atau karakter. Untuk mendefenisikan nilai-nilai konstan tersebut adalah dengan menggunakan kata kunci case. Hal yang perlu anda perhatikan juga dalam melakukan pemilihan dengan menggunakan statemen switch  ini ialah kita harus menambahkan keyword break pada setiap nilai yang kita defenisikan.
Untuk lebih memahaminya, coba anda perhatika bentuk umum dari pernyataan swich-case  dibawah ini;
           
Switch (ekspresi)
{
Case nilai_konstan1:
Statemen_yang_akan_dieksekusi;
. . .
Break;
Case nilai_konstan2:
Statemen_yang_akan_dieksekusi;
. . .
Break;
Default :
Statement_alternatif;
}

Kata kunci default  diatas berguna untuk menyimpan statemen alternative, yang akan dieksekusi apabila semua nilai yang didefenisikan tidak ada yang sesuai dengan ekspresi yang dimasukkan.


Berikut ini contoh-contoh program yang mengaplikasikan pernyataan if-else dan pernyataan switch-case.

Contoh 1; Menampilkan output bilangan genap dan bukan bilangan genap menggunakan        pernyataan if.

#include <stdio.h>

int main ()
{
int x,y;

scanf("%d",&x);
y=x%-2;
if (y==0)
{
             printf("Y bilangan genap");
}
if (y!=0)
{
             printf("Y bukan bilangan genap");
}
return 0;
}

Dari contoh program sederhana diatas, pernyataan IF dimanfaatkan untuk menentukan apakah bilangan yang diinputkan berbentuk bilangan genap atau bukan dengan  memanfaatkan operasi aritmatika berupa modulo (%).

Contoh2; Mengunakan pernyataan switch-case untuk menampilkan keterangan angka yang dimasukkan.

#include <stdio.h>

int main ()
{
          int angka;
          printf("masukkan angka :"), scanf("%d",&angka);
         
          switch (angka)
          {
          case 1:
                          printf("SATU"); break;
          case 2:
                          printf("DUA"); break;
          case 3:
                          printf("TIGA"); break;
                         
          default :
                          printf("anda bukan memasukkan angka"); break;
          }
          return 0;
}


Contoh3; Menentukan nilai,terbeser,terkecil, dan rata-rata dari angka-angka yang dimasukkan menggunakan pernyataan if, dan Menentukan Bulan-bulan dalam satu tahun menggunakan pernyattaan switch-case.

#include <stdio.h>
#include <conio.h>

int main ()
{
             int a,b,c,d,e,f,g,h,i,j;
             float rt;
             printf("masukkan nilai A :");
             scanf("%d",&a);
             printf("masukkan nilai B :");
             scanf("%d",&b);
             printf("masukkan nilai C :");
             scanf("%d",&c);
             printf("masukkan nilai D :");
             scanf("%d",&d);
             printf("masukkan nilai E :");
             scanf("%d",&e);
             printf("masukkan nilai F :");
             scanf("%d",&f);
             printf("masukkan nilai G :");
             scanf("%d",&g);
             printf("masukkan nilai H :");
             scanf("%d",&h);
             printf("masukkan nilai I :");
             scanf("%d",&i);
             printf("masukkan nilai J :");
             scanf("%d",&j);
            
//************ Mencari nilai MAXsimal *********
             //Pernyataan untuk Nilai A
             if((a>=b)&&(a>=c)&&(a>=d)&&(a>=e)&&(a>=f)&&(a>=g)&&(a>=h)&&(a>=i)&&(a>=j))
                             {printf("Nilai MAXSIMAL adalah A=%d,\n",a);}
            
             //Pernyataan untuk Nilai B
             if((b>=a)&&(b>=c)&&(b>=d)&&(b>=e)&&(b>=f)&&(b>=g)&&(b>=h)&&(b>=i)&&(b>=j))
                             {printf("Nilai MAXSIMAL adalah B=%d,\n",b);}
            
             //Pernyataan untuk Nilai C
             if((c>=b)&&(c>=a)&&(c>=d)&&(c>=e)&&(c>=f)&&(c>=g)&&(c>=h)&&(c>=i)&&(c>=j))
                             {printf("Nilai MAXSIMAL adalah C=%d,\n",c);}
            
             //Pernyataan untuk Nilai D
             if((d>=b)&&(d>=c)&&(d>=a)&&(d>=e)&&(d>=f)&&(d>=g)&&(d>=h)&&(d>=i)&&(d>=j))
                             {printf("Nilai MAXSIMAL adalah D=%d,\n",d);}
            
             //Pernyataan untuk Nilai E
             if((e>=b)&&(e>=c)&&(e>=d)&&(e>=a)&&(e>=f)&&(e>=g)&&(e>=h)&&(e>=i)&&(e>=j))
                             {printf("Nilai MAXSIMAL adalah E=%d,\n",e);}
            
             //Pernyataan untuk Nilai F
             if((f>=b)&&(f>=c)&&(f>=d)&&(f>=e)&&(f>=a)&&(f>=g)&&(f>=h)&&(f>=i)&&(f>=j))
                             {printf("Nilai MAXSIMAL adalah F=%d,\n",f);}
            
             //Pernyataan untuk Nilai G
             if((f>=b)&&(f>=c)&&(f>=d)&&(f>=e)&&(g>=f)&&(g>=a)&&(g>=h)&&(g>=i)&&(g>=j))
                             {printf("Nilai MAXSIMAL adalah G=%d,\n",g);}
            
             //Pernyataan untuk Nilai H
             if((h>=b)&&(h>=c)&&(h>=d)&&(h>=e)&&(h>=f)&&(h>=g)&&(h>=a)&&(h>=i)&&(h>=j))
                             {printf("Nilai MAXSIMAL adalah H=%d,\n",h);}
            
             //Pernyataan untuk Nilai I
             if((i>=b)&&(i>=c)&&(i>=d)&&(i>=e)&&(i>=f)&&(i>=g)&&(i>=h)&&(i>=a)&&(i>=j))
                             {printf("Nilai MAXSIMAL adalah I=%d,\n",i);}
            
             //Pernyataan untuk Nilai J
             if((j>=b)&&(j>=c)&&(j>=d)&&(j>=e)&&(j>=f)&&(j>=g)&&(j>=h)&&(j>=i)&&(j>=a))
                             {printf("Nilai MAXSIMAL adalah J=%d,\n",j);}
            
                            
//************ Mencari Nilai MINimal ****************           
             //Pernyataan untuk Nilai A
             if((a<=b)&&(a<=c)&&(a<=d)&&(a<=e)&&(a<=f)&&(a<=g)&&(a<=h)&&(a<=i)&&(a<=j))
                             {printf("Nilai MINIMAL adalah A=%d,\n",a);}
                            
             //Pernyataan untuk Nilai B
             if((b<=a)&&(b<=c)&&(b<=d)&&(b<=e)&&(b<=f)&&(b<=g)&&(b<=h)&&(b<=i)&&(b<=j))
                             {printf("Nilai MINIMAL adalah B=%d,\n",b);}
            
             //Pernyataan untuk Nilai C
             if((c<=b)&&(c<=a)&&(c<=d)&&(c<=e)&&(c<=f)&&(c<=g)&&(c<=h)&&(c<=i)&&(c<=j))
                             {printf("Nilai MINIMAL adalah C=%d,\n",c);}
            
             //Pernyataan untuk Nilai D
             if((d<=b)&&(d<=c)&&(d<=a)&&(d<=e)&&(d<=f)&&(d<=g)&&(d<=h)&&(d<=i)&&(d<=j))
                             {printf("Nilai  MINIMAL adalahD=%d,\n",d);}
            
             //Pernyataan untuk Nilai E              
             if((e<=b)&&(e<=c)&&(e<=d)&&(e<=a)&&(e<=f)&&(e<=g)&&(e<=h)&&(e<=i)&&(e<=j))
                             {printf("Nilai MINIMAL adalah E=%d, \n",e);}
                            
             //Pernyataan untuk Nilai F
             if((f<=b)&&(f<=c)&&(f<=d)&&(f<=e)&&(f<=a)&&(f<=g)&&(f<=h)&&(f<=i)&&(f<=j))
                             {printf("Nilai MINIMAL adalah F=%d,\n",f);}

             //Pernyataan untuk Nilai G
             if((f<=b)&&(f<=c)&&(f<=d)&&(f<=e)&&(g<=f)&&(g<=a)&&(g<=h)&&(g<=i)&&(g<=j))
                             {printf("Nilai MINIMAL adalah G=%d,\n",g);}
            
             //Pernyataan untuk Nilai H
             if((h<=b)&&(h<=c)&&(h<=d)&&(h<=e)&&(h<=f)&&(h<=g)&&(h<=a)&&(h<=i)&&(h<=j))
                             {printf("Nilai MINIMAL adalah H=%d,\n",h);}
            
             //Pernyataan untuk Nilai I
             if((i<=b)&&(i<=c)&&(i<=d)&&(i<=e)&&(i<=f)&&(i<=g)&&(i<=h)&&(i<=a)&&(i<=j))
                             {printf("Nilai MINIMAL adalah I=%d,\n",i);}
            
             //Pernyataan untuk Nilai J
             if((j<=b)&&(j<=c)&&(j<=d)&&(j<=e)&&(j<=f)&&(j<=g)&&(j<=h)&&(j<=i)&&(j<=a))
                             {printf("Nilai MINIMAL adalah J=%d,\n",j);}
                            
             rt=(a+b+c+d+e+f+g+h+i+j)/10;
             printf("RATA-RATA= %.2f\n\n\n",rt);
            
             //==========================================================================================================================
             //==========================================================================================================================            
            
             int bulan;
             printf("masukkan Input angka (1-12) untuk mengetahui bulan : "), scanf("%d",&bulan);
            
             switch (bulan)
             {
             case 1:
                             printf("input'1' untuk Bulan_JANUARY"); break;
             case 2:
                             printf("input'2' untuk Bulan_FEBRUARY"); break;
             case 3:
                             printf("input'3' untuk Bulan_MARET"); break;
             case 4:
                             printf("input'4' untuk Bulan_APRIL"); break;
             case 5:
                             printf("input'5' untuk Bulan_MEI"); break;
             case 6:
                             printf("input'6' untuk Bulan_JUNY"); break;
             case 7:
                             printf("input'7' untuk Bulan_JULY"); break;
             case 8:
                             printf("input'8' untuk Bulan_AGUSTUS"); break;
             case 9:
                             printf("input'9' untuk Bulan_SEPTEMBER"); break;
             case 10:
                             printf("input'10' untuk Bulan_OKTOBER"); break;
             case 11:
                             printf("input'11' untuk Bulan_NOVEMBER"); break;
             case 12:
                             printf("input'12' untuk Bulan_DESEMBER"); break;
             default :
                             printf("Input Yang Dimasukkan Salah"); break;
             }             
             getch ();
             return 0;
}

Output dari program contoh 3 tersebut;
 

Demikianlah yang dapat saya sajikanpada postingkali ini percabangan atau pemilihan beserta pengaplikasianya. Semoga bermanfaat untuk para pembacanya…..






Tidak ada komentar:

Posting Komentar