Menguasai C++: Jenis-Jenis Operator Aritmatika hingga Logika (Part 4)

Rifqi An Rifqi An
Februari 26, 2026


Menguasai C++: Jenis-Jenis Operator Aritmatika hingga Logika (Part 4)

Wah, gak kerasa ya, kita udah sampai di Part 4 seri Belajar Dasar C++ ini! Kalau sebelumnya kita udah ngobrolin variabel dan tipe data yang bikin kepala sedikit pusing (tapi seru!), kali ini kita bakal bahas sesuatu yang lebih action-oriented: Operator. Anggap aja operator ini kayak alat-alat tempur kita buat manipulasi data. Tanpa operator, program kita cuma bisa diem aja kayak patung Pancoran. Siap ngoding lagi sambil ngopi? Yuk, kita bedah satu per satu!

Daftar Isi

Apa Itu Operator?

Gampangnya, operator itu adalah simbol atau kata kunci khusus yang kita pakai buat melakukan operasi pada satu atau lebih nilai (disebut operand). Contohnya kayak tambah (+), kurang (-), kali (*), sampai yang lebih canggih buat ngecek kondisi. Intinya, kalau kamu mau variabelmu berinteraksi atau berubah, si operator inilah jembatannya. Jangan sampai programmu cuma berisi deklarasi variabel doang ya, nanti malah dikira program kalkulator yang error!

Operator Aritmatika: Si Tukang Hitung

Nah, ini dia operator yang paling sering kita temui di kehidupan sehari-hari (kalau kamu sering ngitung duit atau diskon). Operator aritmatika di C++ berfungsi persis kayak di matematika biasa. Kita punya:

  • + (Penjumlahan)
  • - (Pengurangan)
  • * (Perkalian)
  • / (Pembagian)
  • % (Modulo / Sisa Bagi)

Yang terakhir itu, % (modulo), sering banget kepakai buat ngecek angka genap/ganjil atau kalau kamu lagi ngoding jam digital. Keren kan?

Contoh kodenya biar makin paham:


#include <iostream>

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

    // Penjumlahan
    hasil = a + b; // hasil akan 13
    std::cout << "a + b = " << hasil << std::endl;

    // Pengurangan
    hasil = a - b; // hasil akan 7
    std::cout << "a - b = " << hasil << std::endl;

    // Perkalian
    hasil = a * b; // hasil akan 30
    std::cout << "a * b = " << hasil << std;::endl;

    // Pembagian (hati-hati dengan tipe data integer)
    hasil = a / b; // hasil akan 3 (karena integer, koma diabaikan!)
    std::cout << "a / b = " << hasil << std;::endl;

    // Modulo (sisa bagi)
    hasil = a % b; // hasil akan 1 (karena 10 dibagi 3 adalah 3 sisa 1)
    std::cout << "a % b = " << hasil << std;::endl;

    // Kalau mau pembagian yang hasilnya ada koma:
    double c = 10.0;
    double d = 3.0;
    double hasilDouble = c / d; // hasil akan 3.3333...
    std::cout << "c / d (double) = " << hasilDouble << std;::endl;

    return 0;
}

Penting: Ingat kasus pembagian int! Kalau kamu bagi int dengan int, hasilnya juga akan int (bagian pecahannya dipotong). Kalau mau ada koma, pakai double atau float!

Operator Penugasan (Assignment Operator)

Operator ini fungsinya buat memberi nilai ke suatu variabel. Yang paling dasar adalah = (sama dengan). Contohnya int x = 5; artinya kita kasih nilai 5 ke variabel x.

Tapi C++ juga punya versi "singkat" yang sering banget dipakai biar ngoding makin sat-set:

  • += (Penjumlahan dan Penugasan)
  • -= (Pengurangan dan Penugasan)
  • *= (Perkalian dan Penugasan)
  • /= (Pembagian dan Penugasan)
  • %= (Modulo dan Penugasan)

Contohnya gini, daripada nulis x = x + 5;, kita bisa langsung nulis x += 5;. Lebih elegan, kan?


#include <iostream>

