Senin, 12 Desember 2011

JAVA IV. Operator

Operator Aritmatika

+ Operator penjumlahan (juga sebagai penyambung string)
- Operator pengurangan
* Operator perkalian
/ Operator pembagian
% Operator sisa pembagian
Operator aritmatika digunakan untuk melakukan operasi matematika, seperti penambahan, pengurangan, pembagian, dan modulo (atau sisa pembagian). Contoh penggunaan :
SimbolNama operatorContoh penggunaan
+Operator penjumlahann = n + 1;
-Operator pengurangann = n - 1;
*Operator perkaliann = n * 1;
/Operator pembagiann = n / 1;
%Operator sisa pembagiann = n % 1;
+Operator penyambung stringn = "saya "+"tidur";
Contoh kode program yang dapat Anda unduh dalam bentuk zip file atau melalui SVN di alamat berikut :http://belajarjava.googlecode.com/svn/trunk/OperatorAritmatika
package operatoraritmatika;
 
public class OperatorAritmatika {
 
 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
 
   int x = 2;
   int y = 5;
   int z = 3;
   int g = 0;
 
   g = x + y;
   System.out.println("Penjumlahan (x+y) : " + g);
 
   g  = y - x;
   System.out.println("Pengurangan (y-x) : " + g);
 
   g = x * y;
   System.out.println("Perkalian (x*y) : " + g);
 
   g = y / x;
   System.out.println("Pembagian (y/x) : " + g);
 
   g = z % y;
   System.out.println("Sisa pembagian (z%x) : " + g);
 
   g = x + (y * (z/x));
   System.out.println("Hasilnya sekarang : " + g);
 }
}
Keluaran Program :

Operator Tunggal
+ Operator plus; menyatakan nilai positif (setiap angka tanpa tanda ini akan dianggap sebagai positif)
- Operator minus; menyatakan nilai negatif, dapat pula digunakan untuk menegatifkan suatu bilangan
++ Operator kenaikan; menambah suatu bilangan dengan 1
-- Operator penurunan; mengurangkan suatu bilangan dengan 1
! Operator lawan; membalik nilai suatu boolean
Operator tunggal hanya membutuhkan satu operan untuk melakukan operasinya. Operator ini tidak dapat digunakan untuk variabel final, karena variabel final berupa konstanta yang tidak dapat diubah-ubah. Beberapa jenis operator tunggal diberikan pada tabel di bawah ini.
SimbolNama operatorOperasiContoh
+Operator plusmenyatakan nilai positif
angka = +1;
-Operator minusmenyatakan nilai negatif, dapat pula digunakan untuk menegatifkan suatu bilangan
angka = -1;
angka = -angka; // sekarang angka bernilai 1
++Operator kenaikanmenambah suatu bilangan dengan 1
angka = ++angka;
--Operator penurunanmengurangkan suatu bilangan dengan 1
angka = --angka;
!Operator lawanmembalik nilai suatu boolean
ok = !true;
Operator kenaikan dan penurunan dapat diletakkan di belakang atau di depan suatu variabel. Jika diletakkan di depan (++x atau --x), penambahan/pengurangan dilakukan sebelumnya, sedangkan apabila diletakkan di akhir (x++ atau x--) penambahan/pengurangan dilakukan setelahnya. Walau bagaimanapun pada akhirnya keduanya akan menghasilkan x = x+1 atau x = x-1.
Mari kita lihat contohnya untuk membedakan lebih jelas perbedaan penempatan operator tunggal ++ dan --
Contoh kode program yang dapat Anda unduh dalam bentuk zip file atau melalui SVN di alamat berikut :http://belajarjava.googlecode.com/svn/trunk/OperatorTunggal
package operatortunggal;
 
public class OperatorTunggal {
 
