Laporan Java 1_kelompok 40

55
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 DO… WHILE 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

Transcript of Laporan Java 1_kelompok 40

Page 1: Laporan Java 1_kelompok 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 DO…WHILE 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.

Page 2: Laporan Java 1_kelompok 40

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++.

Page 3: Laporan Java 1_kelompok 40

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

Page 4: Laporan Java 1_kelompok 40

a. Installasi

Gambar 6.1

Gambar 6.2

Page 5: Laporan Java 1_kelompok 40

Gambar 6.3

Gambar 6.4

Page 6: Laporan Java 1_kelompok 40

Gambar 6.5

Gambar 6.6

Page 7: Laporan Java 1_kelompok 40

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

Page 8: Laporan Java 1_kelompok 40

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.

Page 9: Laporan Java 1_kelompok 40

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

Page 10: Laporan Java 1_kelompok 40

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

Page 11: Laporan Java 1_kelompok 40

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

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;

Tipe Ukuran Rentang Presisi (jumlah digit)

bytes bit

float 4 32 +/- 3.4 x 1038 6-7

double 8 64 +/- 1.8 x 10308 15

Page 12: Laporan Java 1_kelompok 40

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

Page 13: Laporan Java 1_kelompok 40

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 Contoh penggunaan

+ Operator penjumlahan n = n + 1;

- Operator pengurangan n = n – 1;

* Operator perkalian n = n * 1;

/ Operator pembagian n = n / 1;

% Operator sisa pembagian n = n % 1;

+ Operator penyambung string n = “saya” + “tidur”;

Operator Tunggal

+ Operator plus; menyatakan nilai positif (setiap angka tanpa tanda ini

akan dianggap sebagai positif)

Page 14: Laporan Java 1_kelompok 40

- 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 Operasi Contoh

+ Operator plus Menyatakan nilai positif Angka = +1;

- Operator minus Menyatakan nilai negative Angka = -1;

++ Operator kenaikanMenambah suatu bilangan

dengan 1Angka = ++1;

-- Operator penurunanMengurangi suatu bilangan

dengan 1Angka = --1;

! Operator lawanMembalik nilai suatu

booleanOk = !true;

Operator kenaikan dan penurunan dapat diletakkan di belakang atau di depan

suatu variabel. Jika diletakkan di depan (++x atau --x),

penambahan/pengurangan dilakukan sebelumnya, sedangkan apabila

diletakkan di akhir (x++ atau x--) penambahan/pengurangan dilakukan

setelahnya. Walau bagaimanapun pada akhirnya keduanya akan

menghasilkan x = x+1 atau x = x-1. Mari kita lihat contohnya untuk

membedakan lebih jelas perbedaan penempatan operator tunggal ++ dan –

Operator Pembanding, Boolean dan Kondisi

Operator kondisi (conditional operator) menghasilkan nilai true atau false

tergantung dari variabelnya, dalam hal ini operasinya dilakukan pada dua

Page 15: Laporan Java 1_kelompok 40

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 Contoh

== Sama dengan b = (1==2);

!= Tidak sama dengan B = (1==2);

> Lebih besar B = (1>2);

>= Lebih besar atau sama dengan B = (1>=2);

< Lebih kecil B = (1<2);

<= Lebih kecil atau sama dengan B = (1<=2);

&& Condotional AND B = true && false;

|| Conditional OR B = true || false;

! NOT B = true ! false

?: Bentuk pendek dari if-then-else

Operator boolean AND

Operator kondisi AND menghasilkan "true" apabila kedua operandnya

bernilai "true". Jika salah satunya atau keduanya "false", operator ini

menghasilkan "false". Berikut ini tabel kebenaran operasi AND.

Tabel 6.5

Op1 atau Exp 1 Op2 atau Exp 2 Hasil

True true True

True False False

Page 16: Laporan Java 1_kelompok 40

False True False

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 Op2 atau Exp 2 Hasil

True true True

True False True

False True True

False False 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 Hasil

Page 17: Laporan Java 1_kelompok 40

True False

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

Page 18: Laporan Java 1_kelompok 40

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.

Page 19: Laporan Java 1_kelompok 40

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).

Page 20: Laporan Java 1_kelompok 40

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

Page 21: Laporan Java 1_kelompok 40

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

Page 22: Laporan Java 1_kelompok 40

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)

Page 23: Laporan Java 1_kelompok 40

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

}

Page 24: Laporan Java 1_kelompok 40

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;

Page 25: Laporan Java 1_kelompok 40

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")

Page 26: Laporan Java 1_kelompok 40

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

Page 27: Laporan Java 1_kelompok 40

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) {

Page 28: Laporan Java 1_kelompok 40

// 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();

Page 29: Laporan Java 1_kelompok 40

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");}

Page 30: Laporan Java 1_kelompok 40

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 {

Page 31: Laporan Java 1_kelompok 40

/** * @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 " + " adalah angka genap"); break; case 1: System.out.println("angka" + " adalah angka ganjil"); break; default: System.out.println("SALAH"); } }}

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”.

Page 32: Laporan Java 1_kelompok 40

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).

Page 33: Laporan Java 1_kelompok 40

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.

Page 34: Laporan Java 1_kelompok 40

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.*;” .

Page 35: Laporan Java 1_kelompok 40

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 anda A");} else if (nilai <= 100 && nilai>=70){ System.out.println("Selamat Nilai Anda B");} else if (nilai <= 100 && nilai>=50){ System.out.println("Selamat Nilai Anda C");} else if (nilai <= 100 && nilai>=35){ System.out.println("Selamat Nilai Anda D");} else if (nilai >= 0 && nilai < 35){ System.out.println("Selamat Nilai Anda E");} else { System.out.println("Nilai yang dimasukkan salah !!");} } }

Page 36: Laporan Java 1_kelompok 40

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 : ");

Page 37: Laporan Java 1_kelompok 40

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 ANDA 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 ANDA 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 ANDA E"); break; default: System.out.println("SALAH"); } }}

Page 38: Laporan Java 1_kelompok 40

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 {

Page 39: Laporan Java 1_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 !");

}

}

}

Page 40: Laporan Java 1_kelompok 40

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

Page 41: Laporan Java 1_kelompok 40

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