bahas tuntas operator C++, fungsinya dan contoh program


Assalamu'alaikum...
Hallo sobat semua kali ini aku bakal bahas tentang operator C++.

Operator merupakan simbol yang terlibat didalam program untuk melakukan operasi atau manipulasi. Misalnya untuk :
  • Menjumlahkan dua atau lebih bilangan.
  • Membandingkan kesamaan dua buah nilai.
  • Memberikan nilai ke dalam variabel.
Contoh :

             i + j

Simbol + merupakan operator yang berfungsi untuk menjumlahkan 2 buah operand dalam hal ini i dan j. Operator ini tergolong binary karena melibatkan 2 buah operand.

Contoh lain :

             -a
Simbol - juga merupakan operator. Operator ini termasuk operator unary karena hanya melibatkan 1 buah operand (pada contoh diatas a).

Selain operator unary dan binary, terdapat pula operator ternary yaitu operator yang melibatkan 3 buah operand.


Operator

1. Operator aritmatika

Operator aritmatika dipakai untuk melakukan operasi perhitungan atau aritmatika dalam pemrograman.

Operator aritmatika yang sering dipakai yaitu :

    Operator         Keterangan          Contoh
                *  Perkalian

          1 * 3
                /  Pembagian

          6 / 2
          % Sisa pembagian
 (modulus)
         8 % 4
          +  Penjumlahan

         9 + 0
               -  Pengurangan

          7 - 5

Contoh program :


#include<iostream>
using namespace std;


int main(){
     int a, b, c, d;
    
     a = 5;
     b = 2;
     c = 6;
 
     d = a * b - c + b;
 
     cout<<"d = "<<d;
}

Hasil eksekusi :
d = 6

Untuk operator mod (%) bisa dibaca div dan mod.

Prioritas operator aritmatika

Prioritas operator aritmatika dalam pemrograman sama halnya dengan prioritas operator dalam pembelajaran matematika. Tabel berikut akan menampilkan prioritas operator aritmatika. Operator yang memiliki prioritas tinggi akan lebih dulu dikerjakan dibanding prioritas rendah.

                  Operator                    Prioritas
   ++ -- (berkedudukan 
              diawalan)
 Tertinggi

   - (unary minus)

   * / %

   + -  Terendah


Jika operator yang memiliki prioritas sama pada satu baris, operator disebelah kiri akan dikerjakan terlebih dahulu. Untuk mengubah prioritas pengerjaan gunakan tanda kurung ().

2. Operator penugasan

Operator penugasan yang berupa simbol sama dengan (=). Berguna untuk memberikan nilai kedalam variabel.

Contoh :
a = 2;
b = 2 + 3;

