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