Kamis, 18 November 2010

PERCABANGAN





PERCABANGAN
Statement if – else
Bentuk dasar perintah if – else adalah sebagai berikut :
if (expression) Statement1;
else
Statement2;
StatementBerikutnya;
Jika ketika dieksekusi ekspresi menghasilkan nilai true, maka statement1 akan dieksekusi dan statement2 tidak akan dikerjakan dan kemudian program akan mengeksekusi statementberikutnya, dan jika ekspresi tersebut bernilai false maka statement1 tidak akan dieksekusi dan statement2 akan dieksekusi, dan dilanjutkan dengan mengeksekusi statementberikutnya.
Operator-operator yang biasa digunakan dalam operasi logika, dapat dilihat di tabel di bawah ini.
Operator Contoh Arti
== A==B Apakah Isi Variabel A sama dengan Isi Variabel B
!= A!=B Apakah Isi Variabel A Tidak Sama Dengan Isi Variabel B
> A>B Apakah Isi Variabel A lebih besar dari Isi Variabel B
< A Apakah Isi Variabel A lebih kecil dari Isi Variabel B
>= A>=B Apakah Isi Variabel A lebih besar atau sama dengan Isi Variabel B
<= A<=B Apakah Isi Variabel A lebih kecil atau sama dengan Isi Variabel B
&& (A<=100) &&(A>=80) Apakah A lebih kecil atau sama dengan dari 100 dan A lebih besar atau sama dengan 80
|| (A>100)|| (A<0) Apakah A lebih besar dari 100 atau A lebih kecil dari 0
! !(A==B) Apakah A Tidak Sama dengan B
Untuk lebih jelas, perhatikan perintah berikut :
#include #include
main()
{
int Nilai;
printf(“Nilai : “);scanf(“%i”,&Nilai);
if(Nilai>=50)
printf(“Selamat Anda Lulus.”);
else
printf(“Maaf. Anda Tidak Lulus.”);
getch();
return 0;
}
Perintah di atas hanya mempunyai 2 kemungkinan yaitu keterangan “Selamat Anda Lulus” jika nilai lebih besar dari atau sama dengan 50 dan keterangan “Maaf. Anda Tidak Lulus”, ketika nilai lebih kecil dari 50.
Jika perintah yang akan dieksekusi ketika kondisi tercapai lebih dari 1 perintah, maka perintah-perintah tersebut harus diblok dengan tanda kurawal {}.
Perhatikan program di bawah ini yang merupakan perubahan dari program di atas.
#include #include
main()
{
int Nilai;
printf(“Nilai : “);scanf(“%i”,&Nilai);
if(Nilai>=50)
{
printf(“Anda Hebat!\n”);
printf(“Selamat Anda Lulus.”);
}
else
{
printf(“Maaf. Anda Tidak Lulus.”);
printf(“Perbaiki semester depan yah!.”);
}
getch();
return 0;
}
Perhatikan juga program di bawah ini :
#include #include
main()
{
int a,b;
printf(“Masukan A : “);scanf(“%i”,&a);
printf(“Masukan B : “);scanf(“%i”,&b);
if(a==b)
printf(“Isi Variabel A Sama Dengan B”);
else
if(a>b)
printf(“Isi Variabel A lebih besar dari B”);
else
if(a
printf(“Isi Variabel A lebih kecil dari B”);
getch();
return 0;
}
Program di atas akan meminta anda untuk memasukan nilai variabel A dan B, kemudian program akan memeriksa apakah variabel A samadengan B, atau A lebih besar dari B, dan A lebih kecil dari B.

Contoh Kasus :
Di sebuah universitas penilaian yang dipakai adalah :
NilaiAkhir=20%*tugas+30%*uts+50%*uas
Nilai Akhir Index
>=80 A
>=68 B
>=56 C
>=45 D
>=0 E
Diluar nilai di atas, maka index adalah X (index tidak diketahui).
Data yang diinputkan adalah : tugas, uts, uas.
#include #include
main()
{
int tugas,uts,uas;
float nilaiakhir;
char index;
printf(“Nilai Tugas : “);scanf(“%i”,&tugas);
printf(“Nilai UTS   : “);scanf(“%i”,&uts);
printf(“Nilai UAS   : “);scanf(“%i”,&uas);
nilaiakhir=0.2*tugas+0.3*uts+0.5*uas;
printf(“Nilai Akhir : %f\n”,nilaiakhir);
if(nilaiakhir>=80)
index=’A';
else
if(nilaiakhir>=68)
index=’B';
else
if(nilaiakhir>=56)
index=’C';
else
if(nilaiakhir>=45)
index=’D';
else
if(nilaiakhir>=0)
index=’E';
else
index=’X';
printf(“Index       : %c\n”,index);
getch();
return 0;
}
Perintah switch – case – default
Selain if-else, perintah yang digunakan untuk percabangan adalah switch – case. Bentuk dasar dari perintah tersebut adalah :
switch(ekspresi) {
case kondisi1:perintah1;break;
case kondisi2:perintah2:break;
default : perintah3;
}
Cara kerja perintah di atas adalah : “Jika ekspresi sama dengan kondisi1, maka perintah1 akan dieksekusi dan kemudian keluar dari switch, dan jika ekspresi sama dengan kondisi2 maka perintah 2 yang akan dieksekusi dan kemudian keluar dari switch, dan jika tidak 1 kondisi pun yang sama dengan ekspresi maka perintah3 (perintah default) yang akan dieksekusi. Perintah default kalau tidak diperlukan bisa dihilangkan.
Untuk lebih jelas, perhatikan perintah di bawah ini.
switch (index) {
case ‘A’:printf(“Keterangan  : Bagus Sekali\n”);break;
case ‘B’:printf(“Keterangan  : Bagus\n”);break;
case ‘C’:printf(“Keterangan  : Cukup\n”);break;
case ‘D’:printf(“Keterangan  : Kurang\n”);break;
case ‘E’:printf(“Keterangan  : Kurang Sekali\n”);break;
default :printf(“Keterangan  : Index Tak Diketahui\n”);
}
Keterangan program di atas adalah jika index=’A’ maka keterangan Bagus Sekali, jika index=’B’ maka keterangan Bagus, jika index=’C’ maka keterangan Cukup, jika index=’D’ maka keterangan Kurang, jika index=’E’ maka keterangan Kurang Sekali, dan jika index bukan A – E, maka keterangan adalah Index Tidak Diketahui.
Perintah if else dengan banyak kondisi
Jika kondisi yang harus diperiksa lebih dari 1 kondisi, maka hanya if-else lah yang bisa dipakai. Operator-operator logika yang dipakai adalah operator && (and), dan operator || (or).
Untuk lebih jelas, perhatikan perintah di bawah ini:
if((index==’A')||(index==’B')||(index==’C')) printf(“Selamat Anda Lulus”);
else
if((index==’D')||(index==’E'))
printf(“Anda Tidak Lulus. Lebih giat lagi belajar!”);
Perintah di atas akan menampilkan string “Selamat Anda Lulus” ketika index berisi A, B atau C, dan akan menampilkan keterangan “Anda Tidak Lulus. Lebih giat lagi belajar!” ketika index berisi D atau E.
Untuk lebih jelas, buatlah program untuk mengatasi kasus di bawah ini.
Di sebuah perusahaan bus, tabel harga dapat dilihat dalam tabel di bawah ini.

KELAS
EKSEKUTIF(1) BISNIS(2) EKONOMI(3)
TUJUAN JAKARTA(1) 70000 40000 10000
YOGYA(2) 80000 50000 20000
SURABAYA(3) 90000 60000 30000
Karena sekarang masa promosi, maka khusus untuk surabaya-eksekutif dan yogya-ekonomi mendapatkan diskon sebesar 10%.
Buatlah program dengan data yang dimasukan adalah jenis kelas, tujuan dan banyak tiket yang dibeli. Data yang ingin ditampilkan adalah harga tiket dan total tiket, diskon dan besar pembayaran.
Contoh :
Pilih Jurusan :
  1. Jakarta
  2. Yogya
  3. Surabaya
Jurusan yang anda pilih : 2 [input]
Pilih Kelas   :
  1. Eksekutif
  2. Bisnis
  3. Ekonomi
Kelas yang anda pilih : 3 [input]
Banyak Tiket : 5 [input]
Harga Tiket  : Rp.  20000 [output]
Total Tiket  : Rp. 100000 [output]
Diskon       : Rp.  10000 [output]
Bayar        : Rp.  90000 [output]
Program untuk kasus di atas :
#include #include
main()
{
int kodejurusan,kodekelas,banyaktiket;
long int hargatiket,total;
float diskon,bayar;
printf(“Pilih Jurusan :\n”);
printf(“—————\n”);
printf(“1. Jakarta\n2. Yogya\n3. Surabaya\n”);
printf(“—————\n”);
printf(“Jurusan yang dipilih : “);scanf(“%i”,&kodejurusan);
printf(“Pilih Kelas :\n”);
printf(“—————\n”);
printf(“1. Eksekutif\n2. Bisnis\n3. Ekonomi\n”);
printf(“—————\n”);
printf(“Kelas yang dipilih : “);scanf(“%i”,&kodekelas);
printf(“Banyak Tiket : “);scanf(“%i”,&banyaktiket);
if((kodejurusan==1)&&(kodekelas==1))
hargatiket=70000;
else
if((kodejurusan==1)&&(kodekelas==2))
hargatiket=40000;
else
if((kodejurusan==1)&&(kodekelas==3))
hargatiket=10000;
else
if(kodejurusan==2)
{
if(kodekelas==1) hargatiket=80000; else
if(kodekelas==2) hargatiket=50000; else
if(kodekelas==3) hargatiket=20000;
}
else
if(kodejurusan==3)
{
switch (kodekelas)
{
case 1:hargatiket=90000;break;
case 2:hargatiket=60000;break;
case 3:hargatiket=30000;
}
}
printf(“Harga Tiket   : Rp. %li\n”,hargatiket);
total=banyaktiket*hargatiket;
printf(“Total Tiket   : Rp. %li\n”,total);
if( ((kodejurusan==3)&&(kodekelas==1)) ||
((kodejurusan==2)&&(kodekelas==2))
)
diskon=0.1*total;
else
diskon=0;
printf(“Diskon 10%%    : Rp. %f\n”,diskon);
bayar=total-diskon;
printf(“Bayar         : Rp. %f\n”,bayar);
getch();
return 0;
}

0 komentar:

Poskan Komentar