Penjelasan Operator Bitwize Dan Operator Logika Bahasa Pemrograman C++ ~ Coding IsmyNR - Cara Dan Contoh Pemrograman

Penjelasan Operator Bitwize Dan Operator Logika Bahasa Pemrograman C++

OPERATOR BITWIZE 

Operator Bitwize 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
&Bitwize Dan / Andm & n
|Bitwize Atau / Or (OR Inklusif)m | n
~Bitwize Not / Bukan~m
^Bitwize 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, untuk lebih jelasnya kalian praktekan aja bagaimana hasil dari kode di bawah ini :
#include <iostream>
using namespace std;
int main()
{
    int a=45, b=60;
    cout << a << " << " << b << " = " << (a<<2) << endl;
    return 0;
}
Outputnya :
45 << 60 = 180

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

Misalkan bilangan bulat yang sudah menjadi bilangan biner :
010011
-----------------
100110
Jadi 1 itu pindah ke depan, 0 juga pindah kedepan dengan 1 bit dst... sampai terakhir. lalu convert menjadi bilangan bulat itulah hasilnya.

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, b=60;
    cout << a << " << " << b << " = " << (a>>2) << endl;
    return 0;
}
Outputnya :
45 << 60 = 11

Misalkan bilangan bulat yang sudah menjadi bilangan biner :
010011
-----------------
001001
Jadi 0 pindah ke belakang, 1 juga pindah ke belakang/ke kanan dst sampai selesai lalu mengubaahnya menjadi bilangan bulat kembali.

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.

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 

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.

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 Bitwize identik perhitungannya dengan bilangan binner.


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 bitwize, 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 Bitwize 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 bitwize adalah
operator bitwize pada C++
operator bistwize dalam C++
perbedaan operator bitwize dan operator logika
apa yang dimaksud operator bitwize
operator logikaadalah
operator logikapada C++
operator logikadalam C++
perbedaan operator logikadan operator bitwizw
apa yang dimaksud operator logika
logoblog

Share :

No comments:

Post a Comment

Berkomentarlah jika ada pertanyaan mengenai artikel ini, Kesan pembaca atau saran yang membangun blog ini.
*Gunakan akun google dan ceklis kolom (Notify Me) agar mendapatkan pemberitahuan balasan komentar

 
Back to Top