![]() |
Setelah kita memahami mengenai Variabel dan Konstanta pada pembahasan
sebelumnya, sekarang kita dapat memulai beroperasi dengannya.
Operator yang disediakan berupa keyword atau karakter khusus. Operator-operator ini cukup penting untuk diketahui, karena merupakan salah satu dasar bahasa C++. Tetapi tidak diharuskan untuk menghafalkan semuanya, gunakan laman page ini sebagai rujukan saja, siapa tahu sobat membutuhkannya di kemudian hari.
Assignation ( = )
Operator Assignation digunakan untuk memberikan nilai ke suatu variabel. contohnya :
a=5
Pernyataan di atas berarti kita memberikan nilai integer 5 ke variabel
a. Sisi kiri operator disebut lvalue (left value) dan sisi kanan disebut
rvalue (right value). lvalue harus selalu berupa variabel dan rvalue
atau sisi kanan dapat berupa konstanta, variabel, hasil dari suatu
operasi atau kombinasi dari semuanya.
Aturan yang paling penting pada assigning (operasi sama dengan) adalah
aturan kanan-ke-kiri: Operasi assignment selalu terjadi dari kanan ke
kiri, dan tidak pernah sebaliknya.
a = b
Pernyataan ini memberikan arti variabel a (lvalue) di beri harga b (rvalue).
Contoh penerapannya begini :
a = 10; //berarti a bernilai 10
b = 4; //berarti a bernilai 10 dan b bernilai 4
a = b; //berarti a bernilai 4 dan b bernilai 4. Ingat aturannya, Kanan ke Kiri.
b = 7; //berarti a bernilai 4 dan b bernilai 7.
Bagaimana, sudah paham belum? jangan bilang tidak paham ya sobat. hehehe
Operator Aritmatika
Operator aritmatika yang dapat digunakan di C++ ada 5, yaitu :
- + Penjumlahan
- - Pengurangan
- * Perkalian
- / Pembagian
- % Modulo atau modulus
Wah pasti tidak perlu di jelaskan satu persatu sobat juga pasti
sudah paham. Mungkin yang sedikit bingung adalah operator ( % ) atau
modulo. Modulo adalah operasi yang memberikan sisa dari pembagian dua
nilai. Misalnya begini:
a = 11 % 3
Variabel a akan bernilai 2. Nilai 2
didapat dari sisa pembagian 11 dibagi 3. Coba saja di cek kalau tidak
percaya. Tetapi jangan menggunakan kalkulator, karena hasilnya akan
bilangan desimal. Capek deh.
Increase ( ++ ) and Decrease ( -- )
Di C++ kita dapat memperpendek operasi :
Increase (++)
a++;
a+=1;
a=a+1;
Decrease (--)
a--;
a-=1;
a=a-1;
Masih bingung? begini sobat. Misalnya a=3; a++; maka nilai a yang baru adalah 4. Nah paham kan?
Operator Increase (++) dan Decrease (--) dapat digunakan sebagai prefix atau suffix. Dengan kata lain dapat dituliskan sebelum identifier variabel (++a) atau sesudahnya (a++). Operator increase yang digunakan sebagai prefix (++a), begini perbedaannya:
Contoh 1 (Prefix) |
Contoh 2 (Surfix) |
---|---|
B = 3; A = + + B; // A berisi 4, B berisi 4 |
B = 3; A = B + +; // A berisi 3, B berisi 4 |
Pada contoh 1, B ditambahkan sebelum nilainya diberikan ke A. Sedangkan contoh 2, Nilai B diberikan terlebih dahulu ke A dan B ditambahkan kemudian.
Relational operators ( ==, !=, >, <, >=, <= )
Untuk mengevaluasi antara 2 ekspresi, dapat digunakan operator Relasional di atas. Hasil dari operator ini adalah nilai Boolean yaitu hanya berupa True atau False, atau dapat juga dalam nilai int, 0 untuk mereprensentasikan "false" dan 1 untuk merepresentasikan "true".
== | Sama dengan |
! = | Tidak sama dengan |
> | Lebih besar dari |
< | Kurang dari |
> = | Lebih besar dari atau sama dengan |
<= | Kurang dari atau sama dengan |
Contoh :
(7 == 5) // evaluates to false atau hasil perbandingan salah.
(5 > 4) // evaluates to true atau hasil perbandingan benar.
(3 != 2) // evaluates to true atau hasil perbandingan benar.
(6 >= 6) // evaluates to true atau hasil perbandingan benar.
(5 < 5) // evaluates to false atau hasil perbandingan salah.
Selain menggunakan konstanta numerik seperti di atas, kita dapat
menggunakan ekspresi yang valid, termasuk variabel. Misalkan a = 2, b = 3
dan c = 6 :
(a == 5) // "evaluates to false" karena a tidak samadengan 5.
(a*b >= c) // "evaluates to true" karena (2*3 >= 6) adalah benar.
(b+4 > a*c) // "evaluates to false" karena (3+4 > 2*6) adalah salah.
((b=2) == a) // "evaluates to true".
Hati-hati! Operator = (satu tanda sama) adalah tidak sama dengan
operator == (dua tanda yang sama), yang pertama adalah operator
penugasan (memberikan nilai pada haknya untuk variabel di sebelah kiri)
dan yang lainnya (= =) adalah operator kesetaraan yang membandingkan
apakah kedua ekspresi dalam dua sisi itu adalah sama satu sama lain.
Logic operators ( !, &&, || )
Operator Logika digunakan untuk menghubungkan dua buah operasi relasi menjadi sebuah ungkapan kondisi. Hasil dari operator logika ini menghasilkan nilai numerik 1 (True) atau 0 (False).
! | Operator logika NOT |
&& | Operator logika AND |
|| | Operator logika OR |
Operator logika NOT ( ! )
Operator logika NOT akan
memberikan nilai kebalikkan dari ekspresi yang disebutkan. Jika nilai
yang disebutkan bernilai BENAR maka akan menghasilkannilai SALAH, begitu
pula sebaliknya.
Misalnya :
Jika nilai a = 3 pada a + 4 < 10 :
Pada ekspresi relasi akan
bernilai 1 (true), karena 7 < 10, sedangkan jika digunakan operator
NOT akan menjadi !(a + 4 < 10) dan bernilai 0 (false).
Operator logika AND ( && )
Operator logika AND digunakan untuk menghubungkan dua atau lebih
ekspresi relasi, akan dianggap BENAR, bila semua ekspresi relasi yang
dihubungkan bernilai BENAR.
Lihat :
Operator &&
a | b | a && b |
---|---|---|
true | true | true |
true | false | false |
false | true | false |
false | false | false |
Contohnya :
Ada 3 relasi, yaitu a + 4 < 10 ; b > a + 5 ; c - 2 >= 4 ; .
Jika a = 3 ; b = 3 ; c = 7 ; . maka penggunaan operator logika AND
seperti berikut :
- a + 4 < 10 ==> 3 + 4 < 10 ==> 7 < 10 ==> Benar
- b > a + 5 ==> 3 > 3 + 5 ==> 3 > 8 ==> Salah
- c - 2 >= 4 ==> 7 - 2 >= 4 ==> 5 >= 4 ==> Benar
Jika menggunakan Operator Logika AND pada ketiga relasi di atas
akan bernilai Salah ( 0 ), karena ada satu relasi yang bernilai Salah,
maka semuanya akan bernilai Salah.
a + 4 < 10 && b > a + 5 && c - 2 >= 4 ==> Salah ==> 0 nol
Operator logika OR ( || )
Operator logika OR digunakan
untuk menghubungkan dua atau lebih ekspresi relasi, akan dianggap BENAR,
bila salah satu ekspresi relasi yang dihubungkan bernilai BENAR dan
bila semua ekspresi relasi yang dihubungkan bernilai SALAH,maka akan
bernilai SALAH.
Operator ||
a | b | a || b |
---|---|---|
true | true | true |
true | false | true |
false | true | true |
false | false | false |
Contonya saya buat masih sama seperti pada kasus Operator Logika AND ( && ).
- a + 4 < 10 ==> 3 + 4 < 10 ==> 7 < 10 ==> Benar
- b > a + 5 ==> 3 > 3 + 5 ==> 3 > 8 ==> Salah
- c - 2 >= 4 ==> 7 - 2 >= 4 ==> 5 >= 4 ==> Benar
Jika menggunakan Operator Logika OR pada ketiga relasi di atas akan
bernilai Benar ( 1 ), karena jika ada satu relasi saja yang bernilai
Benar, maka semuanya akan bernilai Benar.
a + 4 < 10 || b > a + 5 || c - 2 >= 4 ==> Benar ==> 1
Conditional operator ( ? )
Conditional operator atau operator bersyarat akan mengevaluasi
ekspresi dan memberikan hasil tergantung dari hasil evaluasi (true atau
false). Sintaks :
condition ? result1 : result2
Jika kondisi true maka akan menghasilkan result1 , jika tidak akan menghasilkan result2.
Perhatikan :
7==5 ? 4 : 3 // hasil 3, karena 7 tidak sama dengan 5.
7==5+2 ? 4 : 3 // hasil 4, karena 7 sama dengan 5+2.
5>3 ? a : b // hasil bernilai a, karena 5 lebih besar dari 3.
a>b ? a : b // hasil tergantung nilai variabel mana yang lebih besar, a atau b.
Bitwise Operators ( &, |, ^, ~, <<, >>
Operator Bitwise memodifikasi variabel menurut bit yang
merepresentasikan nilai yang disimpan, atau dengan kata lain dalam
representasi binary.
operator | asm equivalent | Keterangan |
---|---|---|
& | AND | Bitwise AND |
| | OR | Bitwise Inclusive OR |
^ | XOR | Bitwise Exclusive OR |
~ | NOT | Unary complement (bit inversion) |
<< | SHL | Shift Left |
>> | SHR | Shift Right |
Explicit type casting operators
Type casting operators memungkinkan untuk mengkonversikan tipe data
yang sudah diberikan ke tipe data yang lain. Ada beberapa cara yang
dapat dilakukan dalam C++, yang paling popular yaitu tipe baru
dituliskan dalam tanda kurung ().
Contoh :
int i; float f = 3.14; i = ( int ) f;
Contoh diatas, mengkonversikan nilai 3.14 menjadi nilai integer (3). Type casting operator yang digunakan ( int ).
Precedence of operators ( Prioritas pada operator )
Maksudnya operasi yang di dahulukan terlebih dahulu. Misal :
a = 4 + 8 / 2 ;
Jawaban atau nilai a adalah 8. Mengapa bukan 6 ? Ya karena pada C++
pengerjaan operasi di lakukan dari level yang tinggi ke level yang lebh
rendah.
Berikut ini adalah prioritas operator dari tinggi ke rendah :
Level | Operator | Description | Grouping |
---|---|---|---|
1 | :: | scope | Left-to-right |
2 | () [] . -> ++ -- dynamic_cast static_cast reinterpret_cast const_cast typeid | postfix | Left-to-right |
3 | ++ -- ~ ! sizeof new delete | unary (prefix) | Right-to-left |
* & | indirection and reference (pointers) | ||
+ - | unary sign operator | ||
4 | (type) | type casting | Right-to-left |
5 | .* ->* | pointer-to-member | Left-to-right |
6 | * / % | multiplicative | Left-to-right |
7 | + - | additive | Left-to-right |
8 | << >> | shift | Left-to-right |
9 | < > <= >= | relational | Left-to-right |
10 | == != | equality | Left-to-right |
11 | & | bitwise AND | Left-to-right |
12 | ^ | bitwise XOR | Left-to-right |
13 | | | bitwise OR | Left-to-right |
14 | && | logical AND | Left-to-right |
15 | || | logical OR | Left-to-right |
16 | ?: | conditional | Right-to-left |
17 | = *= /= %= += -= >>= <<= &= ^= |= | assignment | Right-to-left |
18 | , | comma | Left-to-right |
Tidak ada komentar:
Posting Komentar