a = b = c = 4;
/* ini berarti :
c = 4
b = c
a = b
dengan kata lain a, b, c bernilai 4.

3. Operator penurunan dan penaikan

Dalam C++ ada yang disebut operator penaikan (increment) dan operator penurunan (decrement). Kedua operator ini digunakan untuk operand bilangan bulat.

                  Operator                    Keterangan
   ++  Operator penaikan

   --   Operator penurunan


Operator penaikan digunakan untuk menaikan nilai variabel sebesar satu , sedangkan operator penurunan dipakai untuk menurunkan nilai variabel sebesar satu. Penenmapatan operator ini bisa diawal juga diakhir operang.

Contoh :

     x = x + 1;
     y = y - 1;

dengan menggunakan operator penaikan dan penurunan, bisa ditulis menjadi :

     ++x;
     --y;

atau :

     x++;
     y--;

Pada contoh diatas penenpatan operator penaikan atau penurunan didepan atau di belakang variabel tidak ada bedanya. Namun sebenarnya terdapat perbedaan antara keduanya, tapi dalam contoh diatas tidak tampak perbedaannya.
  • ++c ( pre-increment )
  • c++ ( post-increment )
Perhatikan contoh program berikut ini untuk membedakan pre dan post increment

#include<iostream>
#include<iomanip>
using namespace std;

int main(){
     int a = 2 , b = 2, c = 2, d = 2;
    
     c = 1 + a++;
     d = 1 + ++b;
 
  cout<<"a = "<<a<<endl;
  cout<<"b = "<<b<<endl;
  cout<<"c = "<<c<<endl;
  cout<<"d = "<<d<<endl;
}

Hasil eksekusi program :

a = 3
b = 3
c = 3
d = 4

Nah dari hasil eksekusi program tersebut pasti sobat sudah bisa menyimpulkan perbedaannya.
Diberikan nilai 2 ke variabel a, b, c, dan d.

c = 1 + a++;
ini berarti c = 1 + a sehingga c = 3, dan a++ berarti a = 3. Dapat disimpulkan bahwa post-increment akan menambahkan nilai 1 setelah operasi lain dikerjakan.

d = 1 + ++b;
ini berarti b = b + 1 sehingga b = 3 dan d = 1 + 3 = 4. Dapat disimpulan bahwa pre-increment akan menambakan nilai 1 sebelum operasi lain dikerjakan.

4. Operator Bitwise

Operator ini digunakan untuk keperluan memanipulasi data dalam bentuk bit. Operator ini hnaya digunakn untuk tipe data : char, int, long int. Untuk operator bitwise dalam bit, dilakukan dalam bentuk bit per bit.
  • << (geser bit kekiri)
  • >> (geser bit kekanan)
  • & (bitwise &)
  • | bitwise atau (or)
  • ^ (bitwise XOR)
  • ~ (komplemen)
Contoh :

x = 0000 0001
y = 0001 0001

Hasil :

x & y = 0000 0001
x | y = 0001 0001
x ^ y = 0001 0000
~ x = 1111 1110

x = x << 1 (geser kekiri 1 bit, bagian kanan disispi 0 sebanyak bit yang digeser)
x = 00000 0010

Contoh program :

#include<iostream>
using namespace std;


int main(){
     int x = 1, y = 17;
    
     x = x & y;
     cout<<"x & y : "<<x<<endl;
     x = 1;
     x = x | y;
     cout<<"x | y : "<<x<<endl;
    
     x = 1;
     x = x ^ y;
     cout<<"x ^ y : "<<x<<endl;
 
     x = 1;
     x = ~x;
     cout<<"~x : "<<x<<endl;
    
     x = 1;
     x = x << 1;
     cout<<"x = x << 1 : "<<x<<endl;

}

Hasil eksekusi program :



5. Operator Majemuk

C++ menyediakan operator yang dimaksudkan untuk memendekkan penulisan operasi penugasan semacam :

     x = x + 4;
     y = y  / 3;

menjadi :

     x += 4;
     y /= 3;

Berikut daftar yang memberikan seluruh kemungkinan operator kombinasi dalam suatu pernyataan dan pernyataan padananya.

    Operator         Contoh          Keterangan
          +=  x += 9


          x = x + 4;
           -=  x -= 9

          x = x - 3;
          *= x *= 9

          x = x * 5;
          /= x /= 9

          x = x / 9;
         %=  x %= 9

          x = x % 1;
         <<= x <<= 9

          x = x << 9;
         >>= x >>= 9

          x = x >> 9;
          &= x &= 9

          x = x & 9;
          |= x |= 9

          x = x | 9;
          ^= x ^= 9

          x = x ^ 9;

Contoh program beberapa operator majemuk :

#include<iostream>
#include<iomanip>
using namespace std;


int main(){

     int x = 9;

  x += 2
  cout<<"x += 2 : "<<x <<endl;

  x *= 2
  cout<<"x *= 2 : "<<x <<endl;

}


Hasil eksekusi program :

      x += 2 : 11
x + x *= 2 : 22

6. Operator Relasi

Operator relasi biasa digunakan untuk membandingkan 2 nilai. Keseluruhan operator dapat dilihat pada tabel berikut :

        Operator                    Prioritas
               ==  Sama dengan
               !=  Tidak sama dengan

               >  Lebih dari

               <  Kurang dari

               >=  Lebih dari atau sama dengan

               <=  Kurang dari atau sama dengan


Contoh ungkapan kondisi yang menggunakan operasi relasi :

     x == y;

Hasil dari ungkapan diatas :
- bernilai 0 jika nilai x tidak sama dengan nilai y
- bernilai 1 jika nilai x sama dengan nilai y

Contoh program  :

#include<iostream>
using namespace std;


int main(){

     int x = 9, y = 10;
  
     int z = x <= y;
      cout<<"Nilai z = "<< z;


}

Hasil eksekusi program :

     Nilai z = 1

Dari hasil program tersebut menyatakan bahwa :
- Nilai salah dinyatakan dengan 0
- Nilai benar dinyatakan dengan 1

7. Operator Logika

Operator logika biasanya dinyatakan untuk menggabungkan dua kondisi menjadi satu kondisi. Operator ini berupa :

  • && (operator logika dan)
  • || (opera logika atau)
  • ! (operator logika bukan(not))
Pemakaian operator && dan || :

     ungkapan_1 && ungkapan_2
     ungkapan_1 || ungkapan_2

Untuk operator && hasil ungkapan bernilai benar jika ungkapan_1 dan ungkapan_2 bernilai benar. Sedangkan untuk operator || bernilai benar hanya jika ungkapan_1 atau ungkapan_2 bernilai benar.

Pemakaian operator ! :


Hasilnya berupa :

     - benar jika ungkapan bernilai salah
     - salah jika ungkapan bernilai benar

Contoh program :

#include <iostream>
using namespace std;


int main(){
     int x = 9, y = 10;
 
     cout<<"(x < y) && (x == 9) : "

           << ((x < y) && (x == 9))<<endl;

     cout<<"(x > y) || (x == 9) : "
           <<((x > y) || (x == 9))<<endl;

}


Hasil eksekusi :



x < y bernilai benar
x == 9 bernilai benar

x > y bernilai salah

8. Operator Koma

 Operator ini berguna untuk meletakkan dua buah ungkapan dalam kaidah yang memerlukan sebuah ungkapan saja. Pemakaiannya :



Simbol koma diatas adalah operator koma. Nilai ungkapan yang menggunakan operator koma sesuai dengan nilai pada ungkapan di kanan dalam hal ini  ungkapan_2.

Umumnya operator ini terdapat pada pernyataan for. Perhatikan contoh berikut :

     for(i = 0, j = 0; i < jumlah ; i--, j+=2)
     ...

Contoh program :

#include<iostream>
using namespace std;


int main(){
     int x = 0;
     int hasil;

      hasil = (x = 2 , x + 5);
      cout<<"Hasil = "<<hasil<<endl; // x = 2

      hasil = (x + 2, x + 1);
      cout<<"Hasil = "<<hasil<<endl;

      hasil = (0 < 1 , 2 > 5);
      cout<<"Hasil = "<<hasil<<endl;

}


Hasil eksekusi program :


Dari hasil program diatas dapat terlihat bahwa :

- Hasil = 7, pertama variabel x diberi nilai 2 kemudian x dijumlahkan dengan 5 sehingga nilai variabel Hasil sama dengan 7.

- Hasil = 3, pertama variabel x dijumlahkan dengan nilai 2 sehingga menyimpan nilai 4, kemudian variabel x dijumlahkan dengan nilai 1 menjadi 3. Disini tampak bahwa variabel Hasil menyimpan nilai pada ungkapan di kanan. Ingat x = 2, mengikuti x terakhir.

- Hasil = 0, 0 < 1 bernilai benar selanjutnya 2 > 5 bernilai salah. Sehingga nilai akhir hasil adalah Salah.


9. Operator Kondisi

Operator kondisi seperti penyederhanaan bentuk if..else yang setiap blok dari if dan else hanya terdiri dari satu statement/perintah.

Bentuk operator kondisi :


Ada tida ungkapan yang terlibat. Hasil dari ungkapan akan berupa :
- ungkapan_2 jika ungkapan_1 bernilai benar.
- ungkapan_3 jika ungkapan_1 bernilai salah.

Contoh program :

#include<iostream>
using namespace std;


int main(){
     int x = 5, y =9;
     int hasil;


      hasil = x < y ? x = 8 : x = 0;
      cout<<"x = "<<x<<", "<<"y = "<<y<<endl;
      cout<<"Hasil = "<<hasil<<endl; 


      hasil = x > y ? x : y;
      cout<<"Hasil = "<<hasil<<endl;

}

Hasil eksekusi program :


Dari hasil eksekusi terlihat bahwa :

- x = 8, y = 9. nilai x berubah menjadi 8 karena dalam ungkapan x< y bernilai Benar sehingga ungkapan yang dijalankan adalah ungkapan x = 8.
- Hasil = 8. Hal ini dikarenakan sesuai dengan penjelasan pertama. Hasil = x = 8;
- Hasil = 9. karena ungkapan bahwa x > y (8 > 9) adalah bernilai salah. Sehingga Hasil = y.


Prioritas Operator


Agar tidak salah dalam menuliskan suatu ungkapan. Pengetahuan mengenai prioritas operator perlu diketahui. Berikut operator pada C++ dan prioritasnya :

 Simbol                 Nama    Urutan 
 Pengerjaan
 :: Resolusi lingkup
 Kiri ke kanan
 ++
 --
 ()
 []

 .
Post- Increment
Post- decrement
Pemanggilan fungsi
Elemen array
Pointer ke anggota struktur atau kelas
Anggota struktur, union atau kelas
 Kiri ke kanan
 ++
 --
!
 ~
 -
 +
 &
 *
 new
 delete
 sizeof
 (tipe)
 tipe()
Pre- increment
Pre- decrement
Logika bukan (not)
Bitwise komplemen
Unary minus
Unary plus
Alamat (address)
Indirection
Pengalokasian memori
Dealokasi memori
Ukuran tipe data
Type casting
type casting
 Kiri ke kanan
 .*
 ->*
 ()
Dereferensi C++
Dereferensi C++
kurung untuk ungkapan
 Kiri ke kanan
 *
 /
%
Perkalian
Pembagian
Modulus
 Kiri ke kanan
 +
 -
Penjumlahan
Pengurangan
 Kiri ke kanan
 <<
 >>
Gesre kiri
Geser kanan
 Kiri ke kanan
 < 
 > 
 <=
 >=
Kurang dari
Lebih dari
Kurang dari atau sama dengan
Lebih dari atau sama dengan
 Kiri ke kanan
  ==
 !=
Sama dengan
Tidak sama dengan
 Kiri ke kanan
 &
 ^
 |
Bitwise dan (and)
Bitwise exclusive or (xor)
Bitwise atau (or)
 Kiri ke kanan
 &&Logika dan (and)  Kiri ke kanan
 ||Logika atau (or)  Kiri ke kanan
 ? :Operator kondisi  Kiri ke kanan
 =
 *=, /=,
 %=, +=,
 -=, <<=
 >>=
 &=, ^=,
 |= 
Penugasan Operator  majemuk

 Kanan ke kiri
 ,Operator koma  Kiri ke kanan

Sobat tidak usah khawatir jika tidak menghapal semuanya, yang penting sobat tahu dan mengerti sehingga jika suatu saat menggunakan operator tertentu sobat bisa.

Semoga bermanfaat. Terimakasih

2 comments for "bahas tuntas operator C++, fungsinya dan contoh program"

  1. Comment Author Avatar
    terimakasih artikelnya sangat membantu untuk praktikum :)

Terimakasih