Python Operator - Logical dan Bitwise

Reno Iqbalsah

22/03/2023

Bagian ini memembahas tentang logical operators dan bitwise operators dalam bahasa pemrograman Python

Logical Operators atau operator logikal akan membandingkan dua pernyataan dengan syarat tertentu. Untuk dasar yang lebih lengkap, teman-teman bisa membaca tentang Gerbang Logika. Sedangkan bitwise operators juga menggunakan logika yang sama dengan logical operators, hanya saja bitwise operators melakukan operasi pada tingkat bit pada tiap nilai.

Logical Operators

Ada 3 logical operators dalam Python, yaitu:

OperatorDeskripsiContoh
andMenghasilkan True apabila kedua pernyataan Truex > 5 and y == 3
orMenghasilkan True apabila setidaknya salah satu pernyataan Truex > 5 or y == 3
notMembalikkan hasil dari sebuah pernyataan(x > 5 not y == 3)

Berikut ini tabel untuk membandingkan perbedaan dari beberapa logical operators yang dinotasikan dalam a dan b sebagai dua buah statement yang dibandingkan.

and Operator

aba and b
FalseFalseFalse
TrueFalseFalse
FalseTrueFalse
TrueTrueTrue

or Operator

aba or b
FalseFalseFalse
TrueFalseTrue
FalseTrueTrue
TrueTrueTrue

not Operator

anot a
TrueFalse
FalseTrue

Sekarang, coba sendiri dengan kode di bawah ini!

    
x = 5 y = 3 print(x > y and y <= 5) # output : True print(x == y and x == 5) # output : False print(x == y or x == 5) # output : True print(not(x == 5)) # output : False

Bitwise Operators

Bitwise operators menggunakan fundamental yang sama dengan logical operators, hanya saja logika tersebut digunakan untuk mengoperasikan angka 0 dan 1 pada level binary. Sebelum lebih lanjut, ada baiknya untuk terlebih dahulu membaca tentang Sistem Bilangan Biner.

Berikut ini daftar bitwise operators

OperatorNamaDeskripsiContoh Penggunaan
&ANDMenghasilkan bit 1 jika kedua bit yang dibandingan adalah 1x & y
|ORMenghasilkan bit 1 jika setidaknya salah satu dari dua bit yang dibandingan adalah 1x | y
^XORMenghasilkan bit 1 jika hanya salah satu dari dua bit yang dibandingan adalah 1x ^ y
~NOTMembalikkan semua bit (1 menjadi 0, 0 menjadi 1)~x
<<Zero fill left shiftMenggeser bit ke kiri dan menambahkan 0 di sisi kananx << 2
>>Signed right shiftMenggeser bit ke kanan dan menghilangkan 0 di sisi kananx >> 3

Untuk menjelaskannya kita akan menggunakan angka 11 dan 17, jika menggunakan biner 8 bit, maka kedua angka ini adalah 00001011 dan 00010001.

Operator &

Operator ini melakukan operasi seperti di bawah ini:

aba & b
000
100
010
111

Sangat mirip dengan operator and hanya saja True menjadi 1 dan False menjadi 0. Apabila kita mengoperasikan 11 & 17, maka hasil operasinya adalah:

Angka
1100001011
1700010001
11 & 1700000001

Hasil operasi dari 11 & 17 adalah 00000001 atau angka 1.

Operator |

Operator | melakukan operasi sebagai berikut:

aba | b
000
101
011
111

Hal ini menggunakan logika yang sama dengan operator or. Jika kita melakukan operasi 11 | 17 maka:

Angka
1100001011
1700010001
11 | 1700011011

Hasil dari 11 | 17 adalah 00011011 atau 27.

Operator ^

Nama dari operator ini adalah XOR atau eXclusive OR, operator ini mirip dengan or dan |, hanya saja XOR akan menghasilkan 1 apabila hanya salah satu dari kedua bit adalah 1.

aba ^ b
000
101
011
110

Operasi 11 ^ 17 akan menghasilkan seperti di bawah ini:

Angka
1100001011
1700010001
11 ^ 1700011010

Hasil dari operasi 11 ^ 17 adalah 00011010 atau 26.

Operator ~

Operator ~ akan membalik seluruh nilai digit biner dari suatu nilai. Yang artinya semua digit 0 akan diubah menjadi 1 dan semua digit 1 akan diubah menjadi 0. Misalnya saja:

Angka
1100001011
~1111110100

Sehingga, hasil dari ~11 adalah 11110100 atau -12.

Operator << dan >>

Secara sederhana, operator ini akan menggeser digit biner dari suatu nilai. Misalnya x << 3 berarti nilai x akan digeser digitnya ke kiri sebanyak 3 kali (menambahkan 3 angka 0 di belakang). Sebaliknya, x >> 3 akan menggeser digit x ke kanan 3 kali (menghilangkan 3 angka paling belakang).

Angka
1100001011
11 << 200101100
11 >> 200000010

Hasil dari 11 << 2 adalah 00101100 atau 44, sedangkan 11 >> 2 adalah 00000010 atau 2.