Python - Operator Bitwise

Halo di sana, para penyihir Python masa depan! Hari ini, kita akan memulai perjalanan yang menarik ke dunia operator bitwise. Saya tahu apa yang mungkin Anda pikirkan: "Operator bitwise? Itu terdengar seperti sesuatu yang hanya ilmuwan komputer yang peduli!" Tetapi percayalah, memahami operator ini bisa sangat berguna dan bahkan menyenangkan! Jadi, mari kita melompat dan membuka misteri bits dan bytes bersama.

Python - Bitwise Operators

Operator Bitwise di Python

Operator bitwise adalah operator khusus yang bekerja pada representasi biner dari angka. Mereka memanipulasi bit individual, yang merupakan unit data terkecil dalam komputasi. Pernahkan Anda bayangkan bit sebagai saklar kecil yang bisa saja menyala (1) atau mati (0).

Sebelum kita mendalami setiap operator, mari kita lihat secara cepat semua operator bitwise yang tersedia di Python:

Operator Nama Deskripsi
& AND Mengatur setiap bit menjadi 1 jika kedua bit adalah 1
| OR Mengatur setiap bit menjadi 1 jika salah satu dari dua bit adalah 1
^ XOR Mengatur setiap bit menjadi 1 jika hanya salah satu dari dua bit adalah 1
~ NOT Mengembalikan semua bit
<< Shift Kiri Menggeser kiri dengan menekan angka nol dari kanan
>> Shift Kanan Menggeser kanan dengan menekan salinan bit paling kiri dari kiri

Sekarang, mari kita jelajahi setiap operator ini secara rinci.

Operator Bitwise AND di Python (&)

Operator Bitwise AND (&) membandingkan setiap bit dari operan pertama dengan bit yang sesuai dari operan kedua. Jika kedua bit adalah 1, bit hasil yang sesuai diatur menjadi 1. Jika tidak, bit hasil yang sesuai diatur menjadi 0.

Mari lihat contohnya:

a = 5  # biner: 0101
b = 3  # biner: 0011
hasil = a & b
print(f"{a} & {b} = {hasil}")  # Output: 5 & 3 = 1

Dalam contoh ini, kita melakukan operasi bitwise AND antara 5 (0101 dalam biner) dan 3 (0011 dalam biner). Hasilnya adalah 1 (0001 dalam biner).

Berikut ini cara kerjanya:

0101 (5)
& 0011 (3)
----
0001 (1)

Seperti yang bisa Anda lihat, hanya bit paling kanan yang adalah 1 di kedua angka, jadi hanya bit itu yang adalah 1 dalam hasil.

Operator Bitwise OR di Python (|)

Operator Bitwise OR (|) membandingkan setiap bit dari operan pertama dengan bit yang sesuai dari operan kedua. Jika salah satu bit adalah 1, bit hasil yang sesuai diatur menjadi 1. Jika tidak, bit hasil yang sesuai diatur menjadi 0.

Berikut ini adalah contohnya:

a = 5  # biner: 0101
b = 3  # biner: 0011
hasil = a | b
print(f"{a} | {b} = {hasil}")  # Output: 5 | 3 = 7

Dalam kasus ini, kita melakukan operasi bitwise OR antara 5 dan 3. Hasilnya adalah 7 (0111 dalam biner).

Berikut ini adalah penguraian:

0101 (5)
| 0011 (3)
----
0111 (7)

Hasil memiliki 1 di mana saja salah satu dari angka asli memiliki 1.

Operator Bitwise XOR di Python (^)

Operator Bitwise XOR (eksklusif OR) (^) membandingkan setiap bit dari operan pertama dengan bit yang sesuai dari operan kedua. Jika bit berbeda, bit hasil yang sesuai diatur menjadi 1. Jika bit sama, bit hasil yang sesuai diatur menjadi 0.

Mari lihat contohnya:

a = 5  # biner: 0101
b = 3  # biner: 0011
hasil = a ^ b
print(f"{a} ^ {b} = {hasil}")  # Output: 5 ^ 3 = 6

Di sini, kita melakukan operasi bitwise XOR antara 5 dan 3. Hasilnya adalah 6 (0110 dalam biner).

Berikut ini cara kerjanya:

0101 (5)
^ 0011 (3)
----
0110 (6)

Hasil memiliki 1 di mana bit dalam angka asli berbeda.

Operator Bitwise NOT di Python (~)

Operator Bitwise NOT (~) adalah operator unari (hanya mengambil satu operan) yang mengalihkan bit dari operannya. Setiap 0 menjadi 1, dan setiap 1 menjadi 0.

Berikut ini adalah contohnya:

a = 5  # biner: 0101
hasil = ~a
print(f"~{a} = {hasil}")  # Output: ~5 = -6

Anda mungkin bertanya-tanya kenapa hasilnya adalah -6. Ini karena Python menggunakan komplemen dua untuk mewakili angka negatif. Dalam komplemen dua, bit paling kiri mewakili tanda (0 untuk positif, 1 untuk negatif).

Berikut ini adalah apa yang terjadi di bawah rakit:

00000101 (5)
~
11111010 (-6 dalam komplemen dua)

Operator Bitwise Shift Kiri di Python (<<)

Operator Bitwise Shift Kiri (<<) menggeser bit dari operan pertama ke kiri oleh jumlah tempat yang ditentukan oleh operan kedua. Bit baru di sebelah kanan diisi dengan angka nol.

Mari lihat contohnya:

a = 5  # biner: 0101
b = 1
hasil = a << b
print(f"{a} << {b} = {hasil}")  # Output: 5 << 1 = 10

Dalam kasus ini, kita menggeser bit dari 5 ke kiri oleh 1 posisi. Hasilnya adalah 10 (1010 dalam biner).

Berikut ini cara kerjanya:

0101 (5)
Shift kiri oleh 1
1010 (10)

Setiap shift kiri secara efektif mengalikan angka dengan 2.

Operator Bitwise Shift Kanan di Python (>>)

Operator Bitwise Shift Kanan (>>) menggeser bit dari operan pertama ke kanan oleh jumlah tempat yang ditentukan oleh operan kedua. Untuk angka positif, bit baru di sebelah kiri diisi dengan angka nol.

Berikut ini adalah contohnya:

a = 5  # biner: 0101
b = 1
hasil = a >> b
print(f"{a} >> {b} = {hasil}")  # Output: 5 >> 1 = 2

Di sini, kita menggeser bit dari 5 ke kanan oleh 1 posisi. Hasilnya adalah 2 (0010 dalam biner).

Berikut ini adalah penguraian:

0101 (5)
Shift kanan oleh 1
0010 (2)

Setiap shift kanan secara efektif membagi angka dengan 2 (pembulatan ke bawah ke angka integer terdekat).

Dan itu semua, teman-teman! Kita telah menjelajahi wilayah operator bitwise di Python. Operator ini mungkin terdengar agak abstrak pada awalnya, tetapi mereka adalah alat yang sangat kuat, khususnya saat Anda bekerja dengan operasi tingkat rendah atau perlu mengoptimalkan kode Anda untuk performa.

Ingat, praktek membuat perfect. Cobalah untuk bermain dengan operator ini, eksperimen dengan angka yang berbeda, dan lihat hasil yang Anda dapatkan. Sebelum Anda sadar, Anda akan memanipulasi bit seperti seorang profesional!

Selamat coding, dan mungkin bit selalu berada di pihak Anda!

Credits: Image by storyset