Anda di halaman 1dari 40

BAB 6 PEMROGRAMAN JAVA BAGIAN 1

6.1. Tujuan 1. Memahami dasar-dasar pemrograman java 2. Memahami pernyataan penyeleksian kondisi IF-THEN-ELSE pada java

3. Memahami pernyataan penyeleksian kondisi SWITCH-CASE pada java 4. Memahami pernyataan perulangan WHILE dan DOWHILE pada java 5. Memahami pernyataan perulangan FOR pada java 6.2. Dasar Teori 6.2.1. Pengenalan Pemrograman Java dan Instalasi
a. Java dipelopori oleh James Gosling, Patrick Naughton, Chris Warth, Ed

Frank, dan Mike Sheridan dari Sun Microsystems, Inc pada tahun 1991. Mereka membutuhkan kurang lebih 18 bulan untuk membuat versi pertamanya. Bahasa ini pada awalnya disebut Oak tapi kemudian diubah menjadi Java pada tahun 1995 karena nama Oak telah dijadikan hak cipta dan digunakan sebagai bahasa pemrograman lainnya. Antara pembuatan Oak pada musim gugur 1992 hingga diumumkan ke publik pada musim semi 1995, banyak orang yang terlibat dalam desain dan evolusi bahasa ini. Bill Joy, Arthur van Hoff, Jonathan Payne, Frank Yellin, dan Tim Lindholm merupakan kontributor kunci yang

mematangkan prototipe aslinya.

Java Modern Java telah digunakan dalam banyak hal dan telah membuktikan keberadaannya pada abad ke 21. Saat ini, Java digunakan bermacam jenis aplikasi seperti aplikasi embedded, aplikasi keuangan, desktop, simulasi pesawat, pemrosesan citra, game, aplikasi perusahaan terdistribusi yang disebut J2EE dan masih banyak lagi.

Java Virtual Machine (JVM) Java Virtual Machine merupakan aplikasi sederhana yang ditulis dalam bahasa C untuk mengeksi program yang ditulis dalam bahasa Java. Pada saat kompilasi (perubahan dari bahasa tingkat tinggi ke bahasa lebih rendah), program tersebut diubah menjadi KODE BYTE. Kemudian pada saat eksekusi, JVM membaca kode byte tersebu dan mengubahnya menjadi bahasa mesin yang dimengerti oleh sistem operasi tempat program tersebut dijalankan. Karena JVM sangat bergantung pada platformnya (bahasa mesin merupakan bahasa level rendah yang hanya dimengerti oleh suatu mesin tertentu, misalnya Intel, tapi tidak dapat dimengerti oleh mesin lain, seperti Macintosh), byte code ini dapat dibuat untuk terbebas dari kungkungan platform tertentu. Code byte yang dihasilkan dalam proses kompilasi bahasa Java akan selalu sama untuk setiap sistem operasi atau jenis mesinnya, tetapi JVM akan mengubah kode byte tersebut menjadi bahasa mesin tujuannya.

Just In Time Compiler (JIT) Meskipun Java didesain untuk diinterpretasi, secara teknis tidak ada yang menghalangi Java untuk dikompilasi menjadi bahasa mesin seperti bahasa-bahasa pemrograman lainnya. Sun menyediakan kompiler Just In Time Compiler (JIT) untuk mengkompilasi kode byte itu menjadi bahasa mesinnya pada saat yang bersamaan dengan eksekusinya. Walaupun demikian, pendekatan JIT ini menghasilkan kemampuan yang lebih dibandingkan dengan interpretasi biasa.
b. Kelebihan Java Keuntungan yang Anda dapat dari Java

Mulai dengan cepat: Java merupakan bahasa pemrograman


berorientasi objek, mudah dipelajari, terutama untuk programmer yang sudah menguasai C atau C++.

Tulis lebih sedikit program: Jumlah kelas, jumlah metode, dll,


menunjukkan bahwa program yang ditulis dalam bahasa pemrograman Java memiliki jumlah 4 kali lipat lebih kecil dari program sama yang ditulis dalam bahasa C++

Tulis program lebih baik: Bahasa pemrograman Java menganjurkan


praktek membuat program yang baik, dan automatic garbage collection membantu Anda untuk menghindari kebocoran memori. Orientasi objeknya, arsitektur komponen JavaBeans, dan

jangkauannya yanga luas, API yang mudah diperluas, memungkinkan Anda menggunakan kode yang ada.

Membuat program dengan lebih cepat: Bahasa pemrograman Java


lebih mudah dari C++, pemrograman akan menjadi 2 kali lipat lebih cepat, dengan jumlah baris yang jauh lebih sedikit.

