Senin, 02 Desember 2013
0 komentar

Operator Pada Java



Dalam Java, ada beberapa tipe operator. Ada operator aritmatika, operator relasi, operator logika, dan operator kondisi. Operator ini mengikuti bermacam-macam prioritas yang pasti sehingga compilernya akan tahu yang mana operator untuk dijalankan lebih dulu dalam kasus beberapa operator yang dipakai bersama-sama dalam satu pernyataan.

1 Operator Aritmatika
Berikut ini adalah dasar operator aritmatika yang dapat digunakan untuk membuat suatu program Java,
Berikut ini adalah contoh program dalam penggunaan operator-operator ini :
public class aritmatikaDemo

{

public static void main(String[] args)

{

//sedikit angka

int i = 37;

int j = 42;

double x = 27.475;

double y = 7.22;

System.out.println("Variable values...");

System.out.println(" i = " + i);

System.out.println(" j = " + j);

System.out.println(" x = " + x);

System.out.println(" y = " + y); //penjumlahan angka

System.out.println("Adding...");

System.out.println(" i + j = " + (i + j));

System.out.println(" x + y = " + (x + y));

//pengurangan angka

System.out.println("Subtracting...");

System.out.println(" i - j = " + (i - j));

System.out.println(" x - y = " + (x - y));

//perkalian angka

System.out.println("Multiplying...");

System.out.println(" i * j = " + (i * j));

System.out.println(" x * y = " + (x * y));

//pembagian angka

System.out.println("Dividing...");

System.out.println(" i / j = " + (i / j));

System.out.println(" x / y = " + (x / y));

//menghitung hasil modulus dari pembagian

System.out.println("Computing the remainder...");

System.out.println(" i % j = " + (i % j));

System.out.println(" x % y = " + (x % y));

//tipe penggabungan

System.out.println("Mixing tipes...");

System.out.println(" j + y = " + (j + y));

System.out.println(" i * x = " + (i * x));

}

}

Berikut ini adalah output program,
Variable values...
i = 37
j = 42
x = 27.475
y = 7.22
i + j = 79
Adding...
x + y = 34.695
Subtracting...
i - j = -5
x - y = 20.255
Multiplying...
i * j = 1554
x * y = 198.37
Dividing...
i / j = 0
x / y = 3.8054
Computing the remainder...
i % j = 37
x % y = 5.815
Mixing tipes...
j + y = 49.22
i * x = 1016.58
Catatan: Ketika integer dan floating-point number digunakan sebagai operand untuk
operasi aritmatika tunggal, hasilnya berupa floating point. Integer adalah converter secara
implisit ke bentuk angka floating-point sebelum operasi berperan mengambil tempat.

2. Operator Increment dan Decrement
Dari sisi operator dasar aritmatika, Java juga terdiri atas operator unary increment (++) dan operator unary decrement (--). operator increment dan decrement menambah dan mengurangi nilai yang tersimpan dalam bentuk variabel angka terhadap nilai 1. Sebagai contoh, pernyataan,
count = count + 1; //increment nilai count dengan nilai 1
pernyataan tersebut sama dengan,
count++;
Operator increment dan decrement dapat ditempatkan sebelum atau sesudah operand. Ketika digunakan sebelum operand, akan menyebabkan variabel diincrement atau didecrement dengan nilai 1, dan kemudian nilai baru digunakan dalam pernyataan dimana dia ditambahkan. Sebagai contoh,
int i = 10,
int j = 3;
int k = 0;
k = ++j + i; //akan menghasilkan k = 4+10 = 14
Ketika operator increment dan decrement ditempatkan setelah operand, nilai variabel yang lama akan digunakan lebih dulu dioperasikan lebih dulu terhadap pernyataan dimana dia ditambahkan. Sebagai contoh,
int i = 10,
int j = 3;
int k = 0;
k = j++ + i; //akan menghasilkan k = 3+10 = 13

3 Operator Relasi
Operator Relasi membandingkan dua nilai dan menentukan keterhubungan diantara nilai nilai tersebut. Hasil keluarannya berupa nilai boolean yaitu true atau false.
Berikut ini adalah contoh program yang menggunakan operator Relasi,
public class RelasiDemo

