"Salam, Amigo! Saya begitu asyik memecahkan soal logika sehingga saya tidak menyadari Anda masuk. Ini satu untuk Anda: jika buaya terbang, maka salju itu putih. Ada buaya terbang. Apa kesimpulannya?"
"Um... Jadi kita menyimpulkan bahwa salju itu berwarna putih?"
"Luar biasa! Anda lulus tes inisiasi. Anda siap untuk menguasai topik berikutnya. Ini disebut 'operator logika'. Dan kita akan mulai dengan logika Boolean. Secara naluriah, Anda sudah mengetahuinya. Bagaimanapun, Anda adalah robot . Kami hanya perlu men-tweak pengaturan Anda agar sesuai dengan bahasa Java."
"Logika Boolean? Baru-baru ini saya diberi tahu tentang tipe boolean..."
"Ya, ada hubungan langsung di sini. Ekspresi Boolean hanya bisa benar atau salah. Dan seperti yang terjadi, logika semacam ini adalah tentang ekspresi yang benar atau salah, dan kombinasi dari ekspresi semacam itu. Misalnya, ekspresi 18 < 25 selalu benar, dan 7 < 5 selalu salah. Ekspresi (i < 10) bergantung pada nilai i. Dan jika ekspresi bernilai, misalnya, benar, maka kita dapat meminta program untuk melakukan sesuatu."
"Ahh, saya mengerti. Ekspresi Boolean memungkinkan kita tidak hanya membuat kesimpulan logis, tetapi juga membuat percabangan dalam program."
"Tepat sekali. Yang utama adalah mempelajari cara menulisnya. Misalnya, di Java Anda tidak bisa langsung menulis ekspresi 18 < age <65
. Ini akan salah secara sintaksis dan program tidak dapat dikompilasi.
"Tapi Anda bisa menulisnya seperti ini:
(18 < age) AND (age < 65)
Tentu saja, kami sebenarnya tidak menggunakan kata BAHASA INGGRIS AND
. Sebagai gantinya, Anda memerlukan operator boolean . Artinya, 'DAN' direpresentasikan secara berbeda.
"Ada tiga operator logis di Jawa: AND
(&&), OR
(||), NOT
(!).
Kabar baiknya adalah Anda dapat menggunakan tanda kurung untuk membuat ekspresi logis dari kerumitan apa pun.
Kabar buruknya adalah pengembang Java memutuskan untuk menggunakan notasi dari bahasa C sebagai pengganti kata and
, or
dan not
.
Lihat layar:
Operator logis | Ekspektasi | Realitas |
---|---|---|
AND (∧) |
and |
&& |
OR (∨) |
or |
|| |
NOT (¬) |
not |
! |
"Sebenarnya tidak seburuk itu... Cukup kompak. Aku hampir menghafalnya."
"Wah, bagus sekali. Berikut adalah beberapa contoh penggunaan operator logika di Java:
Ekspresi | Penafsiran | Penjelasan |
---|---|---|
(0 < a) && (a < 100) |
(0 < a) and (a < 100) |
(0 < a) AND (a < 100) |
(!a) && (!b) |
(not a) and (not b) |
(NOT a) AND (NOT b) |
!(!a || !b) |
not((not a) or (not b)) |
NOT((NOT a) OR (NOT b)) |
Contoh penggunaan operator pembanding dan variabel boolean
"Ingat, Amigo, di mana pun Anda bisa menulis ekspresi logika, Anda bisa menulis variabel logika."
"Bagaimana dengan itu?"
"Maksud saya, Anda dapat menulis ekspresi logis dengan cara yang berbeda. Misalnya:
Kode | Penjelasan |
---|---|
|
Jika nilai usia antara 18 dan 65 , maka kalimat "Kamu bisa bekerja" ditampilkan. |
|
Kami membuat sebuah isYoung variabel dan memindahkan bagian pertama dari ekspresi ke dalamnya. Kami cukup mengganti age >= 18 dengan age < 18 . |
|
Kami membuat variabel isOld dan memindahkan bagian kedua dari ekspresi ke dalamnya. Selain itu, age <= 65 digantikan oleh age > 65 . |
"Ketiga contoh ini ekuivalen. Hanya pada contoh kedua kami memindahkan bagian ekspresi dari pernyataan if
ke variabel boolean terpisah ( isYoung
). Pada contoh ketiga, kami memindahkan bagian kedua ekspresi ke variabel kedua ( isOld
). Omong-omong, nilai default dari variabel boolean adalah false
."
"Aku akan mengingatnya. Kuharap."
Aritmatika logis
"Sekarang mari kita secara singkat melalui operasi logis. Mereka mematuhi aturan yang sangat sederhana dan logis (bagaimana bisa sebaliknya!).
“Pertama, mari kita lihat bagaimana OR
operator bekerja. Ini juga dikenal sebagai ||
atau disjungsi .
Ekspresi | Hasil |
---|---|
true || true |
true |
true || false |
true |
false || true |
true |
false || false |
false |
"Bisakah Anda menyimpulkan sekarang apa hasil dari ekspresi a || b
berdasarkan tabel?"
"Jadi begitu!" Nilai suatu ekspresi adalah true
jika setidaknya satu suku dalam ekspresi tersebut adalah true
. Jika keduanya false
, maka hasilnya adalah false
.
"Itu benar. Karena kamu sangat pintar, lihat lagi tabelnya dan bayangkan itu false
0 dan true
1. Ketika kamu melihatnya seperti itu, apakah ||
perilaku operator mengingatkanmu pada sesuatu dari aritmatika biasa?"
"Um... Yah, ini seperti penjumlahan... Tapi ketika kamu melakukan penjumlahan, 1 + 1 tidak sama dengan 1."
"Ada rasa sama jika kita hanya bekerja dengan 0 dan 1. Tapi jangan pedulikan itu sekarang. Yang penting adalah Anda memperhatikan kesamaan antara operasi ||
dan penjumlahan. Ini berarti Anda menang ' Jangan kaget dengan kenyataan bahwa operasi ini sering disebut 'penjumlahan logis'.
"Mengerti."
"Sekarang AND
, alias &&
, alias operator konjungsi , naik ke atas panggung.
Ekspresi | Hasil |
---|---|
true && true |
true |
true && false |
false |
false && true |
false |
false && false |
false |
"Seperti yang saya pahami, hasil ekspresi hanya true
jika kedua nilai yang membentuk ekspresi adalah true
. Jika tidak, selalu false
."
"Bagus, Amigo! Kamu menyerap semua ini seperti spons. Apakah kamu melihat kesamaan lain dengan aritmatika?"
"Perkalian!"
"Tepat. Jadi di sini kita memiliki 'perkalian logis'".
"Selanjutnya kita lihat NOT
operator alias !
invers logikanya .
Ekspresi | Hasil |
---|---|
!true |
false |
!false |
true |
"Yah, semuanya cukup sederhana di sini. Operatornya berganti true
ke false
dan sebaliknya."
"Tepat sekali. Ini beberapa ungkapan yang berguna untukmu:"
Ekspresi | Hasil |
---|---|
m && !m |
false |
m || !m |
true |
!(a && b) |
!a || !b |
!(a || b) |
!a && !b |
GO TO FULL VERSION