Panduan Lengkap Operator C++: Tipe, Penggunaan, dan Praktik Terbaik
Sebuah operator adalah simbol yang memberi tahu compiler untuk melakukan manipulasi matematika atau logika spesifik. C++ kaya akan operator bawaan dan menyediakan tipe operator berikut minus–
- Operator Aritmetika
- Operator Relasional
- Operator Logika
- Operator Bitwise
- Operator Penugasan
- Operator Lainnya
Bab ini akan memeriksa operator aritmetika, relasional, logika, bitwise, penugasan dan lainnya satu per satu.
Operator Aritmetika
Ada operator aritmetika berikut yang didukung oleh bahasa C++ minus–
Asumsikan variabel A memiliki 10 dan variabel B memiliki 20, maka minus–
Tampilkan Contoh
| Operator | Deskripsi | Contoh |
| + | Menambahkan dua operand | A + B akan menghasilkan 30 |
| - | Mengurangi operand kedua dari yang pertama | A - B akan menghasilkan -10 |
| * | Mengalikan kedua operand | A * B akan menghasilkan 200 |
| / | Membagi pembilang dengan penyebut | B / A akan menghasilkan 2 |
| % | Operator Modulus dan sisa setelah pembagian integer | B % A akan menghasilkan 0 |
| ++ | Operator Increment, meningkatkan nilai integer satu | A++ akan menghasilkan 11 |
| -- | Operator Decrement, menurunkan nilai integer satu | A-- akan menghasilkan 9 |
Operator Relasional
Ada operator relasional berikut yang didukung oleh bahasa C++
Asumsikan variabel A memiliki 10 dan variabel B memiliki 20, maka minus–
Tampilkan Contoh
| Operator | Deskripsi | Contoh |
| == | Memeriksa apakah nilai dua operand sama atau tidak, jika ya maka kondisi menjadi benar. | (A == B) tidak benar. |
| != | Memeriksa apakah nilai dua operand sama atau tidak, jika nilai tidak sama maka kondisi menjadi benar. | (A != B) benar. |
| > | Memeriksa apakah nilai operand kiri lebih besar dari nilai operand kanan, jika ya maka kondisi menjadi benar. | (A > B) tidak benar. |
| < | Memeriksa apakah nilai operand kiri lebih kecil dari nilai operand kanan, jika ya maka kondisi menjadi benar. | (A < B) benar. |
| >= | Memeriksa apakah nilai operand kiri lebih besar atau sama dengan nilai operand kanan, jika ya maka kondisi menjadi benar. | (A >= B) tidak benar. |
| <= | Memeriksa apakah nilai operand kiri lebih kecil atau sama dengan nilai operand kanan, jika ya maka kondisi menjadi benar. | (A <= B) benar. |
Operator Logika
Ada operator logika berikut yang didukung oleh bahasa C++.
Asumsikan variabel A memiliki 1 dan variabel B memiliki 0, maka minus–
Tampilkan Contoh
| Operator | Deskripsi | Contoh |
| && | Disebut Operator Logika AND. Jika kedua operand non-nol, maka kondisi menjadi benar. | (A && B) salah. |
| || | Disebut Operator Logika OR. Jika salah satu dari dua operand non-nol, maka kondisi menjadi benar. | (A || B) benar. |
| ! | Disebut Operator Logika NOT. Digunakan untuk membalik status logika operandnya. Jika kondisi benar, maka operator Logika NOT akan membuat salah. | !(A && B) benar. |
Operator Bitwise
Operator Bitwise bekerja pada bit dan melakukan operasi bit demi bit. Tabel kebenaran untuk &, |, dan ^ adalah sebagai berikut minus–
| p | q | p & q | p | q | p ^ q |
| 0 | 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 | 1 |
| 1 | 1 | 1 | 1 | 0 |
| 1 | 0 | 0 | 1 | 1 |
Asumsikan jika A = 60; dan B = 13; sekarang dalam format biner mereka akan sebagai berikut minus–
A = 0011 1100
B = 0000 1101
-----------------
A&B = 0000 1100
A|B = 0011 1101
A^B = 0011 0001
~A = 1100 0011
Operator Bitwise yang didukung oleh bahasa C++ tercantum dalam tabel berikut. Asumsikan variabel A memiliki 60 dan variabel B memiliki 13, maka minus–
Tampilkan Contoh
| Operator | Deskripsi | Contoh |
| & | Operator Binary AND menyalin bit ke hasil jika ada dalam kedua operand. | (A & B) akan menghasilkan 12 yang merupakan 0000 1100 |
| | | Operator Binary OR menyalin bit jika ada dalam salah satu operand. | (A | B) akan menghasilkan 61 yang merupakan 0011 1101 |
| ^ | Operator Binary XOR menyalin bit jika diatur dalam satu operand tetapi tidak keduanya. | (A ^ B) akan menghasilkan 49 yang merupakan 0011 0001 |
| ~ | Operator Binary Ones Complement adalah unary dan memiliki efek 'membalik' bit. | (~A ) akan menghasilkan -61 yang merupakan 1100 0011 dalam bentuk 2's complement karena angka biner bertanda. |
| << | Operator Binary Left Shift. Nilai operand kiri dipindahkan ke sejumlah bit yang ditentukan oleh operand kanan. | A << 2 akan menghasilkan 240 yang merupakan 1111 0000 |
| >> | Operator Binary Right Shift. Nilai operand kiri dipindahkan ke kanan sejumlah bit yang ditentukan oleh operand kanan. | A >> 2 akan menghasilkan 15 yang merupakan 0000 1111 |
Operator Penugasan
Ada operator penugasan berikut yang didukung oleh bahasa C++ minus–
Tampilkan Contoh
| Operator | Deskripsi | Contoh |
| = | Operator penugasan sederhana, Menugaskan nilai dari operand sisi kanan ke operand sisi kiri. | C = A + B akan menugaskan nilai A + B ke C |
| += | Operator penugasan Tambah Dan, Menambahkan operand kanan ke operand kiri dan menugaskan hasilnya ke operand kiri. | C += A setara dengan C = C + A |
| -= | Operator penugasan Kurang Dan, Mengurangi operand kanan dari operand kiri dan menugaskan hasilnya ke operand kiri. | C -= A setara dengan C = C - A |
| *= | Operator penugasan Kali Dan, Mengalikan operand kanan dengan operand kiri dan menugaskan hasilnya ke operand kiri. | C *= A setara dengan C = C * A |
| /= | Operator penugasan Bagi Dan, Membagi operand kiri dengan operand kanan dan menugaskan hasilnya ke operand kiri. | C /= A setara dengan C = C / A |
| %= | Operator penugasan Modulus Dan, Mengambil modulus menggunakan dua operand dan menugaskan hasilnya ke operand kiri. | C %= A setara dengan C = C % A |
| <<= | Operator penugasan Shift Kiri Dan. | C <<= 2 sama dengan C = C << 2 |
| >>= | Operator penugasan Shift Kanan Dan. | C >>= 2 sama dengan C = C >> 2 |
| &= | Operator penugasan AND Bitwise. | C &= 2 sama dengan C = C & 2 |
| ^= | Operator penugasan XOR dan eksklusif. | C ^= 2 sama dengan C = C ^ 2 |
| |= | Operator penugasan OR inklusif Bitwise. | C |= 2 sama dengan C = C | 2 |
Operator Lainnya
Tabel berikut mencantumkan beberapa operator lain yang didukung oleh C++.
| No.Urut | Operator & Deskripsi |
| 1 | sizeof Operator sizeof mengembalikan ukuran variabel. Contohnya, sizeof(a), di mana 'a' adalah integer, dan akan mengembalikan 4. |
| 2 | Kondisi ? X : Y Operator bersyarat (?). Jika Kondisi benar maka mengembalikan nilai X sebaliknya mengembalikan nilai Y. |
| 3 | , Operator koma menyebabkan serangkaian operasi dilakukan. Nilai seluruh ekspresi koma adalah nilai ekspresi terakhir dari daftar yang dipisahkan koma. |
| 4 | . (titik) dan -> (panah) Operator anggota digunakan untuk mereferensi anggota individu dari kelas, struktur, dan union. |
| 5 | Cast Operator casting mengonversi satu tipe data ke tipe lainnya. Contohnya, int(2.2000) akan mengembalikan 2. |
| 6 | & Operator pointer & mengembalikan alamat variabel. Contohnya &a; akan memberikan alamat aktual variabel. |
| 7 | * Operator pointer * adalah pointer ke variabel. Contohnya *var; akan pointer ke variabel var. |
Prioritas Operator dalam C++
Prioritas operator menentukan pengelompokan istilah dalam ekspresi. Ini mempengaruhi cara ekspresi dievaluasi. Beberapa operator memiliki prioritas lebih tinggi dari yang lain; contohnya, operator perkalian memiliki prioritas lebih tinggi dari operator penjumlahan minus–
Contohnya x = 7 + 3 * 2; di sini, x diberikan 13, bukan 20 karena operator * memiliki prioritas lebih tinggi dari +, jadi pertama-tama dikalikan dengan 3*2 lalu ditambahkan ke 7.
Di sini, operator dengan prioritas tertinggi muncul di bagian atas tabel, yang paling rendah di bagian bawah. Dalam ekspresi, operator prioritas lebih tinggi akan dievaluasi terlebih dahulu.
Tampilkan Contoh
| Kategori | Operator | Asosiativitas |
| Postfix | () [] -> . ++ - - | Kiri ke kanan |
| Unary | + - ! ~ ++ - - (type)* & sizeof | Kanan ke kiri |
| Multiplicative | * / % | Kiri ke kanan |
| Additive | + - | Kiri ke kanan |
| Shift | << >> | Kiri ke kanan |
| Relational | < <= > >= | Kiri ke kanan |
| Equality | == != | Kiri ke kanan |
| Bitwise AND | & | Kiri ke kanan |
| Bitwise XOR | ^ | Kiri ke kanan |
| Bitwise OR | | | Kiri ke kanan |
| Logical AND | && | Kiri ke kanan |
| Logical OR | || | Kiri ke kanan |
| Conditional | ?: | Kanan ke kiri |
| Assignment | = += -= *= /= %=>>= <<= &= ^= |= | Kanan ke kiri |
| Comma | , | Kiri ke kanan |