10 Operator C++
Operator, dalam C++ adalah simbol yang terlibat dalam program untuk melakukan operasi atau memanipulasi, dalam hal: Jumlah dua nilai; Tetapkan nilai ke variabel; Membandingkan kesamaan dua nilai.
Dalam bahasa pemrograman, operator adalah simbol khusus yang biasa dilibatkan dalam pembuatan program untuk melakukan suatu operasi matematika maupun manipulasi logika.
Pada dasarnya, terdapat tiga jenis operator dalam pemrograman C++:
- Operator Unary - operator untuk satu buah nilai (operand)
- Operator Binary - operator untuk dua buah nilai (operand)
- Operator Ternary - operator untuk tiga buah nilai (operand)
Dengan catatan apabila dilihat dari jumlah operand.
Berikut ini adalah contohnya:
- c //Binary
a + b //Unary
(a ? b : c) //Ternary
Namun yang akan di bahas kali ini bukan itu, melainkan mempelajari macam-macam operator yang ada dalam pemrograman C++ berserta fungsi dan contoh programnya.
Berikut adalah Operator C++ yang dapat kamu jadikan acuan dalam pembuatan sebuah program.
1. Assignment Operators
Yang pertama adalah mengenai Assignment Operator. Sesuai namanya, operator ini berfungsi untuk memberikan nilai kepada variabel. Umumnya digunakan "=" (tanda sama dengan) untuk memberi nilai.
Berikut cara penggunaanya:
nama = "Codein";
umur = 10;
Berikut contoh program sederhana penggunaan assignment operator pada C++:
#include <iostream>
using namespace std;
int main ()
{
int a, b; // a:?, b:?
a = 10; // a:10, b:?
b = 4; // a:10, b:4
a = b; // a:4, b:4
b = 7; // a:4, b:7
cout << "a:";
cout << a;
cout << " b:";
cout << b;
}
Maka hasilnya seperti berikut:
a:4 b:7
Kenapa hal tersebut bisa terjadi? Jika diperhatikan, contoh diatas mendeklarasikan variabel a dan b. Kemudian diberikan nilai 10 untuk a dan 4 untuk b pada awalnya. Lalu diberikan nilai b terhadap variabel a.
Perhatikan bagaimana sebuah variabel tidak terpengaruh oleh modifikasi akhir dari b, meskipun telah menyatakan a = b sebelumnya, kamu pasti paham maksud saya.
Karena sebuah operasi akan selalu berlangsung dari kanan ke kiri. Dan variabel hanya akan menyimpan data atau nilai terakhir yang diberikan.
2. Arithmetic Operators
Berikut ini adalah operator aritmatika. Operator ini digunakan untuk melakukan sebuah operasi penghitungan atau aritmatika dalam bahasa pemrograman. Tugasnya untuk memecahkan masalah matematika.
Operator aritmatika yang sering digunakan dalam C++ adalah:
- "+" untuk penjumlahan
- "-" untuk pengurangan
- "*" untuk perkalian
- "/" untuk pembagian
- "%" untuk sisa bagi (modulo)
Berikut adalah contoh penggunaannya:
x = 11 % 3;
Dan tentunya hasil operasi diatas dapat ditebak, ya hasilnya adalah 2, karena disini proses mencari sisa bagi, dimana hasil bagi 11 dan 3 = 3, sedangkan sisa baginya adalah 2.
3. Compound Assignment
Operator ini memodifikasi nilai variabel saat ini dengan melakukan operasi di atasnya.
Operator | Keterangan | Contoh Penggunaannya |
---|---|---|
+= | Penjumlahan | z += x sama dengan, z = z + x |
-= | Pengurangan | z -= x sama dengan, z = z - x |
*= | Perkalian | z = x sama dengan, z = z x |
/= | Pembagian | z /= x sama dengan, z = z / x |
>>= | Right shift AND | z >>= 2 sama dengan, z = z >> 2 |
<<= | Left shift AND | z <<= 2 sama dengan, z = z << 2 |
&= | Bitwise AND | z &= 2 sama dengan, z = z & 2 |
^= | Bitwise exclusive OR | z ^= 2 sama dengan, z = z ^ 2 |
Berikut contoh program C++ menggunakan Compound Assignment.
#include <iostream>
using namespace std;
int main ()
{
int a, b=3;
a = b;
a += 2; // sama dengan a = a + 2
cout << a;
}
Intinya: "menggunakan dua operand dan memberikan hasilnya ke operand kiri".
4. Increment and Decrement Operators
Kedua operator ini sangatlah penting: Operator Increment (++) dan operator decrement (--) digunakan untuk meningkatkan atau mengurangi satu nilai yang tersimpan dalam sebuah variabel.
Maksudnya seperti ini:
x = x + 1 ;
y = y - 1 ;
Jika sebelumnya kamu menulis kode seperti datas.
Maka akan sama hasilnya dengan kode berikut:
++ x ;
-- y ;
//atau
x ++ ;
y -- ;
Catatan: Operator Increment adalah operator yang digunakan untuk menaikkan nilai variabel sebesar 1, sedangkan decrement digunakan untuk menurunkan nilai sebesar 1.
Berikut contoh program Increment dalam C++:
#include <iostream>
using namespace std;
int main ()
{
int a, b;
a = 3;
b = ++a;
cout << "a:" << a;
cout << " b:" << b;
}
Jika kamu paham konsepnya, kamu pasti tahu hasil akhir dari variabel a akan bernilai 4, dan b bernilai 4 karena nilai dari b adalah nilai a yang telah ditingkatkan.
Kemudian nantinya kamu akan mendengar istilah:
Pre Increment (++c) dan Post Increment (c++)
Yang membedakannya adalah:
Jika Pre-increment akan menenambahkan nilai 1 sebelum operasi lain dijalankan, maka Post-increment akan menambahkan 1 nilai sesudah proses lain dijalankan.
Silahkan coba kode program berikut ini:
#include <iostream>
using namespace std;
int main(){
// Mendeklarasikan Variabel CI
int CI;
// Mengisi nilai kedalam Variabel CI
// dengan nilai 10
CI = 10;
// Melakukan Pre-Increment
cout<<"Nilai CI awal : "<<CI<<endl;
cout<<"Nilai ++CI : "<<++CI<<endl;
cout<<"Nilai CI : "<<CI<<endl;
// Mengubah nilai yang terdapat dalam variabel CI
// dengan nilai 20
CI = 20;
// Melakukan Post-Increment
cout<<"\nNilai CI awal : "<<CI<<endl;
cout<<"Nilai CI++ : "<<CI++<<endl;
cout<<"Nilai CI : "<<CI<<endl;
return 0;
}
Kamu akan sering menemukannya operator tersebut dalam program looping.
5. Relational and Comparison Operators
Operator selanjutnya adalah operator relasi, operator ini akan banyak digunakan dalam suatu statement bersyarat yang selalu menghasilkan nilai true atau false.
Operator ini sendiri akan sering digunakan untuk menentukan kondisi.
Operator | Keterangan |
---|---|
== | Sama dengan |
!= | Tidak sama dengan |
> | Lebih dari |
< | Kurang dari |
>= | Lebih dari atau sama dengan |
<= | Kurang dari atau sama dengan |
Operator ini digunakan untuk menguji hubungan antara nilai dan atau variabel.
Berikut contoh penggunaannya dalam program:
#include <iostream>
using namespace std;
void main() {
bool nilai;
nilai = 3 > 2 ; // hasil ungkapan : benar
cout << "Nilai = " << nilai;
nilai = 2 > 3 ; // hasil ungkapan : salah
cout << "Nilai = " << nilai;
}
Dan berikut adalah hasil akhirnya:
Nilai = 1
Nilai = 0
6. Logical Operators
Operator Logika adalah operator yang digunakan untuk membandingkan dua nilai variabel atau lebih. Hasil dari operasi ini adalah nilai boolean true atau false.
Operator | Keterangan |
---|---|
&& | AND - Jika semua operand bernilai benar (TRUE) maka kondisi bernilai benar. |
|| | OR - Jika salah satu operand bernilai benar (TRUE) maka kondisi bernilai benar. |
! | NOT - Digunakan untuk membalik kondisi. Jika kondisi benar (TRUE) maka akan berubah menjadi salah (FALSE), begitu pula sebaliknya. |
Berikut adalah contoh penggunaanya:
( (5 == 5) && (3 > 6) ) // Hasil = false, karena ( true && false )
( (5 == 5) || (3 > 6) ) // Hasil = true, karena ( true || false )
7. Conditional Ternary Operator
Pada dasarnya, operator kondisi merupakan penyederhanaan dari bentuk "if..else" yang setiap blok dari "if" dan "else" hanya terdiri dari satu statement atau perintah.
Struktur penulisan operator kondisi:
(ekspresi) ? (jika benar) : (jika salah);
Berikut contoh dalam program C++:
#include <iostream>
using namespace std;
int main ()
{
int a,b,c;
a=2;
b=7;
c = (a>b) ? a : b;
cout << c;
}
8. Comma Operator
Operator koma (,) memiliki beberapa fungsi, yaitu:
- Untuk memisahkan deretan deklarasi variabel
- Untuk memisahkan argumen fungsi
- Menyatukan dua ekspresi menjadi sebuah pernyataan
- Memungkinkan pemberian lebih dari satu ekspresi pada inisialisasi nilai awal
Berikut contoh program dengan operator koma:
#include <iostream>
using namespace std;
int main ()
{
int a,b;
a = (b=3, b+2);
cout << a;
}
Agak rumit, namun penjelasannya seperti ini:
- Pertama variabel b akan diberi nilai 3
- Kemudian nilai b (3) akan dijumlahkan dengan 2
- Sehingga variabel a bernilai 5
9. Bitwise Operators
Operator bitwise adalah operator yang digunakan untuk memanipulasi bit-bit nilai data yang ada di memori. Operator ini hanya dapat digunakan untuk tipe data:
- char
- int
- long int
Untuk operator bitwise dalam bentuk bit, dilakukan dalam bit per bit (binary).
& AND Bitwise AND
| OR Bitwise inclusive OR
^ NOT Unary complement (bit inversion)
<< SHL Shift bits left
>> SHR Shift bits right
Tabel kebenaran:
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 |
Jika di asumsikan memiliki nilai A = 63 dan B = 13, coba untuk diubah menjadi biner:
A = 0011 1100
B = 0000 1101
Sehingga akan menjadi:
A&B = 0000 1100
A|B = 0011 1101
A^B = 0011 0001
~A = 1100 0011
10. Operator Lainnya
Berikut adalah operator lainnya yang didukung oleh bahasa C++:
Operator | Keterangan |
---|---|
sizeof | Untuk mengembalikan nilai dari ukuran variabel. Contoh "sizeof(a)", dimana "a" adalah integer maka akan mengembalikan nilai 4 |
. (dot) and -> (arrow) | Operator member yang digunakan untuk mereferensikan member class, structures, dan lain-lain |
Cast | Untuk mengkonversi suatu data ke tipe data lain. Contohnya int(2.2000) akan menjadi 2 |
* | Digunakan sebagai operator pointer |
Dan berikut adalah daftar operator berdasarkan kategorinya:
Category | Operator | Associativity |
---|---|---|
Postfix | () [] -> . ++ - - | Left to right |
Unary | + - ! ~ ++ - - (type)* & sizeof | Right to left |
Multiplicative | * / % | Left to right |
Additive | + - | Left to right |
Shift | << >> | Left to right |
Relational | < <= > >= | Left to right |
Equality | == != | Left to right |
Bitwise AND | & | Left to right |
Bitwise XOR | ^ | Left to right |
Bitwise OR | | | Left to right |
Logical AND | && | Left to right |
Logical OR | || | Left to right |
Conditional | ?: | Right to left |
Assignment | = += -= *= /= %=>>= <<= &= ^= |= | Right to left |
Comma | , | Left to right |
Dari operator-opertaor yang telah disebutkan serta dijelaskan diatas, kamu tidak perlu menghafalnya, akan tetapi kamu perlu memahami dan mengingatnya.