{

public static void main(String[] args) {

//beberapa nilai

int i = 37;

int j = 42;

int k = 42;

System.out.println("Nilai variabel...");

System.out.println(" i = " + i);

System.out.println(" j = " + j);

System.out.println(" k = " + k);

//lebih besar dari

System.out.println("Lebih besar dari...");

System.out.println(" i > j = " + (i > j)); //false

System.out.println(" j > i = " + (j > i)); //true

System.out.println(" k > j = " + (k > j)); //false

//lebih besar atau sama dengan

System.out.println("Lebih besar dari atau sama dengan...");

System.out.println(" i >= j = " + (i >= j)); //false

System.out.println(" j >= i = " + (j >= i)); //true

System.out.println(" k >= j = " + (k >= j)); //true

//lebih kecil dari

System.out.println("Lebih kecil dari...");

System.out.println(" i < j = " + (i < j)); //true

System.out.println(" j < i = " + (j < i)); //false

System.out.println(" k < j = " + (k < j)); //false

//lebih kecil atau sama dengan

System.out.println("Lebih kecil dari atau sama dengan...");

System.out.println(" i <= j = " + (i <= j)); //true

System.out.println(" j <= i = " + (j <= i)); //false

System.out.println(" k <= j = " + (k <= j)); //true

//sama dengan

System.out.println("Sama dengan...");

System.out.println(" i == j = " + (i == j)); //false

System.out.println(" k == j = " + (k == j)); //true

//tidak sama dengan

System.out.println("Tidak sama dengan...");

System.out.println(" i != j = " + (i != j)); //true

System.out.println(" k != j = " + (k != j)); //false

}

}

Berikut adalah hasil keluaran dari program ini :
Nilai variabel...
i = 37
j = 42
k = 42
Lebih besar dari...
i > j = false
j > i = true
k > j = false
Lebih besar dari atau sama dengan...
i >= j = false
j >= i = true
k >= j = true
Lebih kecil dari...
i < j = true
j < i = false
k < j = false
Lebih kecil dari atau sama dengan...
i <= j = true
j <= i = false
k <= j = true
Sama dengan...
i == j = false
k == j = true
Tidak sama dengan...
i != j = true
k != j = false

4. Operator logika
Operator logika memiliki satu atau lebih operand boolean yang menghasilkan nilai boolean. Terdapat enam operator logika yaitu: && (logika AND), & (boolean logika AND), || (logika OR), | (boolean logika inclusive OR), ^ (boolean logika exclusive OR), dan ! (logika NOT). Pernyataan dasar untuk operasi logika adalah, x1 op x2
Dimana x1, x2 dapat menjadi pernyataan boolean. Variabel atau konstanta, dan op adalah salah satu dari operator &&, &, ||, | atau ^. Tabel kebenaran yang akan ditunjukkan selanjutnya, merupakan kesimpulan dari hasil dari setiap operasi untuk semua kombinasi yang mungkin dari x1 dan x2.

4a. && (logika AND) dan & (boolean logika AND)
Berikut ini adalah tabel kebenaran untuk && dan &,
Perbedaan dasar antara operator && dan & adalah bahwa && mensupports short-circuit evaluations (atau evaluasi perbagian), sementara operator & tidak. Apa arti dari pernyataan tersebut?
Diberikan suatu pernyataan, exp1 && exp2
&& akan mengevaluasi pernyataan exp1, dan segera mengembalikan nilai false dan menyatakan bahwa exp1 bernilai false. Jika exp1 bernilai false, operator tidak akan pernah mengevaluasi exp2 karena hasil operasi operator akan menjadi false tanpa memperhatikan nilai dari exp2. Sebaliknya, operator & selalu mengevaluasi kedua nilai dari exp1 dan exp2 sebelum mengembalikan suatu nilai jawaban.
Berikut ini adalah suatu contoh source code yang menggunakan logika dan boolean AND,
public class TestAND

{

public static void main( String[] args ){

int i = 0;

int j = 10;

boolean test= false;

//demonstrasi &&

test = (i > 10) && (j++ > 9);

System.out.println(i);

System.out.println(j);

System.out.println(test);

//demonstrasi &

test = (i > 10) & (j++ > 9);

System.out.println(i);

System.out.println(j);

System.out.println(test);

}

}

Hasil keluaran dari program ini adalah,
0
10
false
0
11
false
Catatan, bahwa j++ pada baris yang mengandung operator && tidak dievaluasi sejak
pernyataan pertama (i>10) yaitu telah bernilai sama dengan false.

