Penjelasan Operator Bitwise Dan Operator Logika Beserta Perhitungannya Bahasa Pemrograman C++ ~ Coding IsmyNR - Cara Dan Contoh Pemrograman

Penjelasan Operator Bitwise Dan Operator Logika Beserta Perhitungannya Bahasa Pemrograman C++

OPERATOR BITWISE 

Operator Bitwise itu Operasi matematika dengan mengoprasikan nilai dalam bilangan biner 0 dan 1, Penggunaan operasi bitwise lebih banyak pada operasi logika, Operator bitwise ini bekerja bit demi bit
OperatorDetailContoh
<<Geser bit Ke Kirim << n
>>Geser bit Ke Kananm >> n
&Bitwise Dan / Andm & n
|Bitwise Atau / Or (OR Inklusif)m | n
~Bitwise Not / Bukan~m
^Bitwise Xor (OR Eksklusif)m ^ n
Seluruh operator bitwise hanya bisa dikenakan pada operand bertipe data int atau char.

1. Shift Left " << "

Menggeser sejumlah bit ke kiri / melakukan perpindahan arah bit ke kiri atau menggeser nilai biner kearah kiri dan digit yang paling kanan akan diisi 0. untuk lebih jelasnya kalian praktekan aja bagaimana hasil dari kode di bawah ini :
#include <iostream>
using namespace std;
int main()
{
    int a=45;
    cout << a << " << 2 = " << (a<<2) << endl;
    return 0;
}
Outputnya :
45 << 2 = 180

Contoh Lainya shift left
#include <iostream>
using namespace std;
int main()
{
    int a=60;
    cout << a << " << 3 = " << (a<<3) << endl;
    return 0;
}
Outputnya :
60 << 3 = 480

Kenapa hasilnya segitu ?

Contoh coding bitwise No 1

- Perhitungan dari bitwise ini menggunakan biner, jadi kita harus mengkonvert angka dulu ke biner, caranya anda bisa langsung ke website disini Atau anda bisa menghitungnya manual :
a = 45 = 101101
Berikut cara membuatnya menjadi biner :
PembagianHasilSisa Pembagian
45 / 2 221
22 / 2110
11 / 251
5 / 221
2 / 210
1 / 201
Ambil sisanya, dan susun binernya dari bawah pada perhitungan diatas.
- lalu geser bitnya kearah kiri dan yang paling kanan itu diisi 0, karena kita menggeser bit 3 maka isikan 0 pada yang paling kanan, menjadi seperti ini.

a        = 101101
Hasil = 10110100
Jadi kita mengisikan 0 tiga kali pada biner yang paling kanan, jadi 10110100 = 180

Contoh coding bitwise No 2

- Perhitungan dari bitwise ini menggunakan biner, jadi kita harus mengkonvert angka dulu ke biner, caranya anda bisa langsung ke website disini Atau anda bisa menghitungnya manual :
a = 60 = 111100
Berikut cara membuatnya menjadi biner :
PembagianHasilSisa Pembagian
60/2300
30/2150
15/271
7/231
3/211
1/201
Ambil sisanya, dan susun binernya dari bawah pada perhitungan diatas.

a        = 111100
Hasil = 111100000
Jadi kita mengisikan 0 dua kali pada biner yang paling kanan, jadi 111100000 = 480

2. Shift Right " >>"

Menggeser sejumlah bit ke kanan / melakukan perpindahan arah bit ke kanan, sama seperti Shift Left cuman kebalikanya, sekarang tinggal bandingin bagaimana perubahan perbedaan shift right dan left dengan kode di bawah ini : 
#include <iostream>
using namespace std;
int main()
{
    int a=45;
    cout << a << " >> 2 = " << (a>>2) << endl;
    return 0;
}
Outputnya :
45 >> 2  = 11

Jadi binernya a = 45 = 101101
Untuk menghitungnya dengan menggeser nilai biner kearah kanan serta menghapus nilai biner yang paling kanan dan yang paling kiri dari hasil pergeseran tidak akan diisi nilai apapun berbeda layaknya pada shift left yang diisi 0.

a        = 101101
Hasil = 1011
Karena kita menggeser ke kanannya 2 bit maka hilangkan biner yang sebelah kanan, jadi 1011 = 11

3. Operator And " & " 

