Tutorial Belajar Python Part 20: Jenis-jenis Operator Bitwise Python

Melanjutkan pembahasan mengenai operator bahasa pemrograman Python, di panduan ini kita akan mempelajari Jenis-jenis Operator Bitwise.


Pengertian Operator Bitwise di Python

Bitwise ialah operator khusus untuk menangani operasi logika bilangan biner di wujud bit.

Bilangan biner sendiri yakni sebuah jenis bilangan yang hanya terdiri dari 2 jenis angka, yakni 0 dan 1. Jikalau nilai asal yang dimanfaatkan bukan bilangan biner, akan dikonversi secara otomatis menjadi bilangan biner. Misalnya 7 desimal = 0111 di bilangan biner.

Di penerapannya, operator bitwise tak terlalu sering dimanfaatkan, kecuali rekan-rekan sedang mendesain program yang mesti memproses bit-bit komputer. Selain itu operator ini lumayan rumit dan mesti mempunyai pemahaman mengenai program bilangan biner. Di bahasan kali ini saya menganggap rekan-rekan telah paham beda antara bilangan biner (basis 2) dan bilangan desimal (basis 10).

Bahasa Python mendukung 6 jenis operator bitwise:

Operator Nama Contoh Biner Hasil (biner) Hasil (decimal)
And 10 12 1010 1100 1000 8
| Or 10 | 12 1010 | 1100 1110 14
^ Xor 10 ^ 12 1010 ^ 1100 0110 6
Not 10 1010 0101 -11 (two complement)
<< Left shift 10 << 1 1010 << 1 10100 20
>> Right shift 10 >> 1 1010 >> 1 101 5

Contoh Kode Program Operator Bitwise Python

Berikut contoh kode program dari pemakaian operator bitwise di bahasa pemrograman Python:

Hasil kode program:

Di contoh di atas, saya mendefinisikan 2 variabel: x dan y. Kemudian memberikan nilai awal 10 dan 12. Jikalau di konversi ke di wujud biner, keduanya berisi angka berikut:

Di baris 4 dan 5 saya menggunakan function bawaan python, yakni bin(), ini dapat dimanfaatkan untuk menampilkan versi biner dari sebuah angka desimal. Awalan 0b yakni sebuah penanda bahwa ini ialah angka biner. Artinya, angka 0b1010 ialah 1010 di bilangan biner.

Operator bitwise pertama-tama ialah operasi (And) kepada kedua variabel. Operasi bitwise “and” ini akan memproses bit per bit dari kedua variabel, bila kedua bit sama-sama 1, karenanya hasilnya pun 1, selain kondisi tersebut, nilai akhirnya ialah 0. Berikut perhitungan bitwise “and”:

Dan dari hasil print, terlihat bahwa hasilnya ialah 10 (di wujud desimal).

Operator bitwise kedua ialah operasi | (Or), hasilnya akan bernilai 0 bila kedua bit bernilai 0, selain itu nilai bit akan di set menjadi 1. Berikut cara perhitungan bitwise “or”:

Operator bitwise ketiga ialah operasi ^ (Xor), hasilnya akan bernilai 1 bila diantara dari kedua variabel bernilai 1 (namun tak keduanya). Atau dengan kata lain bila kedua bit berlainan, hasilnya 1 tapi kalau sama-sama 0 atau sama-sama 1, hasilnya 0.

Berikut cara perhitungan bitwise “xor”:

Berikutnya ialah operasi atau not, yang akan membalikkan nilai bit sebuah variabel dari 0 menjadi 1, dan 1 menjadi nol. Namun perhitungan bit not ini sedikit membingungkan karena bila kita hanya membalikkan seluruh bit saja, hasilnya tak sesuai dengan apa yang dihitung Python:

Dari hasil menjalankan program, dapat dilihat bahwa a = -11, dari manakah datangnya angka -11?

Ini berkaitan dengan cara bahasa python menyimpan angka biner (dan pun hampir seluruh bahasa pemrograman komputer modern). Angka biner di di bahasa python disimpan di format “Two’s complement”. Penjelasan mengenai “Two’s complement” ini lumayan panjang, bila tertarik saya telah membahasnya komplit di buku Pascal Uncover, atau dapat ke Two’s complement Wikipedia.

Secara singkat, rumusnya ialah -x - 1, sehingga x = -10 - 1 = -11(desimal)

Di baris 13 ialah operator shift left “<<” dimana nilai variabel x akan digeser sebanyak 1 digit ke kiri. Berikut proses yang terjadi:

Ketika hasil pergeseran ke kiri, digit amat kanan akan diisi angka 0. Setiap penggeseran 1 tempat ke kiri akan mengkali 2 nilai asal. Karena variabel x berisi desimal 10, karenanya hasil dari << 1 sama dengan 10 * 2 = 20

Di baris 14, terdapat operator shift right “>>” dimana bah
asa python akan menggeser posisi bit di variabel x ke kanan sebanyak 1 tempat. Berikut proses yang terjadi:

Operator shift right menggeser nilai biner variabel x ke arah kanan, sehingga digit amat kanan akan dihapus. Operator shift right ini akan menghasilkan nilai asal / 2. Di contoh kita, hasilnya ialah 10/2 = 5 (dibulatkan).


Di panduan kali ini kita telah mempelajari operator bitwise di bahasa python. Di prakteknya, operator bitwise ini tak terlalu sering dimanfaatkan. Berikutnya akan dibahas mengenai Operator Assignment atau Operator Penugasan Python.


Sumber https://www.duniailkom.com/

Share

You may also like...