Tutorial Pemrograman C #10: Operator Bitwise Pada Bahasa C

Tutorial Pemrograman C #10 Operator Bitwise Pada Bahasa C

Operator bitwise adalah operasi yang digunakan untuk mengoperasikan suatu nilai dalam bilangan biner. Cara kerja operator bitwise yakni dengan cara mengubah operand yang merupakan bilangan desimal dikonversi ke bilangan biner. Kemudian bilangan biner tersebut diproses sesuai dengan aturan dari operator bitwise. Hasil dari proses operator bitwise masih berupa bilangan biner di dikonversi kembali ke bilangan desimal.

Bilangan biner sendiri merupakan sistem bilangan berbasis 2 yang penulisannya menggunakan 2 simbol yakni 0 dan 1. Untuk lebih lengkapnya mengenai bilangan biner bisa disearch sendiri.

Terdapat 6 operator bitwise dalam bahasa C. Daftar lengkapnya dapat dilihat pada tabel berikut. Untuk memahami contoh pada tabel untuk variabel A = 7 (konversi ke biner 7 =  0 1 1 1) dan untuk variabel B = 9 (konversi ke biner 9 = 1001).

Operator Nama Operator Keterangan Contoh
| Bitwise OR Bernilai 1 apabila salah satu operand bernilai 1 (A | B) = 15
& Bitwise AND Bernilai 1 apabila ke 2 operand bernilai 1 (A & B) = 1
^ Bitwise XOR Bernilai 1 jika operand bernilai satu dan operan lain bernilai 0 (A ^ B) = 14
~ Bitwise NOT Membalik nilai bit (~ A) = 8
<< Bitwise SHL Menggeser bit ke kiri (A << 2) = 28
>> Bitwise SHR Menggeser bit ke kanan (A >> 2) = 1

1. Operator Bitwise OR (|)

Aturan untuk operator bitwise OR yakni bernilai 1 apabila salah satu operand bernilai 1. Pada tabel di atas sudah disertakan contoh operasi dengan operator bitwise OR, akan tetapi belum dijelaskan proses untuk mendapatkan hasilnya. Oleh karena itu untuk mengetahui prosesnya silahkan simak contohnya di bawah ini.

A = 7  dikonversi ke biner 0 1 1 1 untuk B = 9 dikonversi ke biner 1 0 0 1

(A | B) = (7 | 9) = (0 1 1 1 | 1 0 0 1)

0 1 1 1
1 0 0 1
--------
1 1 1 1  konversi ke desimal = 15

Kode program : Pembuktian contoh dari operator bitwise OR (|).

#include <stdio.h>
int main() 
{ 
    int a = 7; 
    int b = 9; 

    printf("OPERATOR BITWISE OR\n\n");

    printf("A = %d dan B = %d\n\n", a, b); 
    printf("Bitwise OR (A | B) : %d", a | b); 
}

Output program : Jika program dijalankan maka hasilnya sebagai berikut.

2. Operator Bitwise AND (&)

Aturan untuk operator bitwise AND yakni bernilai 1 jika ke 2 operan bernilai 1. 

(A & B) = (7 & 9) = (0 1 1 1 & 1 0 0 1)

0 1 1 1
1 0 0 1
--------
0 0 0 1  konversi ke desimal = 1

Kode program : Pembuktian contoh dari operator bitwise AND (&).

#include <stdio.h>
int main() 
{ 
    int a = 7; 
    int b = 9; 

    printf("OPERATOR BITWISE AND\n\n");

    printf("A = %d dan B = %d\n\n", a, b); 
    printf("Bitwise AND (A & B) : %d", a & b); 
}

Output program : Jika program dijalankan maka hasilnya sebagai berikut.

3. Operator Bitwise XOR (^)

Aturan untuk operator bitwise XOR yakni bernilai satu jika operand bernilai satu dan yang lain bernilai 0

(A ^ B) = (7 ^ 9) = (0 1 1 1 ^ 1 0 0 1)

0 1 1 1
1 0 0 1
--------
1 1 1 0  konversi ke desimal = 14

Kode program : Pembuktian contoh dari operator bitwise XOR (^).

#include <stdio.h>
int main() 
{ 
    int a = 7; 
    int b = 9; 

    printf("OPERATOR BITWISE XOR\n\n");

    printf("A = %d dan B = %d\n\n", a, b); 
    printf("Bitwise XOR (A & B) : %d", a ^ b); 
}

Output program : Jika program dijalankan maka hasilnya sebagai berikut.

4. Operator Bitwise NOT

Bitwise NOT dikenal juga dengan komplemen yang akan menghasilkan kebalikan dari biner aslinya. Aturan untuk operator bitwise NOT yakni membalik nilai bit, 1 diubah jadi 0 dan 0 diubah jadi 1. Kemudian operator bitwise NOT hanya membutuhkan satu operand untuk memberikan hasil.

