From 774c97717ee4a30db000bae7a20a6cf2cf569bd5 Mon Sep 17 00:00:00 2001 From: FaizCan <147566170+RhapsodyInBlueMelody@users.noreply.github.com> Date: Tue, 10 Dec 2024 23:58:42 +0700 Subject: [PATCH] feat:menambahkan operator bitwise pada basic operator # Deskripsi (Description) #### Menambahkan Operator Bitwise pada Basic CPP. #### Bagaimana operator bitwise digunakan dan bagaimana program C++ dapat berinteraksi dengan ASCII # Checklist: ##### Umum: - [x] Saya menambah algoritma terbaru. - [ ] Saya memperbaiki algoritma yang sudah ada. - [ ] Saya memperbaiki dokumentasi. - [ ] Saya menambah dokumentasi. ##### Contributor Requirements (Syarat Kontributor) dan Lain-Lain: - [x] Saya sudah membaca (I have read) [CONTRIBUTING](https://github.com/bellshade/CPP/blob/main/CONTRIBUTING.md) dan sudah menyetujui semua syarat. - [x] Saya telah menambahkan komentar kode yang memberikan penjelasan maksud dari kode yang saya buat. - [x] Saya menggunakan bahasa Indonesia untuk memberikan penjelasan dari kode yang saya buat. # Environment Saya menggunakan (I'm using): - ``OS`` = `Linux` - ``g++`` = `11.4.0` # Link Issues Issues : # This Commit License https://github.com/bellshade/CPP/blob/main/license Co-authored-by: bellshadebot --- basic/04_operator/operator_bitwise.cpp | 43 ++++++++++++++++++++++++++ basic/04_operator/readme.md | 41 +++++++++++++++++++++--- basic/08_string/menggunakan_array.cpp | 2 +- 3 files changed, 81 insertions(+), 5 deletions(-) create mode 100644 basic/04_operator/operator_bitwise.cpp diff --git a/basic/04_operator/operator_bitwise.cpp b/basic/04_operator/operator_bitwise.cpp new file mode 100644 index 0000000..2e1e24e --- /dev/null +++ b/basic/04_operator/operator_bitwise.cpp @@ -0,0 +1,43 @@ +/* +Hai teman-teman! Mari kita belajar tentang cara kerja operator bitwise dengan contoh sederhana! + +Sebelumnya, mari kita pahami dulu tipe data char. Char (character) adalah tipe data yang digunakan untuk menyimpan satu karakter seperti huruf, angka, atau simbol. +Setiap karakter char sebenarnya disimpan dalam bentuk biner 8-bit berdasarkan kode ASCII. +*/ +#include + +int main(){ + char a = 'F'; + char b = 'C'; + char c = a & b; + std::cout << c << std::endl; +} + +/* +Program di atas akan menghasilkan output: B + +Kenapa bisa begitu? Yuk kita pahami bersama-sama! + +Di sini kita membandingkan 2 variabel bertipe char: +- Variabel a berisi huruf 'F' +- Variabel b berisi huruf 'C' + +Dalam tabel ASCII, setiap karakter memiliki nilai biner masing-masing: +'F' = 01000110 +'C' = 01000011 + +Kemudian kita menggunakan operator bitwise AND ('&'). Operator ini akan membandingkan setiap digit biner dari kedua karakter tersebut. +Jika kedua digit sama-sama bernilai 1, hasilnya 1. Jika tidak, hasilnya 0. + +Mari kita bandingkan: +01000110 (F) +01000011 (C) +-------- AND +01000010 + +Nah, hasil operasi bitwise AND tersebut adalah 01000010, yang dalam tabel ASCII merupakan representasi dari huruf 'B'! + +Bagaimana? Menarik kan cara kerjanya? 😊 + +kalau penasaran, teman-teman bisa ber-eksperiment dengan melihat tabel ASCII ini sebagai referensi >> https://www.ascii-code.com/ +*/ diff --git a/basic/04_operator/readme.md b/basic/04_operator/readme.md index dee6ce6..553995e 100644 --- a/basic/04_operator/readme.md +++ b/basic/04_operator/readme.md @@ -1,14 +1,14 @@ # Operator -Sebelum mempelajari tentang operator, kamu harus sudah mengenal tentang "Ekspresi". Ekspresi terdiri dari dua komponen, yaitu **operator** dan **operand.** +Sebelum mempelajari tentang operator, kamu harus sudah mengenal tentang "Ekspresi". Ekspresi terdiri dari dua komponen, yaitu **operator** dan **operand.** - operator: simbol dari operasi yang akan dilakukan - operand: nilai yang akan dioperasikan - + **Contoh**: `a + b` -a dan b adalah operand +a dan b adalah operand simbol `+` adalah operator - + Selanjutnya, kita akan mempelajari tentang operasi dan operatornya. @@ -71,3 +71,36 @@ Operator logika digunakan untuk menggabungkan dua—atau lebih—kondisi | `!` | NOT | lebih lanjut dari operator logika bisa dilihat [disini](https://www.youtube.com/watch?v=k9nBTzvba34&list=PLZS-MHyEIRo4Ze0bbGB1WKBSNMPzi-eWI&index=17) + +## 4. Operator Bitwise + +Operator Bitwise adalah operator yang melakukan operasi pada level bit (biner) dari suatu nilai. +Operator ini bekerja dengan mengoperasikan bit per bit dari dua operand. + +| Operator | Nama Operasi | Keterangan | +| - | - | - |h +| `&` | AND | Menghasilkan 1 jika kedua bit bernilai 1 | +| `\|` | OR | Menghasilkan 1 jika salah satu bit bernilai 1 | +| `^` | XOR | Menghasilkan 1 jika kedua bit bernilai berbeda | +| `~` | NOT | Membalikkan semua nilai bit | +| `<<` | Left Shift | Menggeser bit ke kiri | +| `>>` | Right Shift | Menggeser bit ke kanan | + +**Contoh penggunaan:** +```cpp +int a = 5; // 00000101 dalam biner +int b = 3; // 00000011 dalam biner + +int c = a & b; // 00000001 = 1 +int d = a | b; // 00000111 = 7 +int e = a ^ b; // 00000110 = 6 +int f = ~a; // 11111010 = -6 +int g = a << 1; // 00001010 = 10 +int h = a >> 1; // 00000010 = 2 +``` + +Operator Bitwise sering digunakan dalam: +- Pemrograman sistem +- Optimasi kode +- Manipulasi flag dan state +- Enkripsi data sederhana diff --git a/basic/08_string/menggunakan_array.cpp b/basic/08_string/menggunakan_array.cpp index 9e8f8ef..c97c0c7 100644 --- a/basic/08_string/menggunakan_array.cpp +++ b/basic/08_string/menggunakan_array.cpp @@ -4,5 +4,5 @@ int main(){ char salam[] = "Hello boys"; std::cout<