4b. || (logika OR) dan | (boolean logika inclusive OR)
Berikut ini adalah tabel kebenaran untuk || dan |,
Perbedaan dasar antara operator || dan | adalah bahwa || mendukung short-circuit evaluations (atau proses evaluasi sebagian), sementara | tidak. Apa maksud dari pernyataan tersebut?
diberikan suatu pernyataan, exp1 || exp2
|| akan mengevaluasi pernyataan exp1, dan segera mengembalikan nilai true dan menyatakan bahwa exp1 bernilai true. Jika exp1 bernilai true, operator tidak akan pernah mengevaluasi exp2 karena hasil dari operasi operator akan bernilai true tanpa memperhatikan nilai dari exp2. Sebaliknya,operator | selalu mengevaluasi kedua nilai dari exp1 and exp2 sebelum mengembalikan suatu jawaban suatu nilai. Berikut ini sebuah contoh source code yang menggunakan operator logika dan boolean OR,
public class TestOR

{

public static void main( String[] args ){

int i = 0;

int j = 10;

boolean test= false;

//demonstrasi ||

test = (i < 10) || (j++ > 9);

System.out.println(i);

System.out.println(j);

System.out.println(test);

//demonstrasi |

test = (i < 10) | (j++ > 9);

System.out.println(i);

System.out.println(j);

System.out.println(test);

}

}
Hasil keluaran dari program ini adalah,
0
10
true
0
11
true
Catatan, bahwa j++ pada baris yang terdiri atas operator || tidak dievaluasi sejak pernyataan pertama (i<10) yaitu telah bernilai sama dengan true.

4c. ^ (boolean logika ExclusiveOR )
Berikut ini adalah tabel kebenaran untuk ^,
Hasil operasi operator exclusive OR adalah TRUE, jika dan hanya jika satu operand bernilai TRUE dan yang lain bernilai False. Catatan jika kedua operand harus selalu dievaluasi untuk menjumlahkan hasil dari suatu exclusive OR. Berikut ini adalah contoh source code yang menggunakan operator logika exclusive OR,
public class TestXOR

{

public static void main( String[] args ){

boolean val1 = true;

boolean val2 = true;

System.out.println(val1 ^ val2);

val1 = false;

val2 = true;

System.out.println(val1 ^ val2);

val1 = false;

val2 = false;

System.out.println(val1 ^ val2);

val1 = true;

val2 = false;

System.out.println(val1 ^ val2);

}

}

Hasil keluaran program tersebut adalah,
false
true
false
true

4d. (logika NOT)
Logika NOT digunakan dalam satu argumen, dimana argumen tersebut dapat menjadi suatu pernyataan, variabel atau konstanta. Berikut ini adalah tabel kebenaran untuk operator not!,
Berikut ini adalah contoh source code yang menggunakan operator logika NOT,
public class TestNOT

{

public static void main( String[] args ){

boolean val1 = true;

boolean val2 = false;

System.out.println(!val1);

System.out.println(!val2);

}

}

Hasil keluaran program adalah sebagai berikut,
false
true

5. Operator Kondisi(?:)
Operator kondisi ?: adalah operator ternary. Berarti bahwa operator ini membawa tiga argumen yang membentuk suatu ekspresi bersyarat. Struktur pernyataan yang menggunakan operator kondisi adalah,
exp1?exp2:exp3
Dimana nilai exp1 adalah suatu pernyataan boolean yang memiliki hasil yang salah satunya harus berupa nilai true atau false. Jika exp1 bernilai true, exp2 merupakan hasil operasi. Jika bernilai false, kemudian exp3 merupakan hasil operasinya. Sebagai contoh, diberikan code sebagai berikut,
public class ConditionalOperator

{

public static void main( String[] args ){

String status = "";

int grade = 80;

//mendapatkan status pelajar

status = (grade >= 60)?"Passed":"Fail";

//print status

System.out.println( status );

}

}

Hasil keluaran dari program ini akan menjadi,
Passed
Berikut ini adalah flowchart yang menggambarkan bagaimana operator ?: bekerja,
Berikut ini adalah program lain yang menggunakan operator ?: ,
class ConditionalOperator

{

public static void main( String[] args ){

int score = 0;

char answer = 'a';

score = (answer == 'a') ? 10 : 0;

System.out.println("Score = " + score );

}

}

Hasil keluaran program adalah,
Score = 10

6. Operator Precedence
Operator precedence didefinisikan sebagai perintah yang dilakukan compiler ketika melakukan evaluasi terhadap operator, untuk mengajukan perintah dengan hasil yang tidak ambigu/ hasil yag jelas.
Diberikan pernyataan yang membingungkan,
6%2*5+4/2+88-10
Kita dapat menuliskan kembali pernyataan diatas dan menambahkan beberapa tanda kurung terhadap operator precedence,
((6%2)*5)+(4/2)+88-10;

 Sumber : Modul Java J.E.N.I - www.jeni.or.id
 
Toggle Footer
Top