Operator Pada Pemrograman C++
Operator Pada Pemrograman C++
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=1 0 ;/ / b e r a r t iab e r n i l a i1 0 b=4 ;/ / b e r a r t iab e r n i l a i1 0d a nbb e r n i l a i4 a=b ;/ / b e r a r t iab e r n i l a i4d a nbb e r n i l a i4 .I n g a ta t u r a n n y a ,K a n a nk eK i r i . b=7 ;/ / b e r a r t iab e r n i l a i4d a nbb e r n i l a i7 .
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.
http://www.kangarif.com/2012/12/penggunaan-operator-pada-pemrograman-c.html 1/6
17/3/2014
Pada contoh 1, B ditambahkan sebelum nilainya diberikan ke A. Sedangkan contoh 2, Nilai B diberikan terlebih dahulu ke A dan B ditambahkan kemudian.
Contoh :
( 7= =5 )/ /e v a l u a t e st of a l s ea t a uh a s i lp e r b a n d i n g a ns a l a h . ( 5>4 )/ /e v a l u a t e st ot r u ea t a uh a s i lp e r b a n d i n g a nb e n a r . ( 3! =2 )/ /e v a l u a t e st ot r u ea t a uh a s i lp e r b a n d i n g a nb e n a r . ( 6> =6 )/ /e v a l u a t e st ot r u ea t a uh a s i lp e r b a n d i n g a nb e n a r . ( 5<5 )/ /e v a l u a t e st of a l s ea t a uh a s i lp e r b a n d i n g a ns a l a h .
Selain menggunakan konstanta numerik seperti di atas, kita dapat menggunakan ekspresi yang valid, termasuk variabel. Misalkan a = 2, b = 3 dan c = 6 :
http://www.kangarif.com/2012/12/penggunaan-operator-pada-pemrograman-c.html
2/6
17/3/2014
( a= =5 )/ /" e v a l u a t e st of a l s e "k a r e n aat i d a ks a m a d e n g a n5 . ( a * b> =c )/ /" e v a l u a t e st ot r u e "k a r e n a( 2 * 3> =6 )a d a l a hb e n a r . ( b + 4>a * c )/ /" e v a l u a t e st of a l s e "k a r e n a( 3 + 4>2 * 6 )a d a l a hs a l a h . ( ( b = 2 )= =a )/ /" e v a l u a t e st ot r u e " .
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.
! 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
http://www.kangarif.com/2012/12/penggunaan-operator-pada-pemrograman-c.html 3/6
17/3/2014
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 true true false false b true false true false a || b true true true 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 : c o n d i t i o n?r e s u l t 1:r e s u l t 2 Jika kondisi true maka akan menghasilkan r e s u l t 1, jika tidak akan menghasilkan r e s u l t 2 . Perhatikan :
7 = = 5?4:3/ /h a s i l3 ,k a r e n a7t i d a ks a m ad e n g a n5 . 7 = = 5 + 2?4:3/ /h a s i l4 ,k a r e n a7s a m ad e n g a n5 + 2 . 5 > 3?a:b/ /h a s i lb e r n i l a ia ,k a r e n a5l e b i hb e s a rd a r i3 . a > b?a:b/ /h a s i lt e r g a n t u n gn i l a iv a r i a b e lm a n ay a n gl e b i hb e s a r ,aa t a ub .
http://www.kangarif.com/2012/12/penggunaan-operator-pada-pemrograman-c.html
17/3/2014
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 1 2 : : ( )[ ].>+ +-d y n a m i c _ c a s ts t a t i c _ c a s t r e i n t e r p r e t _ c a s tc o n s t _ c a s tt y p e i d + +-~!s i z e o fn e wd e l e t e 3 *& +4 5 6 7 8 9 10 11 12 ( t y p e ) . *> * */% +< <> > <>< => = = =! = & ^ Operator scope postfix unary (prefix) indirection and reference (pointers) unary sign operator type casting pointer-to-member multiplicative additive shift relational equality bitwise AND bitwise XOR Right-toleft Right-toleft Left-toright Left-toright Left-toright Left-toright Left-toright Left-toright Left-toright Left-toright
5/6
Description
http://www.kangarif.com/2012/12/penggunaan-operator-pada-pemrograman-c.html
17/3/2014
13 14 15 16 17 18
http://www.kangarif.com/2012/12/penggunaan-operator-pada-pemrograman-c.html
6/6