1

Melihat lebih dekat “SelamatDatang” Posted Sab, 02/07/2009 - 17:52 by belajarprogram Versi ramah cetak Applikasi SelamatDatang memiliki 4 komponen, yaitu : definisi paket (package) • komentar • definisi kelas (class) • metode main package selamatdatang;

public class SelamatDatang { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("Selamat Datang!"); } } Mari kita bahas satu per satu. Definisi paket (package) package selamatdatang; Package dalam Java merupakan kumpulan dari berbagai kode yang terangkum dalam satu paket. Untuk memudahkan penulisan dan pembagian logika suatu program, satu paket terbagi menjadi beberapa berkas (file) di mana setiap file memiliki fungsi atau tugas yang sangat khusus, misalnya satu file berfungsi untuk mendeklarasikan konstanta dan kelas, sementara file yang lain berisi implementasi kelas dan prosedurnya. Pada contoh aplikasi SelamatDatang di atas, paket ini hanya berisi satu buah file yang isinya terdiri dari satu kelas dan satu metode. Definisi paket tidak selalu diperlukan, tetapi hal ini merupakan kebiasaan baik untuk melatih kita berfikir secara logis dan sistematis. Komentar /** * @param args */ // TODO Auto-generated method stub Komentar tidak akan diproses oleh kompiler tetapi berguna bagi programmer lain. Bahasa Java memiliki 3 jenis komentar :

2
• •

/* text */ — Compiler akan mengabaikan kata kata antara /* dan */ /** documentation */ — Ini merupakan komentar yang dipergunakan khusus untuk dokumentasi. Kompiler akan mengabaikan komentar dari /* hingga */. Alat bantu javadoc akan memproses komentar dokumentasi untuk membuat dokumentasi secara otomatis dari sumber program. // text — Kompiler akan mengabaikan segala sesuatu dari // hingga akhir baris

Definisi Kelas public class SelamatDatang { ... } Kelas merupakan bagian integral dari bahasa Java karena Java merupakan bahasa berorientasi objek. Setiap aplikasi harus terdiri dari satu kelas. Di sini kita definisikan kelas SelamatDatang sebagai kelas utama. Metode main Dalam bahasa pemrograman Java, setiap aplikasi harus memiliki satu buah metode main yang bentuknya seperti berikut : public static void main(String[] args) { ... } Metode main mirip dengan fungsi main pada bahasa C/C++ di mana fungsi ini merupakan pintu gerbang dimulanya suatu program. Metoda main dapat dipanggil dengan menyertakan variabel, baik hanya satu variabel, banyak variabel atau bahkan tidak ada sama sekali. Yang terakhir adalah perintah berikut untuk menampilkan Selamat Datang pada komputer Anda. System.out.println("Selamat Datang!"); Perintah tersebut menggunakan pustaka inti Java, yaitu kelas Sistem. Variabel dan Tipe Data Posted Min, 02/08/2009 - 01:10 by belajarprogram Versi ramah cetak Nama merupakan hal penting dalam teknik pemrograman. Dalam suatu program, nama digunakan untuk menyebut sesuatu. Untuk menggunakan "sesuatu" tersebut, programmer harus mengerti bagaimana aturan pemberian nama dan aturan untuk menggunakan nama tersebut dalam programnya. Atau dengan kata lain, programmer harus mengerti sintaks dan semantik dari nama. Menurut aturan sintaks Java, nama merupakan rangkaian dari 1 atau lebih karakter. Harus dimulai dengan huruf dan harus terdiri dari huruf, angka atau karakter garis bawah '_'. Berikut ini adalah contoh nama yang diperbolehkan: N n rate x15 quite_a_long_name HelloWorld Hurus kecil dan huruf besar dianggap sehingga HelloWorld, helloworld, HELLOWORLD, dan heLLOwoRLD adalah berbeda, nama yang

3

berbeda-beda. Beberapa kata tertentu merupakan nama yang memiliki kegunaan tertentu oleh Java, dan tidak dapat dipergunakan oleh programmer. Kata-kata ini disebut reserved words (katakata cadangan) misalnya: class, public, static,if, else, while, dan lain-lain. Hal lain yang penting adalah compound names atau nama campuran, yaitu yang merupakan nama biasa yang dihubungkan dengan titik, misalnya System.out.println. Idenya adalah "sesuatu" pada Java dapat terdiri dari "sesuatu" yang lain. NamaSystem.out.println artinya System menampung out dan out menampung println. Kita sebut "sesuatu" sebagai identifier(pengenal) tidak peduli apakah ia berupa nama tunggal atau campuran. Program melakukan manipulasi data yang disimpan dalam memori. Dalam bahasa mesin, data hanya bisa diambil dengan menyebut alamatnya di memori. Dalam bahasa pemrograman tingkat tinggi seperti Java, nama bisa digunakan untk mengganti alamat data tersebut di memori. Tugas komputer adalah untuk melacak di mana data tersebut di simpan, sedangkan programmer menggunakan nama untuk memerintahkan komputer mengambil data tersebut dari memori. Nama yang digunakan seperti ini disebut variable. Variabel sebenarnya berarti lebih kompleks. Variabel bukan isi dari data, tapi lokasi di memori yang menyimpan data tersebut. Variabel bisa diibaratkan sebagai kotak penyimpanan data, bukan isi kotaknya. Karena data di dalam kotak bisa berubah, variabel hanya dapat dipercaya pada satu saat saja, walaupun tempatnya selalu sama. Dalam bahasa Java, satu-satunya cara untuk memasukkan data ke dalam variabel adalah dengan menggunakan assignment statement, atau pernyataan pemberian nilai. Pernyataan ini berbentuk: variable = ekspresi; di mana ekspresi menyatakan apapun yang berhubungan dengan nilai suatu data. Ketika komputer menjalankan instruksi ini, komputer akan menghitung dan menyimpan hasilnya ke dalam variabel. Contoh: kecepatan = 40; Variable dalam pernyataan di atas adalah kecepatan dan ekspresinya adalah angka 40. Komputer menghitung pernyataan ini dan menyimpan 40 ke dalam variabel kecepatan, dan mengganti apapun yang telah disimpan sebelumnya. Sekarang misalnya kita ingin melakukan perhitungan yang lebih kompleks: jarak = kecepatan * waktu Di sini, * merupakan operasi perkalian. Komputer mengambil data yang disimpan dalam variabel kecepatan dan waktu, melakukan perkalian, dan menyimpan hasilnya dalam jarak. Variabel dalam bahasa Java didesign untuk menyimpan hanya 1 jenis tipe data. Kompiler akan menampilkan kesalahan sintax apabila variabel ini dicoba untuk diberi tipe data jenis lain. Oleh karena itu Java disebut bahasa pemrograman bertipe kuat ataustrongly typed language.

4

Ada 8 tipe data primitif dalam bahasa Java. Jenis Deskripsi Ukuran Minimum Data boolean char byte short int long float double Hanya bisa berisi benar atau salah Karakter Unicode Bilangan bulat Bilangan bulat Bilangan bulat Bilangan bulat Bilangan riil Bilangan riil 1-bit 16-bit 8-bit 16-bit 32-bit 64-bit 32-bit 64-bit -127 -32768 -2147483648 -9223372036854775808

Maksimum

128 32767 2147483647 9223372036854775807

1.40129846432481707e3.40282346638528860e+38 45 4.94065645841246544e1.79769313486231570e+308 324

Suatu variabel baru dapat digunakan apabila telah dideklarasikan. Pernyataan deklarasi variabel digunakan untuk mendeklarasikan satu atau lebih variabel dan memberinya nama. Ketika komputer mengeksekusi deklarasi variabel, komputer akan menyediakan ruangan di memori kemudian menyimpan alamat ini sesuai dengan nama variabel yang diberikan. Deklarasi variable berbentuk seperti : nama_tipe nama_variabel; nama_variabel dapat berupa sebuah nama variabel atau beberapa nama sekaligus yang dipisah dengan koma. Gaya pemrograman yang baik yaitu dengan mendeklarasikan satu variabel dalam satu pernyataan, kecuali variabel tersebut berhubungan erat satu sama lain. Misalnya: float num; String nama; String nama; boolean bol; int x,y; Atau pendeklarasian variabel bisa juga dilakukan sekaligus dengan pemberian nilainya, seperti pada contoh berikut: int num = 1000; char ch = 'e'; float angka = -1.504; boolean bol = true; Jenis-jenis Variabel Java memiliki beberapa jenis variabel yang dapat dikelompokkan sebagai berikut :

Instance Variables (tidak statis). Dalam bahasa pemrograman berorientasi objek, objek menyimpan variabel yang tidak dideklarasikan dengan kata kunci static dalam kategori

5

non-statis, atau dapat berubah-ubah. Suatu kelas dapat dijelmakan ke dalam beberapa objek. Nilai yang terkandung dalam variabel tak-statis ini berbeda untuk setiap objeknya. Class Variables (statis). Variabel ini merupakan bagian integral dari suatu kelas, dan tidak ada satu objek pun yang dapat menyatakan kepemilikan atas variabel ini. Variabel yang dideklarasikan sebagai statis digunakan bersama oleh semua objek. Variabel ini lebih bersifat global yang nilainya sama untuk setiap objek pada kelas yang bersangkutan. Local Variables. Variabel ini didefinisikan di dalam suatu metoda (method) atau dalam suatu prosedur. Variabel ini bersifat lokal karena hanya dapat diakses oleh metoda atau prosedur tersebut. Parameter. Paramater atau argumen adalah variabel yang digunakan pada saat suatu metoda atau prosedur dipanggil. Parameter berguna untuk memberikan nilai awal untuk diteruskan (pass) ke dalam suatu prosedur atau metoda.

Literal Pada bagian ini akan dijelaskan tentang literal, yaitu rangkaian kata atau huruf yang menyatakan suatu nilai. Misalnya int angka = 10; Pada pernyataan di atas, yang dinamakan literal adalah 10, karena 10 berarti bilangan bulat atau integer. Pada bahasa pemrograman java, terdapat beberapa jenis literal yang melambangkan bilangan bulat, riil, kalimat, atau boolean. Literal Bilangan Bulat Bilangan bulat dapat dilambangkan dalam beberapa bentuk. Bilangan bulat biasa dilambangkan dengan deretan angka yang dimulai dengan angka yang bukan nol. int angka = -10; Bilangan oktal adalah bilangan bulat berbasis 8, yang berarti hanya dapat terdiri dari angkaangka 0 hingga 7. Bilangan oktal ditulis seperti bilangan bulat biasa dimulai dengan 0. // 22 basis delapan atau 18 dalam desimal int angka = 022; Bilangan heksadesimal adalah bilangan berbasis 16. Bilangan heksadesimal dilambangkan dengan 0 hingga 9 dan a hingga f dan dimulai dengan 0x. // 2a heksadesimal atau 42 dalam desimal int angka = 0x2a; Long integer. Seperti dijelaskan pada bab terdahulu long integer membutuhkan memori sebesar 64bit, yang artinya kita dapat menyimpan bilangan bulat hingga 2 ^ 64. Untuk merepresentasikan long integer, tambahkan huruf L pada akhir bilangan. int angka = 22L; Literal Karakter

