Sitemap

Python 101: Operators — Operator Bitwise dalam Pemrograman Python | Tutorial Python

7 min readMay 15, 2023

--

Press enter or click to view image in full size
Photo by Alexander Sinn on Unsplash

Sebelum memahami Operator Bitwise mari kita pahami dulu secara singkat bagaimana bilangan numerik direpresentasikan dalam bilangan biner atau Binary.

Sistem bilangan biner adalah sistem bilangan dengan basis 2. Sistem ini hanya menggunakan dua digit, yaitu 0 dan 1, untuk mewakili semua nilai numerik. Sebagai perbandingan, sistem numerik desimal (basis 10) yang biasa kita gunakan dalam kehidupan sehari-hari menggunakan sepuluh digit (0–9).

Dalam sistem biner, setiap digit mewakili sebuah pangkat dari 2. Digit paling kanan mewakili 2⁰ (1), digit berikutnya mewakili 2¹ (2), digit selanjutnya mewakili 2² (4), dan seterusnya ke kiri. Untuk mewakili sebuah angka, kita menjumlahkan pangkat-pangkat dua yang sesuai untuk posisi-posisi di mana digitnya adalah 1.

Kita tuliskan referensi perpangkatan dua dari kanan ke kiri:

2⁷ -- 2⁶ -- 2⁵ -- 2⁴ -- 2³ -- 2² -- 2¹ -- 2⁰

atau:

128 -- 64 -- 32 -- 16 -- 8 -- 4 -- 2 -- 1

Sebagai contoh, kita ambil angka 20:

Ambil dua angka di mana hasil penjumlahannya sama dengan 20 yang masuk dalam referensi perpangkatan dua di atas, dan angka-angka tersebut tidak boleh berulang:

20 = 10 + 10 → tidak ada

20 = 15 + 5 → tidak ada

20 = 16 + 4 → ada

Cocokkan dua angka tadi dengan angka-angka dalam referensi. Letakkan angka 1 sebagai digit biner pada posisi di mana angka tersebut cocok karena bernilai True sehingga:

128--- 4----32----16---- 8---- 4---- 2---- 1

0---- 0---- 0---- 1---- 0---- 1---- 0---- 0

Didapatkan angka biner 00010100 atau 10100

Dengan demikian angka desimal 20 dalam biner adalah 00010100 (8 bit) atau 10100 (5 bit). Atau 0b10100 dalam format python. Setiap angka 0 atau 1 dalam suatu bilangan biner inilah yang disebut bit.

Cara lain untuk mengkonversi nilai desimal ke biner adalah dengan membagi nilai tersebut dengan 2 dan ambil sisa bagi sebagai digit biner. Kita ambil angka 5 dan konversikan ke dalam bentuk biner:

  1. Mulai dengan membagi 5 dengan 2:
  • Hasil bagi: 2
  • Sisa bagi: 1

Tuliskan sisa bagi (1) sebagai digit paling kanan.

2. Bagi hasil bagi (2) dengan 2 lagi:

  • Hasil bagi: 1
  • Sisa bagi: 0

Tuliskan sisa bagi (0) sebagai digit berikutnya.

Karena hasil bagi sekarang adalah 1, kita berhenti. Hasil bagi terakhir menjadi digit paling kiri:

Hasil bagi: 1

Tuliskan hasil bagi (1) sebagai digit paling kiri. Jadi, representasi biner dari angka 5 adalah 101.

Langkah 1: 5 / 2 --> Hasil bagi : 2
Sisa bagi : 1 --> angka biner paling kanan

Langkah 2: 2 / 2 --> Hasil bagi : 1
Sisa bagi : 0 --> angka biner setelah angka biner pertama

Langkah 3: Karena sisa bagi adalah 0,
ambil hasil bagi terakhir (1) sebagai
angka biner terakhir atau paling kiri

Jadi, representasi biner dari angka 5 adalah 101

