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;
}
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;
}
#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;
}
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(){
x += 2
}
#include<iomanip>
using namespace std;
int main(){
int x = 9;
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 z = x <= y;
cout<<"Nilai z = "<< z;
}
using namespace std;
int main(){
int x = 9, y = 10;
int z = x <= y;
}
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
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) : "
cout<<"(x > y) || (x == 9) : "
<<((x > y) || (x == 9))<<endl;
}
using namespace std;
int main(){
int x = 9, y = 10;
cout<<"(x < y) && (x == 9) : "
<< ((x < y) && (x == 9))<<endl;
<<((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;
}
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;
}
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"
Terimakasih