0% menganggap dokumen ini bermanfaat (0 suara)
3 tayangan5 halaman

Operator Bitwise dalam Python

Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
3 tayangan5 halaman

Operator Bitwise dalam Python

Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd

Tutorial Belajar Python Part 20:

Jenis-jenis Operator Bitwise


Python
28 Jul 19 | Andre | Tutorial Python | No Comments

Melanjutkan pembahasan tentang operator bahasa pemrograman Python,


dalam tutorial ini kita akan mempelajari Jenis-jenis Operator Bitwise.

Pengertian Operator Bitwise dalam Python


Bitwise adalah operator khusus untuk menangani operasi logika bilangan
biner dalam bentuk bit.
Bilangan biner sendiri merupakan jenis bilangan yang hanya terdiri dari
2 jenis angka, yakni 0 dan 1. Jika nilai asal yang dipakai bukan bilangan
biner, akan dikonversi secara otomatis menjadi bilangan biner. Misalnya 7
desimal = 0111 dalam bilangan biner.
Pada penerapannya, operator bitwise tidak terlalu sering dipakai, kecuali
anda sedang membuat program yang harus memproses bit-bit komputer.
Selain itu operator ini cukup rumit dan harus memiliki pemahaman
tentang sistem bilangan biner. Dalam bahasan kali ini saya menganggap
anda sudah paham beda antara bilangan biner (basis 2) dan bilangan
desimal (basis 10).

Bahasa Python mendukung 6 jenis operator bitwise:


Operat Nama Conto Biner Hasil Hasil (decimal)
or h (biner)

& And 10 & 121010 & 1000 8


1100

| 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 shift10 >> 1 1010 >> 1 101 5


Contoh Kode Program Operator Bitwise
Python
Berikut contoh kode program dari penggunaan operator bitwise dalam
bahasa pemrograman Python:

1
x = 10
2
y = 12
3

4
print('x berisi angka',x ,'desimal atau',bin(x),'biner')
5 print('y berisi angka',y ,'desimal atau',bin(y),'biner')
6

7 print('\n')

9 print('x & y :',x & y)

10 print('x | y :',x | y)

print('x ^ y :',x ^ y)
11
print('~x :',~x)
12
print('x << 1 :',x << 1)
13
print('x >> 1 :',x >> 1)
14

Hasil kode program:

x berisi angka 10 desimal atau 0b1010 biner

y berisi angka 12 desimal atau 0b1100 biner

x & y : 8

x | y : 14

x ^ y : 6

~x : -11

x << 1 : 20

x >> 1 : 5
Dalam contoh di atas, saya mendefinisikan 2 variabel: x dan y. Kemudian
memberikan nilai awal 10 dan 12. Jika di konversi ke dalam bentuk biner,
keduanya berisi angka berikut:
x = 10 (desimal) = 1010 (biner)

y = 12 (desimal) = 1100 (biner)

Di baris 4 dan 5 saya menggunakan function bawaan python, yakni bin(),


ini bisa dipakai untuk menampilkan versi biner dari sebuah angka
desimal. Awalan 0b merupakan penanda bahwa ini adalah angka biner.
Artinya, angka 0b1010 adalah 1010 dalam bilangan biner.
Operator bitwise pertama adalah operasi & (And) terhadap kedua
variabel. Operasi bitwise "and" ini akan memproses bit per bit dari kedua
variabel, jika kedua bit sama-sama 1, maka hasilnya juga 1, selain kondisi
tersebut, nilai akhirnya adalah 0. Berikut perhitungan bitwise "and":
x = 1010

y = 1100

----

x & y = 1000 = 8 (desimal)

Dan dari hasil print, terlihat bahwa hasilnya adalah 10 (dalam bentuk
desimal).

Operator bitwise kedua adalah operasi | (Or), hasilnya akan bernilai 0 jika
kedua bit bernilai 0, selain itu nilai bit akan di set menjadi 1. Berikut cara
perhitungan bitwise "or":
x = 1010

y = 1100

-----
x | y = 1110 = 14 (desimal)

Operator bitwise ketiga adalah operasi ^ (Xor), hasilnya akan bernilai 1


jika salah satu dari kedua variabel bernilai 1 (namun tidak keduanya).
Atau dengan kata lain jika kedua bit berlainan, hasilnya 1 tapi kalau sama-
sama 0 atau sama-sama 1, hasilnya 0.
Berikut cara perhitungan bitwise "xor":

x = 1010

y = 1100

-----

x ^ y = 0110 = 6 (desimal)

Selanjutnya adalah 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 jika kita hanya membalikkan
seluruh bit saja, hasilnya tidak sesuai dengan apa yang dihitung Python:
x = 1010

--------

~x = 0101 = 5 (desimal) ==> salah ???

Dari hasil menjalankan program, dapat dilihat bahwa ~a = -11, dari


manakah datangnya angka -11?

Ini berkaitan dengan cara bahasa python menyimpan angka biner (dan
juga hampir semua bahasa pemrograman komputer modern). Angka biner
di dalam bahasa python disimpan dalam format "Two's complement".
Penjelasan tentang "Two's complement" ini cukup panjang, jika tertarik
saya sudah membahasnya lengkap di buku Pascal Uncover, atau bisa
ke Two's complement Wikipedia.
Secara singkat, rumusnya adalah -x - 1, sehingga ~x = -10 - 1 = -
11(desimal)
Di baris 13 adalah operator shift left "<<" dimana nilai variabel x akan
digeser sebanyak 1 digit ke kiri. Berikut proses yang terjadi:
x = 1010 = 10

x << 1 = 10100 = 20 (desimal)

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

Di baris 14, terdapat operator shift right ">>" dimana bahasa python
akan menggeser posisi bit dalam variabel x ke kanan sebanyak 1 tempat.
Berikut proses yang terjadi:
x = 1010 = 10

x >> 1 = 101 = 5 (desimal)


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

Anda mungkin juga menyukai