Operator adalah sebuah simbol yang digunakan untuk memproses atau mengolah suatu nilai menjadi nilai yang lainnya.
Operandi adalah bagian yang diproses oleh operator, yang menspesifikasikan data mana yang harus dimanipulasi atau dioperasikan.
Berdasarkan jumlah operandinya, operator digolongkan dalam 3 jenis:
- Unary operator, operator yang membutuhkan satu operandi.
Misal: Increment (x++, ++x), decrement (x–, –x), address (&x), negative value (-x), complement (~x), logical negation (!x), indirection (*x), dan lainnya. - Binary operator, operator yang membutuhkan 2 operandi.
Misal: penjumlahan (a+b), pengurangan (a-b), perkalian (a*b), pembagian (a/b), sisa pembagian atau modulo (a%b), and (&–bitwise, &&–logical), dan lainnya. - Ternary operator, operator yang membutuhkan 3 operandi.
Misal: conditional operator if (e1 ? e2 : e3) —> if e1 then e2, else e3
Berdasarkan tipe operasinya:
- Assignment Operator
Digunakan untuk memberikan nilai pada suatu operandi. Operandi di sisi kiri harus berupa variabel, dan tipe data hasil akan mengikuti tipe data sisi kiri (float x = 5, maka hasilnya adalah 5.000; int x = 8/3, maka hasilnya adalah 2).
Operandi di sisi kanan bisa bermacam-macam, misal:
x = 2; //konstanta
x = y; //variabel lain
x = 2 * y; //ekspresi
x = sin (y); //fungsi
- Arithmetic Operator
Digunakan untuk melakukan operasi matematika pada suatu operandi.
Misal: penjumlahan (+), pengurangan (-), perkalian (*), pembagian (/), sisa pembagian atau modulo (%), increment {n++ (post increment, nilai n diproses oleh suatu ekspresi dulu baru diincrement), ++n (pre increment, nilai n diincrement dulu baru diproses ke ekspresi berikutnya)}, decrement (n–, –n, penjelasan sama seperti diatas).
- Relational Operator
Digunakan untuk membandingkan nilai-nilai, hasil dari operasinya hanya bernilai benar atau salah.
Misal: sama dengan (==), tidak sama dengan (!=), lebih kecil (<), lebih besar (>), lebih kecil sama dengan (<=), lebih besar sama dengan (>=), conditional expressions {(e1 ? e2 : e3), if e1 then e2, else e3}.
Jika hasilnya benar, maka akan bernilai 1; jika salah maka 0.
- Logical Operator
Operator logika yang operandinya hanya bernilai benar atau salah.
Misal: AND (&&), OR (||), NOT (!) - Bitwise Operator
Operator yang mengoperasikan bit atau bilangan biner.
Misal:
AND (&), bernilai benar (1) apabila kedua operandi bernilai benar (1).
OR (|), bernilai benar apabila salah satu operandi bernilai benar.
XOR (^), bernilai benar HANYA salah satu operandi bernilai benar.
Complement (~), mengubah nilai yang benar (1) menjadi salah (0), dan sebaliknya.shift right (>>), menggeser tiap bit kearah kanan sebanyak 1 unit.
Misal: B = 78.
A = B >> 3 (shift right sebanyak 3 kali)
78 dalam biner: 0100 1110
proses shift right pertama: 0010 0111
proses shift right kedua: 0001 0011
proses shift right ketiga: 00001001 —> bernilai 9 dalam desimalshift left (<<), menggeser tiap bit kearah kiri sebanyak 1 unit.
Misal: B = 78.
A = B << 2 (shift left sebanyak 2 kali)
78 dalam biner: 0100 1110
proses shift left pertama: 0100 11100
proses shift left kedua: 0100 111000 —> bernilai 312 dalam desimal - Pointer Operator
Digunakkan untuk merujuk pada suatu alamat memori. Terdiri dari address of (&) dan value of (*).
Tiap operator memiliki precedence dan associative. Keduanya menjelaskan urutan mana operator yang harus dijalankan terlabih dahulu.Precedence mengatur operator mana yang berjalan duluan berdasarkan prioritasnya (kuat lemahnya), sedangkan associative mengatur jalannya operator dari kiri ke kanan.Associative berlaku pada operator yang tingkat precedencenya sama.
Posted by: mwczanez15
Categories:
Uncategorized