atau dengan cara pertama:
128 - - 64 - - 32 - - 16 - - 8 - - 4 - - 2 - - 1

5 = 4 + 1, maka:

0 - - 0 - - 0 - - 0 - - 0 - - 1 - - 0 - - 1

5 = 101

Kita ambil angka 12 sebagai contoh lain:

  1. Bagi 12 dengan 2:
  • Hasil bagi: 6
  • Sisa bagi: 0

2. Bagi hasil bagi (6) dengan 2:

  • Hasil bagi: 3
  • Sisa bagi: 0

3. Bagi hasil bagi (3) dengan 2 lagi:

  • Hasil bagi: 1
  • Sisa bagi: 1

Hasil bagi terakhir menjadi digit paling kiri:

  • Hasil bagi: 1

Jadi, representasi biner dari angka 12 adalah 1100.

Langkah 1: 12 / 2 --> Hasil bagi : 6
Sisa bagi : 0 --> angka biner paling kanan

Langkah 2: 6 / 2 --> Hasil bagi : 3
Sisa bagi : 0 --> angka biner setelah angka biner pertama

Langkah 3: 3 / 2 --> Hasil bagi : 1
Sisa bagi : 1 --> angka biner selanjutnya

Langkah 4: Karena sisa bagi adalah 1,
ambil hasil bagi terakhir (1) sebagai
angka biner terakhir atau paling kiri

Jadi, representasi biner dari angka 12 adalah 1100

atau dengan cara pertama:
128 - - 64 - - 32 - - 16 - - 8 - - 4 - - 2 - - 1

12 = 8 + 4, maka:

0 - - 0 - - 0 - - 0 - - 1 - - 1 - - 0 - - 0

5 = 1100

Kita dapat menggunakan fungsi bin() untuk langsung mengonversi angka menjadi biner. Contohnya:

angka = 5
angka_biner = bin(angka)

print(angka_biner) # Output: 0b101

angka_dua = 12
angka_dua_biner = bin(angka_dua)

print(angka_dua_biner) # Output: 0b1100

Awalan 0b menunjukkan bahwa angka tersebut dalam format biner

Penjelasan ini dapat membantu memahami bagaimana angka direpresentasikan dalam sistem biner. Ini adalah konsep dasar dalam ilmu komputer, dan pemahaman tentang representasi biner penting untuk bekerja dengan operasi bitwise dan operasi tingkat rendah lainnya.

Operator Bitwise

Operator bitwise digunakan dalam pemrograman Python untuk melakukan operasi pada level bit individu dari bilangan biner. Operator bitwise bekerja pada representasi biner dari nilai-nilai tersebut.

Get Robert Modalo’s stories in your inbox

Join Medium for free to get updates from this writer.

Berikut adalah daftar operator bitwise yang tersedia dalam Python:

  • & (AND): Melakukan operasi AND bit per bit antara dua bilangan.
  • | (OR): Melakukan operasi OR bit per bit antara dua bilangan.
  • ^ (XOR): Melakukan operasi XOR bit per bit antara dua bilangan.
  • ~ (NOT): Menghasilkan negasi bit dari suatu bilangan.
  • << (Left Shift): Menggeser bit ke kiri sebanyak n posisi.
  • >> (Right Shift): Menggeser bit ke kanan sebanyak n posisi.

Contoh penggunaan operator bitwise dalam Python:

a = 5
b = 3

# Operator AND (&)
hasil_and = a & b
print(hasil_and) # Output: 1

# Operator OR (|)
hasil_or = a | b
print(hasil_or) # Output: 7

# Operator XOR (^)
hasil_xor = a ^ b
print(hasil_xor) # Output: 6

# Operator NOT (~)
hasil_not = ~a
print(hasil_not) # Output: -6

# Operator Left Shift (<<)
hasil_left_shift = a << 2
print(hasil_left_shift) # Output: 20

