Python 101: Operators — Operator Bitwise dalam Pemrograman Python | Tutorial Python
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:
- 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 = 101Kita ambil angka 12 sebagai contoh lain:
- 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 = 1100Kita 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: 0b1100Awalan 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: 2Dalam contoh di atas, angka direpresentasikan dalam bentuk biner (bilangan basis 2). Berikut adalah representasi biner dari angka 5 dan 3:
5 = 101
3 = 011Operator AND (&):
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.
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.
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.
~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.
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.
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.