8 x 10308 Presisi (jumlah digit) 6-7 15 Imbuhan akhir d atau D dan f atau F dapat pula ditambahkan untuk menentukan tipenya secara eksplisit. double d = 3. atau eksponen (dilambangkan dengan e atau E). pada java dapat disimpan baik sebagai float atau double. Tipe float double Ukuran bytes 4 8 bit 32 64 Rentang +/. \b = tombol backspace. \\ = karakter \ \’ = karakter ‘ \” = karakter ” Literal Boolean Nilai true dan false pada java merupakan literal boolean. boolean ok = true. \r = carriage return.14159. pecahan. Selain itu ada beberapa karakter lain selain alfabet yang dapat dilambangkan dengan escape sequence. Caranya dengan memulainya dengan \u00 (garis miring terbalik) kemudian diikuti dengan kode ASCII nya dalam bentuk heksadesimal. \t = tombol tab. Berikut ini beberapa contohnya. Literal String . Literal Bilangan Riil Bilangan riil. float pi = 3.842. misalnya -0. Suatu karakter dapat juga dilambangkan dengan kode ASCII nya.4 x 1038 +/. Ingat bahwa boolean true atau false TIDAK menggunakan tanda petik tunggal seperti ekspresi pada karakter. Berikut beberapa contohnya.00127 atau 415. Bilangan real dapat direpresentasikan dalam bentuk desimal biasa. // huruf 'A' dalam ASCII char huruf = '\u0041'.1.3. float f = 4f.27E+32. Suatu variabel bertipe boolean hanya dapat memiliki nilai true atau false. \n = tombol enter atau baris baru.6 Kita dapat melambangkan suatu karakter dengan tanda petik tunggal misalnya ‘a’ atau ‘3′ atau ‘=’.

string bukan merupakan tipe primitif. Kode program dapat anda unduh dalam bentuk zip file atau melalui SVN di alamat berikut : http://belajarjava." Literal Null Literal terakhir pada bahasa java adalah literal null.01:58 by belajarprogram Versi ramah cetak Berikut ini adalah listing program penghitungan bunga bank. // String dapat juga dipisah menjadi beberapa baris teks = "ini baris pertama " + "dan ini lanjutannya. Berikut ini adalah beberapa contoh lainnya. Misalnya String hallo = "Selamat Datang \"Bapak Presiden\"". Java menyediakan beberapa metoda untuk melakukan penggabungan. System. Berikut ini adalah contohnya obj = null. Null merupakan kondisi di mana suatu objek tidak diberi alokasi memori. komputer akan mengalokasikan memori untuk objek tersebut.googlecode. Dalam bahasa java.println("Hallo Bambang\nSelamat pagi. public class BungaBank { /** * @param args . atau perbandingan. // Contoh string kosong String teks = "". tetapi merupakan kelas. kita dapat melepas lokasi memori yang digunakan oleh objek tersebut sehingga memori itu dapat digunakan oleh objek lain.\nSemoga hari anda cerah\n".Instalasi.out. Apabila objek tersebut telah selesai dipergunakan. package bungabank. Literal null berfungsi memberi tahu garbage collector (pemulung memori) bahwa objek tersebut tidak lagi terpakai. String juga dapat mengandung karakter spesial seperti dibahas pada literal karakter.com/svn/trunk/BungaBank Lihat cara mengimpor contoh-contoh program ke dalam Eclipse di Bab II . String ditulis di antara dua tanda petik ganda seperti contoh berikut. Pada saat suatu objek dideklarasikan. Kemudian memori akan dilepaskan agar dapat digunakan oleh objek lain. String pada java tidak disimpan dalam bentuk array seperti pada C. String salam = "Selamat Datang". 02/11/2009 . Contoh Program Variabel dan Tipe Data Posted Rab.7 String merupakan untaian huruf dan angka yang tersusun menjadi satu kalimat. // Contoh string berisi " teks = "\"". modifikasi.

8 */ public static void main(String[] args) { // TODO Auto-generated method stub /* Deklarasi variable */ double pokok.print("Bunga yang dihasilkan adalah Rp.out. "). double sukubunga. } } .println(bunga). System. System. ").out. sukubunga = 0.println(pokok).print("Nilai investasi setelah 1 tahun adalah Rp.10. // sama dengan 10% bunga = pokok * sukubunga. double bunga.out.out. System. pokok = pokok + bunga. /* Cetak hasil keluaran */ System. // nilai investasi // suku bunga bank // nilai bunga /* Perhitungan */ pokok = 20000.

Di bagian ini kita akan belajar bagaimana String digunakan dan juga mempelajari konsep pemrograman penting yang lain. untuk memberitahu kepada sistem operasi alasan kenapa program dihentikan. 02/11/2009 . kelas System juga memiliki subrutin statik yang bernama exit. sedangkan status lain berarti ada sesuatu yang salah yang terjadi di tengah eksekusi program tersebut.05:29 by belajarprogram Versi ramah cetak Bagian sebelumnya memperkenalkan 8 jenis tipe data primitif dan tipe data String.02:13 by belajarprogram Versi ramah cetak Kelas sebagai kumpulan subrutin dan variabel statik Selain sebagai tipe data.exit(0) atauSystem. Fungsi kelas yang lain adalah untuk mendeskripsikan suatu objek. dan digunakan apabila karena suatu hal (misalnya program telah selesai atau adanya error) program harus dihentikan.9 String. Objek akan dibahas pada bagian lain mengenai kelas (class). seperti pada main(). Subrutin exit menerima parameter bilangan bulat. Contohnya adalah pada program SelamatDatang. Misalnya String sebenarnya merupakan nama kelas yang disediakan bahasa Java. String juga berupa tipe data dan kalimat seperti "Selamat Datang!" adalah isi dari tipe data String. Kelas terdiri dari variabel dan subrutin yang disimpan di dalamnya. Java menyediakan kelas standar yang siap digunakan. Subrutin adalah kumpulan instruksi program yang digabungkan sehingga memiliki fungsi tertentu. misalnya System. Misalnya kelas String juga menyimpan beberapa subrutin statik selain juga sebagai tipe data. 02/08/2009 . Variabel dan subrutin ini disebut static member (anggota statis). Nilai yang disimpan dalam tipe data itu adalah objek. Contoh kelas standar lainnya adalah Math yang berisi kumpulan subrutin statik untuk melakukan berbagai perhitungan matematis. setiap subrutin termasuk di dalam bagian suatu kelas atau objek.exit(1). Kelas di sini berfungsi seperti tipe data. . Dalam bahasa Java. Sebenarnya ini adalah tujuan subrutin. yaitu subrutin. Kegunaan kelas baik sebagai gabungan subrutin ataupun sebagai objek sering membingungkan. Memanggil System. Nilai tipe String adalah objek yang memiliki kumpulan subrutin yang dapat digunakan untuk memanipulasi String tersetbut. Status 0 berarti program berhenti normal tanpa adanya error.exit akan menghentikan jalannya program. Kelas sebagai kumpulan subrutin dan variabel statik Posted Rab. Perbedaan mendasar antara tipe primitif dan String adalah : nilai dari tipe String berupa objek. Kita bisa memanggil subrutin tersebut tanpa harus mengerti bagaimana subrutin tersebut bekerja. Objek dan Subrutin Posted Min. Anggota yang berupa static member diberi imbuhan static. yaitu sekumpulan perintah yang memiliki fungsi tertentu tanpa harus mengetahui secara detail apa yang terjadi di dalam. kelas SelamatDatang memiliki anggota main() yang merupakan anggota statis kelas itu.

sqrt. Fungsi adalah subrutin yang mengembalikan (return) suatu nilai. dan modulo (atau sisa pembagian).sqrt(x). misalnya menuliskan hasilnya di layar seperti System.Operator pengurangan * Operator perkalian / Operator pembagian % Operator sisa pembagian Operator aritmatika digunakan untuk melakukan operasi matematika.com/svn/trunk/OperatorAritmatika Lihat cara mengimpor contoh-contoh program ke dalam Eclipse di Bab II . n = n * 1. makanMath. Contoh penggunaan : Simbol + * / % + Nama operator Operator penjumlahan Operator pengurangan Operator perkalian Operator pembagian Operator sisa pembagian Operator penyambung string Contoh penggunaan n = n + 1. Beberapa di antaranya melakukan perhitungan lalu melaporkan hasil perhitungannya.sqrt(x) menghitung akar kuadrat dari x dan mengembalikan hasil perhitungannya.sqrt(x).sqrt(x) ).print( Math. Contoh kode program yang dapat Anda unduh dalam bentuk zip file atau melalui SVN di alamat berikut :http://belajarjava. Ada juga yang berfungsi untuk mengambil data dari tempat tertentu dan melaporkan data yang didapat. n = "saya "+"tidur".Instalasi. 02/11/2009 . n = n / 1. atau menyimpan hasilnya pada variabel lain. pengurangan.googlecode. // Menampilkan akar kuadrat x di layar. Subrutin jenis ini disebut function (fungsi). Fungsi ini merupakan anggota statik dari kelas yang bernama Math. seperti penambahan. Sebagai contoh adalah fungsi untuk menghitung akar kuadrat dari suatu bilangan.02:29 by belajarprogram Versi ramah cetak + Operator penjumlahan (juga sebagai penyambung string) .out. n = n . kita tidak bisa memanggil fungsi ini seperti Math. Java memiliki fungsi seperti itu yang disebutMath.10 Setiap subrutin melakukan fungsi tertentu. Operator Aritmatika Posted Rab.1. Jika x adalah suatu bilangan.sqrt(x) mengembalikan suatu bilangan. package operatoraritmatika. Karena Math. seperti panjangDiagonal = Math. . pembagian. n = n % 1. Nilai yang dikembalikan akan digunakan lebih lanjut dalam program. // Tidak masuk akal! Kita tentunya ingin menggunakan hasilnya untuk instruksi selanjutnya.

println("Sisa pembagian (z%x) : " + g). System. System. g = x * y.println("Pembagian (y/x) : " + g).x. System.println("Hasilnya sekarang : " + g). g = z % y.out. g = x + y.out.println("Penjumlahan (x+y) : " + g). int z = 3.11 public class OperatorAritmatika { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub int x = 2.out.out. } } Keluaran Program : .out. g = y . System. System. int y = 5.println("Pengurangan (y-x) : " + g).println("Perkalian (x*y) : " + g). g = y / x. System. g = x + (y * (z/x)).out. int g = 0.

karena variabel final berupa konstanta yang tidak dapat diubah-ubah. dapat pula digunakan untuk menegatifkan suatu bilangan ++ Operator kenaikan. angka = -1.12 Operator Tunggal Posted Rab. dapat pula digunakan angka = -angka. mengurangkan suatu bilangan dengan 1 ! Operator lawan. angka = --angka. 02/11/2009 . menambah suatu bilangan dengan 1 -.02:33 by belajarprogram Versi ramah cetak + Operator plus. menyatakan nilai negatif.Operator penurunan. . Simbol Nama operator Operasi + ++ -Operator plus menyatakan nilai positif Operator minus Operator kenaikan Operator penurunan Contoh angka = +1. membalik nilai suatu boolean Operator tunggal hanya membutuhkan satu operan untuk melakukan operasinya. Beberapa jenis operator tunggal diberikan pada tabel di bawah ini. // untuk menegatifkan suatu bilangan sekarang angka bernilai 1 menambah suatu bilangan dengan 1 mengurangkan suatu bilangan dengan 1 angka = ++angka. menyatakan nilai negatif.Operator minus. Operator ini tidak dapat digunakan untuk variabel final. menyatakan nilai positif (setiap angka tanpa tanda ini akan dianggap sebagai positif) .