Pasti tidak asing lagi dengan operator logika sebenarnya di SMA di ajarkan logika seperti ini dalam pelajaran matematika, tetapi sedikit berbeda,  jika di SMA pasti di ajarkan tabel kebenaran yaitu benar dan salah kalo disini 0 sebagai salah dan 1 benar. lihat pada tabel di bawah ini

Karena operator and or dan xor adalah operator untuk membandingkan 2 operand dengan cara menggunakan bilangan binner sebagai perbandingan, binner adalah bilangan 0 dan 1. nah operator ini akan mentranslate bilangan bulat ke binner dan membandingkannya dengan operand lainya, itu yang dimaksud 2 operand.
AND
and
kalian tinggal lihat pada gambar di atas untuk membandingkannya ada pada true dan false (benar dan salah). Setelah operator ini di tugaskan melakukan perbandingan dengan cara yang di atas itu, maka hasil perbandingan tersebut akan di translate ke bilangan bulat kembali.
#include <iostream>
using namespace std;
int main()
{
    int a = 0;
    int b = 1;

    cout << "Jadi " << a << " & " << a << " Hasilnya adalah : " << (a & a) << endl;
    cout << "Jadi " << a << " & " << b << " Hasilnya adalah : " << (a & b) << endl;
    cout << "Jadi " << b << " & " << a << " Hasilnya adalah : " << (b & a) << endl;
    cout << "Jadi " << b << " & " << b << " Hasilnya adalah : " << (b & b) << endl;

    return 0;
}
Output : 
Jadi 0 & 0 Hasilnya adalah : 0
Jadi 0 & 1 Hasilnya adalah : 0
Jadi 1 & 0 Hasilnya adalah : 0
Jadi 1 & 1 Hasilnya adalah : 1

Nah jika nilai a dan b nya bukan 0 dan 1 misalkan bilangan bulat seperti 3, 23, 534 dst, bilangan 1 s/d 0, maka akan di translate ke biner dan ada operasi hitung binner dan biner. nah kalo misalkan di bagian ini ada rumusnya juga untuk menghitung and dalam bilangan binner.

Cara menghitung bitwise AND :
Misalkan contoh sederhana seperti berikut ini
#include <iostream>
using namespace std;

int main()
{
    int a = 20, b = 18;
    cout << a << " & " << b << " Hasilnya : " << (a&b) << endl;
}
Output :
20 & 18 Hasilnya : 16

Jadikan 20 dan 18 itu biner dahulu
20 = 10100
18 = 10010
        ----------
        10000
sesuaikan binernya dan hitung sesuai dengan tabel kebenaran diatas, jika
0 & 0 = 0
0 & 1 = 0
1 & 0 = 0
0 & 0 = 0
1 & 1 = 1
maka hasil binernya 10000 jadikan desimal hasilnya 16

4. Operator OR " | " 

 OR
or
Begitupun dengan OR sama saja dengan operator And membandingkan 2 operand, cuman akan berbeda jika kita melihat hasil perbandingannya, lihat tabel di atas. Setelah itu praktekan dalam kodingnya.

OR : bernilai 1 jika salah satu dari kedua bit yang dibandingkan terdapat 1 serta kedua bit sama sama bernilai 1, tetapi bernilai 0 jika kedua bit adalah 0

Cara menghitung bitwise OR :
Misalkan contoh sederhana seperti berikut ini
#include <iostream>
using namespace std;

int main()
{
    int a = 20, b = 18;
    cout << a << " | " << b << " Hasilnya : " << (a|b) << endl;
}
Output :
20 | 18 Hasilnya : 22

Jadikan 20 dan 18 itu biner dahulu
20 = 10100
18 = 10010
        ----------
        10110
sesuaikan binernya dan hitung sesuai dengan tabel kebenaran diatas, jika
0 & 0 = 0
0 & 1 = 1
1 & 0 = 1
0 & 0 = 0
1 & 1 = 1
maka hasil binernya 10110 jadikan desimal hasilnya 22

5. Operator XOR " ^ " 

 XOR
xor
Begitupun dengan XOR sama saja dengan operator And dan Or membandingkan 2 operand, cuman akan berbeda jika kita melihat hasil perbandingannya, lihat tabel di atas untuk perbandingannya. Setelah itu praktekan dalam codingnya.

XOR : bernilai 0 jika kedua biner bernilai sama (misal 1 ^ 1 atau 0 ^ 0), tetapi bernilai 1 jika kedua biner berbeda (misalkan 1 ^ 0 atau 0 ^ 1)

Cara menghitung bitwise OR :
Misalkan contoh sederhana seperti berikut ini
#include <iostream>
using namespace std;

