Pernyataan Bersyarat (Conditional Statement) Matakuliah: INF-108 Pemograman Genap Tahun Ajaran 2011/2012 Dr. Taufik Fuadi Abidin, M.Tech Irvanizam Zamanhuri, M.Sc Email: taufik.abidin@gmail.com irvanizam.zamanhuri@gmail.com
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 (<conditional expression>) { <one or more statements> Dimana <conditional expression> harus bernilai true untuk dapat mengeksekusi <one or more statements>
Contoh int main(){ int x=0; if(x!=0){ Conditional expression printf("x tidak sama dengan nol"); printf("x sama dengan nol );
If/else statements Bentuk umumnya adalah: if (<conditional expression #1>) { <one or more statements> else if (<conditional expression #2>) { <one or more statements> else { <one or more statements> Dimana <conditional expression> 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 (<variable>) { case <value 1>: <one or more statements> break; case <value 2>: <one or more statements> break; default: <one or more statements> break; /* end switch */
Contoh int main() { int grade; printf ("Input grade :"); scanf("%d", & grade); switch (grade) { case 1: case 2: case 3: case 4: case 5: default: printf("fall (F)\n");break; printf("bad (D)\n");break; printf("good (C)\n");break; Output: printf("very Good (B)\n");break; printf("excellent (A)\n");break; Input grade: 4 Very Good (B) 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; large-=2; printf("\nsmall: %d Large: %d",small,large); return 0; Bagaimana Outputnya?
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 z = ((x < y)? y : x) if (x<y){ z = y; else { z = 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