. karena penambahan nilai "x" dilakukan terlebih dahulu. lalu hasilnya diberi kepada "y". package operatortunggal. int y = 0. System. System. penambahan/pengurangan dilakukan sebelumnya. x = 0.println("\nContoh operator pada sufix (akhiran)").out.println("Nilai y = x++ :" + y).println("Contoh operator pada prefix (awalan)"). System. Apabila operator ++ diletakkan di awal (prefix).out.com/svn/trunk/OperatorTunggal Lihat cara mengimpor contoh-contoh program ke dalam Eclipse di Bab II . 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.out. } } Jalankan program tersebut dan lihat hasilnya.println("Nilai y = ++x : " + y).out.out.googlecode.println("Nilai x baru :" + x). Walau bagaimanapun pada akhirnya keduanya akan menghasilkan x = x+1 atau x = x-1. Jika diletakkan di depan (++x atau --x).13 ! Operator lawan membalik nilai suatu boolean ok = !true. System. Operator kenaikan dan penurunan dapat diletakkan di belakang atau di depan suatu variabel.println("---------------------------").out. System. y = x++. y = 0. System.Instalasi. public class OperatorTunggal { /** * Contoh program menggunakan operator tunggal * * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub int x = 0. System.println("---------------------------"). sedangkan apabila diletakkan di akhir (x++ atau x--) penambahan/pengurangan dilakukan setelahnya.out.println("Nilai x baru : " + x). y = ++x. maka nilai "x" dan "y" akan sama.out. System.

. Baru kemudian nilai "x" ditambahkan. dan compareTo()seperti dibahas pada bagian sebelumnya. Java akan memberi nilai "y" dengan nilai "x" sebelum operasi ++ dilakukan. operasi pembanding akan membandingkan alamat memory tempat objek itu disimpan. sedangkan Operator Pembanding membandingkan 2 nilai seperti pada operasi matematika. gunakan equals(). bukan membandingkan isinya. nilai "y" adalah nilai "x" terdahulu. Catatan : Pada objek. equalsIgnoreCase(). dalam hal ini operasinya dilakukan pada dua operand. Operator boolean adalah operator kondisi yang kedua operandnya berupa nilai boolean (true atau false). Boolean dan Kondisi Posted Rab.02:36 by belajarprogram Versi ramah cetak Operator kondisi (conditional operator) menghasilkan nilai true atau false tergantung dari variabelnya. seperti String.14 Apabila operator ++ diletakkan di akhir (sufix). Berikut ini adalah screenshot keluarannya : Operator Pembanding. Untuk membandingkan isi String. 02/11/2009 .

Operator kondisi OR Operator kondisi OR menghasilkan "true" jika salah satu operandnya bernilai "true". hasilnya akan selalu "false" tidak tergantung pada isi dari Op2. Op1 atau Exp1 Op2 atau Exp2 Hasil true true false false true false true false true false false false Operator && akan mengevaluasi Op2 (di sebelah kanan) HANYA jika operand 1 bernilai "true". b = (1 == 2). Seperti terlihat dari tabel di atas. b = true || false. Berikut ini table kebenaran oeprasi OR.15 Simbol == != > >= < <= && || ! ?: Nama operator Sama dengan Tidak sama dengan Lebih besar Lebih besar atau sama dengan Lebih kecil Lebih kecil atau sama dengan Conditional AND Conditional OR NOT Bentuk pendek dari if-then-else Contoh b = (1 == 2). apabila Op1 (di sebelah kiri) bernilai "false". Operator boolean AND Operator kondisi AND menghasilkan "true" apabila kedua operandnya bernilai "true". hasilnya akan selalu "true" tidak tergantung pada isi dari Op2. b = (1 < 2). operator ini menghasilkan "false". operator ini menghasilkan "false". Op1 atau Exp1 Op2 atau Exp2 Hasil true true false false true false true false true true true false Operator || akan mengevaluasi Op2 (di sebelah kanan) HANYA jika operand 1 bernilai "false". apabila Op1 (di sebelah kiri) bernilai "true". . b = (1 <= 2). b = !true. b = true && false. b = (1 > 2). Jika keduanya "false". Jika salah satunya atau keduanya "false". Berikut ini tabel kebenaran operasi AND. Seperti terlihat dari tabel di atas. b = (1 >= 2).

karena ekspresi (1 > 2) adalah salah (atau "false"). } . if((x == 5) && (x < y)) System.com/svn/trunk/OperatorKondisi package operatorkondisi.googlecode. Secara umum kondisi ? jika_benar : jika_salah Pada dasarnya operator "?:" akan mengevaluasi "kondisi". operator akan mengembalikan "jika_benar". tetapi apabila "kondisi" bernilai "false". Operator ini mengecek nilai boolean dari suatu operand atau expresi kemudian membalik nilainya (dari true ke false atau false ke true). if((x == y) || (y > 1)) System. angka = bl ? x : y. Apabila kondisi bernilai "true". Berikut ini adalah tabel kebenaran operator NOT. Contoh kode program yang dapat Anda unduh dalam bentuk zip file atau melalui SVN di alamat berikut :http://belajarjava. boolean bl = true.16 Operator NOT Operator NOT ("!") melakukan operasi boolean NOT pada operand atau ekspresi tunggal.println("Nilai x adalah " + x).out. public class OperatorKondisi { /** * Contoh program menggunakan operator kondisi * * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub int x = 5. System. int y = 10.println("Angka yang keluar adalah " + angka). "x" akan memiliki nilai 20. angka = 0.out. yang pada dasarnya merupakan bentuk pendek dari if-then-else. operator akan mengembalika "jika_salah".println("Nilai y lebih besar dari x"). Misalnya x = (1 > 2) ? 10 : 20 Dari contoh di atas.out. Op1 Hasil true false false true Operator Ternary (?:) Java memiliki operator berkondisi lain yang disebut ternary "?:".

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. Setelah kita mendeklarasi dan mengisi suatu variabel. pengurangan dan sebagainya.17 } Berikut adalah hasil keluarannya : Operator Pemberi Nilai & Type Casting Posted Rab. 02/11/2009 . nilainya akan diganti dengan variabel atau angka di sebelah kanan operator. Jika variabel tersebut telah memiliki nilai. Operator ini juga dapat digunakan untuk memberikan referensi kepada suatu objek.02:27 by belajarprogram Versi ramah cetak Operator merupakan simbol untuk melakukan perhitungan atau suatu operasi pada satu atau lebih dari satu hal. kita dapat menggunakan operator untuk melakukan beberapa hal seperti penambahan.

Misalnya pada ekspresi berikut. x dan A harus memiliki tipe yang sama. B akan mengambil nilai A yang sudah dikonversi ke tipe short. Nilai char juga bisa diubah ke dalam bilangan bulat. Misalnya : x = y = z = 2. nilai hasil evaluasi pertambahan dimasukkan ke variabel "x". x = (y + z). Pada dasarnya. // buat objek baru Shape s1 = new Shape(). dan kemudian "y" ke "x" secara bersamaan. manipulasi bit.56 akan diubah menjadi 3 dalam bilangan bulat. atau pergeseran bit. Misalnya (short)100000 adalah -31072. kemudian hasilnya disimpan kembali ke "x". Selain operasi "=". dan dapat digunakan oleh semua operator aritmatika. Pada kode di atas. Pada ekspresi kedua. Untuk perubahan tipe dari bilangan real (float atau double) ke bilangan bulat. misalnya int A. Java melakukan type casting dengan memangkas desimalnya. nilai "x" akan dijumlahkan dengan 2. Misalnya x = A. // beri referensi s1 kepada s2 Shape s2 = s1. Perubahan tipe ini disebut type casting. Operator "=" dievaluasi dari kanan ke kiri. . A = 17. Anda dapat juga memberikan nilai kepada beberapa variabel secara bersamaan. // nilai sebelumnya diganti dewasa = false. Kita bisa mengubah tipe apa saja. Bagaimana jika tidak. short B. Java juga memiliki operator pemberian nilai beruntun. B = (short)A. x += 2. boolean dewasa = true. angka 2 diberikan kepada "z". tetapi karena rentang tiap tipe berbeda. Table berikut menunjukkan semua operator pemberian nilai yang dapat Anda gunakan sehingga kode Anda menjadi lebih efisien dan mudah dibaca. kedua sisi tanda "=" harus memiliki tipe yang sama. Jadi 3. maka nilainya belum tentu sama dengan nilai aslinya. Pada ekspresi pertama. kemudian nilai yang disimpan "z" diberikan kepada "y". Tanda (short) dalam kurung artinya menginstruksikan Java untuk mengubah nilai A menjadi short sebelum diberikan kepada B. yaitu dengan menggantinya dengan bilangan Unicode-nya.18 Beberapa contoh : String nama = "Budi".

googlecode. x = (x % y). System.println("Hasil pembagian : " + x). Contoh kode program yang dapat Anda unduh dalam bentuk zip file atau melalui SVN di alamat berikut :http://belajarjava. 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. x *= y. x = (x >>> y). x = (x . x &= y. x %= y. x >>>= y. x *= y. x /= y. x = (x / y).y). x = (x < < y). int y = 10. x |= y.com/svn/trunk/OperatorPemberiNilai package operatorpemberinilai.println("Hasil pengurangan : " + x).println("Hasil penjumlahan : " + x). x -= y.out. System.out. System. System. x = (x | y).println("Hasil perkalian : " + x). Ekspresi setara x = (x + y). x = (x * y). x < <= y. . x += y.out. x = (x & y). x /= y. x = (x >> y). x >>= y. x ^= y. x -= y.19 Operator += -= *= /= %= &= |= ^= < <= >>= >>>= Contoh x += y. x = (x ^ y).out.

println("Sisa pembagian : " + x). x |= y. System.out. x &= y.out.20 x %= y.println("Hasil operasi pergeseran bit ke kiri :"+ x). } } Keluaran programnya : Intermezzo : Membaca Input dari User Posted Min. System.02:44 by belajarprogram Versi ramah cetak .println("Hasil operasi AND : " + x).out. x <<= y. 02/15/2009 .println("Hasil operasi OR : " + x). System.out. System.

readLine().in (lawan dari System. InputStreamReader. Dan InputStreamReader membutuhkan media tempat baca tulis dilakukan. kita akan menggunakan GUI untuk mendapatkan interaksi dari user. Kelas ini membutuhkan kelas lain sebagai pekerjanya.. package ambilinputkonsol. } adalah perintah yang kita ingin jalankan pada situasi yang "mungkin" tidak berhasil... yaitu kesalahan yang bertipe IOException. Dua kelas pertama terdapat dalam package yang dinamakan java.. Karena kita berhubungan langsung dengan sistem IO (input-output) komputer yang harus diasumsikan tidak pasti (misalnya ada masalah pada sistem keyboard. Untuk itu.. yaitu System.. yaitu BufferedReader. Untuk memerintahkan Java mengambil input dari user. yaitu IOException ioe adalah jenis kesalahan yang ingin kita tangkap. dan System. . Parameter pada catch. Jika tidak ada kesalahan IO yang ditemukan. Dalam hal ini kita ingin menangkap adanya kesalahan IO. } Perintah di dalam try { . kita harus menempatkan fungsi readLine() pada klausa try { .21 Java bukan bahasa pemrograman untuk Console (seperti DOS atau Linux).. Kemudian kita harus juga membuat suatu objek dari kelas BufferedReader.in)). nama = br. Perintah di dalam catch { . Semua ini bisa dituliskan dalam satu perintah yaitu : BufferedReader br = new BufferedReader(new InputStreamReader(System. atau komputer sedang bekerja berat sehingga input dari user tidak bisa diambil). kita harus menambah satu baris perintah import java. Di sini saya akan menjelaskan untuk membuat program yang bisa mengambil input dari konsol teks.out yang kita gunakan untuk menampilkan pesan di layar). maka bagian ini akan dilewatkan (tidak dijalankan).io. Di sini variabel br merupakan objek yang merupakan jelmaan dari kelas BufferedReader. kita gunakan fungsi readline() yang terdapat pada kelasBufferedReader.. Mari kita lihat program akhir untuk mengambil input dari user. yaitu InputStreamReader. dalam hal ini terealisasi pada objek br.* yang berarti mengimport semua kelas dalam paket java.in. } adalah perintah yang akan dilakukan apabila kesalahan ditangkap. sehingga untuk mengambil input dari user diperlukan sedikit trik yang tidak sesederhana readln pada bahasa pemrograman lain. setelah kita belajar pemrograman berorientasi objek. Membaca String yang diketik oleh user di konsol Kita membutuhkan kelas yang beberapa kelas.io (tanda * berarti semua). Di bagian lain. } catch (IOException ioe) { .io. Kelas BufferedReader adalah kelas abstrak yang menangani baca tulis ke suatu media.

22 import java. new BufferedReader(new // tempat di mana input dari user akan diletakkan String nama = null. } System.out.print("Masukkan nama Anda : ").io. } catch(IOException ioe) { System. " + nama).println("Terima kasih.out.*.exit(1). .out.com/svn/trunk/AmbilInputKonsol file atau melalui SVN Untuk menguji program tersebut. public class AmbilInputKonsol { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub System.in)). } } Program tersebut dapat Anda unduh dalam bentuk zip dihttp://belajarjava.println("Kesalahan IO pada saat menanyakan nama Anda").readLine(). jalankan "Run -> Run" atau Ctrl-F11. // buat objek baru untuk mengambil input BufferedReader br = InputStreamReader(System. System.googlecode. Kemudian arahkan kursor Anda ke bagian bawah di kotak yang bernama Console. try { nama = br.

23 Intermezzo : Mengubah String ke int dan double Posted Min. ke tipe data bilangan untuk pengolahan lebih lanjut.readLine().readLine(). strperiode = br. 02/15/2009 . kita akan membuat program untuk menghitung nilai investasi setelah n tahun. kita bisa mengambil input tersebut menggunakan kelasBufferedReader seperti berikut.readLine().readLine(). strbunga = br. misalnya hasil input dari konsol atau dari hasil bacaan file. • • . Sebagai contoh. Input yang diminta dari user adalah : Nama Investasi awal (Rp) • Bunga (%) • Periode (tahun) Dengan menggunakan teknik yang sama pada contoh sebelumnya.17:32 by belajarprogram Versi ramah cetak Kita dapat mengubah tipe data String. nama = br. strawal = br.

System.parseDouble(strawal). Untuk mengubah String menjadi int. kita menggunakan kelas Java Double yang di dalamnya memiliki fungsiparseDouble(str).readLine(). kita baru bisa untuk memulai perhitungan.readLine().io.out. import java. try { System.print("Masukkan nama Anda : "). Setelah semua variabel didapat dan diubah.print("Masukkan jumlah awal investasi (Rp) : ").in)).*. nama = br. String strbunga = null. rumus tersebut bisa dituliskan dengan ekspresi berikut akhir = awal * Math. kita dapat menggunakan kelas Java Integer yang di dalamnya memiliki fungsiparseInt(str).com/svn/trunk/HitungInvestasiNPeriode package hitunginvestasinperiode. kita harus mengubahnya menjadi bentuk bilangan agar dapat diproses lebih lanjut.periode).24 Tetapi karena keluaran dari readLine() bertipe String. Sedangkan untuk mengubah String menjadi double. new BufferedReader(new // tempat di mana input dari user akan diletakkan String nama = null. public class HitungInvestasiNPeriode { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub // buat objek baru untuk mengambil input BufferedReader br = InputStreamReader(System. Fungsi ini dapat dipanggil dengan: periode = Integer. strawal = br.out. Berikut ini adalah listing program lengkap yang dapat diunduh dalam bentuk zip file atau melalui SVN di alamathttp://belajarjava. Fungsi ini dapat dipanggil dengan: awal = Double.parseDouble(strbunga). kita bisa menggunakan rumus berikut : akhir = awal * (1 + bunga)periode Dalam Java.googlecode. Untuk menghitung bunga bank setelah ntahun. bunga = Double. String strperiode = null. String strawal = null.parseInt(strperiode). .pow(1 + bunga.

} } Berikut ini adalah hasil keluarannya : . periode). System.parseDouble(strawal). // menghitung hasil investasi selama n periode akhir = awal * Math.parseInt(strperiode). int periode. System. awal = Double.println("Kesalahan IO pada saat menanyakan nama Anda").out.println("Terima kasih.print("Masukkan bunga (mis 0. strperiode = br.25 System.print("Hasil investasi Anda setelah " + periode + " tahun "). System. bunga = Double. // mengubah input dari Sting ke tipe data bilangan periode = Integer.pow(1+bunga.println().parseDouble(strbunga).out. double akhir. } catch(IOException ioe) { System.out. System. // tampilkan hasil perhitungan di layar System.readLine().readLine(). System.1 = 10%) : ").print("Masukkan periode (tahun) : ").println("adalah Rp. " + akhir).out.out.out. strbunga = br. " + nama).exit(1). double bunga. } // deklarasi variabel tipe bilangan double awal.out.

26 Blok. perulangan while. dan Percabangan Posted Min. perulangan do. Perulangan.println("Hallo"). x = y. dan pernyataan switch. tetapi di dalamnya terdiri dari satu atau lebih perintah sehingga keseluruhannya menjadi suatu struktur perintah.println("Dunia"). { System. Berikut ini adalah 2 contoh penggunaan blok. temp = x. Contoh sederhana penggunaan blok ini adalah dalam subrutin main() yang kita lakukan pada contoh-contoh sebelumnya. y = temp. Konsep "scope" atau jangkauan pada konsep pemrograman. blok tetap berlaku. 02/15/2009 . karena hanya bisa diakses dari dalam blok. . } Pada blok kedua. Tujuannya untuk mengelompokkan beberapa perintah sehingga lebih dimengerti.out. mengacu pada bisa atau tidaknya suatu variabel dilihat oleh bagian program lain. Ketika blok ini selesai dijalankan. System. pernyataan if. tetapi sebetulnya tanpa struktur kontrol pun. Jangkauan variabel dalam suatu blok terbatas hanya pada blok tersebut.. Misalnya { perintah } Pernyataan blok biasanya terdapat dalam struktur kontrol. komputer akan mempersiapkan memori untuk menyimpan variabel yang dideklarasikan di dalam blok ini. Jangkauan suatu variabel menyatakan di bagian mana variabel ini valid atau dengan kata lain bisa diakses. Dalam blok kedua ini. variabel apapun yang dideklarasikan tidak akan dapat diakses dari luar blok ini. Blok Blok adalah pernyataan sederhana yang dimulai dengan { dan diakhiri dengan }. kita mendeklarasikan variable baru temp. Masing-masing struktur ini sebetulnya merupakan pernyataan tunggal yang berdiri dengan sendirinya. perulangan for. yaitu blok.out. komputer akan melepas memori yang digunakan dalam blok ini untuk digunakan oleh bagian program lain. Ketika komputer menjalankan program ini. } { // blok ini digunakan untuk menukar isi variable x dan y int temp.. Dalam bahasa Java. while. ada 6 struktur tersebut. Variabel ini disebut variabel lokal.19:29 by belajarprogram Versi ramah cetak Kemampuan suatu program untuk melakukan tugas kompleks dilakukan dengan menggabungkan perintah sederhana menjadi struktur kontrol.

... Percabangan Pernyataan if memperintahkan komputer untuk memilih salah satu aksi yang akan dilakukan. maka blok tersebut akan dieksekusi. kita mulai dengan mengisi variabel angka dengan 1 while (angka <= 5) { System. Setelah sampai pada akhir blok. Setelah komputer sampai pada bagian akhir blok. program akan kembali pada awal pernyataan while. kita lihat pernyataan while. Berikut ini adalah contoh untuk menulis bilangan 1 hingga 5. program akan mengevaluasi apakah angka <= 5. dan karena 2 masih kurang dari atau sama dengan 5. // tambah angka dengan 1 } System. blok yang berisi perintah akan dilakukan. Sekarang angka bernilai 2. jika suatu_kondisi bernilai false. Bentuknya dapat ditulis sebagai berikut if (suatu_kondisi) perintah_1. Ketika program sampai pada pernyataan while.out. yaitu menampilkan kata "Selesai. Pada saat program baru dimulai.out. komputer akan menghitung kembali suatu_kondisi. .27 Blok sendiri sebetulnya bukan merupakan struktur kontrol. Atau dengan kata lain. Apabila suatu_kondisi bernilai true. Jika masih bernilai true. yaitu : perulangan dan percabangan. dan jika tidak. yang memiliki bentuk seperti while (suatu_kondisi) { perintah } Semantik pada pernyataan while tersebut adalah sebagai berikut. kemudian menambah angka dengan 1. program akan kembali mengeksekusi perintah dalam blok. Program akan berjalan seperti biasa dari atas kebawah seperti biasa. sehingga pernyataan angka <=5 bernilai true. yaitu mencetak angka ke layar. Perulangan Sebagai contoh untuk membahas tentang perulangan. tergantung pada suatu kondisi tertentu. int angka = 1. kemudian melakukan perintah berikutnya.println("Selesai. Secara umum struktur kontrol dibagi menjadi 2 bagian. Variabel angka kita inisialiasi (persiapkan) dan kita isi mula-mula dengan 1. program akan melompat ke bagian program berikutnya setelah blok berakhir."). Pada saat ini program akan berhenti melakukan perulangan dan berhenti melakukan eksekusi perintah di dalam blok tersebut. Begitu seterusnya hingga angka bernilai 6. else perintah_2.". Ketika komputer sampai pada pernyataan while.. Sekarang angka bernilai 2. blok perintah tidak akan dieksekusi. // cetak isi angka di layar angka = angka + 1. // inisialisasi variabel. angka masih bernilai 1.println(angka). komputer akan melakukan perhitungan pada suatu_kondisi. Dalam hal ini perintah di dalam blok akan dieksekusi.

if ((x % 2) == 0) { System. mari kita kembali pada contoh program untuk membalik nilai x dan y. nilai x akan selalu bernilai lebih kecil dari y. setelah program ini dieksekusi. Perancangan Algoritma Posted Min. dengan syarat x harus lebih besar dari y. . Jika tidak. kita harus memberikan perintah hingga sangat detail apa yang harus dikerjakan oleh komputer. kita dapat menentukan apabila sisa pembagian suatu bilangan dengan 2 adalah 0. sehingga pernyataan di atas dapat ditulis juga sebagai berikut if (suatu_kondisi) { perintah_1. Programmer adalah orang yang bertugas untuk menerjemahkan suatu tugas menjadi instruksi detail yang dapat dimengerti oleh komputer. } Kita akan bahas tentang struktur kontrol di bagian berikutnya. maka blok setelah pernyataan else akan dieksekusi.out. } Ketika komputer sampai pada pernyataan if. } else { perintah_2. Jika iya. Semoga bagian ini yang merupakan bagian pendahuluan tentang struktur kontrol dapat dimengerti sehingga kita bisa mempelajari konsep yang lebih kompleks lagi. nilai x akan ditukar dengan nilai y.out. Jika tidak. maka bilangan tersebut merupakan bilangan genap. dalam hal ini perintah_1. temp = x. y = temp. Komputer hanya melakukan apa yang diperintahkan baris demi baris. maka blok perintah berikutnya akan dieksekusi. Dalam hal ini.println(x + " adalah bilangan genap"). 02/15/2009 . tetapi komputer tidak bisa berfikir bagaimana melakukan suatu tugas seefisien mungkin. yaitu sisa pembagian.28 Perintah_1 dan perintah_2 juga bisa berbentuk blok. yaitu perintah_2. } else { System. komputer akan menghitung apakah suatu_kondisi bernilai true.println(x + " adalah bilangan ganjil"). Sebagai contoh.21:06 by belajarprogram Versi ramah cetak Komputer itu bodoh! Kenapa? Karena sebagai programmer. maka bilangan tersebut adalah bilangan ganjil. x = y. if (x > y) { // jika x lebih besar dari y // blok ini digunakan untuk menukar isi variable x dan y int temp. Dengan menggunakan operator %. } Contoh berikut adalah program untuk menentukan apakah suatu bilangan merupakan bilangan genap atau bilangan ganjil. karena jika nilai x lebih besar.

kita bisa mulai menuliskan algoritma dalam bentuk pseudocode (kode palsu) yang bentuknya tidak harus persis atau mengikuti suatu bahasa pemrograman. dilakukan selama kurun waktu tertentu. algoritma adalah kumpulan langkah-langkah sederhana yang jelas. (Secara teknis. sampai kita bisa menerjemahkan langkah-langkah itu ke dalam bahasa pemrograman. Program komputer itu seperti seni yang memuat suatu ide.) Program ditulis dalam bahasa pemgrograman tertentu. algoritma mirip seperti ide di belakang program yang akan kita tulis. Sambil kita menambah detail pada setiap langkah. dan sifatnya top-down atau dari atas ke bawah. Salah satu cara untuk menyelesaikan tugas itu adalah menuliskan penyelesaiannya langkah demi langkah. Perintah langkah demi langkah hingga detail ini disebut algoritma. latihan dan pengalaman. dan memuat langkah demi langkah yang sederhana. Misalnya. tidak membingungkan karena hanya ada satu cara untuk melakukan langkah sederhana tersebut. kita bisa membuat langkah-langkah lain yang lebih detail.29 Untuk itu programmer baru harus dilengkapi dengan cara berfikir dan peralatan yang memungkinkan mereka untuk sukses dalam menerjemahkan suatu tugas menjadi rangkaian perintah yang bisa dimengerti oleh komputer. Dalam hal ini misalnya. Tetapi ide tersebut harus jelas. Jadi bahasa Java akan kita tinggalkan sementara. Dengan skill. Atau dengan kata lain. Pemecahan masalah ini kemudian diterjemahkan ke dalam bahasa pemrograman yang berupa perintah langkah demi langkah bagaimana komputer harus menyelesaikan tugas tersebut. orang akan lebih mudah membuat suatu algoritma. Tetapi algoritma ditulis secara umum atau generic. Kemudian dari setiap langkah tersebut. Kita bisa menuliskan pseudocode dalam bentuk berikut : ambil input user untuk bilangan pertama masukkan ke variabel x ambil input user untuk bilangan kedua tambahkan variabel x dengan bilangan kedua ambil input user untuk bilangan ketiga tambahkan variabel x dengan bilangan ketiga ambil input user untuk bilangan keempat tambahkan variabel x dengan bilangan keempat . Kita akan beralih untuk berfikir secara abstrak. Seorang programmer mulai dengan suatu tugas di kepalanya. Kemudian dia akan berfikir tentang apa yang harus dilakukan untuk menyelesaikan tugas tersebut dalam bahasa manusia. Di bagian ini akan dibahas tentang bagaimana membuat suatu algoritma. Metode ini disebut penghalusan bertahap (stepwise refinement). Misalnya. kita memiliki suatu tugas di kepala. kita ambil contoh untuk menghitung rata-rata dari 5 bilangan. dalam bahasa manusia. sehingga bisa diimplementasikan menggunakan bahasa pemrograman apapun. sisi miring dapat dihitung dengan mengambil akar kuadrat dari jumlah kuadrat sisi siku-sikunya. misalnya menghitung sisi miring dari segitiga siku-siku. Kita tidak ingin program menghitung selamanya tanpa batas waktu. dan dari sana kita membuat algoritma untuk menyelesaikan masalah itu. Jadi darimana algoritma itu datang? Biasanya orang harus membuat algoritma itu.

Dan seperti dipelajari pada bab sebelumnya. perlu diperhatikan bahwa variabel a dan x tidak diketahui nilai awalnya oleh komputer. bukan saja hasil rata-ratanya menjadi tak tentu. Kita harus memberikan pertanyaan kepada user. kita harus mengubah pseudocode nya menjadi seperti ini inisialisasi pembaca inisialisasi tempat string sementara while a kurang dari 5 beri pertanyaan kepada user untuk memasukkan bilangan ke-a "coba" ambil input user untuk bilangan ke-a jika ada masalah keluar dari program ubah input menjadi bilangan tambahkan nilai x dengan bilangan ke-a tambah a dengan 1 bagi variabel x dengan 5 tampilkan di layar Kemudian. Bagaimana jika bilangan yang akan dirata-ratakan ada 100? Kita bisa udah algoritma di atas dengan pseudocode yang lebih mudah dimengerti. untuk mengambil input user. misalnya while a kurang dari 5 ambil input user untuk bilangan ke-a tambahkan nilai x dengan bilangan ke-a tambah a dengan 1 bagi variabel x dengan 5 tampilkan di layar Sekarang. Untuk itu. tetapi terlalu banyak perulangan. Selain itu kita juga harus menginisialisasi pembaca dan tempat meletakkan string sementara. Bayangkan jika nilai a dan x ditentukan oleh komputer secara acak. tetapi juga perulangannya menjadi tak menentu.30 ambil input user untuk bilangan kelima tambahkan variabel x dengan bilangan kelima bagi variabel x dengan 5 tampilkan hasilnya di layar Algoritma di atas betul. Pseudocode di atas dapat ditulis ulang sebagai berikut : while a kurang dari 5 beri pertanyaan kepada user untuk memasukkan bilangan ke-a ambil input user untuk bilangan ke-a ubah input menjadi bilangan tambahkan nilai x dengan bilangan ke-a tambah a dengan 1 bagi variabel x dengan 5 tampilkan di layar Dan juga dari pelajaran sebelumnya. kita bisa dihadapkan pada permasalahan IO (input output). input dari user berupa String yang harus diterjemahkan ke dalam tipe data bilangan untuk bisa dikalkulasi. Untuk itu kita . ambil input user bisa dideskripsikan lebih jauh.

sehingga pseudocodenya menjadi inisialisasi x dengan 0 inisialisasi a dengan 0 inisialisasi pembaca inisialisasi tempat string sementara while a kurang dari 5 beri pertanyaan kepada user untuk memasukkan bilangan ke-a "coba" ambil input user untuk bilangan ke-a jika ada masalah keluar dari program ubah input menjadi bilangan tambahkan nilai x dengan bilangan ke-a tambah a dengan 1 bagi variabel x dengan 5 tampilkan di layar Dari sini kita bisa menerjemahkan pseudocode tersebut menjadi program Java.in)).print("Masukkan bilangan ke-" + a + " : "). Berikut ini adalah program lengkapnya dan dapat diunduh dalam bentuk zip file atau melalui SVN di alamat berikuthttp://belajarjava.parseDouble(strbilangan).readLine(). program berhenti"). BufferedReader br = new BufferedReader(new InputStreamReader(System. import java.* di awal kelas. int a = 0. Jangan lupa bahwa program tersebut membutuhkan paket java.exit(1). } catch (IOException ioe) { System. a = a + 1.*.out.out.*.com/svn/trunk/HitungRataRata5Bil package hitungratarata5bil.io. .println("Rata-rata bilangan yang dimasukkan adalah " + x). sehingga kita harus menambah import java.out. yaitu double x = 0. while (a < 5) { System. } x = x / 5.println("Kesalahan IO. try { strbilangan = br.31 harus tambahkan perintah untuk menginisialisasi a dan x dengan 0.io. System. String strbilangan = null.io. System. } x = x + Double.googlecode.

. } x = x / 5.exit(1). System. BufferedReader br = InputStreamReader(System.print("Masukkan bilangan ke-" + a + " : "). Kemudian arahkan kursor Anda ke bagian bawah dan klik di kotak yang bernama Console.out. try { strbilangan = br.println("Rata-rata bilangan yang dimasukkan adalah " + x). jalankan "Run -> Run" atau Ctrl-F11. } catch (IOException ioe) { System. int a = 0.out.in)). String strbilangan = null.32 public class HitungRataRata5Bil { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub double x = 0. program berhenti").parseDouble(strbilangan).readLine().out.println("Kesalahan IO. } } Untuk menguji program tersebut. } x = x + Double. System. a = a + 1. new BufferedReader(new while (a < 5) { System.

Nyatanya tidak demikian.33 Membuat kode. menguji. dan mencari kesalahan (debugging) Posted Min. Eclipse akan menampilkan pesan kesalahan.22:02 by belajarprogram Versi ramah cetak Akan sangat sederhana dan indah apabila program yang kita tulis akan berjalan 100% tanpa kesalahan sama sekali. Lihat apa yang terjadi. itu artinya secara sintaks. Kemudian pada Eclipse. Coba Anda ganti salah satu dari beberapa contoh yang sudah diberikan dengan mengganti salah satu kurung { menjadi (. 02/15/2009 . dan Anda harus memperbaikinya sebelum program bisa dijalankan. atau format penulisan program ada memiliki kesalahan. jalankan dengan "Run -> Run". dan semuanya berjalan sesuai rencana. . Kita tinggal memencet tombol run.

bukan tiba-tiba keluar tanpa pesan. dan tidak boleh salah dalam menggunakan variabel. ketidakluwesan Java mungkin menghambat. perbedaan sintaks sedikit saja membuat Java tidak mengerti apa yang dimaksud dalam program. mana percabangan dan lain-lain. Apabila jumlah baris dalam program kita kecil. Ketidakluwesan Java membantu programmer harus menggunakan logika yang benar. Kita mungkin harus melakukan testing secara lebih perlahan-lahan. kecuali dengan membuat variabel baru dengan tipe yang berbeda. maka mencari kesalahan yang kelihatannya sederhana tidaklah mudah. yang merupakan bahasa dengan sintaks ketat. Debugging Ketika program Anda tidak menunjukkan kesalahan sintaks. mana yang merupakan variabel. Program harus diuji apakah ia berjalan sesuai dengan yang diharapkan.34 Sintaks adalah salah satu cara menentukan bagaimana komputer harus bekerja. . sintaks membantu komputer mengelola logika. bukan berarti program Anda bebas dari kesalahan. Idealya apabila program menerima input yang tidak sesuai dengan yang diharapkan. mungkin kesalahan tersebut dengan mudah akan kita temui. mana yang berupa subrutin. tetapi perlu diingat bahwa kesalahan hanya datang dari manusia. mana perulangan. Manusia tidak membutuhkan sintaks untuk berbicara karena manusia bisa menentukan mana subjek. predikat. Tetapi apabila program tersebut sangat besar. bahkan untuk kalimat yang belum pernah dibaca atau didengar sekalipun. program akan memberikan pesan kepada penggunanya tentang kesalahan tersebut. atau objek dengan mudah. Bagi komputer. Variabel yang sudah ditentukan tipenya tidak dapat diubah ditengah jalan. Dalam bahasa Java. Bagi beberapa programmer.

dan bahkan mengganti variabel pada saat program dijalankan. mengeksekusi satu demi satu perintah. Perhatikan juga bahwa baris yang diberi breakpoint memiliki tanda bulat di sampingnya. Misalnya pada tampilan berikut.35 Pencarian kesalahan ini dalam bahasa pemrograman disebut dengan "debugging". Eclipse menyediakan peralatan untuk melakukan debugging. Membuat breakpoint Kita bisa menjalankan program baris demi baris. Untuk mengeset breakpoint. program berhenti di baris double x=0. Untuk mendemonstrasikan debugging ini. karena kesalahan kecil dianggap sebagai kutu yang mengganggu jalannya program. double klik bagian paling kiri dari baris di mana Anda ingin program tersebut berhenti. mengeksekusi satu subrutin. debugging yang bisa dilakukan antara lain: membuat breakpoint (tempat berhenti program). tetapi sebelum kita melakukannya.. Untuk menghapus breakpoint. yaitu dengan menekan tombol "Run -> Debug". Menjalankan program hingga breakpoint . double click lagi tanda bulat di baris yang sudah diberi breakpoint tadi. yang jika diterjemahkan ke dalam bahasa Indonesia berarti membersihkan kutu. Tempat pemberhentian program sementara ini disebut breakpoint. kita harus memberhentikan program tersebut di satu tempat terlebih dahulu. Dalam Eclipse. mari kita gunakan program menghitung rata-rata pada bagian terdahulu. melihat isi variabel saat ini.

Tekan Yes untuk mengubah perspective tersebut.36 Coba tekan tombol F11 atau "Run -> Debug". ada tanda panah (->) yang menunjukkan saat ini komputer telah melaksanakan program hingga pada baris ini. Perhatikan bahwa di samping tanda bulat tadi. Berikut ini adalah perspektif dalam mode debugging. Pada saat Anda memulai debugging. Di samping kanan adalah daftar . Eclipse akan memberikan pertanyaan bahwa perspective (atau tampilan Eclipse) Anda akan diubah ke debugging perspective.

Jika perintah tersebut merupakan perintah panggilan subrutin. Run to Line menjalankan program dari baris tempat berhentinya program sekarang hingga baris yang Anda tentukan. Dan juga karena instruksi pada baris ini adalah mendeklarasikan variabel x bertipe double. Berikut ini adalah screen shot setelah program maju satu langkah. yaitu yang berasal dari arg. Mari kita coba untuk menjalankan progam satu langkah dengan menggunakan "Run -> Step Over" atau tombol F6. .37 variabel yang dideklarasikan dalam program ini. dan kemudian mengisinya dengan 0. variabel ini akan muncul di kanan atas perspektif Debug. Suspend menghentikan sementara program yang sedang jalan. Perhatikan bahwa tanda panah maju satu langkah. maka subrutin tersebut akan dieksekusi tanpa masuk ke dalam subrutin yang dipanggil tersebut. Step Return mengeksekusi seluruh perintah pada subrutin ini kemudian kembali kepada pemanggilnya. maka program akan berhenti di breakpoint tersebut. maka hanya satu variabel yang tersedia. Ada beberapa pilhan yang disediakan oleh Eclipse. semuanya terdapat dalam menu Run yaitu : • • • • • • • Resume melanjutkan eksekusi program yang berhenti. Atau jika di antaranya terdapat breakpoint lagi. Menjalankan program langkah per langkah Apabila Anda sudah berada dalam mode debugging. Step Into mengeksekusi SATU perintah atau masuk ke dalam subrutin. Terminate menghentikan sesi debugging saat ini. Karena baris yang kita pilih adalah baris pertama setelah deklarasi pada subrutin main. Step Over mengeksekusi SATU perintah. Anda bisa melakukan navigasi untuk melakukan eksekusi sesuka Anda.

klik bagian bawah (tab yang bernama Console). . pada saat program sampai pada instruksi untuk mengambil input Anda.38 Lakukan terus Step Over hingga program berakhir. Perlu diingat. dan Anda akan melihat langkah demi langkah bagaimana program dijalankan secara bertahap. dan masukkan angka sebagai input kemudian tekan Enter. Melihat dan mengubah isi variabel Di sini saya jalankan program setiap baris hingga a = a + 1 seperti pada gambar berikut. Lihat bagaimana variabel di kanan atas berubah sesuai dengan input yang Anda berikan.

dalam hal ini seharusnya adalah 6. yaitu dengan mengubah nilai a menjadi -1. Tentunya hasil rata-ratanya salah. seperti pada screen shot berikut. karena perhitungan rata-rata dilakukan dengan rumus x = x/5. sehingga bukan melakukan 5 kali perulangan. Ini bisa dilakukan yaitu dengan mengklik nilai dari a. saya ingin memperpanjang perulangan. Lihat sekarang bilangan ke-0 ditanyakan 2 kali. Setelah diganti coba jalankan program hingga selesai. yang semula 0.39 Kemudian. yang artinya user diperintahkan untuk memasukkan 6 bilangan. kemudian diganti menjadi -1. misalnya dengan "Run -> Resume". Jangan lupa untuk memasukkan inputnya di bagian Console. tetapi 6 kali. .

. klik tanda >> kemudian pilihan akan muncul. while Posted Sen. Program akan melompat ke perintah berikutnya di luar blok perulangan. tentunya tidak. 02/16/2009 . Program akan mengeksekusi semua perintah hingga akhir blok selesai.23:51 by belajarprogram Versi ramah cetak Pernyataan while Pernyataan while telah diperkenalkan pada bagian sebelumnya. di bagian paling kanan (lihat gambar dibawah). Inti perulangan akan terus dieksekusi selama suatu_kondisi bernilai true. dan jika hasilnya salah. suatu_kondisi ini disebut juga penguji perulangan. Setelah itu program akan kembali ke pernyataan while.40 Setelah selesai melakukan debugging.. Anda mungkin ingin mengubah perspektif kembali seperti semula. Perulangan while memiliki bentuk while (suatu_kondisi) perintah perintah bisa juga berupa blok yang berisi kumpulan perintah-perintah di antara { dan }. while dan do . Caranya. dan setelah mengevaluasi kembali suatu_kondisi. Lalu apa yang terjadi jika suatu_kondisi bernilai false di tengah-tengah perulangan. Ada beberapa hal yang mungkin jadi pertanyaan. perintah ini disebut juga dengan inti perulangan. Apa yang terjadi jika suatu_kondisi sudah bernilai false sejak pertama kali komputer sampai pada pernyataan ini? Dalam hal ini blok perulangan tidak akan dieksekusi sama sekali. baru program akan melompat ke perintah berikutnya di luar blok. Klik perspektif Java untuk mengubahnya menjadi tampilan semula. apakah program keluar dari perulangan saat itu juga? Dalam hal ini. .

komputer tidak tahu apa-apa. setelah kita memproses input dari user. Pada saat komputer pertama kali menemui perulangan while. program tidak akan menghitung nilai 0 lagi. Masalah ini sangat amat umum ditemui oleh programmer. Untuk itu debugger diperlukan untuk melihat lebih detail apa yang dilakukan oleh komputer. padahal 0 bukan data. Inisialisasi jumlah dengan 0 Inisialisasi n (berapa data yang dimasukkan user) dengan 0 while (masih ada data yang akan diproses): Minta input dari user Tambah jumlah dengan input dari user Tambah n dengan 1 Bagi jumlah dengan n untuk menghitung rata-rata Cetak rata-rata ke layar Pertanyaan berikutnya. kita baru menanyakan data di dalam blok perulangan.41 Mari kita ubah sedikit algoritma yang kita buat di bagian sebelumnya.googlecode.*. (Seperti biasa program ini bisa diunduh dalam bentuk zip file atau di alamat SVN berikut: http://belajarjava. import java. nilai 0 akan ikut dijumlahkan dan n akan bertambah 1. kita tanyakan user terlebih dahulu sebelum perulangan while.) Dalam hal ini. Di algoritma sebelumnya. kita tempatkan pertanyaan untuk mendapat input dari user di akhir perulangan. Kali ini kita akan membuat program yang menghitung rata-rata dengan cara menanyakan suatu bilangan kepada user. kita akan tanyakan lagi kepada user untuk mendapatkan kondisi untuk mengevaluasi kondisi while berikutnya. Nol hanya berfungsi sebagai sinyal bahwa perulangan harus selesai. karena menghitung satu demi satu ternyata tidak mudah. Artinya.com/svn/trunk/RataRata ) package ratarata. Dengan cara ini. Perhatikan juga bahwa ketika 0 dimasukkan. Lalu bagaimana kita harus menguji bahwa data yang dimasukkan bernilai 0 atau bukan? (Ingat. kita akan sedikit ubah algoritma kita seperti berikut : Inisialisasi jumlah dengan 0 Inisialisasi n (berapa data yang dimasukkan user) dengan 0 Minta input dari user while (input tidak sama dengan 0): Tambah jumlah dengan input dari user Tambah n dengan 1 Minta input dari user Bagi jumlah dengan n untuk menghitung rata-rata Cetak rata-rata ke layar Pada dasarnya. bagaimana menentukan masih ada data yang akan diproses? Cara yang paling mudah adalah melihat apakah nilai yang dimasukkan user bernilai 0. . kita bisa mendapat nilai input untuk dievaluasi pada pernyataan while. Nol di sini bukan termasuk data yang akan dijumlahkan tetapi bertugas sebagai sinyal bahwa tidak ada lagi data yang harus dimasukkan. Di dalam perulangan while.io. Kita bisa ubah algoritma di atas menjadi program Java sebagai berikut. kemudian program akan berhenti jika masih ada data yang akan diproses.

System. BufferedReader br = InputStreamReader(System. } // mengubah input menjadi double agar bisa diproses lebih lanjut bilangan = Double.println("Kesalahan IO. // sama dengan : jumlah = jumlah + bilangan // sama dengan : n = n+1 // tanya user input System. n++.in)).exit(1).print("Masukkan bilangan berikutnya (atau 0 untuk mengakhiri) : "). new BufferedReader(new System. double bilangan = 0.out.readLine(). while (bilangan != 0) { jumlah += bilangan. System.readLine(). } catch (IOException ioe) { System.parseDouble(strbilangan). program berhenti"). String strbilangan = null. } // mengubah input menjadi double agar bisa diproses lebih lanjut bilangan = Double.parseDouble(strbilangan).exit(1). } catch (IOException ioe) { System. program berhenti").print("Masukkan bilangan pertama : ").out.out.println("Kesalahan IO. int n = 0. try { strbilangan = br. try { strbilangan = br.out. . } // hitung rata-rata double ratarata = jumlah/n.42 public class RataRata { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub double jumlah = 0.

. do perintah while (suatu_kondisi).. while diakhiri dengan tanda . Perlu diingat bahwa pernyataan do .43 // cetak hasilnya ke layar if (n == 0) { System.. di mana game akan menanyakan apakah user ingin bermain lagi... Dalam hal ini badan perulangan akan dieksekusi terlebih dahulu tanpa memperdulikan apakah suatu kondisi bernilai true atau false.out. rata-rata tidak bisa dihitung"). Anda bisa mengganti pernyataan ini menjadi while (jawaban). } else { System. do { main game tanya user apakah ingin main lagi } while (user menjawab ya).. Pernyataan do . Jika suatu saat Anda harus menulis kondisi pada pernyataan while seperti ini while (jawaban == true). dengan bentuk. Atau apabila perintah berbentuk blok kumpulan perintah-perintah. Contoh sederhana adalah program bermain game.println("Data kosong. while pada dasarnya merupakan pernyataan while terbalik.out.println("Rata-rata bilangan yang dimasukkan adalah " + ratarata).println("Anda memasukkan " + n + " data"). bisa juga ditulis dalam bentuk do { perintah-perintah } while (suatu_kondisi).out. while Kadang-kadang akan lebih mudah menulis perulangan jika penguji perulangan dilakukan di akhir badan perulangan. } } } Berikut hasil keluarannya : Pernyataan do .. System. Pengujian dilakukan di akhir setelah suatu kondisi didapat dalam eksekusi perulangan pertama kali. di akhir while.

Demikian juga dengan while (jawaban == false). Pernyataan do . Pernyataan break dan continue Pernyataan while dan do . kemudian memerintahkan program untuk keluar dari badan perulangan saat itu juga.. while memberikan keleluasaan kepada Anda untuk berekspresi dengan lebih lugas. operator ! membalik isi dari boolean. bisa dituliskan dalam bentuk perintah while (suatu_kondisi) perintah Demikian juga dengan while (suatu_kondisi) perintah bisa juga dituliskan dalam bentuk if (suatu_kondisi) { do { perintah while (suatu_kondisi). Seperti dijelaskan pada bab tentang operator boolean. Pengujian bisa juga dilakukan di tengah-tengah badan perulangan. while menguji kondisi di awal atau di akhir badan perulangan. Sebenarnya.. do perintah while (suatu_kondisi). untuk memecahkan suatu masalah dengan perulangan do .. bisa diganti dengan while (!jawaban). <code> . sehingga program seperti <code>while (suatu_kondisi) perintah bisa ditulis dalam bentuk while (true) perintah if (!suatu_kondisi) break. demikian juga sebaliknya.44 Menguji apakah jawaban sama dengan true sama artinya dengan melihat apakahjawaban berisi "true"... } tanpa merubah aliran program sama sekali. while juga bisa diekspresikan dengan perintah while. Caranya dengan menggunakan perintah break<code>.. Dengan menuliskan while (!jawaban) berarti sama dengan menguji apakah jawaban berisi false. misalnya dari true menjadi false atau sebaliknya.

maka program akan keluar dari perulangan yang berada persis di atasnya. Setiap bentuk perulangan for dapat diubah menjadi bentuk perulangan while dengan fungsi yang sama tanpa . Pernyataan while atau do . Misalnya. mengabaikan perintah hingga perulangan berakhir. Di tengah-tengah program. Misalnya. tapi tentu saja ini tergantung dari cara pikir masing-masing programmer dan juga masalah yang akan dipecahkan. Jika ya perulangan akan diteruskan.45 Apa makna dari program di atas? <code>while (true) artinya memerintahkan program untuk melakukan perulangan selamanya. 02/20/2009 . misalnya membuat blok while dalam blok while.. perintah_lagi perintah_lain_lagi } Perulangan akan menjalankan perintah. yaitu perulangan for. maka perintah break akan dieksekusi yang menyebabkan program keluar dari badan perulangan ke perintah berikutnya di luar badan perulangan. Perulangan for Posted Jum. Selain perintah break yang secara langsung menghentikan perulangan. perintah_lagi dan perintah_lain_lagi tidak akan pernah dieksekusi. while (suatu_kondisi) { perintah while (kondisi_lain) { perintah_lain while (kondisi_lain_lagi) { perintah_baru } } } Apabila perintah break diberikan. kemudian kembali kepada perintah while lagi. apabila perintah break diberikan setelah perintah_lain maka program akan keluar dari dalam perulangan while (kondisi_lain). while. while dapat dibuat bertingkat. maka program akan keluar dari perulangan yang persis di atasnya. Tetapi karena ada perintah continue. Kadang-kadang gaya penulisan ini lebih masuk akal ketimbang gaya penulisan baku seperti while atau do . mengabaikan perintah_lagi dan perintah_lain_lagi. Perlu diingan juga apabila perintah break diberikan di dalam pernyataan if. karena true tidak akan berubah... perintah continue digunakan untuk menghentikan operasi saat itu. kita uji apakah suatu_kondisi bernilai false. Jika ya. while (suatu_kondisi) { perintah continue.. artinya selama perulangan tersebut berjalan. kemudian kembali kepada pernyataan while untuk mengevaluasi apakah suatu_kondisi bernilai true.02:07 by belajarprogram Versi ramah cetak Kita akan membahas bentuk perulangan lain.

yaitu pengujian bahwa perulangan akan terus dilakukan selama kondisi ini bernilai true.. Tetapi tergantung dari permasalahan yang akan kita pecahkan. } Perulangan ini dapat ditulis juga dengan jumlah = 0. perintah break harus diberikan ditengah-tengah badan perulangan. inisialisasi_variabel. Pada perulangan for. for (i = 1. yaitu inisialisasi. jumlah = 0. kita akan menghitung 1+2+3+4+5+. kondisi_variabel harus berbentuk pernyataan boolean seperti suatu_kondisi pada pernyataan while. dapat dituliskan juga dalam bentuk for (inisialisasi_variabel. i <= 100. yang artinya perulangan akan terus dieksekusi tanpa henti. Kita bisa ekspresikan program tersebut dalam bentuk i = 1. update_variabel) perintah atau jika perintah merupakan blok yang terdiri dari banyak perintah. while (i <= 100) { jumlah += i. yaitu instruksi mengubah nilai kondisi variabel untuk membatasi perulangan sehingga akan selesai suatu saat.46 mengubah alur program. tidak berulang terus menerus. Sedangkanupdate_variabel juga berbentuk perintah. menulis program dengan for akan membuat alur program lebih mudah dipahami. dan terakhir update_variabel.. kondisi_variabel. i++) jumlah += i Apa point-point penting yang kita lihat dari perubahan ini? Pertama mari kita lihat bentuk penggunaan while yang umum dilakukan inisialisasi variabel while (suatu_kondisi_variabel) { perintah update_variabel } Di sini perulangan while memiliki 3 komponen penting. Bagian yang tidak diisi yang selalu digantikan dengan true. ketiga komponen ini dirangkai menjadi satu dalam bentuk for (inisialisasi_variabel.+100. yaitu memberikan nilai awal suatu variabel. Misalnya. kondisi_variabel. Untuk menghentikannya. kondisi_variabel. dalam bentuk variabel = nilai_awal. suatu_kondisi_variabel. Bentuk paling umum dari perulangan for adalah menghitung. Biasanya perulangan ini memiliki bentuk seperti . atau update_variabel dapat dikosongkan dan tidak harus selalu diisi. misalnya memberikan variabel dengan nilai awal tertentu. i++. update_variabel) { banyak_perintah } Di sini inisialisasi variabel bisa berupa apa saja yang berbentuk perintah.

kita bisa mengekspresikan for dengan for (i = 2.14. i += 3) { System. i <= 10. Java adalah bahasa pemrograman ketat. } Catatan penting! Variabel yang akan digunakan. i <= 10. yang merupakan deklarasi variabel i dengan tipe data int sekaligus menginisialisasi nilainya dengan 1. i >= 0. variabel <= nilai_maksimum.out.11.out. yang artinya semua harus didefinisikan dengan jelas sebelum digunakan. } Untuk menghitung mundur. kita bisa ekspresikan dengan for (i = 1. deklarasi variabel dan perulangannya bisa dilakukan serentak pada bagian inisialisasi variabel.5. Contoh. yang artinya perulangan akan dimulai dengannilai_minimum. kita bisa menggunakan perintah seperti for (i = 20. j--) { System. i++. j = 10. Misalnya for (int i = 1.out. Untuk banyak kasus.47 for (variabel = nilai_minimum. artinya perulangan for di dalam perulanganfor. atau dengan kata lain.println(i + " " + j). dalam contoh di atas i dan j. diakhiri dengan nilai_maksimum dengan jeda 1. Kita ambil contoh sederhana misalnya membuat tabel perkalian seperti 1 2 3 4 5 6 7 8 9 10 11 12 2 4 6 8 10 12 14 16 18 20 22 24 3 6 9 12 15 18 21 24 27 30 33 36 4 8 12 16 20 24 28 32 36 40 44 48 5 10 15 20 25 30 35 40 45 50 55 60 6 12 18 24 30 36 42 48 54 60 66 72 7 14 21 28 35 42 49 56 63 70 77 84 8 16 24 32 40 48 56 64 72 80 88 96 9 18 27 36 45 54 63 72 81 90 99 108 10 20 30 40 50 60 70 80 90 100 110 120 .println(i). i++) { System. variabel++) { perintah } Perhatikan bagian terakhir adalah menaikkan nilai variabel dengan 1. perulangan for pun dapat dilakukan bertingkat.8. adalah variabel yang harus dideklarasikan sebelumnya.println(i). } Atau jika kita ingin menghitung maju dan mundur pada saat yang bersamaan.println(i) } Perhatikan ada imbuhan int di depan inisialisasi variabel i. mulai dari 2 hingga 17 dengan jeda 3. i--) { System.out.17. Perulangan for bertingkat Seperti pada perulangan while. i <= 17. jika kita ingin berhitung 2. misalnya i dari 1 hingga 10 dan j dari 10 hingga 1.

} System. } System... j <= 12.2. i <= 12. sehingga algoritma di atas bisa kita tulis sebagai untuk setiap baris i = 1..2. } Berikut ini adalah contoh program yang bisa diunduh dalam bentuk zip file atau dari gudang SVN di alamathttp://belajarjava.. i++) { for (int j = 1. j <= 12.3..out.out.3. i <= 12..2.3.48 11 22 33 44 55 66 77 88 99 110 121 132 12 24 36 48 60 72 84 96 108 120 132 144 Program untuk membuat tabel perkalian tersebut bisa diekspresikan dengan algoritma pseudocode sebagai berikut untuk setiap baris i = 1.println("").3. j++) { System. perintah kedua juga merupakan perulangan dari 1 hingga 12..out. j++) { System.12 cetak perkalian i dengan 1.. i++) { for (int j = 1.println("").12 untuk setiap kolom j = 1.print(i*j + " ").googlecode.2.12 cetak baris baru Kalau kita jabarkan lebih lanjut. public class TabelPerkalian { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub for (int i = 1.com/svn/trunk/TabelPerkalian : package tabelperkalian.. } } } .12 cetak i*j cetak baris baru Kita bisa terjemahkan ke dalam bahasa Java sebagai for (int i = 1.print(i*j + " ")..out.

Pernyataan if merupakan bentuk percabangan 2 arah. Ada beberapa hal menarik yang mungkin berguna. else System. kita tambahkan tanda kurung {} sehingga menjadi if (x > 0) { if (y > 0) . perintah1 dan perintah2 bisa berbentuk blok yang terdiri dari beberapa perintah.out. else di program di atas akan dianggap bagian dari pernyataan jika y > 0.out. Untuk memperbaikinya. dengan bentuk umum seperti if (suatu_kondisi) perintah1 else perintah2 Seperti biasa. Java akan menganggap else terkait dengan if terdekat.println("perintah1"). Pertama-tama.out.49 Berikut ini hasil kelurannya: Pernyataan if Posted Min. padahal yang kita maksud adalah else jika x > 0. Bagian else yang terdiri dari kata "else" dan perintah2 tidak selalu harus ada.out. sehingga kode di atas akan dianggap seperti if (x > 0) if (y > 0) System.16:19 by belajarprogram Versi ramah cetak Pernyataan if merupakan salah satu pernyataan percabangan pada Java.println("perintah2").println("perintah1"). 02/22/2009 . else System.println("perintah2"). Ambil contoh dalam pernyataan berikut if (x > 0) if (y > 0) System. komputer tidak peduli bagaimana Anda memformat paragraf dan indentasi dari pernyataan if tersebut. Perhatikan bahwa baik perintah1 dan perintah2 bisa merupakan pernyataan if itu sendiri.

out. maka kondisi_kedua akan dievaluasi. perhatikan kode berikut if (kondisi_pertama) perintah1 else if (kondisi_kedua) perintah2 else perintah3 Lagi-lagi karena Java tidak membedakan indentasi penulisan. Jika false. misalnya if (kondisi_pertama) perintah1 else if (kondisi_kedua) perintah2 else if (kondisi_ketiga) perintah3 . Kita bahkan dapat membentuk pernyataan if-else ini menjadi percabangan N arah. Kedua pernyataan tersebut memiliki arti yang berbeda. sedangkan kode kedua java akan mencetak "perintah2". Jika false. Komputer akan mengevaluasi kondisi_pertama. perintah2.out.println("perintah1"). if (suhu < 20) System. maka perintah1dieksekusi sementara perintah2 dan perintah3 diabaikan. Komputer akan mengeksekusi hanya salah satu dariperintah1. Berikut ini adalah contoh penggunaan percabangan 3 arah. makaperintah2 akan dieksekusi dan perintah3 diabaikan. Jika true. } else System. maka hanya perintah3 saja yang dieksekusi.println("Dingin").println("perintah2").out.out. Lebih menarik lagi.out. jika true. Jika x <= 0. pada kode pertama Java tidak mencetak apa-apa ke layar. else if (suhu < 30) System. else System.println("Lumayan").50 System.println("Panas"). atau perintah3. maka kode tersebut akan diterjemahkan Java seperti if (kondisi_pertama) perintah1 else if (kondisi_kedua) perintah2 else perintah3 Dengan kata lain perintah tersebut lebih seperti percabangan 3 arah.

a. maka urutannya adalah b.out. yaitu dengan pernyataan if (a < b && a <c) Jika a betul merupakan bilangan terkecil.out. else . Sekarang mari kita rangkai logika untuk menentukan urutan bilangan dari kecil ke besar. } else if (b < c) { if (a < c) System.51 else if (kondisi_keempat) perintah4 .out. . else System.println(a + " " + c + " " + b).out. else System. Tetapi kita belum tahu apakah bilangan terkecil berikutnya adalah a atau c. maka kita uji apakah b lebih kecil dari c dengan perintah if (b < c) Jika a bukan bilangan terkecil. Jika tidak.println(b + " " + c + " " + a). Kita hanya perlu membandingkan apakah b lebih kecil dari c dengan if (b < c) Jika b lebih kecil dari c. c.println(a + " " + b + " " + c). Misalnya kita mempunyai 3 variabel a. else if (kondisi_keNminus1) perintahNmin1 else perintahN Contoh berikut ini adalah mengurutkan 3 bilangan dari kecil ke besar. salah satunya bisa merupakan bilangan terkecil. maka b atau c. } else { if (a < b) System.println(b + " " + a + " " + c). bisa kita tuangkan dalam bentuk : if (a < b && a < c) { if (b < c) System. Bilangan yang paling kecil adalah bilangan yang lebih kecil dari kedua bilangan yang lain.out. a. berarti kita tahu bahwa b adalah bilangan terkecil. sehingga kita harus menguji lagi dengan if (a < c) Jika a lebih kecil dari c.b dan c. Mula-mula kita cek apakah a lebih kecil dari b dan c. .println(c + " " + a + " " + c). Keseluruhan logika ini. Demikian halnya apabila jika b > c. c. maka urutannya adalah b. maka kita bisa tentukan urutan bilangannya.

else System. default: perintah_lain } Di sini pernyataan switch akan mencari nilai ekspresi yang sesuai dengan nilai-nilai yang didaftarkan pada pernyataan case.out. case nilai2: perintah2 break. else System.out. Jika ya.println(a + " " + c + " " + b). Sehingga kodenya bisa dituliskan dalam bentuk : if (a < b) { if (c < a) System.out. Demikian seterusnya jika urutannya b terlebih dahulu baru a.out. kita tahu bahwa urutannya pasti a terlebih dahulu baru b.out. } Pernyataan switch Posted Min. maka program akan melompat ke . tetapi sering bermanfaat apabila kita ingin menuliskan percabangan multi arah. Pernyataan switch lebih jarang digunakan. yaitu melihat urutannya. else if (c > a) System. } Logika di atas bisa juga dituangkan dengan cara lain.println(a + " " + b + " " + c). Pernyataan switch memiliki bentuk sebagai berikut switch (ekspresi) { case nilai1: perintah1 break.println(b + " " + a + " " + c). case nilai3: perintah3 break.52 System.18:31 by belajarprogram Versi ramah cetak Penyataan percabangan kedua yang dimiliki Java adalah switch.println(c + " " + a + " " + b). Kemudian kita lihat apakah c berada di sebelah kiri a atau disebelah kanan b atau di tengah-tengah.out. 02/22/2009 . else if (c > b) System. Pertama kita cek apakah a < b. } else { if (c < b) System.println(b + " " + c + " " + a).out. Jika salah satu nilai ditemui.println(c + " " + b + " " + a).println(c + " " + b + " " + a).

out. sehingga kita tidak bisa menggunakan switch untuk mengevaluasi ekspresi yang berbentuk String. 3.out.8"). maka program akan terus mengeksekusi perintah lain meskipun sudah berada di luar nilai yang tertera dalam pernyataan casenya. Di sini pernyataan switch juga berguna untuk memilih bagaimana program akan berjalan. di mana args merupakan argumen yang diberikan pada saat program dijalankan melalui konsol.out. atau sama dengan {} tanpa perintah apa- . break. Jika Anda ingat pernyataan main() pada program Java. case 2: case 3: case 4: case 5: System. Pernyataan kosong Pernyataan kosong sebenarnya merupakan blok kosong. maka tidak asing untuk menemukan perintah pada Linux seperti "ls -l" atau "tar xfz blabla". } Salah satu aplikasi di mana pernyataan switch berguna adalah untuk memproses menu.53 cabang case tersebut dan melakukan perintah yang terdapat di sana. break. Pernyataan break di atas sebetulnya tidak harus selalu ada.println("Angka tersebut bernilai 1"). Catatan ekspresi hanya bisa berbentuk nilai bilangan bulat (int. break.println("Angka tersebut tidak bernilai 1 . Jika tidak ditemui. lihat kode berikut ini : switch (N) case 1: System. Di sini ls atau tar adalah nama program dan "-l" atau "xfz blabla" adalah argumen yang diberikan pada saat program dijalankan. perintah break di sini memerintahkan komputer agar segera keluar dari blok switch apabila perintah tersebut telah selesai dilaksanakan. Apabila perintah break tidak diberikan. Jika Anda terbiasa atau pernah bergaul dengan Linux. Kita dapat menggunakan switch untuk menginstruksikan komputer untuk melakukan tugas tertentu sesuai dengan menu yang dipilih oleh user. maka program akan melompat ke perintah yang terdapat pada pernyataan default. dan sejenisnya) atau karakter. default: System. Biasanya argumen yang diberikan berupa opsi bagaimana program harus dilaksanakan. 4. Misalnya.out.println("Angka tersebut bernilai 6. short. Menu memiliki beberapa pilihan dan user akan diminta untuk memilih suatu pilihan. Tetapi. 7.println("Angka tersebut bernilai 2. pernyataan main memiliki parameter String[] args. atau 8"). atau 5"). case 6: case 7: case 8: System.

1 berarti Telunjuk. Kenapa? Karena tanda ".catch dan throw untuk mengontrol alur kesalahan apabila ditemui di tengah program (atau dengan kata lain eksepsi atau pengecualian). T untuk Telunjuk dan K untuk Kelingking. Dalam permainan real. seperti return yang digunakan untuk membuat subrutin sendiri. Anda berharap untuk mencetak kata hallo 10x di layar. 1. PerintahSystem. Hasil perhitungan komputer dan hasil input dari user akan dibandingkan. J.out. dan 2 seperti pada komputer. kemudian hasilnya siapa yang menang akan ditampilkan di layar. Misalnya perintah berikut for (i = 1. Peraturannya : Jempol menang lawan Telunjuk. Beberapa kata kunci lain akan juga dibahas pada subjek tentang pemrograman berorientasi objek yang akan kita bahas kemudian Contoh Program switch case Posted Sel. sedangkan user adalah pemain kedua. atau try. dan K akan diubah menjadi angka 0." setelah for menyatakan bahwa program tidak melakukan apaapa di dalam perulangan.14:34 by belajarprogram Versi ramah cetak Kita akan membuat program untuk main suit.. Ada beberapa yang akan kita bahas kemudian. Perintah kosong sering merupakan sumber kesalahan dan salah satu fitur yang sulit untuk dicari kesalahannya pada saat debugging..println("hallo") tidak berada di dalam perulangan for. i <= 10. User akan diberikan pertanyaan untuk memasukkan J untuk Jempol. perintah1 maka perintah1 akan tetap dilaksanakan walaupun x <= 0. pernyataan kosong juga berarti tanda . Hanya 3 jari yang boleh dipakai: jempol. 02/24/2009 . i++).54 apa di dalamnya. package mainsuit. sehingga perintah ini hanya dijalankan 1x saja.println("hallo"). . biasanya dua pemain mengadu suit dengan saling menunjukkan jari. pada kenyataannya hanya 1 hallo yang dicetak. dan kelingking. Pernyataan-pernyataan lain Hingga saat ini kita sudah membahas hampir semua pernyataan yang Java sediakan. System. Komputer akan menggunakan perintah random() untuk menghitung salah satu dari 3 pilihan. dan synchronized untuk mengatur kontrol untuk multi-threading. komputer adalah pemain pertama.out. T. Permainan ini terdiri dari dua pemain. Kemudian dengan pernyataan switch. sehingga apabila Anda menulis kode seperti if (x > 0). telunjuk. 0 berarti Jempol. dan 2 berarti Kelingking. tetapi pernyataan-pernyataan ini merupakan pernyataan lanjutan Java. Dalam Java. Telunjuk menang lawan Kelingking. Dalam program ini. dan Kelingking menang lawan Jempol.

io. // selama input tidak valid.println("J untuk Jempol"). // Kita gunakan pernyataan while hingga user betul // memasukkan salah satu dari J.length() > 0) { switch (input. System. int suitUser = 0. } // pastikan bahwa user memasukkan sesuatu dengan mengecek // apakah panjang input > 0 // jika tidak.out.exit(1). System.55 import java.out. atau K boolean inputvalid = false.println("=============="). // baris kosong // variabel untuk mengambil input dari user BufferedReader br = new BufferedReader(new InputStreamReader(System. int suitKomputer = 0. T.println("T untuk Telunjuk").println("K untuk Kelingking"). try { input = br.println("Kesalahan IO. System.out. System.out. maka perulangan akan dilanjutkan if (input.println("Permainan suit"). System.out.println("Masukkan salah satu dari 3 kemungkinan :").*. System.print("Masukkan suit Anda "). } catch (IOException ioe) { System.out. String input = null.readLine().in)).out.charAt(0)) { . System.out. public class MainSuit { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub // cetak aturan main dan input dari user System.out. program berhenti"). jalankan perulangan ini while (!inputvalid) { System.println("").

} // menghitung siapa yang menang switch (suitKomputer) { // jika komputer Jempol case 0: // cetak suit Komputer System. case 't' : case 'T' : suitUser = 1. break.println("Seri"). } } } // sekarang menghitung suit komputer // Math.random()*3). inputvalid = true. // kita ganti inputvalid agar perulangan selesai break. berarti menghasilkan nilai acak antara 0 dan 3 // perintah (int) untuk mengubah bilangan real menjadi bilangan bulat // dengan cara menghilangkan semua digit di belakang koma // misalnya 1. inputvalid = true.random() menghasilkan nilai acak antara 0 dan 1 // jika kita kali 3. // suatu saat "mungkin" nilai random bernilai 3 // karena 3 tidak ada dalam suit kita. case 'k' : case 'K' : suitUser = 2. // kita ganti inputvalid agar perulangan selesai break. .println("Suit komputer = Jempol"). inputvalid = true. yaitu 0.0232323 menjadi 1 suitKomputer = (int)(Math.56 case 'j' : case 'J' : suitUser = 0.out.out. maka kita harus ubah menjadi // salah satu suit yang valid. // kita ganti inputvalid agar perulangan selesai break. atau 2 // dalam hal ini kita ganti jadi 2 if (suitKomputer == 3) { suitKomputer = 2. switch (suitUser) { // jika user Jempol case 0: System. 1.

break.println("Suit komputer = Telunjuk"). break.out. . // dari switch(suitKomputer) // jika komputer Kelingking case 2: // cetak suit Komputer System. // jika user Telunjuk case 1: System.out. // dari switch(suitKomputer) // jika komputer Telunjuk case 1: // cetak suit Komputer System. // jika user Telunjuk case 1: System.out. } break. break. break.println("Seri").println("Suit komputer = Kelingking"). switch (suitUser) { // jika user Jempol case 0: System.println("Anda menang"). break.out. // jika user Kelingking case 2: System. switch (suitUser) { // jika user Jempol case 0: System. } break. break.println("Anda kalah").println("Anda menang").out. // jika user Kelingking case 2: System.out. break.println("Anda menang").out.out. // jika user Kelingking case 2: System. break.out.out.println("Anda kalah").57 p // jika user Telunjuk case 1: System.println("Seri").println("Anda kalah").

// dari switch(suitKomputer) } } } Berikut ini adalah contoh keluaran program .58 } break.

Sign up to vote on this title
UsefulNot useful