Pernyataan Bersyarat (Conditional Statement)
Matakuliah: INF-108 Pemograman Genap Tahun Ajaran 2011/2012 Dr. Taufik Fuadi Abidin, M.Tech Irvanizam Zamanhuri, M.Sc Email:
[email protected] [email protected]
Introduction
Program dalam bahasa C dieksekusikan secara berurutan baris per baris Alur eksekusi program dapat dikontrol melalui mekanisme pengontrol yang disebut dengan pernyataan bersyarat (conditional statement), membandingkan sesuatu dan mendapatkan suatu keputusan (decision)
Relational Operators: equal (sama dengan)
==
not equal (tidak sama dengan)
!=
less than (lebih kecil):
<
greater than (lebih besar):
>
less than or equal to (lebih kecil atau sama dengan):
<=
greater than or equal to (lebih besar atau sama dengan):
>=
not (negasi):
!
and (dan):
&&
or (atau):
||
If statement:
Bentuk umumnya adalah:
if (
) { } Dimana harus bernilai true untuk dapat mengeksekusi
Contoh Conditional int main(){ expression int x=0; if(x!=0){ printf("x tidak sama dengan nol"); } printf("x sama dengan nol”); }
If/else statements
Bentuk umumnya adalah: if () { } else if () { } else { }
Dimana boleh lebih dari pada dua.
Contoh int main(){ float uts=70, nilai, uas=90, tugas=75; printf("Tugas: "); scanf("%f",&tugas); printf("UTS: "); scanf("%f",&uts); printf("UAS: "); scanf("%f",&uas); nilai = 0.2 * tugas + 0.3 * uts + 0.5 * uas; if (nilai >= 90) printf("Nilai A"); else if (nilai >= 80) printf("Nilai B"); else if (nilai >= 65) printf("Nilai C"); else if (nilai >= 50) printf("Nilai D"); else printf("Nilai E"); return 0; }
Switch Statement
Bentuk Umumnya: switch () { case : break; case : break; default: break; } /* end switch */
Contoh int
main() {
Output:
int grade; printf ("Input grade :"); scanf("%d", & grade);
Input grade: 4 Very Good (B)
switch (grade) { case 1: printf("Fall (F)\n");break; case 2: printf("Bad (D)\n");break; case 3: printf("Good (C)\n");break; case 4: printf("Very Good (B)\n");break; case 5: printf("Excellent (A)\n");break; default: printf("You have inputted false grade\n"); break; // break disini tidak perlu } }
Bagaimana outputnya? int
main() { int grade = 3; switch (grade) { case 1: printf("Fall (F)\n");break; case 2: printf("Bad (D)\n");break; case 3: printf("Good (C)\n"); case 4: printf("Very Good (B)\n");break; case 5: printf("Excellent (A)\n");break; default: printf("You have inputted false grade\n"); break; }
}
Break dan Continue Statements
Statement continue menyediakan cara yang nyaman untuk memaksa compiler untuk jump pada pernyataan perulangan Statement break digunakan untuk mengakhiri eksekusi pada pernyataan perulangan Bentuk umum break: break;
Bentuk umum continue: continue;
Contoh: int main() { int n; do { printf(" \nEnter the number :"); scanf("%d", &n); if (n < 0) { break; } if (n >10) { printf("Skip the value\n"); continue; } printf("The number is: %d", n); } while (n!= 0); }
Enter the number :1 The number is:1 Enter the number :51 Skip the value Enter the number:-1
int main() { int small=2, large=20, skip=4, target=6; int MAXSMALL=65535; /* set up 3 stop conditions for the loop */ while (small < large && large > 0 && small < 65535) { small++; if (small % skip == 0) /* skip the decrement? */ { printf("skipping on %d",small); continue; } if (large == target) /* exact match for the target? */ { printf("Target reached!“); break; Bagaimana } Outputnya? large-=2; } printf("\nSmall: %d Large: %d",small,large); return 0; }
Output:
Output: skipping on 4 skipping on 8 Small: 10 Large: 8
Conditional Operator (?:)
Bentuk umum: expr ? expr1 : expr2;
Jika expr bernilai benar, maka expr1 yang dieksekusi, sebaliknya jika expr bernilai salah, maka expr2 yang dieksekusi
(?: ) = if .. else statement if (x
z = ((x < y) ? y : x)
val = ((x > -1) ? ((x==0) ? 10 : 100) : 1000) if (x > -1){ if(x==0) val = 10; else val = 100; } else { val = 1000; }
Latihan
Bagaimanakan bentuk if..else dari statement conditional berikut: age > 17 ? printf("You can vote.") : printf("You can’t vote.");
val = ((y>0) ? 10 : ((x==0) ? 100 : 1000));
Reference
http://www.mycplus.com/tutorials/cprogramming-tutorials/loops/ http://www.tenouk.com/Module6a.html http://www.tenouk.com/clabworksheet/l abworksheet7.html http://bytes.com/serversidescripting/c+ +/tutorials/c++conditionalstatements/in dex.html