Urutan Prioritas Operator - Belajar C++ 16
Assalamualaikum sobat pada artikel kali ini kita akan belajar tentang urutan prioritas operator dalam pemrograman C++. Pada sebuah ekspresi mungkin mengandung beberapa operator di dalamnya. Misalnya :
a = 10 + 5 * 8;
Pada ekspresi diatas akan menghasilkan nilai 50 untuk variabel a. Dikarenakan operator * memiliki skala prioritas yang lebih tinggi dibandingkan operator +, maka operator * akan dijalankan terlebih dahulu. Kita dapat mengecualikan urutan prioritas operator menggunakan tanda kurung (), jadi operator yang berada di dalam tanda kurung () akan di prioritaskan terlebih dahulu dan akan dieksekusi terlebih dahulu oleh compiler. Berikut adalah perbedaan hasil program jika kita menggunakan tanda kurung :
a = 10 + (5 * 8); // a = 50 (nilainya sama seperti jika tidak menggunakan tanda kurung)
a = (10 + 5) * 8; // a = 120
Berikut adalah daftar urutan prioritas operator pada C++ dari skala yang terbesar ke skala terkecil :
Level
|
Kelompok Prioritas
|
Operator
|
Deskripsi
|
Pembacaan
|
1
|
Scope
|
::
|
scope
qualifier
|
Kiri
ke kanan
|
2
|
Postfix
(unary)
|
++ --
|
postfix
increment / decrement
|
|
()
|
Pemanggilan
fungsi
|
|||
[]
|
Elemen
Array
|
|||
.
->
|
member
access (pointer ke anggota struktur atau kelas)
|
|||
3
|
Pefix
(unary)
|
++ --
|
prefix
increment / decrement
|
Kanan
ke kiri
|
~ !
|
bitwise
NOT / Logika NOT
|
|||
+ -
|
unary
prefix
|
|||
&
*
|
reference
/ dereference
|
|||
new
delete
|
alokasi
/ dealokasi
|
|||
sizeof
|
parameter
pack
|
|||
(type)
|
C-style
type casting
|
|||
4
|
Pointer-to-member
|
.*
->*
|
access
pointer
|
Kiri
ke kanan
|
5
|
Arithmetic:
scaling
|
* / %
|
Kali,
bagi, modulo
|
|
6
|
Artihmetic:
addition
|
+ -
|
penambahan,
pengurangan
|
|
7
|
Bitwise
shift
|
<<
>>
|
shift
left, shift right
|
|
8
|
Relasi
|
<
> <= >=
|
Operator
perbandingan
|
|
9
|
Persamaan
|
== !=
|
Persamaan
/ pertidaksamaan
|
|
10
|
And
|
&
|
bitwise
AND
|
|
11
|
Exclusive
OR
|
^
|
bitwise
XOR
|
|
12
|
inclusive
OR
|
|
|
bitwise
OR
|
|
13
|
Konjungsi
|
&&
|
Logika
AND
|
|
14
|
Disjunction
|
||
|
Logika
OR
|
|
15
|
Assignment-level
expressions
|
= *=
/= %= += -= >>= <<= &= ^= |=
|
Assignment
/ compound assignment
|
Kanan
ke kiri
|
?:
|
operator
kondisional
|
|||
16
|
Sequencing
|
,
|
Koma
|
Kiri
ke kanan
|
Ketika sebuah ekspresi memiliki level prioritas yang sama. cara pembacaan menentukan ekspresi mana yang dieksekusi terlebih dahulu (kiri ke kanan atau kanan ke kiri).
Baca juga : Operator Koma - Belajar C++ 15
Contoh Program
Pada contoh program berikut kita akan membuktikan urutan prioritas operator menggunakan operator aritmetik.
#include <iostream>
using namespace std;
int main(){
int a = 10;
int b = 20;
int c = 30;
int hasil1 = a + b * c;
int hasil2 = (a + b) * c;
cout << "10 + 20 * 30 = " << hasil1 << endl;
cout << "(10 + 20) * 30 = " << hasil2 << endl;
return 0;
}
Hasil programnya :
Penjelasan program :
Pada contoh program diatas operator kali (*) prioritasnya lebih tinggi dari operator tambah (+) maka untuk variabel hasil1, program akan mengkalikan 20 dengan 30 selanjutnya ditambahkan 10 jadi hasilnya 610. Sedangkan pada variabel hasil2, kita menggunakan tanda kurung yang menyebabkan ekspresi program yang berada di dalam tanda kurung akan diproses terlebih dahulu jadi nilai 10 ditambahkan dengan nilai 20 dahulu kemudian dikalikan dengan 30 menghasilkan nilai 900.
Video Tutorial
Sekian untuk tutorial kali ini sampai jumpa di artikel selanjutnya.
Baca juga : Conditional Ternary Operator - Belajar C++ 14
Posting Komentar untuk "Urutan Prioritas Operator - Belajar C++ 16"