Langsung ke konten
KamusNgoding
Pemula Cpp 3 menit baca

Operator dan Ekspresi di C++

#cpp #operator #ekspresi #aritmatika #perbandingan #logika #increment

Operator adalah simbol yang memberitahu compiler untuk melakukan operasi tertentu pada nilai (operand). Bayangkan operator seperti tombol kalkulator — kamu tekan + dan kalkulator tahu harus menjumlahkan. Di C++, ada banyak jenis operator yang perlu kamu kuasai. Mari kita bahas satu per satu.

Operator Aritmatika

Digunakan untuk operasi matematika dasar:

#include <iostream>
using namespace std;

int main() {
    int a = 10, b = 3;

    cout << a + b << endl;   // Output: 13 (penjumlahan)
    cout << a - b << endl;   // Output: 7  (pengurangan)
    cout << a * b << endl;   // Output: 30 (perkalian)
    cout << a / b << endl;   // Output: 3  (pembagian integer — desimal dipotong!)
    cout << a % b << endl;   // Output: 1  (sisa bagi / modulo)

    // Untuk hasil desimal, gunakan double
    double x = 10.0, y = 3.0;
    cout << x / y << endl;   // Output: 3.33333

    return 0;
}

Perhatian: Pembagian dua int di C++ menghasilkan int, bukan double. 10 / 3 menghasilkan 3, bukan 3.33. Ini adalah sumber bug yang umum untuk pemula!

Operator Penugasan (Assignment)

int nilai = 10;      // Penugasan dasar

nilai += 5;          // sama dengan: nilai = nilai + 5  → 15
nilai -= 3;          // sama dengan: nilai = nilai - 3  → 12
nilai *= 2;          // sama dengan: nilai = nilai * 2  → 24
nilai /= 4;          // sama dengan: nilai = nilai / 4  → 6
nilai %= 4;          // sama dengan: nilai = nilai % 4  → 2

cout << nilai << endl;
// Output: 2

Operator Increment dan Decrement

C++ memiliki operator khusus untuk menambah atau mengurangi nilai sebesar 1:

int x = 5;

// Pre-increment: tambah dulu, baru gunakan
cout << ++x << endl;  // Output: 6 (x menjadi 6, lalu dicetak)
cout << x << endl;    // Output: 6

// Post-increment: gunakan dulu, baru tambah
int y = 5;
cout << y++ << endl;  // Output: 5 (dicetak 5 dulu, baru y menjadi 6)
cout << y << endl;    // Output: 6

// Decrement bekerja sama
int z = 10;
cout << --z << endl;  // Output: 9
cout << z-- << endl;  // Output: 9 (lalu z menjadi 8)
cout << z << endl;    // Output: 8

Operator Perbandingan (Relational)

Menghasilkan nilai true (1) atau false (0):

int a = 10, b = 20;

cout << (a == b) << endl;   // Output: 0 (false) — sama dengan?
cout << (a != b) << endl;   // Output: 1 (true)  — tidak sama?
cout << (a < b) << endl;    // Output: 1 (true)  — lebih kecil?
cout << (a > b) << endl;    // Output: 0 (false) — lebih besar?
cout << (a <= b) << endl;   // Output: 1 (true)  — lebih kecil atau sama?
cout << (a >= b) << endl;   // Output: 0 (false) — lebih besar atau sama?

Jangan bingung = dan ==! = adalah penugasan (assignment), == adalah perbandingan. if (x = 5) akan selalu bernilai true dan mengubah nilai x, bukan membandingkannya!

Operator Logika

Digunakan untuk menggabungkan kondisi:

bool hujan = true;
bool dingin = false;

// AND (&&) — keduanya harus true
cout << (hujan && dingin) << endl;   // Output: 0 (false)
cout << (hujan && true) << endl;     // Output: 1 (true)

// OR (||) — salah satu cukup true
cout << (hujan || dingin) << endl;   // Output: 1 (true)
cout << (false || dingin) << endl;   // Output: 0 (false)