int main()
{
    int a = 20, b = 18;
    cout << a << " ^ " << b << " Hasilnya : " << (a^b) << endl;
}
Output :
20 ^ 18 Hasilnya : 6

Jadikan 20 dan 18 itu biner dahulu
20 = 10100
18 = 10010
        ----------
        00110
sesuaikan binernya dan hitung sesuai dengan tabel kebenaran diatas, jika
0 & 0 = 0
0 & 1 = 1
1 & 0 = 1
0 & 0 = 0
1 & 1 = 0
maka hasil binernya 00110 jadikan desimal hasilnya 6

6. Operator NOT " ~ " 

Berikut bentuk tabel kebenaran dari not
~a = b
~b = a

Kalo operator ini berbeda,Operator Not adalah operator yang mengembalikan nilai dalam bentuk bilangan biner, sama seperti lainya mentranslate bilangan bulat ke binner. jika biner tersebut (benar/true/1) maka hasil akan di balikan menjadi (salah/false/0), begitupun sebaliknya jika hasilnya (salah/false/0) maka hasil aslinya (benar/true/1). setelah itu akan di bilangan bulatkan kembali nilainya. Jadi dalam operator Bitwise identik perhitungannya dengan bilangan binner.

Cara menghitung bitwise NOT :
Misalkan contoh sederhana seperti berikut ini
#include <iostream>
using namespace std;

int main()
{
    int a = 20;
    cout << "~" << a << " Hasilnya : " << (~a) << endl;
}
Output :
~20 Hasilnya : -21

Jadikan 20 dan 18 itu biner dahulu
20 =  10100
        ----------
          01011
sesuaikan binernya dan hitung sesuai dengan tabel kebenaran diatas, jika
~0 = 1
~0 = 1
~1 = 0
~0 = 1
~1 = 0
maka hasil binernya 01011 jadikan desimal hasilnya 11, kenapa hasilnya berbeda ?
karena bit 01011 menggunakan 5 bit, sedangkan bahasa pemrgraman menghitungnya menggunakan 32 bit, jadi kita jadikan dulu menjadi 32 bit.

OPERATOR LOGIKA


Operator logika adalah operator yang mengarah pada ungkapan untuk memcahkan suatu masalah, tidak seperti bitwise pada tiap bit nya. operator logika ini biasanya di gunakan untuk membandingkan 2 operand kondisi yang biasa dikenal dengan istilah boolean (true/false) .untuk menghubungkan 2 atau lebih ungkapan yang berkondisi.

Operator AND (&&) hanya akan menghasilan nilai 1 (benar) jika semua operand bernilai 1 (benar)
Operator OR ( | | ) menghasilkan nilai salah (0) jika semua operan bernilai 0 (salah)
Operator NOT (!) merupakan kebalikan dari nilai yang terkandung didalamnya.

OperatorDeskripsiContoh Bentuk
&&Logika Andx && y
||Logika Orx || y
!Logika Not!x

Biasanya operator logika ini sering digunakan pada operasi pengkondisian seperti if else else if pada bahasa pemrograman C++.

Contoh programnya seperti ...
#include <iostream>
using namespace std;
int main()
{
    int a = 0;
    int b = 1;

    cout << "Jadi " << a << " && " << a << " Hasilnya adalah : " << (a && a) << endl;
    cout << "Jadi " << a << " && " << b << " Hasilnya adalah : " << (a && b) << endl;
    cout << "Jadi " << b << " && " << a << " Hasilnya adalah : " << (b && a) << endl;
    cout << "Jadi " << b << " && " << b << " Hasilnya adalah : " << (b && b) << endl << endl;

    cout << "Jadi " << a << " || " << a << " Hasilnya adalah : " << (a || a) << endl;
    cout << "Jadi " << a << " || " << b << " Hasilnya adalah : " << (a || b) << endl;
    cout << "Jadi " << b << " || " << a << " Hasilnya adalah : " << (b || a) << endl;
    cout << "Jadi " << b << " || " << b << " Hasilnya adalah : " << (b || b) << endl << endl;;

    cout << "Jadi " << a << " Hasilnya adalah : " << (!a) << endl;
    cout << "Jadi " << b << " Hasilnya adalah : " << (!b) << endl;
    return 0;
}
Outputnya :
Jadi 0 && 0 Hasilnya adalah : 0
Jadi 0 && 1 Hasilnya adalah : 0
Jadi 1 && 0 Hasilnya adalah : 0
Jadi 1 && 1 Hasilnya adalah : 1