Menghindari kebergantungan pada platform tertentu: Anda dapat


menjalankan program Anda pada banyak platform dengan TIDAK menggunakan library yang ditulis spesifik untuk platform tertentu.

Tulis sekali, jalankan di mana saja: Karena aplikasi yang ditulis dalam
bahasa Java dikompilasi ke dalam kode byte yang bebas platform, aplikasi yang ditulis dapat jalan secara konsisten pada platform apa saja.

Distribusikan software Anda dengan mudah: Dengan Java Web Start,


pengguna program Anda akan dapat menggunakan aplikasi Anda dengan mudah. Sistem pengecekan versi otomatis pada saat program dimulai menjamin pengguna Anda selalu menjalankan versi terkini. Apabila versi baru tersedia, Java Web Start akan melakukan instalasi secara otomatis.

Tool Java NetBeans IDE a. Installasi

Gambar 6.1

Gambar 6.2

Gambar 6.3

Gambar 6.4

Gambar 6.5

Gambar 6.6

Gambar 6.7

Gambar 6.8

Definisi paket (package) package hellosiskom; 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 HelloSiskom 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 :
/* 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 HelloSiskom { ... } 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 HelloSiskom 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 Hello Siskom pada komputer Anda.
System.out.println ("Hello Siskom!") ;

Perintah tersebut menggunakan pustaka inti Java, yaitu kelas Sistem. b.1 Variabel dan Tipe Data

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 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;

Literal Karakter Kita dapat melambangkan suatu karakter dengan tanda petik tunggal misalnya a atau 3 atau =. Suatu karakter dapat juga dilambangkan dengan kode ASCII nya. Caranya dengan memulainya dengan \u00 (garis

miring terbalik) kemudian diikuti dengan kode ASCII nya dalam bentuk
heksadesimal.
// huruf 'A' dalam ASCII char huruf = '\u0041';

Literal Boolean Nilai true dan false pada java merupakan literal boolean. Suatu variabel bertipe boolean hanya dapat memiliki nilai true atau false. boolean ok = true; Ingat bahwa boolean true atau false TIDAK menggunakan tanda petik tunggal seperti ekspresi pada karakter. Literal Bilangan Riil Bilangan riil, misalnya -0.00127 atau 415.842, pada java dapat disimpan baik sebagai float atau double. Bilangan real dapat direpresentasikan dalam bentuk desimal biasa, pecahan, atau eksponen (dilambangkan dengan e atau E)
Tabel 6.1

Tipe

Ukuran bytes bit 32 64

Rentang

Presisi (jumlah digit)

float double

4 8

+/- 3.4 x 1038 +/- 1.8 x 10308

6-7 15

Imbuhan akhir d atau D dan f atau F dapat pula ditambahkan untuk menentukan tipenya secara eksplisit. Berikut beberapa contohnya. double d = 3.27E+32; float f = 4f; float pi = 3.14159;

Literal String String merupakan untaian huruf dan angka yang tersusun menjadi satu kalimat. Dalam bahasa java, string bukan merupakan tipe primitif, tetapi merupakan kelas. String pada java tidak disimpan dalam bentuk array

seperti pada C. Java menyediakan beberapa metoda untuk melakukan penggabungan, modifikasi, atau perbandingan. String ditulis di antara dua tanda petik ganda seperti contoh berikut.

String salam = "Selamat Datang" ;

String juga dapat mengandung karakter spesial seperti dibahas pada literal karakter. Misalnya

String hallo = "Selamat Datang \"Bapak Presiden\"" ; System.out.println("Hallo Bambang\n Selamat pagi,\n Semoga hari anda cerah\n";

Berikut ini adalah beberapa contoh lainnya.

// Contoh string kosong String teks = "";

// Contoh string berisi " teks = "\"";

// String dapat juga dipisah menjadi beberapa baris teks = "ini baris pertama " + " dan ini lanjutannya."

Literal Null Literal terakhir pada bahasa java adalah literal null. Null merupakan kondisi di mana suatu objek tidak diberi alokasi memori. Pada saat suatu objek dideklarasikan, komputer akan mengalokasikan memori untuk objek tersebut. Apabila objek tersebut telah selesai dipergunakan, kita dapat

melepas lokasi memori yang digunakan oleh objek tersebut sehingga memori itu dapat digunakan oleh objek lain. Berikut ini adalah contohnya

obj = null;
b.2 Aritmatika + Operator penjumlahan (juga sebagai penyambung string) - Operator pengurangan * Operator perkalian / Operator pembagian % Operator sisa pembagian Operator aritmatika digunakan untuk melakukan operasi matematika, seperti penambahan, pengurangan, pembagian, dan modulo (atau sisa pembagian). Contoh penggunaan :
Tabel 6.2

Symbol + * / % +

Nama operator
Operator penjumlahan Operator pengurangan

Contoh penggunaan
n = n + 1;

n = n 1; n = n * 1; n = n / 1; n = n % 1; n = saya + tidur;

Operator perkalian Operator pembagian Operator sisa pembagian Operator penyambung string

Operator Tunggal + Operator plus; menyatakan nilai positif (setiap angka tanpa tanda ini akan dianggap sebagai positif) Operator minus; menyatakan nilai negatif, dapat pula digunakan untuk menegatifkan suatu bilangan ++ Operator kenaikan; menambah suatu bilangan dengan 1 --Operator penurunan; mengurangkan suatu bilangan dengan 1

! Operator lawan; membalik nilai suatu boolean Operator tunggal hanya membutuhkan satu operan untuk melakukan operasinya. Operator ini tidak dapat digunakan untuk variabel final, karena variabel final berupa konstanta yang tidak dapat diubah-ubah. Beberapa jenis operator tunggal diberikan pada tabel di bawah ini.
Tabel 6.3

Symbol + ++

Nama operator Operator plus Operator minus Operator kenaikan

Operasi Menyatakan nilai positif Menyatakan nilai negative Menambah suatu bilangan dengan 1 Mengurangi suatu bilangan dengan 1 Membalik nilai suatu boolean

Contoh Angka = +1; Angka = -1; Angka = ++1;

--

Operator penurunan

Angka = --1;

Operator lawan

Ok = !true;

Operator kenaikan dan penurunan dapat diletakkan di belakang atau di depan suatu variabel. Jika diletakkan dilakukan di depan (++x atau --x), apabila

penambahan/pengurangan

sebelumnya,

sedangkan

diletakkan di akhir (x++ atau x--) penambahan/pengurangan dilakukan setelahnya. Walau bagaimanapun pada akhirnya keduanya akan

menghasilkan x = x+1 atau x = x-1. Mari kita lihat contohnya untuk membedakan lebih jelas perbedaan penempatan operator tunggal ++ dan Operator Pembanding, Boolean dan Kondisi Operator kondisi (conditional operator) menghasilkan nilai true atau false tergantung dari variabelnya, dalam hal ini operasinya dilakukan pada dua operand. Operator boolean adalah operator kondisi yang kedua operandnya berupa nilai boolean (true atau false), sedangkan Operator Pembanding membandingkan 2 nilai seperti pada operasi matematika.

Catatan :

Pada

objek, seperti

String, operasi

pembanding akan

membandingkan alamat memory tempat objek itu disimpan, bukan membandingkan isinya. Untuk membandingkan isi String, gunakan equals(), equalsIgnoreCase(), dan compareTo() seperti

dibahas pada bagian sebelumnya.


Tabel 6.4

Symbol == != > >= < <= && || ! ?:

Nama operator Sama dengan Tidak sama dengan Lebih besar Lebih besar atau sama dengan Lebih kecil Lebih kecil atau sama dengan Condotional AND Conditional OR NOT Bentuk pendek dari if-then-else

Contoh b = (1==2); B = (1==2); B = (1>2); B = (1>=2); B = (1<2); B = (1<=2); B = true && false; B = true || false; B = true ! false

Operator boolean AND Operator kondisi AND menghasilkan "true" apabila kedua operandnya bernilai "true". Jika salah satunya atau keduanya "false", operator ini menghasilkan "false". Berikut ini tabel kebenaran operasi AND.
Tabel 6.5

Op1 atau Exp 1

Op2 atau Exp 2

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". Seperti terlihat dari tabel di atas, apabila Op1 (di sebelah kiri) bernilai "false", hasilnya akan selalu "false" tidak tergantung pada isi dari Op2. Operator kondisi OR Operator kondisi OR menghasilkan "true" jika salah satu operandnya bernilai "true". Jika keduanya "false", operator ini menghasilkan "false". Berikut ini table kebenaran oeprasi OR.
Tabel 6.6

Op1 atau Exp 1 True True False False

Op2 atau Exp 2 true False True False

Hasil True True True false

Operator || akan mengevaluasi Op2 (di sebelah kanan) HANYA jika operand 1 bernilai "false". Seperti terlihat dari tabel di atas, apabila Op1 (di sebelah kiri) bernilai "true", hasilnya akan selalu "true" tidak tergantung pada isi dari Op2.

Operator NOT Operator NOT ("!") melakukan operasi boolean NOT pada operand atau ekspresi tunggal. Operator ini mengecek nilai boolean dari suatu operand atau expresi kemudian membalik nilainya (dari true ke false atau false ke true). Berikut ini adalah tabel kebenaran operator NOT.
Tabel 6.7

Op 1 True false

Hasil False True

Operator Ternary (?:) Java memiliki operator berkondisi lain yang disebut ternary "?:", yang pada dasarnya merupakan bentuk pendek dari if-then-else. Secara umum kondisi ? jika_benar : jika_salah Pada dasarnya operator "?:" akan mengevaluasi "kondisi". Apabila kondisi bernilai "true", operator akan mengembalikan "jika_benar", tetapi apabila "kondisi" bernilai "false", operator akan mengembalika "jika_salah". Misalnya x = (1 > 2) ? 10 : 20 Dari contoh di atas, "x" akan memiliki nilai 20, karena ekspresi (1 > 2) adalah salah (atau "false").

Input Output Java bukan bahasa pemrograman untuk Console (seperti DOS atau Linux), sehingga untuk mengambil input dari user diperlukan sedikit trik yang tidak sesederhana readln pada bahasa pemrograman lain.

Membaca String yang diketik oleh user di konsol Kita membutuhkan kelas yang beberapa kelas, yaitu BufferedReader, InputStreamReader, dan System.in (lawan dari System.out yang kita gunakan untuk menampilkan pesan di layar). Dua kelas pertama terdapat dalam package yang dinamakan java.io. Untuk itu, kita harus menambah satu baris perintah
import java.io.*

yang berarti mengimport semua kelas dalam paket java.io (tanda * berarti semua). Kemudian kita harus juga membuat suatu objek dari kelas BufferedReader. Kelas BufferedReader adalah kelas abstrak yang menangani baca tulis ke suatu media.

Kelas

ini

membutuhkan

kelas

lain

sebagai

pekerjanya,

yaitu

InputStreamReader. Dan InputStreamReader membutuhkan media tempat

baca tulis dilakukan, yaitu System.in. Semua ini bisa dituliskan dalam satu perintah yaitu :
BufferedReader br = new BufferedReader (new InputStreamReader(System.in));

Di sini variabel br merupakan objek yang merupakan jelmaan dari kelas BufferedReader. Untuk memerintahkan Java mengambil input dari user, kita gunakan fungsi readline() yang terdapat pada kelas BufferedReader, dalam hal ini terealisasi pada objek br.
nama = br.readLine();

Karena kita berhubungan langsung dengan sistem IO (input-output) komputer yang harus diasumsikan tidak pasti (misalnya ada masalah pada sistem keyboard, atau komputer sedang bekerja berat sehingga input dari user tidak bisa diambil), kita harus menempatkan fungsi readLine() pada klausa
try { ... } catch (IOException ioe) { ... }

Perintah di dalam try { ... } adalah perintah yang kita ingin jalankan pada situasi yang "mungkin" tidak berhasil. Parameter pada catch, yaitu IOException ioe adalah jenis kesalahan yang ingin kita tangkap. Dalam hal ini kita ingin menangkap adanya kesalahan IO, yaitu kesalahan yang bertipe IOException.
Perintah di dalam catch { ... } adalah perintah yang akan dilakukan apabila kesalahan ditangkap. Jika tidak ada kesalahan IO yang ditemukan, maka bagian ini akan dilewatkan (tidak dijalankan).

6.2.2. If..Else Pernyataan if merupakan salah satu pernyataan percabangan pada Java, dengan bentuk umum seperti
if (suatu_kondisi) perintah1 else perintah2

Seperti biasa, perintah1 dan perintah2 bisa berbentuk blok yang terdiri dari beberapa perintah. Pernyataan if merupakan bentuk percabangan 2 arah. Bagian else yang terdiri dari kata "else" dan perintah2 tidak selalu harus ada. Perhatikan bahwa baik perintah1 dan perintah2 bisa merupakan pernyataan if itu sendiri. Ada beberapa hal menarik yang mungkin berguna. Ambil contoh dalam pernyataan berikut
if (x > 0) if (y > 0) System.out.println("perintah1"); else System.out.println("perintah2");

Pertama-tama, komputer tidak peduli bagaimana Anda memformat paragraf dan indentasi dari pernyataan if tersebut. Java akan menganggap else terkait dengan if terdekat, sehingga kode di atas akan dianggap seperti
if (x > 0) if (y > 0) System.out.println("perintah1"); else System.out.println("perintah2");

else di program di atas akan dianggap bagian dari pernyataan jika y > 0, padahal yang kita maksud adalah else jika x > 0. Untuk memperbaikinya, kita tambahkan tanda kurung {} sehingga menjadi
if (x > 0) { if (y > 0) System.out.println("perintah1"); } else System.out.println("perintah2");

Kedua pernyataan tersebut memiliki arti yang berbeda. Jika x <= 0, pada kode pertama Java tidak mencetak apa-apa ke layar, sedangkan kode kedua java akan mencetak "perintah2". Lebih menarik lagi, perhatikan kode berikut
if (kondisi_pertama) perintah1 else if (kondisi_kedua) perintah2 else perintah3

Lagi-lagi karena Java tidak membedakan indentasi penulisan, 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. Komputer akan mengeksekusi hanya salah satu dari perintah1, perintah2, atau perintah3. Komputer akan mengevaluasi

kondisi_pertama, jika true, maka perintah1 dieksekusi sementara

perintah2 dan perintah3 diabaikan. Jika false, maka kondisi_kedua akan dievaluasi. Jika true, maka perintah2 akan dieksekusi dan perintah3 diabaikan. Jika false, maka hanya perintah3 saja yang dieksekusi. Berikut ini adalah contoh penggunaan percabangan 3 arah.
if (suhu < 20) System.out.println("Dingin"); else if (suhu < 30) System.out.println("Lumayan"); else System.out.println("Panas");

Kita bahkan dapat membentuk pernyataan if-else ini menjadi percabangan N arah, misalnya
if (kondisi_pertama) perintah1 else if (kondisi_kedua) perintah2 else if (kondisi_ketiga) perintah3 else if (kondisi_keempat) perintah4 . . . else if (kondisi_keNminus1) perintahNmin1 else perintahN

Contoh berikut ini adalah mengurutkan 3 bilangan dari kecil ke besar. Misalnya kita mempunyai 3 variabel a,b dan c. Bilangan yang paling kecil adalah bilangan yang lebih kecil dari kedua bilangan yang lain. Sekarang mari kita rangkai logika untuk menentukan urutan bilangan dari kecil ke besar. Mula-mula kita cek apakah a lebih kecil dari b dan c, yaitu dengan pernyataan if (a < b && a <c)

Jika a betul merupakan bilangan terkecil, maka kita uji apakah b lebih kecil dari c dengan perintah if (b < c) Jika a bukan bilangan terkecil, maka b atau c, salah satunya bisa merupakan bilangan terkecil. Kita hanya perlu membandingkan apakah b lebih kecil dari c dengan if (b < c) Jika b lebih kecil dari c, berarti kita tahu bahwa b adalah bilangan terkecil. Tetapi kita belum tahu apakah bilangan terkecil berikutnya adalah a atau c, sehingga kita harus menguji lagi dengan if (a < c) Jika a lebih kecil dari c, maka urutannya adalah b, a, c. Jika tidak, maka urutannya adalah b, c, a. Demikian halnya apabila jika b > c, maka kita bisa tentukan urutan bilangannya. Keseluruhan logika ini, bisa kita tuangkan dalam bentuk :
if (a < b && a < c) { if (b < c) System.out.println(a + " " + b + " " + c); else System.out.println(a + " " + c + " " + b); } else if (b < c) { if (a < c) System.out.println(b + " " + a + " " + c); else System.out.println(b + " " + c + " " + a); } else { if (a < b) System.out.println(c + " " + a + " " + c); else System.out.println(c + " " + b + " " + a); }

Logika di atas bisa juga dituangkan dengan cara lain, yaitu melihat urutannya. Pertama kita cek apakah a < b. Jika ya, kita tahu bahwa urutannya pasti a terlebih dahulu baru b. Kemudian kita lihat apakah c berada di sebelah kiri a atau disebelah kanan b atau di tengah-tengah. Demikian seterusnya jika urutannya b terlebih dahulu baru a. Sehingga kodenya bisa dituliskan dalam bentuk :
if (a < b) { if (c < a) System.out.println(c + " " + a + " " + b); else if (c > b) System.out.println(a + " " + b + " " + c); else System.out.println(a + " " + c + " " + b); } else { if (c < b) System.out.println(c + " " + b + " " + a); else if (c > a) System.out.println(b + " " + a + " " + c); 96 else System.out.println(b + " " + c + " " + a); }

6.2.3. Switch Case Penyataan percabangan kedua yang dimiliki Java adalah switch. Pernyataan switch lebih jarang digunakan, tetapi sering bermanfaat apabila kita ingin menuliskan percabangan multi arah. Pernyataan switch memiliki bentuk sebagai berikut
switch (ekspresi) { case nilai1: perintah1 break; case nilai2: perintah2 break;

case nilai3: perintah3 break; default: perintah_lain}

Di sini pernyataan switch akan mencari nilai ekspresi yang sesuai dengan nilai-nilai yang didaftarkan pada pernyataan case. Jika salah satu nilai ditemui, maka program akan melompat ke cabang case tersebut dan melakukan perintah yang terdapat di sana. Jika tidak ditemui, maka program akan melompat ke perintah yang terdapat pada pernyataan default. Pernyataan break di atas sebetulnya tidak harus selalu ada. Tetapi, perintah break di sini memerintahkan komputer agar segera keluar dari blok switch apabila perintah tersebut telah selesai dilaksanakan. Apabila perintah break tidak diberikan, maka program akan terus mengeksekusi perintah lain meskipun sudah berada di luar nilai yang tertera dalam pernyataan casenya. Misalnya, lihat kode berikut ini :
switch (N) case 1: System.out.println("Angka tersebut bernilai 1"); break; case 2: case 3: case 4: case 5: System.out.println("Angka tersebut bernilai 2, 3, 4, atau 5"); break; case 6: case 7: case 8: System.out.println("Angka tersebut bernilai 6, 7, atau 8")

break; default: System.out.println("Angka tersebut tidak bernilai 1 - 8"); }

Salah satu aplikasi di mana pernyataan switch berguna adalah untuk memproses menu. Menu memiliki beberapa pilihan dan user akan diminta untuk memilih suatu pilihan. Kita dapat menggunakan switch untuk menginstruksikan komputer untuk melakukan tugas tertentu sesuai dengan menu yang dipilih oleh user. Jika Anda ingat pernyataan main() pada program Java, pernyataan main memiliki parameter String[] args, di mana args merupakan argumen yang diberikan pada saat program dijalankan melalui konsol. Biasanya argumen yang diberikan berupa opsi bagaimana program harus dilaksanakan. Di sini pernyataan switch juga berguna untuk memilih bagaimana program akan berjalan . Jika Anda

terbiasa atau pernah bergaul dengan Linux, maka tidak asing untuk menemukan perintah pada Linux seperti "ls -l" atau "tar xfz blabla". Di sini ls atau tar adalah nama program dan "-l" atau "xfz blabla" adalah argumen yang diberikan pada saat program dijalankan. 6.2.4. For Kita akan membahas bentuk perulangan lain, yaitu perulangan for. Setiap bentuk perulangan for dapat diubah menjadi bentuk perulangan while dengan fungsi yang sama tanpa mengubah alur program. Tetapi tergantung dari permasalahan yang akan kita pecahkan, menulis program dengan for akan membuat alur program lebih mudah dipahami. Misalnya, kita akan menghitung 1+2+3+4+5+...+100. Perulangan ini dapat ditulis juga dengan
jumlah = 0; for (i = 1; i <= 100; i++) jumlah += i

Di sini perulangan while memiliki 3 komponen penting, yaitu inisialisasi, yaitu memberikan nilai awal suatu variabel,

suatu_kondisi_variabel, yaitu pengujian bahwa perulangan akan terus dilakukan selama kondisi ini bernilai true, dan terakhir update_variabel, yaitu instruksi mengubah nilai kondisi variabel untuk membatasi perulangan sehingga akan selesai suatu saat, tidak berulang terus menerus. Pada perulangan for, ketiga komponen ini dirangkai menjadi satu dalam bentuk for (inisialisasi_variabel; kondisi_variabel;

update_variabel) perintah atau jika perintah merupakan blok yang terdiri dari banyak perintah, dapat dituliskan juga dalam bentuk for (inisialisasi_variabel; kondisi_variabel; update_variabel) {

banyak_perintah } Di sini inisialisasi variabel bisa berupa apa saja yang berbentuk perintah. 6.2.5. While Pernyataan while telah diperkenalkan pada bagian sebelumnya. Perulangan while memiliki bentuk while (suatu_kondisi) perintah perintah bisa juga berupa blok yang berisi kumpulan perintah-perintah di antara { dan }. perintah ini disebut juga dengan inti perulangan. Inti perulangan akan terus dieksekusi selama suatu_kondisi bernilai true. suatu_kondisi ini disebut juga penguji perulangan.

6.3. Hasil Percobaan dan Analisa 6.3.1. Ouput


package kelompok_40_output; /** * * @author MSSLAB-08 */ public class Kelompok_40_output { /** * @param args the command line arguments */ public static void main(String[] args) {

// TODO code application logic here System.out.println("KELOMPOK 40"); System.out.println("PRAKTIKUM JAVA 1"); } }

Gambar 6.9 Source Code dan Hasil Program 1

Pada gambar 6.9 adalah hasil dari pemrograman java menampilkan dua output yaitu KELOMPOK 40 dan PRAKTIKUM JAVA 1 dengan code System.out.println();.

6.3.2. Input Output


package kelompok_40_inputoutput; import java.io.*; public class Kelompok_40_InputOutput { public static void main(String[] args) { // TODO code application logic here try { String nama; System.out.print("Masukan nama : "); BufferedReader input = new BufferedReader (new InputStreamReader (System.in)); nama = input.readLine(); System.out.println("Selamat datang " +nama);

} catch (IOException io){ System.out.println (io.getMessage()); } } }

Gambar 6.10 Source Code dan Hasil Program 2 Pada gambar 6.10 adalah hasil pemrograman java input output , dalam pemrograman input output ini pada pengkodean menggunakan basic library import java.io.*;

6.3.3. If..Else
package kelompok_40_if_else; /** * * @author MSSLAB-08 */ public class Kelompok_40_if_else { /** * @param args the command line arguments */ public static void main(String[] args) { // TODO code application logic here int nilai= 100; if (nilai <= 100 && nilai >=80){ System.out.println("Selamat Nilai anda A");} else if (nilai <= 100 && nilai>=70){ System.out.println("Selamat Nilai Anda B");} else if (nilai <= 100 && nilai>=60){

System.out.println("Selamat Nilai Anda C");} else if (nilai <= 100 && nilai>=40){ System.out.println("Selamat Nilai Anda D");} else if (nilai >= 0 && nilai < 40){ System.out.println("Selamat Nilai Anda E");} else { System.out.println("Nilai yang dimasukkan salah !!");} } } }