(~ A) = (~ 7) = (~ 0 1 1 1)

0 1 1 1
--------
1 0 0 0  konversi ke desimal = -8

Lah ko bisa -8 ? Simak penjelasannya pada gambar di bawah ini.

Untuk mempelajari lebih lanjut mengenai bilangan positif dan negatif biner silahkan baca disini Dan mungkin saya akan buatkan postingan khusus bagaimana cara bilangan negatif desimal dikonversi ke biner.

Kode program : Pembuktian contoh dari operator bitwise NOT(~).

#include <stdio.h>
int main() 
{ 
    int a = 7; 

    printf("OPERATOR BITWISE NOT\n\n");

    printf("A = %d\n\n", a); 
    printf("Bitwise NOT (~A) : %d", ~a); 
}

Output program : Jika program dijalankan maka hasilnya sebagai berikut.

(~ B) = (~ 9) = (~ 1 0 0 1)

1 0 0 1
--------
0 1 1 0  konversi ke desimal = -10

Kode program : Pembuktian contoh dari operator bitwise NOT(~).

#include <stdio.h>
int main() 
{ 
    int b = 9; 

    printf("OPERATOR BITWISE NOT\n\n");

    printf("B = %d\n\n", b); 
    printf("Bitwise NOT (~B) : %d", ~b); 
}

Output program : Jika program dijalankan maka hasilnya sebagai berikut.

5. Operator Bitwise SHL (<<)

Aturan untuk operator bitwise SHL yakni dengan menggeser bit ke arah kiri. Misalnya kita akan menggeser bit ke arah kiri sebanyak 2 bit. Sama halnya dengan operator bitwise NOT, pada operator bitwise SHL juga hanya membutuhkan 1 operand untuk memberikan hasil.

Contoh :

(A << 2) = (7 << 2) = (0 1 1 1 << 2)

   0 1 1 1
-----------
1 1 1 0 0  konversi ke desimal = 28

Jika dijabarkan maka prosesnya mendapatkan hasilnya adalah sebagai berikut.

Kode program : Contoh penggunaan operator bitwise SHL pada pemrograman bahasa C

#include <stdio.h>
int main() 
{ 
    int a = 7; 

    printf("OPERATOR BITWISE SHL\n\n");

    printf("A = %d\n\n", a); 
    printf("Bitwise SHL (A << 2) : %d", a << 2); 
}

Output program : Jika program dijalankan maka hasilnya sebagai berikut.

(B << 2) = (9 << 2) = (1 0 0 1 << 2)

      1 0 0 1
-------------
1 0 0 1 0 0  konversi ke desimal = 36

Kode program : Contoh penggunaan operator bitwise SHL pada pemrograman bahasa C

#include <stdio.h>
int main() 
{ 
    int b = 9; 

    printf("OPERATOR BITWISE SHL\n\n");

    printf("B = %d\n\n", b); 
    printf("Bitwise SHL (B << 2) : %d", b << 2); 
}

Output program : Jika program dijalankan maka hasilnya sebagai berikut.

5. Operator Bitwise SHR (>>)

Aturan untuk operator bitwise SHR merupakan kebalikan dari operator bitwise SHL, yakni dengan menggeser bit ke arah kanan. Misalnya kita akan menggeser bit ke kanan sebanyak 2 bit. 

(A >> 2) = (7 >> 2) = (0 1 1 1 >> 2)

0 1 1 1
---------
      0 1   konversi ke desimal = 1

Jika dijabarkan maka prosesnya adalah sebagai berikut.

Kode program : Contoh penggunaan operator bitwise SHR pada pemrograman bahasa C

#include <stdio.h>
int main() 
{ 
    int a = 7; 

    printf("OPERATOR BITWISE SHR\n\n");

    printf("A = %d\n\n", a); 
    printf("Bitwise SHR (A >> 2) : %d", a >> 2); 
}

Output program : Jika program dijalankan maka hasilnya sebagai berikut.

(B >> 2) = (9 >> 2) = (1 0 0 1 >> 2)

      1 0 0 1
-------------
            1 0  konversi ke desimal = 2

Kode program : Contoh penggunaan operator bitwise SHR pada pemrograman bahasa C

#include <stdio.h>
int main() 
{ 
    int b = 9; 

    printf("OPERATOR BITWISE SHR\n\n");

    printf("B = %d\n\n", b); 
    printf("Bitwise SHR (B >> 2) : %d", b >> 2); 
}

Output program : Jika program dijalankan maka hasilnya sebagai berikut.

Semua hasil contoh dari semua jenis operator bitwise di atas sudah dicoba pada program bahasa C, jika ada contoh yang sobat coba sudah tidak berhasil atau tidak sesuai silahkan tanyakan pada kolom komentar.