Pernyataan Bersyarat (Conditional Statement)
Matakuliah : DIK-003 Pemograman I Genap Tahun Ajaran 2011/2012 Dr. Taufik Fuadi Abidin, M.Tech Irvanizam Zamanhuri, M.Sc Email:
[email protected] [email protected]
Introduction o
o
Program-program bahasa C dieksekusikan secara berurutan dari baris ke baris. Tetapi, bisa dikontrol eksekusinya dgn suatu mekanisme pengontrol, dimana kita dapat membandingkan sesuatu dan memberikan suatu 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 (tidak):
!
And (dan):
&&
Or (atau):
||
If statements: o
Bentuk umumnya adalah:
if (
) { } o Dimana harus
bernilai
true untuk or more statements>
mengeksekusi
Contoh Conditional int main(){ expression int x=0; if(x !=0){ printf(“Nilai x sama dengan nol”); } printf(“Nilai x tidak sama dengan nol”); }
If/else statements o
o
Bentuk umumnya adalah: if () { } else if () { } else { } Dimana boleh diberikan 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 o
Bentuk Umumnya: switch () { case : break; case : break; default: break; } //end switch
Contoh int
main() {
Output:
int grade; printf ("Input grade :"); scanf("%d", & grade); switch (grade) { case 1: case 2: case 3: case 4: case 5: default: } }
Input grade: 4 Very Good (B)
printf("Fall (F)\n");break; printf("Bad (D)\n");break; printf("Good (C)\n");break; printf("Very Good (B)\n");break; printf("Excellent (A)\n");break; printf("You have inputted false grade\n"); break; // break isn’t necessary here
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 isn’t necessary here }
}
Break dan Continue Statements o
o
o
Statement Continue menyediakan cara yang nyaman untuk memaksa compiler untuk jump pada statement perulangan. Statement break digunakan untuk mengakhiri eksekusi pada statemen prulangan. Bentuk Umum Break: break;
o
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; } // end of while loop printf("\nSmall: %d Large: %d",small,large); return 0; }
Output:
Output: skipping on 4 skipping on 8 Small: 10 Large: 8
Conditional Operator (?:) o
Bentuk Umum: expr ? expr1 : expr2;
o
o
Jika expr bernilai benar, maka expr1 dieksekusi. Jika expr bernilai salah, maka expr2 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 o
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));
References o
o o
o
http://www.mycplus.com/tutorials/cprogramming-tutorials/loops/ http://www.tenouk.com/Module6a.html http://www.tenouk.com/clabworksheet/ labworksheet7.html http://bytes.com/serversidescripting/c+ +/tutorials/c++conditionalstatements/ index.html