14th Oct, 2015

Operator

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:

  1. 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.
  2. 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.
  3. 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 desimal

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

Leave a response

Your response:

Categories