Operator precedence dan ekspresi numerik di program Java
Operator Precedence Dan Ekspresi Numerik

Operator adalah simbol yang digunakan untuk melakukan operasi yang melibatkan satu, dua atau tiga operand. Operator di Java dapat dibagi menjadi operator pemberian (assignment operator), operator aritmatika (arithmatic operator), operator unari (unary operator), operator kesamaan dan hububungan (equality and relational operator), operator bersyarat (conditional operator) dan operator perbandingan (comparison operator).

1. Operator Precedence.

Bahasa pemrograman Java mempunyai aturan untuk menentukan urutan dimana operator di ekspresi dievaluasi ketika suatu ekspresi mempunyai beberapa operator. Aturan ini disebut dengan operator precedence. Operator precedence adalah urutan evaluasi dimana operator yang ada di ekspresi akan dievaluasi berdasarkan aturan prioritas yang ditentukan.

Baca artikel:

Operator dengan prioritas lebih tinggi dievaluasi terlebih dahulu dibanding operator yang mempunyai prioritas lebih rendah. Bila beberapa operator di ekspresi mempunyai prioritas sama, operator akan dievaluasi berdasarkan asosiasi operator (operator association). Berikut ini adalah tabel operator di Java dengan tingkatan prioritas:

Operator Precedence Di Java

Prioritas Operator Keterangan Asosiasi
0 (…) Kurung buka tutup Kiri ke kanan
1 ++, --, . Postincrement, Postdecrement dan titik. Kanan ke kiri
2 ++, --, +, -, ! Preincrement, Predecrement, unary plus, unary minus dan Boolean NOT. Kanan ke kiri
3 (type), new Pengkonversian tipe data dan pembuatan obyek Kanan ke kiri
4 *, /, % Perkalian, pembagian dan sisa pembagian (modulus) Kiri ke kanan
5 +, -, + Penambahan, pengurangan dan operator penggabungan string. Kiri ke kanan
6 <, >, <=, >= Relational operator Kiri ke kanan
7 ==, != Equaliti operator Kiri ke kanan
8 ^ Boolean XOR (eksklusif or) Kiri ke kanan
9 && Boolean AND Kiri ke kanan
10 || Boolean OR Kiri ke kanan
11 =, +=, -=, *=, /=, %= Operator pemberian

Perhatikan contoh ekspresi numerik Java di bawah ini.

5 + 20 * 2 – 20 / 2 + (10 - 2);

Java mengevaluasi ekspresi numerik tersebut dengan urutan sebagai berikut:

  • Ekspresi numerik yang terdapat di kurung buka tutup dievaluasi pertama kali karena mempunyai prioritas paling tinggi dibanding operator perkalian (*), pembagian (/), penjumlahan (+) dan juga pengurangan (-) sehingga ekspresi numerik menjadi 5 + 20 * 2 – 20 / 2 + 8.
  • Operator perkalian (*) dan pembagian (/) dievaluasi berikutnya dimulai dari kiri ke kanan karena memiliki prioritas sama dan lebih tinggi daripada operator penjumlahan (+) dan pengurangan (-) sehingga ekspresi numerik menjadi 5 + 40 – 10 + 8.
  • Operator penambahan dan pengurangan mempunyai prioritas sama dan dievaluasi terakhir mulai dari kiri ke nanan sehingga menghasilkan nila 43.

2. Ekspresi Aritmatika dan ekspresi Java.

Anda perlu menterjemahkan ekspresi aritmatika ke ekspresi numerik Java menggunakan operator numerik. Java tidak dapat mengeksekusi ekspresi numerik aritmatika karena ada simbol yang tidak sama atau tidak dikenali. Sebagai contoh, rumus luas persegi panjang ditulis dalam bentuk ekspresi aritmatika dengan notasi p.l atau p x l, dimana p dan l adalah veriabel tipe numerik.

Agar ekspresi numerik dapat dimengerti Java, Anda harus mengubah terlebih dahulu ke ekspresi Java menjadi p * l. Karakter asterisk (*) di ekspresi Java digunakan untuk mewakili operator perkalian, sedangkan di aritmatika menggunakan karakter x atau titik (.) atau bisa langsung ditulis pl. Berikut ini adalah contoh ekspresi aritmatika yang harus diubah ke dalam ekspresi Java sebelum digunakan di program:

Operator precedence dan ekspresi numerik di Java

Ekspresi aritmatika di atas dapat diterjemahkan ke ekspresi Java sebagai berikut:

Operator precedence dan ekspresi numerik di Java

Berikut ini adalah contoh program yang mendemonstrasikan pemberian nilai ke variabel dalam bentuk ekspresi Java.

// Nama file : EkspresiJava.java
// Memberi nilai ke variabel dengan ekspresi Java

// Deklarasi kelas
public class EkspresiJava {

   // Metoda main
   public static void main(String[] args) {

      // Deklarasi dan memberi nilai awal ke variabel
      int x = 20, y = 10;
      boolean nilaiBoolean = false;

      // Deklarasi variabel
      int nilaiEkspresiSatu, nilaiEkspresiTiga, nilaiEkspresiEmpat;
      boolean nilaiEkspresiDua;

      // Memberi nilai ke variabel dengan ekspresi Java
      nilaiEkspresiSatu = 5 + x * 2 - x / 2 + (y - 2);
      nilaiEkspresiDua = !nilaiBoolean;
      nilaiEkspresiTiga = ++x - --y;
      nilaiEkspresiEmpat = 40 + x * y + 25;

      // Menampilkan nilai variabel hasil dari evaluasi ekspresi
      System.out.println();
      System.out.println("nilaiEkspresiSatu = " + nilaiEkspresiSatu);
      System.out.println("nilaiEkspresiDua = " + nilaiEkspresiDua);
      System.out.println("nilaiEkspresiTiga = " + nilaiEkspresiTiga);
      System.out.println("nilaiEkspresiEmpat = " + nilaiEkspresiEmpat);
   }
}
Operator precedence dan ekspresi numerik di Java