 /**
  * Contoh program menggunakan operator tunggal
  * 
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
 
  int x = 0;
  int y = 0;
  y = ++x;
  System.out.println("Contoh operator pada prefix (awalan)");
  System.out.println("---------------------------");
  System.out.println("Nilai x baru : " + x);
  System.out.println("Nilai y = ++x : " + y);
 
  x = 0;
  y = 0;
  y = x++;
  System.out.println("\nContoh operator pada sufix (akhiran)");
  System.out.println("---------------------------");
  System.out.println("Nilai x baru :" + x);
  System.out.println("Nilai y = x++ :" + y);
 }
}
Jalankan program tersebut dan lihat hasilnya. Apabila operator ++ diletakkan di awal (prefix), maka nilai "x" dan "y" akan sama, karena penambahan nilai "x" dilakukan terlebih dahulu, lalu hasilnya diberi kepada "y".
Apabila operator ++ diletakkan di akhir (sufix), nilai "y" adalah nilai "x" terdahulu. Java akan memberi nilai "y" dengan nilai "x" sebelum operasi ++ dilakukan. Baru kemudian nilai "x" ditambahkan.
Berikut ini adalah screenshot keluarannya :

Operator Pembnading, Boolean dan Kondisi
Operator kondisi (conditional operator) menghasilkan nilai true atau false tergantung dari variabelnya, dalam hal ini operasinya dilakukan pada dua operand. Operator boolean adalah operator kondisi yang kedua operandnya berupa nilai boolean (true atau false), sedangkan Operator Pembanding membandingkan 2 nilai seperti pada operasi matematika.
Catatan : Pada objek, seperti String, operasi pembanding akan membandingkan alamat memory tempat objek itu disimpan, bukan membandingkan isinya. Untuk membandingkan isi String, gunakan equals()equalsIgnoreCase(), dan compareTo()seperti dibahas pada bagian sebelumnya.
SimbolNama operatorContoh
==Sama denganb = (1 == 2);
!=Tidak sama denganb = (1 == 2);
>Lebih besarb = (1 > 2);
>=Lebih besar atau sama denganb = (1 >= 2);
<Lebih kecilb = (1 < 2);
<=Lebih kecil atau sama denganb = (1 <= 2);
&&Conditional ANDb = true && false;
||Conditional ORb = true || false;
!NOTb = !true;
?:Bentuk pendek dari if-then-else
Operator boolean AND
Operator kondisi AND menghasilkan "true" apabila kedua operandnya bernilai "true". Jika salah satunya atau keduanya "false", operator ini menghasilkan "false". Berikut ini tabel kebenaran operasi AND.
Op1 atau Exp1Op2 atau Exp2Hasil
truetruetrue
truefalsefalse
falsetruefalse
falsefalsefalse
Operator && akan mengevaluasi Op2 (di sebelah kanan) HANYA jika operand 1 bernilai "true". Seperti terlihat dari tabel di atas, apabila Op1 (di sebelah kiri) bernilai "false", hasilnya akan selalu "false" tidak tergantung pada isi dari Op2.
Operator kondisi OR
Operator kondisi OR menghasilkan "true" jika salah satu operandnya bernilai "true". Jika keduanya "false", operator ini menghasilkan "false". Berikut ini table kebenaran oeprasi OR.
Op1 atau Exp1Op2 atau Exp2Hasil
truetruetrue
truefalsetrue
falsetruetrue
falsefalsefalse
Operator || akan mengevaluasi Op2 (di sebelah kanan) HANYA jika operand 1 bernilai "false". Seperti terlihat dari tabel di atas, apabila Op1 (di sebelah kiri) bernilai "true", hasilnya akan selalu "true" tidak tergantung pada isi dari Op2.
Operator NOT
Operator NOT ("!") melakukan operasi boolean NOT pada operand atau ekspresi tunggal. Operator ini mengecek nilai boolean dari suatu operand atau expresi kemudian membalik nilainya (dari true ke false atau false ke true). Berikut ini adalah tabel kebenaran operator NOT.
Op1Hasil
truefalse
falsetrue
Operator Ternary (?:) Java memiliki operator berkondisi lain yang disebut ternary "?:", yang pada dasarnya merupakan bentuk pendek dari if-then-else. Secara umum
kondisi ? jika_benar : jika_salah
Pada dasarnya operator "?:" akan mengevaluasi "kondisi". Apabila kondisi bernilai "true", operator akan mengembalikan "jika_benar", tetapi apabila "kondisi" bernilai "false", operator akan mengembalika "jika_salah". Misalnya
= (1 > 2) ? 10 : 20
Dari contoh di atas, "x" akan memiliki nilai 20, karena ekspresi (1 > 2) adalah salah (atau "false").
Contoh kode program yang dapat Anda unduh dalam bentuk zip file atau melalui SVN di alamat berikut :http://belajarjava.googlecode.com/svn/trunk/OperatorKondisi
package operatorkondisi;
 
public class OperatorKondisi {
 
 /**
  * Contoh program menggunakan operator kondisi
  * 
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
 
  int x = 5;
  int y = 10, angka = 0;
  boolean bl = true;
  if((x == 5) && (x < y))
   System.out.println("Nilai x adalah " + x);
 
  if((x == y) || (y > 1))
   System.out.println("Nilai y lebih besar dari x");
  angka = bl ? x : y;
 
  System.out.println("Angka yang keluar adalah " + angka);
 }
}
Berikut adalah hasil keluarannya :

Operator Pemberi Nilai & Type Casting
Operator merupakan simbol untuk melakukan perhitungan atau suatu operasi pada satu atau lebih dari satu hal. Setelah kita mendeklarasi dan mengisi suatu variabel, kita dapat menggunakan operator untuk melakukan beberapa hal seperti penambahan, pengurangan dan sebagainya.
Operator Pemberi Nilai
= Operator pemberi nilai Operator penugasan dan pemberian nilai merupakan operator yang paling umum dalam semua bahasa pemrograman. Operator ini dilambangkan dengan "=" yang digunakan untuk memberikan nilai kepada suatu variabel di sebelah kiri operator. Jika variabel tersebut telah memiliki nilai, nilainya akan diganti dengan variabel atau angka di sebelah kanan operator.
Operator ini juga dapat digunakan untuk memberikan referensi kepada suatu objek.
Beberapa contoh :
String nama = "Budi";
boolean dewasa = true;
 
// buat objek baru
Shape s1 = new Shape(); 
 
// beri referensi s1 kepada s2
Shape s2 = s1;
 
// nilai sebelumnya diganti
dewasa = false;
Anda dapat juga memberikan nilai kepada beberapa variabel secara bersamaan. Misalnya :
x = y = z = 2;
x = (y + z);
Operator "=" dievaluasi dari kanan ke kiri. Pada ekspresi pertama, angka 2 diberikan kepada "z", kemudian nilai yang disimpan "z" diberikan kepada "y", dan kemudian "y" ke "x" secara bersamaan. Pada ekspresi kedua, nilai hasil evaluasi pertambahan dimasukkan ke variabel "x".
Pada dasarnya, kedua sisi tanda "=" harus memiliki tipe yang sama. Misalnya = A, x dan A harus memiliki tipe yang sama. Bagaimana jika tidak, misalnya
int A;
short B;
A = 17;
B = (short)A;
Pada kode di atas, B akan mengambil nilai A yang sudah dikonversi ke tipe short. Tanda (short) dalam kurung artinya menginstruksikan Java untuk mengubah nilai A menjadi short sebelum diberikan kepada B.
Perubahan tipe ini disebut type casting. Kita bisa mengubah tipe apa saja, tetapi karena rentang tiap tipe berbeda, maka nilainya belum tentu sama dengan nilai aslinya. Misalnya (short)100000 adalah -31072.
Untuk perubahan tipe dari bilangan real (float atau double) ke bilangan bulat, Java melakukan type casting dengan memangkas desimalnya. Jadi 3.56 akan diubah menjadi 3 dalam bilangan bulat.
Nilai char juga bisa diubah ke dalam bilangan bulat, yaitu dengan menggantinya dengan bilangan Unicode-nya.
Selain operasi "=", Java juga memiliki operator pemberian nilai beruntun, dan dapat digunakan oleh semua operator aritmatika, manipulasi bit, atau pergeseran bit. Misalnya pada ekspresi berikut, nilai "x" akan dijumlahkan dengan 2, kemudian hasilnya disimpan kembali ke "x".
x += 2;
Table berikut menunjukkan semua operator pemberian nilai yang dapat Anda gunakan sehingga kode Anda menjadi lebih efisien dan mudah dibaca.
OperatorContohEkspresi setara
+=x += y;x = (x + y);
-=x -= y;x = (x - y);
*=x *= y;x = (x * y);
/=x /= y;x = (x / y);
%=x %= y;x = (x % y);
&=x &= y;x = (x & y);
|=x |= y;x = (x | y);
^=x ^= y;x = (x ^ y);
< <=x < <= y;x = (x < < y);
>>=x >>= y;x = (x >> y);
>>>=x >>>= y;x = (x >>> y);
Contoh kode program yang dapat Anda unduh dalam bentuk zip file atau melalui SVN di alamat berikut :http://belajarjava.googlecode.com/svn/trunk/OperatorPemberiNilai
package operatorpemberinilai;
 
public class OperatorPemberiNilai {
 
 /**
  * Contoh program menggunakan operator pemberi nilai (assignment operator)
  * 
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  int x = 5;
  int y = 10;
 
  x += y;
  System.out.println("Hasil penjumlahan : " + x);
 
  x -= y;
  System.out.println("Hasil pengurangan : " + x);
 
  x *= y;
  System.out.println("Hasil perkalian : " + x);
 
  x /= y;
  System.out.println("Hasil pembagian : " + x);
 
  x %= y;
  System.out.println("Sisa pembagian : " + x);
 
  x &= y;
  System.out.println("Hasil operasi AND : " + x);
 
  x |= y;
  System.out.println("Hasil operasi OR : " + x);
 
  x <<= y;
  System.out.println("Hasil operasi pergeseran bit ke kiri :"+ x);
 }
}
Keluaran programnya :

Tidak ada komentar:

Posting Komentar