330 likes | 561 Views
Boolean. Topik. Boolean Type int sbg Boolean Boolean expressions Boolean Operators Precedence (keutamaan) Kesalahan umum. Boolean. “type” khusus yg bernilai hanya: false dan true . Digunakan utk kondisi seleksi dan loop dalam algoritma. Type int sbg Boolean.
E N D
Topik • Boolean • Type int sbg Boolean • Boolean expressions • Boolean Operators • Precedence (keutamaan) • Kesalahan umum
Boolean • “type” khusus yg bernilai hanya: false dan true. • Digunakan utk kondisi seleksi dan loop dalam algoritma
Type int sbg Boolean • Dlm C, integers di pakai sbg Boolean • Nilai integer 0 adalah false. • Dan integer non-zero adalah true.
contoh: Outputnya apa? #include <stdio.h> /* Test Boolean. */ int main() { int whatever = 0; if (whatever) { printf(“Apakan ini “true”,Wied?\n”); } else { printf(“Tidak, Marge.\n”); } return 0; }
contoh: Outputnya apa? #include <stdio.h> /* Test some Booleans. */ int main() { int whatever = 1; if (whatever) { printf(“Apakanini “true”,Wied?\n”); } else { printf(“No, Marge.\n”); } return 0; }
contoh: Outputnya apa? #include <stdio.h> /* Test some Booleans. */ int main() { int whatever = -100; if (whatever) { printf(“Apakanini “true”,Wied?\n”); } else { printf(“No, Marge.\n”); } return 0; }
contoh: Outputnya apa? #include <stdio.h> /* Test some Booleans. */ int main() { int whatever = ’A’; if (whatever) { printf(“Apakanini “true”,Wied?\n”); } else { printf(“No, Marge.\n”); } return 0; }
contoh: Outputnya apa? #include <stdio.h> /* Test some Booleans. */ int main() { int whatever = 0.003; if (whatever) { printf(“Apakanini “true”,Wied?\n”); } else { printf(“No, Marge.\n”); } return 0; }
contoh: Outputnya apa? hasilnya “undefined.” #include <stdio.h> /* Test some Booleans. */ int main() { float whatever = 0.003; if (whatever) { printf(“Apakanini “true”,Wied?\n”); } else { printf(“No, Marge.\n”); } return 0; }
Boolean Expressions • ...ekspresi yg dpt di evaluasi dg tegas true atau false. • Boolean expression mengevaluasi true jika nilai integer 1; lainnya, 0.
Boolean Operators • ...dipakai membentuk ekspresi boolean. • ...dikenal sbg operator “logical” • And (&&) • Or (||) • Not (!) • Equality (==) • Inequality (!=) • Comparison (<, >, <=, >=)
And • True jika dan hanya jika kedua argumennya adalah true. Contoh: 1 && 2 1 && 0 && -1 tall && dark && handsome
And • True jika dan hanya jika kedua argumennya adalah true. Contoh: 1 && 2 1 && 0 && -1 tall && dark && handsome Beda dg “bitwise AND” (&)
Or • True jika hanya salah satu argumennya true (atau keduanya true). Examples: 1 || 2 11 || 0 || 1 good || bad || ugly
Or • True jika hanya salah satu argumennya true (atau keduanya true). Beda dg “bitwise OR” (|) contoh: 1 || 2 11|| 0 || 1 good || bad || ugly
Not • True jika argumen Boolean adalah false. contoh: ! 1 ! 0 ! happy
Equality • True jika kedua argumennya bernilai sama contoh: 1 == 2 1 == 0 42 == 42 truth == beauty
Equality • True jika kedua argumennya bernilai sama contoh: 1 == 2 1 == 0 42 == 42 truth == beauty Beda dg assignment (=)
Inequality • True jika argumennya berbeda nilai. contoh: 1 != 2 1 != 0 42 != 42 truth != beauty
Comparison • True jika memenuhi suatu relasi contoh: 1 < 2 0 > 1 42 <= 42 age >= 18
Comparison • True jika memenuhi suatu relasi contoh: 1 < 2 0 > 1 42 <= 42 age>=18 Hati-hati!
Keutamaan • Urutan keutamaan dr Highest ke lowest: • Bracket (kurung) • Not (!) • Comparison (<, >, <=, >=) • Equality (==) • Inequality (!=) • And (&&) • Or (||) Note: operator assignment (=) adalah urutan terendah yg diutamakan dari pada operator Boolean / Logical.
contoh: #include <stdio.h> int main() { int age = 18; int haveMoney = 0; int haveCard = 1; float thirst = 0.31; int afterHours = 1; int result; result = age >= 18 && (haveMoney || haveCard) && thirst > 0.3 && ! afterHours; printf("%d\n", result); return 0; } bool.c
Kesalahan Umum • Penggunaan = di banding ==
contoh: #include <stdio.h> /* Kesalahan umum pd pemrograman c. */ int main() { int score; scanf("%d", &score); if (score = 48 || score = 49) { printf("Almost!\n"); } return 0; } boolerr1.c
Example: #include <stdio.h> /* Kesalahanumum pd pemrograman c. */ int main() { int score; scanf("%d", &score); if (score = 48 || score = 49) { printf("Almost!\n"); } return 0; } Biasanya pesan error (jika ada): “LValue required...” boolerr1.c
Example: #include <stdio.h> /* Kesalahanumum pd pemrograman c. */ int main() { int score; scanf("%d", &score); if (score == 48 || score == 49) { printf("Almost!\n"); } return 0; } boolerr1.c
Kesalahan Umum • Penggunaan = drpd == • Pada perbandingan yang banyak
contoh: #include <stdio.h> /* Another common C error. */ int main() { int score; scanf("%d", &score); if ( 0 < score < 48 ) { printf("Fail\n"); } return 0; } boolerr2.c
contoh: #include <stdio.h> /* Another common C error. */ int main() { int score; scanf("%d", &score); if ( 0 < score < 48 ) { printf("Fail\n"); } return 0; } 0 atau 1 boolerr2.c
contoh: #include <stdio.h> /* Another common C error. */ int main() { int score; scanf("%d", &score); if ( 0 < score < 48 ) { printf("Fail\n"); } return 0; } Selalu 1 0 or 1 boolerr2.c
contoh: #include <stdio.h> /* Another common C error. */ int main() { int score; scanf("%d", &score); if ( 0 < score && score < 48 ) { printf("Fail\n"); } return 0; } boolerr2.c