Operator C++

Posted by Fraternite on Juli 08, 2020 with No comments

Pada bahasa pemrograman C++ terdapat 3 jenis operator.
  1. Unary Operator, operasi yang hanya melibatkan satu nilai (operand)
  2. Binary Operator, operasi yang melibatkan dua nilai (operand)
  3. 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.
X NOT X
0 1
1 0

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
Categories: