JAVA BASIC part 1 Panji Wisnuwirawan– div. Iptek KOMUNIKE elektro ugm Edited : 12/18/2004 7:16 AM Email :
[email protected] ||
[email protected] Artikel ini dapat disebarkan,diedit dengan tetap mencantumkan nama penulis aslinya secara bebas untuk pembelajaran, bukan untuk kepentingan komersial belaka. Kritik dan saran ataupun pertanyaan mohon disampaikan melalui email yang tertera di atas.
Pada artikel ini, akan dibahas masalah dasar-dasar pemrograman Java secara singkat, meliputi : 1. Operator 2. Dasar operasi IO 3. Seleksi Kondisi
1. Operator Pengelompokan operator adalah : aritmatika,pembandingan,logika,bit dan penugasan. Berikut akan diberikan contoh program-program yang akan menerapkan operator di atas dengan masing-masing komentar menunjukkan fungsinya operator yang bersangkutan : //file : aritmatika.java public class aritmatika{ public static void main(String[] args){ System.out.println(“1 + 2 = “ + (1+2)) //penambahan System.out.println(“1 + 2 * 3 = “ + (1 + 2 * 3)) //penambahan & perkalian System.out.println(“13 % 5 = “ + (13 % 5)) //sisa pembagian (modulus) System.out.println(“12 / 2 = “+ (12/3)) //pembagian } }
pada program di atas, ekspresi ’1 + 2’ perlu dituliskan dalam kurung agar ekspresi tersebut diperlakukan sebagai ekspresi matematika. Jika tidak, maka akan terjadi kesalahan karena operator ’+’ bisa berarti penggbungan string. Jadi (“1 + 2 = “ + (1 + 2))
artinya 1 + 2 ditampilkan sebagai String dan digabungkan dengan dengan hasil penjumlahan 1 dengan 2. Seperti halnya pada bahasa C, Java juga mendukung pre dan post increment/decrement, yaitu operator penambahan dan pengurangan dengan 1, dinyatakan berturut-turut dengan ++ dan -- . Contoh program adalah sebagai berikut : //file : pre_post.java public class pre_post{ public static void main(String[] args){ int x,y; x=5; y=x++; //post increment System.out.println("Awal x=5, y=kosong"); System.out.println("sesudah y=x++ : x = "+x+" y = "+y); x=5; y=++x; //pre increment System.out.println("x diulang = 5"); System.out.println("sesudah y=++x : x = "+x+" y = "+y); } }
Dari program di atas, anda tentu dapat mengetahui perbedaan antara pre dan post increment, yaitu, pada post increment (x++) nilai y direferensikan sama dengan x sebelum x ditambah.
1
Sedangakn pada pre increment (++x) nilai y direferensikan sama dengan x sesudah x ditambah. Operator selanjutnya adalah operator bit (Bitwise operator), yaitu untuk operasi pada kawasan bit (bit level). Berikut adalah contoh-contohnya : //file : bit.java public class bit{ public static void main(String[] System.out.println("9 & 8 = " + System.out.println("9 | 8 = " + System.out.println("9 ^ 8 = " + System.out.println("2 << 1= " + System.out.println("2 >> 1= " + } }
args){ (9&8)); //operator (9|8)); //operator (9^8)); //operator (2<<1));//operator (2>>1));//operator
and or xor geser kiri geser kanan
Apabila anda telah mengerti konsep bilangan biner dan operasi logika, maka hal di atas akan mudah dimengerti. : ) Operator berikutnya merupakan operator penugasan (assignment), yang berguna untuk memberikan suatu nilai ke variabel itu sendiri. Beberapa contoh yang akan dikemukakan disini adalah pada program berikut : public class penugasan{ public static void main(String[] args){ int x=2; System.out.println("
"); System.out.println("awal : x= 2"); x+=1; System.out.println("x+=1 : x= "+x); x-=1; System.out.println("x-=1 : x= "+x); x*=2; System.out.println("x*=2 : x= "+x); x/=2; System.out.println("x/=2 : x= "+x); } }
Apabila program di atas sudah dikompilasi dan dijalankan, maka dapat disimpulkan bahwa pada operator penugasan, sesudah variable diikuti salah satu operator dan tanda sama dengan kemudian diikuti lagi dengan nilai yang ingin dioperasikan dengan variabel tersebut. Jadi misalnya x += 1 maka artinya adalah: x = x+1 Untuk penugasan operasi bit, sama halnya seperti operasi penugasan aritmatika di atas. Pada operator,yang perlu diperhatikan adalah operator precedence (urutan pengerjaan operator). Berikut adalah tabel yang menunjukkan operator precedence pada Java (diambil dari buku Teach Yourself Java in 12 Days karangan Laura Lemay) :
2
Operator
Table Operator precedence. Notes
. [] ()
Parentheses (()) are used to group expressions; dot (.) is used for access to methods and variables within objects and classes (discussed tomorrow); square brackets ([]) are used for arrays (this is discussed later on in the week)
++ -- ! ~ instanceof
The instanceof operator returns true or false based on whether the object is an instance of the named class or any of that class's subclasses (discussed tomorrow)
new (type)expression
The new operator is used for creating new instances of classes; () in this case is for casting a value to another type (you'll learn about both of these tomorrow)
* / %
Multiplication, division, modulus
+ -
Addition, subtraction
<< >> >>>
Bitwise left and right shift
< > <= >=
Relational comparison tests
== !=
Equality
&
AND
^
XOR
|
OR
&&
Logical AND
||
Logical OR
? :
Shorthand for if...then...else
= += -= *= /= %= ^=
Various assignments
&= |= <<= >>= >>>=
More assignments
Dengan melihat tabel di atas, dapat diketahui mengapa pada contoh aritmatika.java operasi 1+2*3 operasi perkalian dikerjakan lebih dahulu daripada operasi penjumlahan.
2.Dasar Operasi IO Pada saat program dijalankan, terdapat tiga buah stream ysng telah disediakan Java, yaitu: 1. System.in : menangani pembacaan dari keyboard (standar input) 2. System.out : mengirimkan keluaran ke layar (standar output) 3. System.err : mengirimkan kesalahan (standar error) Anda telah menggunakan System.out untuk menampilkan keluaran ke layar. System.out mempunyai metode print() dan println(). Bedanya, print() tidak menambahkan newline sehingga tidak terjadi perpindahan baris. Sayangnya, Java tidak mendukung perintah sederhana dari keyboard seperti readln pada Pascal. Satu-satunya pernyataan sederhana untuk memasukkan karakter adalah System.in.read(). Meode ini memerlukan blok try…catch… yang akan dijelaskan kemudian. Berikut adalah program untuk contoh masukan data dari keyboard :
3
//file:bacaKey.java import java.io.*;
//mengimport paket java.io
class masukan{ public String baca(){ //metode baca untuk membaca masukan int karakter;//variabel untuk menyimpan karakter masukan (bilangan) String str=""; //variabel untuk menimpan karakter boolean selesai=false; while(!selesai){ try{ karakter = System.in.read(); if(karakter<0 || (char)karakter == '\n') selesai=true; else if ((char)karakter != '\r') str = str+(char)karakter; }catch(IOException e){ System.err.println("Ada kesalahan"); selesai=true; } } return str; } } public class bacaKey{ //kelas utama public static void main(String[] args){ masukan m = new masukan(); System.out.print("MAkanan kesukaan : "); String mkn = m.baca(); System.out.println(mkn+" pasti enakk!!!"); } }
Secara sederhana,logika program di atas adalah program menyimpan masukan dari keyboard dalam bentuk bilangan terlebih dahulu,baru kemudian bilangan yang spesifik yang mewakili suatu karakter tersebut akan dikodekan sebagai sebuah karakter.
3. Seleksi Kondisi Sebelum belajar lebih jauh mengenai seleksi kondisi, terlebih dahulu diperkenalkan masalah boolean expression, yaitu pernyataan benar dan salah. Dalam Java, pernyataan benar berupa ‘true’ dan salah adalah ‘false’. Ekspresi ini akan lebih jelas bila digambarkan dalam program berikut yang sekaligus menunjukkan mengenai operasi relasional : //file :relationalOperator.java public class relationalOperator{ public static void main(String[] args){ int a=1,b=2; System.out.println("a = 1 dan b = 2"); System.out.println("a==b :" + (a==b)); System.out.println("a!=b :" + (a!=b)); System.out.println("a>b :" + (a>b)); System.out.println("a=b :" + (a>=b)); System.out.println("a<=b :" + (a<=b)); } }
//a //a //a //a //a //a
sama dengan b? tidak sama dengan b? lebih besar b? lebih kecil b? lebih besar sm dgn b ? lebih kecil sm dgn b ?
Setelah program di atas anda jalankan apa yg terjadi? Anda akan mendapatkan nilai true dan false sesuai hasil dari operator relasi tersebut.
4
Baiklah.... sekarang kita masuk pada seleksi kondisi. Yang akan dibahas di sini adalah seleksi kondisi if-then-else, do-while, while, serta switch-case. Kita bahas satu per satu.
3.1. if-then-else Sebenarnya ada 3 macam bentuk if sebagai berikut : 1. if(kondisi){ statemen } 2. if(kondisi){ statemen1 }else{ statemen2 } 3. if(kondisi1){ statemen }else if(kondisi2){ statemen2 }..... else if(kondisiX){ statemenX }else{ statemenFinal }
Bentuk pertama hanya menyeleksi 1 kondisi apakah kondisi tersebut benar atau salah. Jika benar, maka statemen dijalankan. Sedangkan bentuk ke 2 akan menyeleksi kondisi. Jika benar, maka statemen1 dijalankan dan jika kondisi salah maka statemen2 dijalankan. Bentuk ke 3 akan menyeleksi beberapa kondisi sampai kondisi ke-X. Jika tidak ada kondisi sampai ke X yang benar, maka statemenFinal akan dijalankan. Kondisi benar dan salah di atas menggunakan operasi logika seperti yang telah dijelaskan. Berikut adalah contoh program untuk ketiga kondisi di atas. //program untuk if bentuk 1. file : ifBentuk1.java public class ifBentuk1{ public static void main(String[] args){ int a=5; if(a==5){ System.out.println(”Nilai a=5”); } } }
5
//program if bentuk 2. file : ifBentuk2.java public class ifBentuk2{ public static void main(String[] args){ int a=5; if(a==5){ System.out.println(”Nilai a=5”); }else{ System.out.println(”Nilai a bukan 5”); } } } //program if bentuk 3. file : ifBentuk3.java public class ifBentuk3} public static void main(String[] args){ int a=6; if(a>10){ System.out.println(”a lebih besar dari 10”); }else if(a<0){ System.out.println(”a lebih kecil dari 0”); }else{ System.out.println(”nilai a antara 0 sampai 6”); } } }
3.2. do-while Seleksi kondisi bentuk ini mempunyai syntax sebagai berikut : do{ statemen }while(kondisi)
Jadi selama kondisi benar, statemen dijalankan. Berikut contoh programnya : //contoh do-while. File : doWhile.java public class doWhile { public static void main(String[] args){ int i=1; do{ System.out.println(”i = ”+i); i++; }while(i<5); } }
3.3. while Beda seleksi kondisi ini dengan sebelumnya adalah bahwa do-while setidaknya mengerjakan sekali statemen-nya walaupun kondisi sudah salah. Jadi ”kerjakan duluseleksi kemudian”, sedangkan yang ini adalah ”seleksi dulu, baru kerjakan”. Contoh program dengan while ini adalah :
6
//contoh while. File : contohWhile.java public class contohWhile { public static void main(String[] args){ int i=1; while(i<5){ System.out.println(”i = ”+i); i++; } } }
3.4. switch-case Statemen ini sangat simple dan mudah dimengerti. Syntax-nya adalah : switch(kondisi){ case kondisi1 : statemen1;break; case kondisi2 : statemen2;break; ................................ default : statemenFinal; }
Contoh : //contoh program switch-case. File : switTes.java public switTes tes{ public static void main(String[] args){ int i=1; switch(i){ case 1 : System.out.println(“Nilai i=”+i);break; case 2 : System.out.println(“Nilai i=”+i);break; default: System.out.println("Nilai i bukan 1 atau 2”); } } }
default akan dijalankan bila kondisi 1 dan 2 tidak terpenuhi.
Demikian artikel ini ditulis, kurang dan lebihnya mohon maaf. Pada bagian kedua artikel ini akan membahas masalah array, argumen, dan exception.
7