false - Binus Repository

advertisement
OPERASI RELASIONAL
DAN LOGIKA
Matakuliah
Tahun
Versi
: T0974 / Algoritma dan Metode Object Oriented Programming I
: 2008
: 1/0
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
Operator
Deskripsi
<
less than
Bina Nusantara
Contoh
1<2
Hasil
true
<=
>
>=
less than or equal to
greater than
greater than or equal to
1 <= 2
1>2
1 >= 2
true
false
false
==
equal to
1 == 2
false
!=
not equal to
1 != 2
true
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
Operator
Nama
Description
!
&&
not
and
logical negation
logical conjunction
||
or
logical disjunction
^
Bina Nusantara
exclusive or logical exclusion
Tabel Kebenaran NOT (!)
p
!p
Contoh
true false !(1>2) is true, because (1>2) is false
false true !(1>0) is false, because (1>0) is true
• Operator not (!) membalikkan (negasi) nilai
• true  false dan talse  true
Bina Nusantara
Tabel Kebenaran AND (&&)
p1
p2
p1 && p2
Contoh
false
false
false
(2>3) && (5>5) is false
Because both (2>3) and (5>5) are false
false
true
false
(2>3) && (6>5) is false
Because (2>3) is false
true
false
false
(6>5) && (2>3) is false
Because (2>3) is false
true
true
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 (||)
p1
p2
p1 || p2
Contoh
false false
false
(2>3) || (5>5) is false
Because both (2>3) and (5>5) are false
false true
true
(2>3) || (6>5) is true
Because (6>5) is true
true false
true
(6>5) || (2>3) is true
Because (6>5) is true
true
true
(3>2) || (5>=5) is true
Because both (3>2) and (5>=5) are true
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 (^)
p1
p2
p1 ^ p2
Contoh
false false
false
(2>3) ^ (5>5) is false
Because both (2>3) and (5>5) are false
false true
true
(2>3) ^ (6>5) is true
Because (2>3) is false and (6>5) is true
true false
true
(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
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:
0000 0000  0
0000 0001  1
0000 0010  2
0000 0011  3
0000 0100  4
Bina Nusantara
0000 1000  8
0001 0000  16
0010 0000  32
0100 1101  77
1111 1111  255
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
Operator
Nama
Contoh
Deskripsi
&
AND
1010 1110 & 1001 0010
Hasil: 1000 0010
Jika kedua bit = 1, maka menghasilkan
|
OR
1010 1110 | 1001 0010
Hasil: 1011 1110
Jika salah satu bit = 1, maka
^
XOR
1010 1110 ^ 1001 0010
Hasil: 0011 1110
Jika kedua bit berbeda nilai maka
~
NEGATE
~1010 1110
Hasil: 0101 0001
Jika bit = 1  0
Jika bit = 0  1
<<
LEFT
SHIFT
1010 1110 << 2
Hasil: 1011 1000
Geser 2 bit ke kiri, dan isi dengan nilai
>>
RIGHT
SHIFT
(SIGNED)
1010 1110 >> 2
Hasil: 1110 1011
0010 1110 >> 2
Hasil: 0000 1011
Geser 2 bit ke kanan, dan isi dengan
di kiri
RIGHT
1010 1110 >>> 2
SHIFT
Hasil: 0010 1011
(UNSIGNED)
Geser 2 bit ke kanan, dan isi dengan
>>>
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.
2007. p94-98, p1279
• Dasar Pemrograman Java 2. Abdul Kadir. 2004.
p76-83
• The Complete Reference Java. 5ed. Herbert
Schildt. 2005. p62-76
• Java 2 Weekend Crash Course. Julio Sanchez.
2002. p85-96
• Bitwise:
–
–
–
–
Bina Nusantara
http://java.sun.com/docs/books/tutorial/java/nutsandbolts/op3.html
http://www.sap-img.com/java/java-bitwise-logical-operators.htm
http://www.leepoint.net/notes-java/data/expressions/bitops.html
http://www.javabeginner.com/java-operators.htm
Download