# Operator Right Shift (>>)
hasil_right_shift = a >> 1
print(hasil_right_shift) # Output: 2

Dalam contoh di atas, angka direpresentasikan dalam bentuk biner (bilangan basis 2). Berikut adalah representasi biner dari angka 5 dan 3:

5 = 101
3 = 011

Operator AND (&):

Ilustrasi operasi bit and (sumber: Bitwise Operators in Python — Real Python)

Operator AND melakukan operasi AND bit per bit pada angka-angka biner tersebut. Jika pada posisi tertentu kedua bit adalah 1, maka hasilnya adalah 1. Jika tidak, hasilnya adalah 0.

101 (5)
011 (3)
- - -
001 (1)

Sehingga, hasil dari operasi a & b adalah 1.

Operator OR (|):

Operator OR melakukan operasi OR bit per bit pada angka-angka biner tersebut. Jika pada posisi tertentu salah satu bit adalah 1, maka hasilnya adalah 1. Jika keduanya adalah 0, hasilnya adalah 0.

Ilustrasi operasi or (sumber: Bitwise Operators in Python — Real Python)
101 (5)
011 (3)
- - -
111 (7)

Sehingga, hasil dari operasi a | b adalah 7.

Operator XOR (^):

Operator XOR (Exclusive OR) melakukan operasi XOR bit per bit pada angka-angka biner tersebut. Jika pada posisi tertentu kedua bit berbeda, hasilnya adalah 1. Jika keduanya sama, hasilnya adalah 0.

Ilustrasi operasi xor (sumber: Bitwise Operators in Python — Real Python)
101 (5)
011 (3)
- - -
110 (6)

Sehingga, hasil dari operasi a ^ b adalah 6.

Operator NOT (~):

Operator NOT melakukan negasi bit dari suatu angka biner. Jadi, semua bit 1 menjadi 0, dan semua bit 0 menjadi 1.

Ilustrasi operasi not (sumber: Bitwise Operators in Python — Real Python)
~101 (5)
- - -
-110 (-6)

Sehingga, hasil dari operasi ~a adalah -6.

Catatan:

~101 menjadi -110 adalah hasil dari operasi not menurut aturan two’s complement.

Operator Left Shift (<<):

Operator Left Shift menggeser bit ke kiri sebanyak n posisi. Setiap pergeseran ke kiri sebanyak 1 posisi akan menghasilkan efek perkalian dengan 2. Pada contoh baris kode di atas a (5) digeser ke kiri sebanyak dua bit ( a << 2 ) , dan sebelah kanan ditambahkan 0 sebanyak n (2) pergeseran tersebut.

Ilustrasi operasi left shit (sumber: Bitwise Operators in Python — Real Python)
101 (5)
- - -
10100 (20)

Sehingga, hasil dari operasi a << 2 adalah 20.

Operator Right Shift (>>):

Operator Right Shift menggeser bit ke kanan sebanyak n posisi. Setiap pergeseran ke kanan sebanyak 1 posisi akan menghasilkan efek pembagian dengan 2 (pembagian bulat). Bit di posisi paling kanan akan dihilangkan.

Ilustrasi operasi right shift (sumber: Bitwise Operators in Python — Real Python)
101 (5)
- - -
10 (2)

Sehingga, hasil dari operasi a >> 1 adalah 2.

Dengan penjelasan mendasar tentang konsep operasi bitwise ini, dapat memanipulasi dan memahami bagaimana bit-bit bekerja dalam operasi tersebut. Operasi bitwise jarang digunakan dalam pemrograman sehari-hari. Artikel ini hanya membahas sebagian kecil dari operasi bitwise. Namun pemahaman mengenai bilangan biner dan operasi bitwise akan sangat bermanfaat dalam aplikasi yang lebih spesifik misalnya kriptografi dan stenografi.

--

--

Robert Modalo
Robert Modalo

Written by Robert Modalo

A data analyst currently working in public service. Interested in Machine Learning and AI