Belajar C++ #06: Enam Jenis Operator yang Harus Kamu Ketahui di C++
Pada tutorial sebelumnya kita sudah belajar tentang variabel dan tipe data.
Buat kamu yang belum membacanya, saya sarankan untuk membacanya dulu sebelum mengikuti tutorial ini.
Silakan buka: Variabel dan Tipe data pada C++
Berkat variabel kita jadi bisa menyimpan data di dalam program. Tapi sejauh ini, kita belum melakukan operasi apapun terhadapnya.
Percuma kan kita simpan data, tapi tidak diolah.
Nah, untuk mengolahnya kita membutuhkan operator.
Apa itu Operator?
dan bagaimana cara menggunakannya?
Mari kita bahas…
Apa itu Operator?
Operator adalah sebuah simbol…
Simbol yang digunakan untuk melakukan operasi tertentu.
Misalnya:
Kita ingin menjumlahkan nilai dari variabel x
dan y
, maka
kita bisa menggunakan operator penjumlahan (+
).
x + y
Ada enam jenis kelompok operator dalam pemrograman C++ yang harus kamu ketahui:
- Operator Aritmatika;
- Operator Penugasan;
- Operator Pembanding;
- Operator Logika;
- Operator Bitwise;
- dan Operator Lain-lain.
Apa saja perbedaan dari semua jenis operator ini?
Mari kita bahas, satu per satu…
1. Operator Aritmatika
Operator aritmatika merupakan operator yang digunakan untuk melakukan operasi aritmatika.
Operator ini terdiri dari:
Nama Operator | Simbol |
---|---|
Penjumlahan | + |
Pengurangan | - |
Perkalian | * |
Pembagian | / |
Sisa Bagi | % |
Bagaimana cara pakainya?
Mari kita coba dalam contoh program:
Buatlah program baru bernama operator_aritmatika.cpp
,
kemudian isi dengan kode berikut.
#include <iostream>
using namespace std;
int main(){
int a, b, c;
cout << "Inputkan nilai a: ";
cin >> a;
cout << "Inputkan nilai b: ";
cin >> b;
// menggunakan operator penjumlahan
c = a + b;
cout << "Hasil a + b = " << c << endl;
return 0;
}
Maka hasilnya:
Coba juga untuk contoh operator yang lain seperti pengurangan, perkalian, pembagian, dan sisa bagi.
Ubah programnya menjadi seperti ini:
#include <iostream>
using namespace std;
int main(){
int a, b;
cout << "Inputkan nilai a: ";
cin >> a;
cout << "Inputkan nilai b: ";
cin >> b;
cout << "Hasil a + b: " << a + b << endl;
cout << "Hasil a - b: " << a - b << endl;
cout << "Hasil a * b: " << a * b << endl;
cout << "Hasil a / b: " << a / b << endl;
cout << "Hasil a % b: " << a % b << endl;
return 0;
}
Maka hasilnya:
Pada operasi pembagian, 7/2
hasilnya adalah 3
.
Mengapa demikian?
Bukannya seharusnya 3.5
…
Ini karena kita melakukan operasi terhadap tipe data integer.
Bila kita ubah programnya menggunakan tipe data float
:
#include <iostream>
using namespace std;
int main(){
float a, b;
cout << "Inputkan nilai a: ";
cin >> a;
cout << "Inputkan nilai b: ";
cin >> b;
cout << "Hasil a / b: " << a / b << endl;
return 0;
}
Maka hasilnya akan seperti ini:
2. Operator Penugasan
Operator penugasan (Assignment Operator) merupakan operator untuk memberikan tugas pada variabel. Biasanya untuk mengisi nilai.
Operator Penugasan terdiri dari:
Nama Operator | Sombol |
---|---|
Pengisian Nilai | = |
Pengisian dan Penambahan | += |
Pengisian dan Pengurangan | -= |
Pengisian dan Perkalian | *= |
Pengisian dan Pembagian | /= |
Pengisian dan Sisa bagi | %= |
Pengisian dan shift left | <<= |
Pengisian dan shift right | >>= |
Pengisian dan bitwise AND | &= |
Pengisian dan bitwise OR | |= |
Pengisian dan bitwise XOR | ^= |
Mari kita coba dalam program…
Buatlah program baru bernama operator_penugasan.cpp
,
kemudian isi dengan kode berikut:
#include <iostream>
using namespace std;
int main(){
int a, b;
// pengisian nilai dengan operator =
a = 5;
b = 10;
// pengisian sekaligus penambahan
b += a; // ini sama seperti b = b + a
cout << "Hasil b += a adalah " << b << endl;
// pengisian sekaligus pengurangan
b -= a; // ini sama seperti b = b - a
cout << "Hasil b -= a adalah " << b << endl;
// pengisian sekaligus perkalian
b *= a; // ini sama seperti b = b * a
cout << "Hasil b *= a adalah " << b << endl;
// pengisian sekaligus pembagian
b /= a; // ini sama seperti b = b / a
cout << "Hasil b /= a adalah " << b << endl;
// pengisian sekaligus penambahan
b %= a; // ini sama seperti b = b % a
cout << "Hasil b %= a adalah " << b << endl;
return 0;
}
Hasilnya:
Pada program tersebut, variabel b
kita isi ulang dengan
operator penugasan.
Sebagai contoh, operasi:
b += a
Sama seperti operasi:
b = b + a
Artinya kita akan mengisi nilai untuk b
dengan nilai b
ditambah nilai a
.
Begitu juga dengan operator yang lain.
b *= a; // -> b = b * a
Isi b
dengan nilai dari perkalian b
dengan a
.
Intinya, yang perlu kamu ingat:
“operator penugasan digunakan untuk mengisi nilai.”
3. Operator Pembanding
Operator pembanding adalah operator untuk membandingkan dua buah nilai. Operator ini juga dikenal dengan operator relasi.
Operator pembanding terdiri dari:
Nama Operator | Simbol |
---|---|
Lebih Besar | > |
Lebih Kecil | < |
Sama Dengan | == |
Tidak Sama dengan | != |
Lebih Besar Sama dengan | >= |
Lebih Kecil Sama dengan | <= |
Nilai yang dihasilkan dari operasi pembanding
akan berupa true
dan false
.
Pada bahasa C++, nilai true
akan sama dengan 1
dan false
akan sama dengan 0
.
Mari kita coba dalam program…
Buatlah program baru dengan nama operator_pembanding.cpp
,
kemudian isi dengan kode berikut:
#include <iostream>
using namespace std;
int main(){
int a = 4, b = 3;
bool hasil;
cout << "a = " << a << endl;
cout << "b = " << b << endl;
// menggunakan operator pembanding
hasil = a > b;
cout << "a > b = " << hasil << endl;
hasil = a < b;
cout << "a < b = " << hasil << endl;
hasil = a >= b;
cout << "a >= b = " << hasil << endl;
hasil = a <= b;
cout << "a <= b = " << hasil << endl;
hasil = a == b;
cout << "a == b = " << hasil << endl;
hasil = a != b;
cout << "a != b = " << hasil << endl;
return 0;
}
Maka hasilnya:
Operator perbandingan biasanya akan kita pakai saat membuat percabangan.
4. Operator Logika
Kalau kamu pernah belajar logika matematika, pasti tidak akan asing dengan operator ini.
Nama Operator | Simbol |
---|---|
Logika AND | && |
Logika OR | || |
Negasi/kebalikan | ! |
Operator Logika digunakan untuk membuat operasi logika.
Misalnya seperti ini:
- Pernyataan 1: Petani Kode seorang programmer
- Pernyataan 2: Petani Kode menggunakan Linux
Jika ditanya, apakah Petani Kode programmer yang menggunakan Linux?
Tentu kita akan cek dulu kebenarannya
- Pernyataan 1: Petani Kode seorang programmer =
true
. - Pernyataan 2: Petani Kode menggunakan Linux =
true
.
Apa petanikode programmer dan menggunakan Linux?
Pernyataan 1 && Pernyataan 2 = true
Bingung?
Coba cek lagi tabel kebenaran untuk logika AND.
Pernyataan 1 | Pernyataan 2 | Hasil Logika AND |
---|---|---|
true | true | true |
true | false | false |
false | true | false |
false | false | false |
Masih bingung…?
Sepertinya kamu harus buka lagi pelajaran logika matematika 😄.
Lalu bagaimana penggunaannya di program?
Mari kita lihat contohnya…
Buatlah program baru bernama operator_logika.cpp
,
kemudian isi dengan kode berikut.
#include <iostream>
using namespace std;
int main(){
int a = 1; // true
int b = 0; // false
bool hasil;
cout << "a = " << a << endl;
cout << "b = " << b << endl;
// logika AND
hasil = a && b;
cout << "a && b = " << hasil << endl;
// logika OR
hasil = a || b;
cout << "a || b = " << hasil << endl;
// logika NOT
cout << "!a = " << !a << endl;
return 0;
}
Hasilnya:
5. Operator Bitwise
Operator bitwise merupakan operator yang digunakan untuk operasi berdasarkan bit (biner) dari sebuah nilai.
Operator bitwise terdiri dari:
Nama Operator | Simbol di Java |
---|---|
AND | & |
OR | | |
XOR | ^ |
NOT/komplemen | ~ |
Left Shift | << |
Right Shift | >> |
Buat kamu yang sudah pernah belajar sistem bilangan dan sistem digital akan mudah memahami cara kerja operator ini.
Tapi buat kamu yang belum…
Saya akan coba menjelaskan dengan cara yang mudah.
Baiklah!
Misalkan kita punya nilai 6
dan 3
.
Nilai 6
dan 3
kemudian kita ubah ke dalam
bentuk bilangan biner.
Sehingga akan menjadi seperti ini:
6 = 0110
3 = 0011
Nah, operator bitwise akan melakukan operasi berdasarkan biner-biner tersebut.
Mari kita lihat contoh yang pertama:
Bitwise AND (&
)
Bitwise AND merupakan operasi bit berdasarkan logika AND, perhatikan gambar ini.
Perhatikan bilangan biner untuk nilai 6
dan 3
.
Apabila kita melakukan operasi AND di sana, maka akan menghasilkan bilangan biner baru.
Kemudian biner yang dihasilkan tersebut diubah kembali ke dalam bilangan desimal.
Maka hasilnya adalah 2
.
Mari kita coba dalam program.
Buatlah program baru bernama bitwise_and.c
,
kemudian isi dengan kode berikut:
#include <iostream>
using namespace std;
int main(){
int a = 6;
int b = 3;
int hasil;
// menggunakan operator bitwise and
hasil = a & b;
cout << "a & b = " << hasil << endl;
return 0;
}
Maka hasilnya:
Bitwise OR (|
)
Operator bitwise OR juga sama seperti bitwise AND.
Operator bitwise OR akan menghasilkan
nilai false
atau 0
saat keduanya false
.
Contoh Program: bitwise_or.c
#include <iostream>
using namespace std;
int main(){
int a = 6;
int b = 3;
int hasil;
// menggunakan operator bitwise or
hasil = a | b;
cout << "a & b = " << hasil << endl;
return 0;
}
Hasil outputnya:
a | b = 7
Bitwise XOR (^
)
Operator XOR (Exclusive OR)
akan menghasilkan nilai 1
saat
kedua nilai tidak sama.
Contoh Program: bitwise_xor.c
#include <iostream>
using namespace std;
int main(){
int a = 6;
int b = 3;
int hasil;
// menggunakan operator bitwise xor
hasil = a ^ b;
cout << "a ^ b = " << hasil << endl;
return 0;
}
Hasil outputnya:
a ^ b = 5
Bitwise NOT (~
)
Bitwise NOT dikenal juga dengan komplemen.
Operator ini akan menghasilkan nilai biner yang terbalik dari biner aslinya.
Kemudian direpresentasikan dengan komplemen dua.
Contoh program: bitwise_not.c
#include <iostream>
using namespace std;
int main(){
int a = 6;
int hasil;
// menggunakan operator bitwise not
hasil = ~a;
cout << "~a = " << hasil << endl;
return 0;
}
Hasil outputnya:
~a = -7
Bitwise Left Shift (<<
)
Operator bitwise left shift akan menghasilkan nilai biner yang digeser ke kiri.
Contoh:
6 << 1
Maka nilai biner dari 6
akan digeser
sebanyak 1 bit ke arah kiri.
Contoh program: left_shift.c
#include <iostream>
using namespace std;
int main(){
int a = 6;
int hasil;
// menggunakan operator bitwise left shift
hasil = a << 1;
cout << "a << 1 = " << hasil << endl;
return 0;
}
Hasilnya:
a << 1 = 12
Bitwise Right Shift (>>
)
Bitwise right shift sama seperti left shift. Perbedaannya terletak pada arahnya.
Right shift akan menggeser bit ke arah kanan.
Contoh:
6 >> 1
Maka nilai biner dari 6
akan digeser ke arah kanan
sebanyak 1
bit.
Contoh program: right_shift.c
#include <iostream>
using namespace std;
int main(){
int a = 6;
int hasil;
// menggunakan operator bitwise left shift
hasil = a >> 1;
cout << "a >> 1 = " << hasil << endl;
return 0;
}
Hasilnya:
a >> 1 = 3
6. Operator Lain-lain
Selain dari operator yang kita bahas di atas, terdapat beberapa operator lain yang harus diketahui:
Nama Operator | Simbol | Keterangan |
---|---|---|
Alamat memori | & | untuk mengambil alamat memori |
Pointer | * | untuk membuat pointer |
Ternary | ? : | untuk membuat kondisi |
Increment | ++ | untuk menambah 1 |
Decrement | -- | untuk mengurangi 1 |
Operator &
jika digunakan pada satu variabel,
akan berfungsi untuk mengambil alamat memori dari
variabel tersebut.
Dan operator *
kan berfungsi untuk
membuat sebuah pointer.
Contoh:
#include <iostream>
using namespace std;
int main(){
int a = 5;
int *ptr_a = &a;
cout << "Alamat memori variabel a adalah " << &a << endl;
// mengubah nilai a dari pointer
cout << "Nilai a awal = " << a << endl;
*ptr_a = 21;
cout << "Nilai a diubah = " << a << endl;
return 0;
}
Hasilnya:
Berikutnya ada operator ternary untuk membuat kondisi. Cara kerjanya seperti percabangan if/else.
Contoh:
#include <iostream>
using namespace std;
int main(){
int a = 4;
// menggunakan operator ternary
string hasil = a > 1 ? "benar": "salah";
cout << "a > 1 adalah " << hasil << endl;
return 0;
}
Hasil outputnya:
a > 1 adalah benar
Terakhir ada operator increment dan decrement
untuk menambah dan mengurangi nilai dengan 1
.
Contoh:
#include <iostream>
using namespace std;
int main(){
int a = 4;
// increment a
a++;
cout << "a++ = " << a << endl;
// increment lagi a
++a;
cout << "++a = " << a << endl;
// decrement a
a--;
cout << "a-- = " << a << endl;
// decrement lagi a
--a;
cout << "--a = " << a << endl;
return 0;
}
Hasil outputnya:
a++ = 5
++a = 6
a-- = 5
--a = 4
Operator increment dan decrement dapat ditaruh di depan maupun di belakang variabel atau nilai.
Operator ini biasanya digunakan pada blok perulangan.
Apa Selanjutnya?
Kita sudah belajar semua jenis operator pada bahasa pemrograman C…
Operator-operator ini akan sering kita pakai dalam membuat program.
Karena itu, pastikan kamu memahaminya. Jika belum paham, bisa ditanyakan melalui komentar.
Berikutnya silakan pelajari tentang:
📖 Untuk daftar tutorial C++ lainnya, lihat di List Tutorial C++