Operator Logika
Operator Logika merupakan operator yang dipakai untuk menggabungkan dua atau lebih kondisi. Ada tiga operator logika, yaitu AND, OR dan NOT.
Operator | Keterangan |
---|---|
and | akan bernilai True jika semua kondisi benar |
or | akan bernilai True jika salah satu kondisi benar |
not | negasi, menghasilkan nilai kebalikannya (True menjadi False dan sebaliknya) |
Jika dituliskan dalam kode Python, contohnya bisa seperti berikut.
# Contoh Operator AND
username = 'admin'
password = '12345'
print(username == 'admin' and password == '12345')
# Contoh Penggunaan OR
cuaca = "cerah"
mood = "malas"
print(cuaca != 'cerah' or mood == 'malas')
# Contoh Penggunaan NOT
## Untuk satu nilai
print(not True)
## Untuk membandingkan banyak nilai
print(not(True or False))
Dan setelah dijalankan akan muncul empat output sebagai berikut.
Lalu kira-kira mengapa outputnya seperti itu? Jangan bingung, mari kita ulas satu per satu.
Output pertama menunjukkan hasil percobaan operator AND. Bayangkan misalnya saja kita membuat sistem Login yang mengharuskan pengguna memasukkan username dan password. Pengguna harus memasukkan keduanya dengan tepat. Jika username atau password tidak sesuai, maka login gagal. Nah, dari kasus tersebut kita buat kode sederhananya. Pada baris 5, kita mencoba mencocokkan apakah username
bernilai admin dan apakah password
bernilai 12345, yang masing-masing telah didefinisikan di baris 2 dan 3. Jika diuraikan, maka terdapat dua kondisi seperti berikut.
Kondisi 1: Apakah usernamenya admin?
Kondisi 2: Apakah passwordnya 12345?
Karena dua-duanya memenuhi kondisi, maka program menghasilkan output True
. Bagaimana jika kita ubah usernamenya saja, atau passwordnya saja, atau keduanya?
username = 'user'
password = '12345'
print(username == 'admin' and password == '12345')
# Output: False
Operator AND hanya akan mengembalikan nilai True
jika semua nilai yang dibandingkan sama-sama bernilai True
. Jika nilai variabel username berubah menjadi user
, maka kondisi pertama akan bernilai False
. Sehingga meskipun password
benar, perbandingan keduanya menghasilkan nilai False
.
Output yang kedua merupakan hasil penggunaan operator OR. Pada contoh tersebut, saya membuat kondisi yang harus dipenuhi untuk rebahan. Lalu disaat seperti apa saya akan rebahan?
Kondisi 1: Apakah cuaca sedang tidak cerah?
Kondisi 2: Apakah saya sedang malas?
Pada kasus ini saya menggunakan operator OR, yang mana akan mengembalikan nilai True
jika ada minimal satu nilai yang bernilai True
. Jadi di sini saya akan rebahan jika hari sedang tidak cerah atau saat saya malas. Pada kode di atas, saya menggambarkan cuaca sedang cerah dan saya sedang malas. Kode mencetak output True
karena salah satu kondisi terpenuhi, yaitu saya sedang malas. Jadi secerah apapun cuacanya, namun jika saya malas, saya akan rebahan, hehe. (ini hanya contoh, jadi jangan ditiru 😜) . Baris kode tersebut baru akan mencetak False
, jika kedua kondisi tidak terpenuhi, yaitu jika cuaca cerah dan mood saya sedang tidak malas. Implementasinya seperti pada kode berikut.
cuaca = "cerah"
mood = "semangat"
print(cuaca != 'cerah' or mood == 'malas')
# Output: False
Selanjutnya output ketiga dan keempat adalah hasil dari penggunaan operator NOT. Operator ini akan mengembalikan nilai negasi (kebalikan). Seperti yang telah kita coba pada baris 18, nilai not True
akan menghasilkan False
. Begitu juga dengan baris 22, menghasilkan nilai False. Mengapa demikian? True or False
akan menghasilkan nilai True
(Logika OR). Oleh karena itu, not(True or False)
akan sama saja dengan not True
dan menghasilkan False
. Semakin bingung? Silakan bereksperimen dengan berbagai kondisi untuk menjawab rasa penasaran kalian.
Operator Assignment
Operator Assignment ini mirip seperti operator-operator lainnya, namun merupakan kombinasi dan memungkinkan penulisan yang lebih sederhana. Sebelum menuju ke contoh codingnya, coba simak kembali tabel operator assignment berikut ini.
Simbol Operator | Keterangan |
---|---|
= | memberikan nilai |
+= | penjumlahan |
-= | pengurangan |
*= | perkalian |
/= | pembagian |
**= | pangkat |
%= | modulus |
Dari tabel di atas, operator assignment hampir semuanya merupakan kombinasi dua operator. Lalu bagaimana operator ini bekerja? Simak beberapa contoh pada kode berikut ini.
a = 5
a += 1
print(a)
# Output: 6
b = 10
b -= 1
print(b)
# Output: 9
c = 2
c *= 3
print(c)
# Output: 6
Wah, dari mana angka-angka pada output itu dihasilkan? Ada yang bisa menebak?