Gambar 6.11 Source code dan Hasil Program 3 Pada gambar 6.11 adalah pemrograman yang memfungsikan if..else , pada gambar di contohkan input untuk nilai = 100 , maka akan di olah oleh fungsi if yang sudah diprogram lalu tampil Selamat Nilai anda A , jika input nilai <0 maka hasil Nilai yang anda masukkan salah.

6.3.4. Switch..Case
package kelompok_40_switchcase; /** * * @author MSSLAB-08 */ public class Kelompok_40_switchCase {

/** * @param args the command line arguments */ public static void main(String[] args) { // TODO code application logic here int angka = 758; int sisa; sisa = angka%2; switch (sisa){ case 0: System.out.println("angka " + angka genap"); break; case 1: System.out.println("angka" + angka ganjil"); break; default: System.out.println("SALAH"); } } }

"

adalah

"

adalah

Gambar 6.12 Source Code dan Hasil Program 4 Pada gamba 6.12 adalah pemrograman yang memfungsikan switch..case , dicontohkan untuk input 758 kemudian diproses angka % 2 lalu disesuaikan dengan case dan akan tampil bilangan genap.

6.3.5. For
package kelompok_40_for; /** * * @author MSSLAB-08 */ public class Kelompok_40_for { /** * @param args the command line arguments */ public static void main(String[] args) { // TODO code application logic here int i; for (i=0;i>=-10;i--){ System.out.println("perulangan ke - " +i); } } }

Gambar 6.13 Source Code dan Hasil Program 5 Pada gambar 6.13 memfungsikan perulangan for untuk for(i=0;i>=-10;i--) maka akan tampil nilai berurut minus dari 0 (-10).

6.3.6. While
package kelompok_40_while; /** * * @author MSSLAB-08 */ public class Kelompok_40_while { /** * @param args the command line arguments */ public static void main(String[] args) { // TODO code application logic here int i=0; while (i<10){ System.out.println("Perulangan ke - " +i); i++; } } }

Gambar 6.14 Source Code dan Hasil Program 6 Pada gambar 6.14 adalah pemrograman yang memfungsikan perulangan while . . do untuk i =0 lalu while(i<10) , kemudian setelah coding output system.out.print di tulis i++, maka akan tampil angka berurut dari 0-9.

6.4. Tugas Praktikum 6.4.1. Project 1


package kelompok_40_inputoutput; import java.io.*; public class Kelompok_40_InputOutput { public static void main(String[] args) { // TODO code application logic here try { String nama; System.out.print("Masukan nama : "); BufferedReader input = new BufferedReader (new InputStreamReader (System.in)); nama = input.readLine(); System.out.println("Selamat datang " +nama); } catch (IOException io){ System.out.println (io.getMessage()); } } }

Gambar 6.15 Source Code dan Hasil Program 7 Pada gambar 6.10 adalah hasil pemrograman java input output , dalam pemrograman input output ini pada pengkodean menggunakan basic library import java.io.*; .

6.4.2. Project 2
IF-THEN-ELSE /* * To change this template, choose Tools | Templates * and open the template in the editor. */ package input_nilai_kelompok40; import java.io.*; public class Input_Nilai_Kelompok40 { public static void main(String[] args) throws IOException { // TODO code application logic here int nilai; BufferedReader input = new BufferedReader (new InputStreamReader (System.in)); System.out.print("masukkan nilai : "); nilai = Integer.parseInt(input.readLine()); if (nilai <= 100 && nilai >=80){ System.out.println("Selamat Nilai else if (nilai <= 100 && nilai>=70){ System.out.println("Selamat Nilai else if (nilai <= 100 && nilai>=50){ System.out.println("Selamat Nilai else if (nilai <= 100 && nilai>=35){ System.out.println("Selamat Nilai else if (nilai >= 0 && nilai < 35){ System.out.println("Selamat Nilai else { System.out.println("Nilai yang salah !!");} } } anda A");} Anda B");} Anda C");} Anda D");} Anda E");} dimasukkan

Gambar 6.16 Source Code dan Hasil Program 8 Pada gambar 6.16 adalah pemrograman yang memfungsikan kombinasi input dan if..else , pada gambar di contohkan input untuk nilai = 90 , maka akan di olah oleh fungsi if yang sudah diprogram lalu tampil Selamat Nilai anda A , jika input nilai <0 maka hasil Nilai yang anda masukkan salah.

SWITCH CASE : /* * To change this template, choose Tools | Templates * and open the template in the editor. */ package case_kelompok_40; import java.io.*; public class Case_kelompok_40 { public static void main(String[] args) throws IOException { // TODO code application logic here int angka; int sisa; BufferedReader input = new BufferedReader (new InputStreamReader (System.in)); System.out.print("masukkan nilai : ");

angka = Integer.parseInt(input.readLine()); sisa = angka; switch (sisa){ case 100:case 99:case 98:case 97:case 96:case 95:case 94:case 93:case 92: case 91:case 90:case 89:case 88:case 87:case 86:case 85:case 84:case 83:case 82: case 81:case 80: System.out.println("NILAI ANDA A"); break; case 79:case 78:case 77:case 76:case 75:case 74:case 73:case 72: case 71:case 70: System.out.println("NILAI ANDA B"); break; case 69:case 68:case 67:case 66:case 65:case 64:case 63:case 62: case 61:case 60:case 59:case 58:case 57:case 56:case 55:case 54:case 53:case 52: case 51:case 50: System.out.println("NILAI C"); break; case 49:case 48:case 47:case 46:case 45:case 44:case 43:case 42: case 41:case 40:case 39:case 38:case 37:case 36:case 35: System.out.println("NILAI D"); break; case 34:case 33:case 32:case 31:case 30:case 29:case 28:case 27:case 26:case 25:case 24:case 23:case 22: case 11:case 10:case 9:case 8:case 7:case 6:case 5:case 4:case 3:case 2: case 1: System.out.println("NILAI E"); break; default: System.out.println("SALAH"); } } } ANDA ANDA ANDA

Gambar 6.17 Source Code dan Hasil Program 9 Pada gambar 6.17 adalah program yang menggunakan fungsi switch case , dicontohkan user menginput angka 56 maka data yang keluar NILAI ANDA C.

6.4.3. Project 3 Buatlah program perulangan menggunakan FOR dan WHILE dengan nilai nol (0) sebagai nilai awal dan input masukan sebagai nilai akhir yang akan ditampilkan di layar, misal : Jika diberi input 5, maka outputnya 0 1 2 3 4 5. Jika diberi input 3, maka outputnya 0 1 2 3. Jika lebih kecil dari nol (0), output error)

FOR :

package case_kelompok_40; import java.io.*;

public class Case_kelompok_40 {

public static void main(String[] args) throws IOException {

int x; int i; BufferedReader input = new BufferedReader (new InputStreamReader (System.in)); System.out.print("masukkan nilai : "); x = Integer.parseInt(input.readLine());

// TODO code application logic here if (x>0){ for (i=0;i<=x;i++){ System.out.println("perulangan ke - " +i); } } else { System.out.println("Output Error !"); } } }

While :

package case_kelompok_40; import java.io.*;

public class Case_kelompok_40 {

public static void main(String[] args) throws IOException {

int x; int i; i = 0; BufferedReader input = new BufferedReader (new InputStreamReader (System.in)); System.out.print("masukkan nilai : "); x = Integer.parseInt(input.readLine());

// TODO code application logic here

if (x>0){ while (i<=x){ System.out.println("Perulangan ke - " +i); i++; } } else { System.out.println("Output Error !"); } } }

6.4.4. Studi kasus (tidak wajib)

6.5. Kesimpulan 1. Kesimpulan 1 2. Kesimpulan 2

Anda mungkin juga menyukai