Operator bitwise adalah alat dalam bahasa pemrograman yang digunakan untuk melakukan operasi langsung pada level bit atau biner dari sebuah nilai. Operator ini memanipulasi nilai dalam bentuk bit, yaitu 0 dan 1, dan mencakup operasi seperti shift, AND, OR, XOR, dan NOT.
Untuk mempermudah pemahaman mengenai cara kerja operator bitwise di Python, berikut beberapa hal yang perlu dipahami:
- Sistem Bilangan Biner: Operator bitwise bekerja pada level bit atau biner, yaitu sistem bilangan dengan basis 2. Di sistem ini, angka 1 dan 0 digunakan untuk merepresentasikan nilai pada setiap bit.
- Konversi Desimal ke Biner: Sebelum melakukan operasi bitwise, nilai desimal perlu dikonversi ke bilangan biner. Ini dapat dilakukan dengan menggunakan fungsi bawaan Python seperti
bin()
, atau dengan mengubah nilai desimal menjadi biner secara manual. - Tabel Kebenaran Operator Bitwise: Memahami hasil dari operasi bitwise memerlukan pemahaman tentang tabel kebenaran untuk setiap operator, yang menunjukkan hasil dari setiap kombinasi nilai bit.
Berikut adalah contoh penerapan operator bitwise di Python:
- # Contoh operasi bitwise AND
- a = 10 # Nilai biner: 1010
- b = 6 # Nilai biner: 0110
- c = a & b # Operasi bitwise AND
- print(c) # Output: 2 (nilai biner: 0010)
- # Contoh operasi bitwise OR
- a = 10 # Nilai biner: 1010
- b = 6 # Nilai biner: 0110
- c = a | b # Operasi bitwise OR
- print(c) # Output: 14 (nilai biner: 1110)
- # Contoh operasi bitwise XOR
- a = 10 # Nilai biner: 1010
- b = 6 # Nilai biner: 0110
- c = a ^ b # Operasi bitwise XOR
- print(c) # Output: 12 (nilai biner: 1100)
- # Contoh operasi bitwise shift left
- a = 10 # Nilai biner: 1010
- c = a << 2 # Operasi bitwise shift left
- print(c) # Output: 40 (nilai biner: 101000)
- # Contoh operasi bitwise shift right
- a = 10 # Nilai biner: 1010
- c = a >> 2 # Operasi bitwise shift right
- print(c) # Output: 2 (nilai biner: 10)
Operator bitwise yang umum digunakan adalah:
- AND (&): Menghasilkan bit 1 hanya jika kedua bit yang dibandingkan adalah 1, sisanya menjadi 0.
- OR (|): Menghasilkan bit 1 jika salah satu atau kedua bit yang dibandingkan adalah 1.
- XOR (^): Menghasilkan bit 1 hanya jika salah satu dari kedua bit yang dibandingkan adalah 1, tapi bukan keduanya.
- NOT (~): Mengubah bit 1 menjadi 0 dan sebaliknya, menghasilkan nilai negatif dari angka biner.
- # Representasi biner: 13 = 1101, 7 = 0111
- # Operator AND (&)
- result_and = 13 & 7
- # 1101 & 0111 = 0101 (biner)
- # Mengonversi kembali ke desimal: 0101 = 5
- print(result_and) # Output: 5
- # Operator OR (|)
- result_or = 13 | 7
- # 1101 | 0111 = 1111 (biner)
- # Mengonversi kembali ke desimal: 1111 = 15
- print(result_or) # Output: 15
- # Operator XOR (^)
- result_xor = 13 ^ 7
- # 1101 ^ 0111 = 1010 (biner)
- # Mengonversi kembali ke desimal: 1010 = 10
- print(result_xor) # Output: 10
- # Operator NOT (~)
- result_not = ~13
- # NOT dari 1101 = 0010 (biner) atau -14 dalam desimal (dalam representasi complement 2)
- print(result_not) # Output: -14