// NOT (!) — membalik nilai
cout << !hujan << endl;   // Output: 0 (false)
cout << !dingin << endl;  // Output: 1 (true)

Contoh penggunaan nyata:

int umur = 20;
bool punya_ktp = true;

bool boleh_masuk = (umur >= 18) && punya_ktp;
cout << boolalpha << boleh_masuk << endl;
// Output: true

Operator Bitwise

Bekerja pada level bit — sering digunakan dalam pemrograman sistem dan embedded:

int a = 6;  // binary: 0110
int b = 3;  // binary: 0011

cout << (a & b) << endl;   // Output: 2 (AND:  0010)
cout << (a | b) << endl;   // Output: 7 (OR:   0111)
cout << (a ^ b) << endl;   // Output: 5 (XOR:  0101)
cout << (~a) << endl;      // Output: -7 (NOT: inversi semua bit)
cout << (a << 1) << endl;  // Output: 12 (shift kiri: 1100)
cout << (a >> 1) << endl;  // Output: 3  (shift kanan: 0011)

Urutan Prioritas Operator (Precedence)

Sama seperti matematika, C++ memiliki aturan urutan operasi:

int hasil = 2 + 3 * 4;    // 2 + (3*4) = 14, bukan (2+3)*4 = 20
cout << hasil << endl;
// Output: 14

// Gunakan tanda kurung untuk memastikan urutan yang diinginkan
int hasil2 = (2 + 3) * 4;
cout << hasil2 << endl;
// Output: 20

Urutan prioritas (dari tertinggi ke terendah):

PrioritasOperator
Tertinggi(), [], ++ (postfix), -- (postfix)
Tinggi++ (prefix), -- (prefix), !, ~
Tengah*, /, %
Rendah+, -
Lebih rendah<, <=, >, >=
Rendah==, !=
Lebih rendah&&
Terendah||, =, +=, -=

Pertanyaan yang Sering Diajukan

Mengapa 10 / 3 menghasilkan 3, bukan 3.33?

Di C++, pembagian antara dua integer selalu menghasilkan integer (desimal dipotong). Ini disebut integer division. Untuk mendapatkan hasil desimal, setidaknya satu operand harus berupa double atau float: 10.0 / 3 atau (double)10 / 3.

Apa perbedaan ++x (pre-increment) dan x++ (post-increment)?

Keduanya menambah nilai x sebesar 1, tapi pada waktu berbeda. ++x menambah nilai terlebih dahulu lalu mengembalikan nilai baru. x++ mengembalikan nilai lama terlebih dahulu lalu menambahnya. Perbedaan ini penting saat digunakan dalam ekspresi seperti y = x++.

Kapan menggunakan operator % (modulo)?

Modulo berguna untuk menentukan apakah angka genap/ganjil (n % 2 == 0), membuat nilai “berputar” dalam rentang tertentu (jam digital, indeks array), atau memeriksa keterbagian. Contoh: if (tahun % 4 == 0) untuk mengecek tahun kabisat.

Apakah operator bitwise perlu dipelajari pemula?

Untuk pemula, fokus dulu pada operator aritmatika, perbandingan, dan logika. Operator bitwise lebih dibutuhkan dalam pemrograman sistem, embedded, atau optimasi performa. Kamu bisa mempelajarinya nanti saat sudah lebih mahir.

Kesimpulan

Berikut ringkasan operator C++ yang telah dipelajari:

KategoriOperatorContoh
Aritmatika+, -, *, /, %10 % 3 = 1
Penugasan=, +=, -=, *=, /=x += 5
Increment/Decrement++, --x++, --y
Perbandingan==, !=, <, >, <=, >=a > b
Logika&&, ||, !a && b

Artikel sebelumnya: Variabel dan Tipe Data di C++ — cara menyimpan data dalam C++.

Langkah selanjutnya: Percabangan dan Perulangan di C++ — cara membuat keputusan dan mengulang kode dalam program C++.

Artikel Terkait