OPERASI RELASIONAL DAN LOGIKA Matakuliah: T0974 / Algoritma dan Metode Object Oriented Programming I Tahun: 2008 Versi: 1/0
Bina Nusantara Learning Outcomes Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu: Melakukan operasi relasional/komparasi Melakukan operasi logika Melakukan operasi bitwise
Bina Nusantara Outline Materi Operasi Relasional/Komparasi Operator Relasional/Komparasi Operasi Logika/Boolean Operator Logika/Boolean Tabel Kebenaran Bitwise Operation
Bina Nusantara Operasi Relasional Operasi relasional = operasi komparasi Membandingkan 2 nilai Menggunakan 6 operator relasional/komparasi Hasil perbandingan berupa nilai Boolean: true atau false Nilai yang dibandingkan berupa: angka, huruf (ASCII), atau kata (dengan bantuan String)
Bina Nusantara Operator Perbandingan OperatorDeskripsiContohHasil <less than1 < 2true <=less than or equal to1 <= 2true >greater than1 > 2false >=greater than or equal to1 >= 2false ==equal to1 == 2false !=not equal to1 != 2true
Bina Nusantara Operator Perbandingan Karakter dapat dibandingkan dengan mengacu pada nilai ASCII-nya –Contoh: karakter ‘a’ lebih besar daripada ‘A’ karena nilai ASCII ‘a’ (97) lebih besar daripada nilai ASCII ‘A’ (65) Kata dapat dibandingkan dengan bantuan String –Akan dibahas lebih lanjut di materi Struktur Kendali Seleksi Operator komparasi (==) berbeda dengan operator assignment (=) X = 14 memasukan nilai 14 ke X X == 14 membandingkan apakah X sama dengan 14
Bina Nusantara Operator Perbandingan
Bina Nusantara Operasi Logika/Boolean Operasi logika = operasi Boolean Eksekusi 1 atau 2 nilai logika Menggunakan 4 operator logika/Boolean Hasil perbandingan berupa nilai Boolean: true atau false Mengacu pada tabel kebenaran (truth table)
Bina Nusantara Operator Boolean OperatorNamaDescription !notlogical negation &&andlogical conjunction ||orlogical disjunction ^exclusive orlogical exclusion
Bina Nusantara Tabel Kebenaran NOT (!) p!pContoh truefalse!(1>2) is true, because (1>2) is false falsetrue!(1>0) is false, because (1>0) is true Operator not (!) membalikkan (negasi) nilai true false dan talse true
Bina Nusantara Tabel Kebenaran AND (&&) p1p2p1 && p2Contoh false (2>3) && (5>5) is false Because both (2>3) and (5>5) are false falsetruefalse(2>3) && (6>5) is false Because (2>3) is false truefalse (6>5) && (2>3) is false Because (2>3) is false true (3>2) && (5>=5) is true Because both (3>2) and (5>=5) are true Operator AND (&&) bernilai true jika kedua kondisi operand-nya true Jika salah satu operand-nya false, maka AND akan bernilai false
Bina Nusantara Tabel Kebenaran OR (||) p1p2p1 || p2Contoh false (2>3) || (5>5) is false Because both (2>3) and (5>5) are false falsetrue (2>3) || (6>5) is true Because (6>5) is true truefalsetrue(6>5) || (2>3) is true Because (6>5) is true true (3>2) || (5>=5) is true Because both (3>2) and (5>=5) are true Operator OR (||) bernilai true jika salah satu kondisi operand-nya true Jika kedua operand-nya false, maka OR akan bernilai false
Bina Nusantara Tabel Kebenaran XOR (^) p1p2p1 ^ p2Contoh false (2>3) ^ (5>5) is false Because both (2>3) and (5>5) are false falsetrue (2>3) ^ (6>5) is true Because (2>3) is false and (6>5) is true truefalsetrue(6>5) ^ (2>3) is true Because (6>5) is true and (2>3) is false true false(3>2) ^ (5>=5) is true Because both (3>2) and (5>=5) are true Operator XOR (^) bernilai true jika kedua kondisi operand-nya bernilai berbeda Jika kedua operand-nya bernilai sama, maka XOR akan bernilai false
Bina Nusantara Tabel Kebenaran: Demo
Bina Nusantara Tabel Kebenaran: Demo
Bina Nusantara Tabel Kebenaran: Tahun Kabisat
Bina Nusantara Did You Know? Saat evaluasi p1&&p2, Java mengevaluasi p1 terlebih dahulu –Jika p1 bernilai true, maka Java mengevaluasi p2 –Jika p1 bernilai false, maka Java tidak mengevaluasi p2 Saat evaluasi p1||p2, Java mengevaluasi p1 terlebih dahulu –Jika p1 bernilai true, maka Java tidak mengevaluasi p2 –Jika p1 bernilai false, maka Java mengevaluasi p2 Operator && dan || conditional atau short-circuit OR operator
Bina Nusantara Advanced Learning Bit: satuan terkecil dalam data 1 byte = 8 bits 1 bit bernilai 0 dan 1 Java menyediakan operator untuk bitwise atau bit shift Bitwise/bit shift jarang digunakan Contoh bit: 255
Bina Nusantara Advanced Learning Nilai bit sama dengan boolean: –1 : true –0 : false Hasil operasi sama dengan operasi logika & && (AND) | || (OR) ^ ^ (XOR) ~ ! (NOT/NEGATE) Operator tambahan: << : shift left (unsigned) >> : shift right (signed) >>> : shift right (unsigned)
Bina Nusantara Advanced Learning OperatorNamaContohDeskripsi &AND & Hasil: Jika kedua bit = 1, maka menghasilkan 1 |OR | Hasil: Jika salah satu bit = 1, maka menghasilkan 1 ^XOR ^ Hasil: Jika kedua bit berbeda nilai maka menghasilkan 1 ~NEGATE~ Hasil: Jika bit = 1 0 Jika bit = 0 1 <<LEFT SHIFT << 2 Hasil: Geser 2 bit ke kiri, dan isi dengan nilai 0 di kanan >>RIGHT SHIFT (SIGNED) >> 2 Hasil: >> 2 Hasil: Geser 2 bit ke kanan, dan isi dengan nilai bit sebelumnya di kiri >>>RIGHT SHIFT (UNSIGNED) >>> 2 Hasil: Geser 2 bit ke kanan, dan isi dengan nilai 0 di kiri
Bina Nusantara Advanced Learning Shorthand pada bitwise: &=, |=, ^=, >=, >>>= Bitwise hanya dapat dilakukan pada tipe data bilangan bulat: byte, short, int, dan long Bitwise pada tipe data char akan dikonversi ke int (mengacu ke nilai ASCII)
Bina Nusantara Advanced Learning
Bina Nusantara Advanced Learning
Bina Nusantara Referensi Introduction to Java Programming. 6ed. Liang p94-98, p1279 Dasar Pemrograman Java 2. Abdul Kadir p76-83 The Complete Reference Java. 5ed. Herbert Schildt p62-76 Java 2 Weekend Crash Course. Julio Sanchez p85-96 Bitwise: – – – –