Pada bahasa pemrograman C++ terdapat 3 jenis operator.
- Unary Operator, operasi yang hanya melibatkan satu nilai (operand)
- Binary Operator, operasi yang melibatkan dua nilai (operand)
- Ternary Operator, operasi yang melibatkan tiga nilai (operand)
Berikut adalah penjelasan dari jenis-jenis operasi yang ada dalam operator tersebut dan contohnya.
Unary Operator
Simbol |
Nama Operator |
++ |
Increment |
-- |
Decrement |
1. Increment
Increment Operator menambahkan nilai variabel sebesar
1
.
Contoh
int x = 6;
x++;
cout << x;
Atau
int x = 6;
++x;
cout << x;
Output
7
2. Decrement
Decrement Operator mengurangkan nilai variabel sebesar
1
.
Contoh
int x = 6;
x--;
cout << x;
Atau
int x = 6;
--x;
cout << x;
Output
5
Binary Operator
1. Assignment Operator
Operator ini berfungsi untuk memberikan nilai pada suatu variabel. Operator ini bersimbol
=
Contoh
int x;
x = 5;
cout << x;
Output
5
2. Arithmetic Operator
Simbol |
Nama Operator |
+ |
Penambahan |
- |
Pengurangan |
* |
Perkalian |
/ |
Pembagian |
% |
Modulus |
Operator ini digunakan untuk melakukan operasi aritmatika.
Contoh
#include <iostream>
using namespace std;
int main()
{
int x = 5;
cout << "x + 2 = ";
cout << x + 2 << endl;
cout << "x - 2 = ";
cout << x - 2 << endl;
cout << "x * 2 = ";
cout << x * 2 << endl;
cout << "x / 2 = ";
cout << x / 2 << endl;
cout << "x % 2 = ";
cout << x % 2; // modulus adalah sisa bagi
return 0;
}
Output
x + 2 = 7
x - 2 = 3
x * 2 = 10
x / 2 = 2
x % 2 = 1
Pada operasi pembagian contoh di atas,
5 / 2
menghasilkan nilai
2
.
Sedangkan seharusnya
5
dibagi
2
adalah
2.5
.
Hal ini terjadi karena x adalah tipe data integer.
Hal tersebut dapat dipelajari pada
Variabel dan Tipe Data C++.
3. Compound Assignment
Operator ini merupakan singkatan dari
Assignment Operator dan Operator lainnya.
Simbol |
Contoh |
Sama dengan |
+= |
x += y |
x = x + y |
-= |
x -= y |
x = x - y |
*= |
x *= y |
x = x * y |
/= |
x /= y |
x = x / y |
%= |
x %= y |
x = x % y |
>>= |
x >>= y |
x = x >> y |
<<= |
x <<= y |
x = x << y |
&= |
x &= y |
x = x & y |
|= |
x |= y |
x = x | y |
^= |
x ^= y |
x = x ^ y |
Contoh
int x = 4;
int y = 3;
x += y;
cout << x;
Sama dengan
int x = 4;
int y = 3;
x = x + y;
cout << x;
Output
7
4. Comparison Operator
Operasi ini digunakan untuk membandingkan antara 2 variabel.
Bernilai
1
jika benar (
true
),
0
jika salah (
false
).
Biasanya digunakan dalam sebuah kondisi.
Simbol |
Keterangan |
== |
Sama dengan |
!= |
Tidak sama dengan |
< |
Lebih kecil dari |
> |
Lebih besar dari |
<= |
Lebih kecil atau sama dengan |
>= |
Lebih besar atau sama dengan |
Contoh
int x = 3;
int y = 4;
cout << (x > y);
Output
0
5. Logical Operator
Operator ini digunakan untuk melakukan operasi logika.
Simbol |
Nama Operator |
&& |
AND |
|| |
OR |
! |
NOT |
Logika AND
Logika AND digunakan untuk menggabungkan kedua statement, dimana akan bernilai
true
jika kedua statement bernilai
true
.
X |
Y |
X AND Y |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
Contoh
int x = 4;
int y = 3;
cout << (x < 4 && y > 2);
Output
0
Untuk penjelasan contoh program di atas,
(x < 4) AND (y > 2)
.
Karena
(x < 4)
bernilai
0
.
Dan
(y > 2)
bernilai
1
.
Maka hasil dari operasi logika tersebut bernilai
0
.
Logika OR
Logika OR digunakan untuk menghubungkan dua statement, dimana akan bernilai
true
jika salah satu statement bernilai
true
.
X |
Y |
X OR Y |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
Contoh
int x = 4
int y = 3;
cout << (x < 4 || y > 2);
Output
1
Logika NOT
Logika NOT digunakan untuk menghasilkan nilai yang berkebalikan. Jika suatu statement bernilai
true
maka akan menghasilkan nilai
false
.
Contoh
int x = 4;
int y = 3;
cout << !(x < 4 && y > 2);
Output
1
6. Bitwise Operator
Operator ini merupakan sebuah operasi khusus untuk menangani operasi bilangan biner atau bit.
Simbol |
Nama Operator |
& |
Bitwise AND |
| |
Bitwise OR |
^ |
Bitwise XOR |
~ |
Bitwise NOT |
<< |
Left Shift |
>> |
Right Shift |
Bitwise AND
Operator ini digunakan untuk membandingkan bit dari dua operand dengan logika AND
Contoh
int x = 5;
int y = 3;
cout << (x & y);
Output
1
Berikut adalah operasi bitwise AND dari 5 dan 3
5 = 00000101
3 = 00000011
________ & (AND)
1 = 00000001
Bitwise OR
Operator ini digunakan untuk membandingkan bit dari dua operand dengan logika OR (
Inclusive OR)
Contoh
int x = 5;
int y = 3;
cout << (x | y);
Output
7
Berikut ini adalah operasi bitwise AND dari 5 dan 3
5 = 00000101
3 = 00000011
________ | (OR)
7 = 00000111
Bitwise XOR
Operator ini digunakan untuk membandingkan bit dari dua operand dengan logika XOR (
Exclusive OR)
X |
Y |
X XOR Y |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
Contoh
int x = 5;
int y = 3;
cout << (x ^ y);
Output
6
Berikut ini adalah operasi bitwise XOR dari 5 dan 3
5 = 00000101
3 = 00000011
________ ^ (XOR)
6 = 00000110
Bitwise Complement (NOT)
Operator ini digunakan untuk membalikkan bit sebuah operand dan menyimpannya pada bentuk komplemen 2
Contoh
int x = 5;
cout << ~x;
Output
-6
Berikut ini adalah operasi bitwise Complement (NOT) dari 5
5 = 00000101
________ ~
-6 = 11111010
Hasil dari komplemen tersebut bisa didapatkan dari rumus
-(x + 1)
Namun, jika kita menggunakan tipe data
unsigned
, hasil yang didapatkan akan menjadi angka yang besar.
Contoh
unsigned int = 5;
cout << ~x;
Output
4294967290
Left Shift
Operator ini digunakan untuk menggeser bit ke kiri atau sama dengan perkalian 2 sebanyak n kali.
Contoh
int x = 5;
cout << "x = " << x << endl;
cout << "x << 1 = " << (x << 1) << endl;
cout << "x << 2 = " << (x << 2);
Output
x = 5
x << 1 = 10
x << 2 = 20
Berikut ini adalah operasi 1 left shift dari 5
5 = 00000101
________ << 1
10 = 00001010
Right Shift
Operator ini digunakan untuk menggeser bit ke kanan atau sama dengan pembagian 2 sebanyak n kali.
Contoh
int x = 5;
cout << "x = " << x << endl;
cout << "x >> 1 = " << (x >> 1) << endl;
cout << "x >> 2 = " << (x >> 2);
Output
x = 5
x >> 1 = 2
x >> 2 = 1
Berikut ini adalah operasi 1 right shift dari 5
5 = 00000101
________ >> 1
2 = 00000010
Ternary Operator
Sintaks
variabel = kondisi ? ekspresiBenar : ekspresiSalah
Jika menggunakan kondisi if-else
if(kondisi)
{
variabel = ekspresiBenar;
}
else
{
variabel = ekspresiSalah;
}
Contoh
int x = 5;
int y = 7;
int terbesar;
terbesar = (x > y) ? x : y;
cout << "Nilai terbesar di antara 5 dan 7 = " << terbesar;
Output
Nilai terbesar di antara 5 dan 7 = 7