int main() {
    int nilai = 10;

    // nilai = nilai + 5;
    nilai += 5; // Sekarang nilai = 15
    std::cout << "nilai setelah += 5: " << nilai << std;::endl;

    // nilai = nilai * 2;
    nilai *= 2; // Sekarang nilai = 30
    std::cout << "nilai setelah *= 2: " << nilai << std;::endl;

    // Coba yang lain juga ya!
    return 0;
}

Operator Relasional: Si Pembanding Sejati

Operator relasional ini gunanya buat membandingkan dua nilai. Hasil perbandingannya selalu berupa nilai boolean (yaitu true atau false). Ini penting banget buat logika program, misalnya buat ngecek kondisi if atau while yang bakal kita bahas nanti. Operator ini kayak mata-mata yang lagi ngecek kondisi, "Apakah nilai A lebih besar dari nilai B? True atau false?"

  • == (Sama Dengan) - Beda ya dengan =!
  • != (Tidak Sama Dengan)
  • > (Lebih Besar Dari)
  • < (Lebih Kecil Dari)
  • >= (Lebih Besar Atau Sama Dengan)
  • <= (Lebih Kecil Atau Sama Dengan)

Ingat, == itu buat membandingkan, sedangkan = itu buat menugaskan nilai. Salah tulis = di kondisi if bisa bikin pusing tujuh keliling nyari bug-nya!


#include <iostream>

int main() {
    int x = 10;
    int y = 5;

    std::cout << "x == y: " << (x == y) << std;::endl; // Output: 0 (false)
    std::cout << "x != y: " << (x != y) << std;::endl; // Output: 1 (true)
    std::cout << "x > y: " << (x > y) << std;::endl;  // Output: 1 (true)
    std::cout << "x < y: " << (x < y) << std;::endl;  // Output: 0 (false)
    std::cout << "x >= 10: " << (x >= 10) << std;::endl; // Output: 1 (true)
    std::cout << "y <= 5: " << (y <= 5) << std;::endl;  // Output: 1 (true)

    // Di C++, true itu direpresentasikan sebagai 1, dan false sebagai 0.
    return 0;
}

Operator Logika: Otak Program Kita

Kalau operator relasional cuma bisa membandingkan dua nilai, operator logika ini bisa menggabungkan atau membalik hasil dari satu atau lebih ekspresi relasional. Ini adalah inti dari "pengambilan keputusan" di dalam program. Tanpa ini, program kita gak bisa mikir, cuma jalan lurus aja.

  • && (AND Logika) - Akan true kalau KEDUA ekspresi true.
  • || (OR Logika) - Akan true kalau SALAH SATU atau KEDUA ekspresi true.
  • ! (NOT Logika) - Membalik nilai boolean (true jadi false, false jadi true).

Analoginya, kalau kamu mau ke bioskop, operator logika ini bisa nentuin: "Apakah aku punya uang DAN bioskopnya buka? Atau, apakah aku punya kupon ATAU aku diajak teman? Kalau TIDAK ada film bagus, aku gak jadi nonton." Paham kan?


#include <iostream>

int main() {
    int umur = 20;
    bool punyaSIM = true;
    bool sudahLulusSMA = false;

    // Operator AND (&&)
    // Apakah umur >= 17 DAN punya SIM?
    bool bisaNyetir = (umur >= 17 && punyaSIM); // true && true = true
    std::cout << "Bisa nyetir: " << bisaNyetir << std;::endl;

    // Operator OR (||)
    // Apakah umur > 25 ATAU sudah lulus SMA?
    bool kerjaAman = (umur > 25 || sudahLulusSMA); // false || false = false
    std::cout << "Bisa kerja aman: " << kerjaAman << std;::endl;

    // Operator NOT (!)
    // Membalik nilai punyaSIM
    bool tidakPunyaSIM = !punyaSIM; // !true = false
    std::cout << "Tidak punya SIM: " << tidakPunyaSIM << std;::endl;
    
    // Kombinasi!
    bool kondisiKompleks = (umur < 18 && !punyaSIM) || (umur > 25 && sudahLulusSMA);
    // (false && true) || (false && false) = false || false = false
    std::cout << "Kondisi kompleks: " << kondisiKompleks << std;::endl;

    return 0;
}

Prioritas Operator: Mana Dulu yang Dikerjain?

