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).

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.

Posting Komentar untuk "Urutan Prioritas Operator - Belajar C++ 16"