Jadi 0 || 0 Hasilnya adalah : 0
Jadi 0 || 1 Hasilnya adalah : 1
Jadi 1 || 0 Hasilnya adalah : 1
Jadi 1 || 1 Hasilnya adalah : 1

Jadi 0 Hasilnya adalah : 1
Jadi 1 Hasilnya adalah : 0


1. Operator AND

true    ||    true    =  true
true    ||    false   =  false
false   ||    true    =  false

false   ||    false   = false

untuk lebih jelasnya program di atas hasilnya sama dengan operator bitwise, tetapi jika di implementasikan dalam ungkapan pengkondisian maka kalian akan tau perbedaanya.

Nah nilai awal itu kan nilai a dan b sama,  trus nilai c dan d juga sama. if else itu adalah pengkondisian, jadi jika dalam kode if (a == b && c==d) nilai nya benar maka jalankan kode yang ada di dalam if. itu makanya pas kompile pertama yang keluar adalah "Iya, a dan b nilainya sama && c dan d nilai nya sama" karena emang di if (a == b && c==d) itu benar.

logikanya gini : 
  • a == b artinya, apakah nilai a sama dengan b ?? jawabanya True karena a=10 dan b=10
  • c == d artinya, apakah nilai c sama dengan d ?? jawabanya True karena c=40 dan b=40
  • && nya itu sebagai perbedaan/perbandingan, kalo iya nilai dari masing2 di atas benar semua maka kode di dalam if(a == b && c==d) di jalankan, dan outputnya "Iya, a dan b nilainya sama && c dan d nilai nya sama" 
Sebaliknya jika saya ganti c=30 jadi kan nilai c itu tidak sama dengan d kan ???? jadi nilai dalam booleanya (False). berarti di simpulkan dalam operator Bitwise nya (true/1 & false/0) hasilnya ?? false/0 lihat dalam tabel kebenaran di atas...

Jadi ketika di compile akan menjalankan kode yang ada di dalam else karena kondisi di if itu ada yang tidak sesuai/tidak sama atau FALSE, jadi kode yang ada di if di lewati dan muncul output nya kode yang ada dalam else.

Sama aja dengan operator lainya seperti Or dan Not, silahkan dipahami lagi


2. Operator NOT

misalkan contoh kode untuk NOT
#include <iostream>
using namespace std;
int main()
{
    int a = 10;
    int b = 20;

    if(a != b ){
        cout << "a tidak sama dengan b" << endl;
    }
    else{
        cout << "a sama dengan b" << endl;
    }
    return 0;
}
Outputnya :
a tidak sama dengan b

Dia menjalankan kode yang ada di dalam if(a != b), kenapa terjadi ?? karena apakan nilai a itu != dengan b ??? (!= adalah tidak sama) jawabanya benar/true, nilai a=10 dan nilai b=20 itu nilai yang berbeda.

3. Operator OR

true    ||    true    =  true
true    ||    false   =  true
false   ||    true    =  true
false   ||    false   = false

Misalkan contoh untuk or itu artinya "atau" lihat dan samakan dengan tabel kebenaranya, ingat 1 itu true dan 0 itu false, di or itu misalkan ada 2 operand yang pertama nilai nya true dan yang kedua nilainya false maka hasilnya true, seperti pada kode di bawah :
#include <iostream>
using namespace std;
int main()
{
    int a = 10;
    int b = 10;

    int c = 30;
    int d = 40;

    if(a == b || c == d){
        cout << "Iya" << endl;
    }
    else{
        cout << "tidak" << endl;
    }
    return 0;
}
Outputnya :
Iya

a == b itu kan true 
c == d itu kan false 
dalam Opertator OR (true || false) itu hasilnya true, jadi kode yang dalam if lah yang di jalankan.


tag:
operator bitwise adalah
operator bitwise pada C++
operator bistwize dalam C++
perbedaan operator bitwise dan operator logika
apa yang dimaksud operator bitwise
operator logikaadalah
operator logikapada C++
operator logikadalam C++
perbedaan operator logikadan operator bitwizw
apa yang dimaksud operator logika
logoblog

Share :

1 comment:

Berkomentarlah jika ada pertanyaan, Kesan pembaca atau saran yang membangun blog ini.
> Gunakan akun google dan ceklis kolom (Notify Me) agar mendapat notifikasi balasan komentar

 
Back to Top