-
Notifications
You must be signed in to change notification settings - Fork 0
Modul 2 ‐ Operator
Operator dapat dipahami sebagai sesuatu yang dapat melakukan operasi pada operan (variabel/nilai). Contohnya, operator + digunakan untuk operasi penjumlahan.
Dilihat dari jumlah operannya, operator dibagi menjadi tiga jenis, yaitu:
- Unary – yakni operator yang bekerja pada satu operan, misalnya -5.
- Binary – yakni operator yang bekerja pada dua operan, misalnya 2 + 3.
- Ternary – yakni operator yang bekerja pada tiga operan. (Akan dibahas pada bagian selanjutnya).
Dilihat dari kegunaannya, berikut adalah jenis-jenis operator pada bahasa C++.
Operator Assignment digunakan untuk mengisikan (assign) sebuah nilai ke variabel. Simbol yang biasa digunakan adalah tanda sama dengan =. Contohnya:
int x, y;
x = 4;
y = 3;
x = x + y; // x = 7
y = x + x; // y = 14 Seperti namanya, operator aritmatika melakukan operasi layaknya pada matematika seperti penjumlahan, pengurangan, pembagian dsb. Beberapa operator menggunakan simbol yang sama pada matematika (penjumlahan dengan simbol ‘+’, pengurangan dengan ‘-‘, dst.). Operator-operator aritmatika pada bahasa C++ adalah sebagai berikut.
| Simbol | Operasi | Contoh |
|---|---|---|
| + | Penjumlahan pada dua operan | a + b |
| - | Pengurangan pada dua operan | a - b |
| * | Perkalian pada dua operan | a * b |
| / | Pembagian pada dua operan | a / b |
| % | Menghitung sisa pembagian dua operan (operasi modulo) | a % b |
Operator ++ disebut dengan operator increment, sedangkan operator -- merupakan operator decrement. Kedua operator ini digunakan untuk menambah (increment)/mengurangi (decrement) nilai dari suatu variabel sebanyak satu.
Terdapat dua cara untuk menggunakan operator ini.
-
Prefix - yakni dengan meletakkan operator increment/decrement didepan nama variabel.
int a, b; a = 5; ++a; // Nilai a sekarang adalah 6 --a; // Nilai a sekarang adalah 5
Cara kerja dari operator increment/decrement prefix adalah dengan menambahkan/mengurangi nilai variabel sebanyak satu terlebih dahulu, sebelum operan tersebut digunakan pada operasi lainnya pada sekuens intstruksi yang sama. Untuk lebih jelasnya, perhatikan potongan kode berikut
int a, b; a = 5; b = ++a; // Nilai b sekarang adalah 6 a = --b; // Nilai a sekarang adalah 5
Di sini, saat instruksi
b = ++a;dieksekusi, yang terjadi pertama kali adalah nilai dariaditambahkan satu terlebih dahulu, kemudian baru di-assign nilainya ke variabelb. -
Postfix - yakni dengan meletakkan operator increment/decrement di belakang nama variabel. Cara kerja dari operator increment/decrement postfix berbeda dari prefix. Pada postfix, nilai variabel akan ditambah satu setelah operan digunakan pada operasi lainnya pada sekuens instruksi yang sama. Perhatikan potongan kode berikut.
int a, b; a = 5; b = a++; // Nilai b sekarang adalah 5 a = b--; // Nilai a sekarang adalah 5
Di sini, saat instruksi
b = a++;dieksekusi, yang terjadi pertama kali adalah nilai dariaakan di-assign terlebih dahulu ke variabelb, kemudian baru ditambahkan satu. Karena itulah variabelbmendapat nilai dariasebelum terjadi penambahan.
Operator Relasional digunakan untuk memeriksa relasi dan membandingkan nilai dari dua operan. Jika benar akan menghasilkan nilai TRUE (direpresentasikan angka 1), jika salah maka akan menghasilkan nilai FALSE (direpresentasikan angka 0).
Berikut adalah operator relasional dalam bahasa C++.
| Operator | Simbol | Keterangan | Contoh |
|---|---|---|---|
| Sama dengan | == | Digunakan untuk memeriksa apakah kedua operan memiliki nilai yang sama. | 5 == 2 (FALSE) 5 == 5 (TRUE) |
| Tidak Sama dengan | != | Digunakan untuk memeriksa apakah kedua operan memiliki nilai yang tidak sama. | 5 != 2 (TRUE) 5 != 5 (FALSE) |
| Lebih besar | > | Digunakan untuk membandingkan apakah operan pertama lebih besar nilainya dari operan kedua. | 5 > 2 (TRUE) 5 > 5 (FALSE) 2 > 4 (FALSE) |
| Lebih kecil | < | Digunakan untuk membandingkan apakah operan pertama lebih kecil nilainya dari operan kedua. | 5 < 2 (FALSE) 5 < 5 (FALSE) 2 < 4 (TRUE) |
| Lebih besar sama dengan | >= | Digunakan untuk membandingkan apakah operan pertama lebih besar atau sama nilainya dari operan kedua. | 5 >= 2 (TRUE) 5 >= 5 (TRUE) 2 >= 4 (FALSE) |
| Lebih kecil sama dengan | <= | Digunakan untuk membandingkan apakah operan pertama lebih kecil atau sama nilainya dari operan kedua. | 5 <= 2 (FALSE) 5 <= 5 (TRUE) 2 <= 4 (TRUE) |
Operator Logika digunakan untuk melakukan tes pada kondisi/ekspresi, apakah kondisi tersebut benar atau salah. Operator logika hanya akan menghasilkan nilai TRUE (jika benar) atau FALSE (jika salah). TRUE direpresentasikan oleh angka 1, sedangkan FALSE oleh angka 0.
Operator-operator logika dalam bahasa C++ adalah sebagai berikut.
| Operator | Simbol | Keterangan | Nilai Kebenaran |
|---|---|---|---|
| Logical NOT | ! | Operator NOT digunakan untuk membalikkan kondisi, TRUE menjadi FALSE dan FALSE menjadi TRUE. |
!1 = 0!0 = 1
|
| Logical AND | && | Operator AND akan menghasilkan nilai TRUE jika kedua operan mempunyai nilai TRUE. |
1 && 1 = 10 && 1 = 01 && 0 = 00 && 0 = 0
|
| Logical OR | || | Operator OR akan menghasilkan nilai TRUE jika salah satu operan mempunyai nilai TRUE. |
1 || 1 = 10 || 1 = 11 || 0 = 10 || 0 = 0
|
Operator Logika NOT merupakan operator unary yang artinya hanya pada bekerja pada satu operan
Operator logika pada umumnya digunakan bersamaan dengan operator relasional untuk melakukan tes pada ekspresi yang berhubungan dengan kebenaran suatu kondisi. Penggunaan paling umum adalah untuk melakukan percabangan (akan dipelajari di bagian selanjutnya).
Contoh:
int a, b, c, d;
a = 11;
b = 24;
c = 11;
d = ((a == c) && (b > a)); // 1 (TRUE)
d = ((a >= b) || (a < c)); // 0 (FALSE)
d = ((b != b) || (b > c)) && (c == a); // 1 (TRUE) Operator Gabungan adalah operator yang terdiri dari gabungan dua operator. Tujuan dari operator gabungan adalah untuk mempersingkat penulisan kode. Berikut adalah operator gabungan dalam bahasa C++.
| Operator | Contoh | Ekuivalen Dengan |
|---|---|---|
| += | a += b |
a = a + b |
| -= | a -= b |
a = a - b |
| *= | a *= b |
a = a * b |
| /= | a /= b |
a = a / b |
| %= | a %= b |
a = a % b |
| &= | a &= b |
a = a & b |
| |= | a |= b |
a = a | b |
| ^= | a ^= b |
a = a ^ b |
| >>= | a >>= b |
a = a >> b |
| <<= | a <<= b |
a = a << b |
Operator Bitwise, seperti namanya digunakan untuk melakukan operasi pada dua operan dalam skala biner (bilangan basis 2). Sebelum mempelajari lebih lanjut cara kerja operasi bitwise, sebaiknya kamu harus paham terlebih dahulu mengenai bilangan dalam basis biner.
Terdapat 6 jenis operator bitwise, yakni AND, OR, XOR, COMPLEMENT, SHIFT LEFT, dan SHIFT RIGHT. Untuk lebih memahami perbedaan cara kerja operator bitwise, perhatikan tabel berikut.
| Operator | Simbol | Keterangan |
|---|---|---|
| Bitwise AND | & | Mengevaluasi bit dari dua operan. Menghasilkan 1 apabila keduanya 1, jika tidak menghasilkan nilai 0. |
| Bitwise OR | | | Mengevaluasi bit dari dua operan. Menghasilkan 1 apabila salah satu nilainya 1, jika keduanya 0, maka menghasilkan nilai 0. |
| Bitwise XOR | ^ | Mengevaluasi bit dari dua operan. Menghasilkan 1 apabila bit pada kedua operan nilainya berbeda. Jika sama, maka menghasilkan nilai 0. |
| Bitwise COMPLEMENT | ~ | Membalik semua nilai bit, dari 1 menjadi 0 dan 0 menjadi 1 (dalam panjang bit). |
| Bitwise SHIFT LEFT | << | Menggeser bit ke kiri sebanyak n (operan kedua). |
| Bitwise SHIFT RIGHT | >> | Menggeser bit ke kanan sebanyak n (operan kedua). |
Contoh penggunaan operator bitwise:
Misal 12 dan 5. Representasi 12 dan 5 dalam basis biner adalah 12 = (1100) dan 5 = (0101). Maka, operasi bitwise adalah sebagai berikut.
-
Bitwise AND
12 = (1100) 5 = (0101) ------------ & 4 = (0100) -
Bitwise OR
12 = (1100) 5 = (0101) ------------ | 13 = (1101) -
Bitwise XOR
12 = (1100) 5 = (0101) ------------ ^ 9 = (1001) -
Bitwise COMPLEMENT
12 = (1100) ~12 = (0011) -
Bitwise SHIFT LEFT
Misal kita hendak menggeser bit bilangan 13 ke kiri sebanyak 2, maka 13 << 2.
13 = (001101) 13 << 2 = (110100)Bisa diperhatikan, bit paling kanan setelah digeser akan diisi oleh 0. Maka hasil dari 13 << 2 = 52.
-
Bitwise SHIFT RIGHT
Misal kita hendak menggeser bit bilangan 13 ke kanan sebanyak 2, maka 13 >> 2.
13 = (001101) 13 >> 2 = (000011)Bisa diperhatikan, bit paling kiri setelah digeser akan diisi oleh 0. Maka hasil dari 13 >> 2 = 3.