Sama kayak di matematika, C++ juga punya aturan main siapa yang harus dieksekusi duluan kalau ada banyak operator dalam satu baris. Ini namanya Operator Precedence (prioritas operator). Contoh paling gampang: 2 + 3 * 4. Hasilnya 14 kan, bukan 20? Karena perkalian (*) punya prioritas lebih tinggi dari penjumlahan (+).

Kalau kamu ragu-ragu atau mau memaksa urutan eksekusi, selalu gunakan tanda kurung (). Tanda kurung akan selalu dievaluasi duluan. Daripada pusing ngapalin semua prioritas, mending pakai kurung aja biar aman dan kode jadi lebih mudah dibaca programmer lain (atau dirimu sendiri di masa depan yang udah lupa).


#include <iostream>

int main() {
    int a = 5, b = 2, c = 3;
    int hasil1 = a + b * c;     // 5 + (2 * 3) = 5 + 6 = 11
    int hasil2 = (a + b) * c;   // (5 + 2) * 3 = 7 * 3 = 21

    std::cout << "Hasil 1 (a + b * c): " << hasil1 << std;::endl;
    std::cout << "Hasil 2 ((a + b) * c): " << hasil2 << std;::endl;

    bool kondisiRumit = true || false && false; // true || (false && false) = true || false = true
    // Operator AND (&&) punya prioritas lebih tinggi dari OR (||)
    std::cout << "Kondisi rumit: " << kondisiRumit << std;::endl;

    bool kondisiAman = (true || false) && false; // (true) && false = false
    std::cout << "Kondisi aman (pakai kurung): " << kondisiAman << std;::endl;

    return 0;
}

Jadi, jangan malas pakai kurung ya! Programmer yang baik itu bukan yang hafal semua prioritas operator, tapi yang kodenya clear dan minim potensi bug.

Latihan: Studi Kasus Kode Halu Ngitung THR

Bayangin kamu seorang developer game yang lagi lembur ngopi dan ngoding sampai mata panda. Tiba-tiba ada ide gila: bikin program buat ngitung berapa THR yang bakal kamu dapat berdasarkan beberapa kriteria aneh bin ajaib. Yuk, coba pecahin ini!

Skenario:

Kamu kerja di perusahaan startup "Fix Bug & Chill". THR di sana dihitung dengan aturan unik:

  1. THR dasar adalah gaji pokok.
  2. Jika kamu sudah kerja lebih dari 1 tahun DAN umurmu di atas 25 tahun, kamu dapat bonus 20% dari gaji pokok.
  3. Jika kamu sudah lembur lebih dari 100 jam ATAU punya sertifikasi ngopi kelas dunia (anggap punyaSertifikasiNgopi = true), kamu dapat bonus tambahan Rp 500.000.
  4. Namun, jika kamu pernah menyebabkan bug production fatal DAN tidak pernah ikut acara kantor (anggap ikutAcaraKantor = false), THR-mu dikurangi 10% dari total THR yang sudah dihitung sebelumnya (termasuk bonus).

Tugasmu:

Buat program C++ yang menerima input:

  • gajiPokok (integer)
  • lamaKerjaTahun (integer)
  • umur (integer)
  • jumlahLemburJam (integer)
  • punyaSertifikasiNgopi (boolean: true atau false)
  • pernahBikinBugFatal (boolean: true atau false)
  • ikutAcaraKantor (boolean: true atau false)

Lalu, hitung dan tampilkan total THR yang kamu dapatkan. Jangan lupa pakai operator yang barusan kita pelajari ya!

Clue: Gunakan double untuk perhitungan THR biar hasilnya akurat, ada komanya kalau perlu!

Gimana? Seru kan belajar operator ini? Meskipun kelihatannya kecil, operator adalah fondasi logika program yang kuat. Tanpa operator, program kita cuma bisa jadi penampung data doang. Jadi, jangan malas ngulik dan coba-coba ya! Kalau ada error, itu tandanya kamu lagi belajar! Sampai jumpa di Part selanjutnya, kita bakal bahas Conditional Statements, alias gimana caranya bikin program kita bisa beneran mengambil keputusan!

Bagikan Artikel Ini