PENYELEKSIAN
KONDISI/PERCABANGAN &
PERULANGAN
P
ARTI
4th week Estu Sinduningrum ST,MTT
IPE DASARP
ENULISAN TIPE DASARPENULISAN TIPE BENTUKAN
OPERATOR
Operator adalah media yang digunakan untuk memproses data sehingga memberikan hasil.
Secara umum operator dibagi tiga, yaitu : 1. Operator aritmatika,
2. Operator relasi, dan 3. Operator logika
O
PERATOR ARITMATIKA Digunakan untuk mengoperasikan data secara
matematika, misalnya (+), (-).
O
PERATOR RELASI
Digunakan untuk membandingkan dua
O
PERATORL
OGIKA Digunakan untuk mengaitkan dua buah kondisi menjadi sebuah kondisi, misalnya (dan), (atau)
S
EPARATORSIMBOL KETERANGAN DESKRIPSI
(……) Kurung (Parentheses) Digunakan untuk daftar parameter di
definisikan & menjalankan metode juga unk mendefinisikan keterdahuluan di eskspresi.
{…….} Kurung Kurawal
(Braces) Digunakan untuk nilai
2x array yg di inisialisa
secara otomatis. Juga untuk mendefinisikan blok dari kode unk kelas, metode dan lingkup
lokal.
[……] Kurung Siku
(Brackets) Digunakan untuk mendeklarasikan tipe
2x array.
Juga untuk mendeferensi nilai2x i array.
; Titik koma (Semi colon) Mengakhiri pernyataan
, Titik koma (Comma) Memisahkan identifier2x di deklarasikan
variabel. Juga digunakan untuk merangkai pernyataan2x didalam kalimat for
. Titik (Period) Digunakan unk memisahkan nama2x paket dari
subpaket & kelas. Juga digunakan unk
P
ENDAHULUAN(
IF...
ELSE,
SWITCH,
FOR,
WHILE,
DO-
WHILE)
Pada saat membuat program, ada kalanya kita dihadapkan
pada beberapa pilihan kondisi.
Kita dituntut untuk merancang ke alur mana saja program
akan dieksekusi.
Setiap alur pilihan akan memiliki konsekuensi
masing-masing sehingga menyebabkan perbedaan hasil akhir.
Sebagai ilustrasi, kita diminta untut membuat program
yang akan menyeleksi dan menentukan kelulusan seorang mahasiswa untuk suatu mata kuliah.
Langkah pertama, tentulah program akan meminta
parameter data mahasiswa (nama dan NIM) berisi data nilai masing-masing.
Setelah itu, program akan menentukan nilai batas
kelulusan dan memeriksa nilai mahasiswa tersebut.
Bila nilai yang dimiliki lebih besar atau sama dengan nilai
batas, akan dinyatakan lulus dan bila lebih kecil, dinyatakan tidak lulus.
Java telah menyediakan keyword if...else dan switch untuk
memfasilitasi penyeleksian kondisi.
P
ENDAHULUAN Bila Anda juga diminta untuk melakukan seleksi sebanyak 500 orang mahasiswa, maka dibutuhkan statement perulangan yang akan mengulangi proses sampai selesai.
Terdapat beberapa pilihan perulangan dalam Java yaitu : for, while, dan do..while.
Estu Sinduningrum, ST, MT
P
ENDAHULUANA
LGORITMA DANF
LOWC
HART(D
IAGRAMAL
UR)
Algoritma adalah alur logika yang
menjelaskan langkah-langkah apa yang
harus diambil untuk menyelesaikan
suatu tugas/masalah.
Flowchart adalah represenrasi grafis
dari suatu algoritma.
R
EPRESENTASIG
RAFISF
LOWC
HARTF
LOW
D
IRECTION
S
YMBOL
S
R
EPRESENTASIG
RAFISF
LOWC
HARTP
ROCESSING
S
YMBOL
S
Estu Sinduningrum, ST, MT
R
EPRESENTASIG
RAFISF
LOWC
HARTP
ROCESSING
S
YMBOL
S
R
EPRESENTASIG
RAFISF
LOWC
HARTI
NPUT
-O
UTPUT
S
YMBOL
S
Estu Sinduningrum, ST, MT
R
EPRESENTASIG
RAFISF
LOWC
HARTI
NPUT
-O
UTPUT
S
YMBOL
S
P
EMBUATANF
LOWCHART1. Tidak ada kaidah yang baku, hanya biasanya flowchart
dibuat dari halaman atas kebawah, dan samping kiri ke kanan.
2. Flowchart = gambaran hasil analisa suatu masalah
Flowchart dapat bervariasi antara satu pemrogram dengan pemrogram lainnya.
3. Secara garis besar ada 3 bagian utama:
– Input – Proses – Output
4. Hindari pengulangan proses yang tidak perlu dan
logika yang berbelit sehingga jalannya proses menjadi singkat.
5. Jalannya proses digambarkan dari atas ke bawah
kiri ke kanan, serta diberikan tanda panah untuk memperjelas.
6. Sebuah flowchart diawali dari satu titik START dan
diakhiri dengan END.
Estu Sinduningrum, ST, MT
F
LOWCHARTP
ROGRAM Flowchart Program merupakan keterangan yang lebih rinci
tentang bagaimana setiap
Langkah program tau prosedur sesungguhnya dilaksanakan.
Flowchart ini menunjukkan setiap langkah program atau prosedur dalam urutan yang tepat saat terjadi.
Programmer menggunakan flowchart program untuk
menggambarkan urutan instruksi dari program komputer.
Analisa Sistem menggunakan flowchart program untuk
menggambarkan urutan tugas-tugas pekerjaan dalam suatu prosedur atau operasi.
C
ONTOHF
LOWCHARTP
ROGRAMRESUME
Algoritma
Adalah
alur
logika
yang
mendefinisikan
langkah-langkah
secara
terstruktur untuk menyelesaikan suatu masalah.
Flowchart
Adalah representasi grafis dalam
bentuk blok, Lingkaran, elips, serta garis alur
(panah) yang digunakan untuk melambangkan
suatu algoritma.
S
EBAGAI ILUSTRASI,
DI BAWAH INI ADALAH ALGORITMA DARI AKTIVITAS MAKANYANG LENGKAP
1. Mengambil piring, sendok, garpu, dan gelas
minuman.
2. Menyendokkan nasi, lauk, clan sayur ke piring.
3. Menyuap dan mengunyah makanan.
4. Setelah kenyang, menuangkan minuman ke gelas. 5. Minum.
6. Membawa alat-alat makan tadi ke dapur dan
mencucinya.
FLOWCHART
Dengan flowchart, urutan langkah dari aktivitas
makan tadi digambarkan dengan simbol-simbol
persegi panjang, elips, lingkaran, dan sebagainya.
Simbol-simbol ini dihubungkan dengan tanda
F
LOWCHARTA
KTIVITAS“M
AKAN”
P
ROGRAML
ATIHAN18
Estu Sinduningrum, ST, MT
public class Perulangan {
public static void main (String[]arg){ int i=1; int j=5; for (i=1;i<=5;i++); { System.out.println(); for(j=1;j<=i;j++) ;{ System.out.print(i); } } } }
PERCABANGAN
Penyeleksian Kondisi atau dapat dikatakan sebagai percabangan atau branching merupakan sebuah blok program yang menyatakan bahwa sebuah aksi akan
dijalankan jika kondisi sebuah percabangan
terpenuhi.
Pada umumnya konsep percabangan dibagi dua, yaitu percabangan if dan percabangan case
P
ENYELEKSIAN
K
ONDISI
IF
Gunakan seleksi if untuk memeriksa apakah suatu
variabel/ekspresi memenuhi persyaratan suatu kondisi.
Seleksi if menggunakan ekspresi Boolean untuk
menentukan apakah suatu statement /blok statement akan dieksekusi atau tidak.
Bila variabel/ekspresi memenuhi persyaratan kondisi,
maka seleksi akan bernilai “benar”,
dan kemudian statement atau blok statement yang
P
ERNYATAAN IF Merupakan salah satu bentuk pernyataan terkondisi yang
berguna untuk pengambilan keputusan terhadap dua buah kemungkinan.
Pernyataan if sendiri pada dasarnya memiliki dua buah bentuk,
yaitu yang tidak mengandung else dan yang mengandung else.
Bentuk pernyataan if sederhana :
If (kondisi) {
//blok pernyataan yang dijalankan
//kalau kondisi bernilai benar
B
ENTUKU
MUMBANYAK KASUS
Estu Sinduningrum, ST, MT
public class Demolf { /** Main method */
public static void main(String [] args) { double nilaiInput;
System.out.println ( "\nPROGRAM DEMO IF" ); System.out.println ( "---\n");
//Mengintruksikan user untuk menginputkan nilai System.out.print("masukkan NiLai [0-100]: ");
nilaiInput = InputConsole.readDouble();
//Menyeleksi kondisi dan mencetak hasil ke console if (nilaiInput >= 60)
System.out.println("\nSelamat, anda Lulus mata Kuliah ini."); }
}
PROGRAM
* INPUTCONSOLE.JAVA
* MENGAMBIL INPUT DATA DARI CONSOLE.
/**
* Title : InputConsole
* Diskripsi : Mengambil input data dari console. */
import java.io.*; public class InputConsole { /** Membaca string dari keyboard */
public static String readString() {
BufferedReader bfr = new BufferedReader(new InputStreamReader (System.in), 1);
// Menginisialisasi String String string = "";
// Mengambil string dari keyboard try
{
string = bfr.readLine(); }
catch (IOException ex)
// Mengembalikan string hasil pembacaan dari keyboard return string;
}
// Mengambil nilai int dengan parsing string // input dari keyboard
public static int readInt() {
return Integer.parseInt(readString()); }
// Mengambil nilai byte dengan parsing string // input dari keyboard
public static int readByte() {
return Byte.parseByte(readString()); }
// Mengambil nilai long dengan parsing string // input dari keyboard
public static long readLong() {
return Long.parseLong(readString()); }
// Mengambil nilai float dengan parsing string // input dari keyboard
public static float readFloat() {
return Float.parseFloat(readString()); }
// Mengambil nilai double dengan parsing string // input dari keyboard
public static double readDouble() {
B
ENTUK IF..
ELSE Terkadang selain menentukan aksi apa saja yang akan dilakukan bila suatu kondisi terpenuhi,
kita juga ingin menetapkan konsekuensi-konsekuensi yang terjadi bila kondisi itu gagal dipenuhi.
Ambil contoh, dari program sebelumnnya kita tambahkan konsekuensi sebagai berikut:
"Bila tidak lulus, dapat diberi kesempatan ujian
Dibutuhkan tambahan keyword else sebagai pelengkap if untuk
menambahkan konsekuensi ini, sehingga disebut juga bentuk if . .else.
Sama dengan if, else juga hanya akan mengeksekusi sebanyak satu
statement yang terletak persis di bawahnya.
Dibutuhkan blok setelah deklarasi else untuk mengeksekusi
sejumlah statement.
Bila terdapat beberapa kemungkinan konsekuensi (multiple
condition), setelah suatu if . . else kita dapat menambahkan if . . else yang lainnya
Estu Sinduningrum, ST, MT
Estu Sinduningrum, ST, MT
/**
* Title : Program Demo if
* Deskripsi : Menggunakan if else untuk menyeleksi nilai ujian dan menentukan grade
kelulusannya. */
class DemoIfElse{ /**Main Method */
public static void main(String [] args) { double nilaiInput;
System.out.println ("\nPROGRAM DEMO IF ELSE" );
Syatem.out.println("---\n" ); //Menginstruksikan user untuk menginputkan
ni1ai.
// Untuk memasukkan data dari keyboard, digunakan
// kelas bantuan InputConsole.java.
System.out.print ("Masukkan Nilai [0 - 100] : " ) ; nilaiInput = inputConsole.readDouble();
PROGRAM
LATIHAN 20
//Menyeleksi range 0-100
if ((nilaiInput <0 | (nilaiInput > 100)) ) { System.out.println("Data input invalid!");
}
//Kalau input valid,lakukan instruksi berikut else {
//Menyeleksi kondisi if (nilaiInput >= 60) {
System.out.println("\nSelamat, anda lulus mata"+"kuliah ini.");
if (nilailnput >= 85)
System.out.println("\nNilai anda :A"); else if (nilailnput >= 70)
System.out.println("\nNilai anda :B"); else if (nilailnput >= 60)
System.out.println("\nNilai anda :C"); } else {
System.out.println("\nMaaf, anda harus mengulang"+ "mata kuliah ini
kembali,atau"+"mengikuti ujian perbaikan dengan "+"nilai maksimum C");
B
ENTUK IF ATAU IF..
ELSE BERSARANGB
ENTUK IF ATAU IF..
ELSE BERSARANG(
NESTED IF.,
ELSE)
Selain bentuk tunggal if atau if . .else serta mutlitple condition if . .eIse yang telah dibahas sebelumnya,
kita juga diperbolehkan untuk membuat if atau if ..else yang bersarang.
Maksudnya if atau if ..else itu dapat ditempatkan sebagai suatu blok seleksi di dalam blok if atau if . . else yang lain.
Bila pada bentuk multiple if ..e1se kedudukan
masing-masing if ..e1se adalah sederajat, namun pada nested if ..else, kedudukannya adalah bertingkat.
Kondisi if . . else tingkat pertama akan menyeleksi
variabel/objek untuk pertama kali, dan bila lulus,
maka variabel atau objek itu akan menghadapi seleksi if
..else tahap kedua,
bila lulus lagi ke seleksi if . . else ketiga, dan seterusnya.
B
ENTUK IF ATAU IF..
ELSE BERSARANG Proses seleksi seperti ini dapat kita jumpai pada kasus misalnya : seleksi penerimaan pegawai
baru.
Seleksi tahap pertama merupakan test tulis dan psikotes, bila lulus, pelamar harus menghadapi seleksi wawancara, dan bila lulus lagi, ia akan menghadapi test kesehatan.
Estu Sinduningrum, ST, MT
B
ENTUK IF ATAU IF..
ELSE BERSARANG Atau,
untuk menentukan nilai suatu ujian tergolong sebagai A, B, C, D, atau E dengan kriteria sebagai berikut:
B
ENTUK IF ATAU IF..
ELSE BERSARANGKELAS B
ACAK
EYBOARDEstu Sinduningrum, ST, MT
// --- // BacaKeyboard.Java
//
// Berisi kelas BacaKeyboard // yang mengandung metode
bacaString
// yang berfungsi menangani pembacaan data
// dari keyboard. Hasilnya bertipe string
// --- public class BacaKeyboard { public static String bacaString() {
int karakter; String str = "";
boolean selesai = false;
while(!selesai) { try { karakter = System.in.read(); if (karakter < 0 || (char) karakter == '\n') selesai = true;
else if ((char) karakter != '\r') str = str + (char) karakter; } catch(java.io.IOException e) { System.err.println("Ada kesalahan"); selesai = true; } } return str; } }
L
ATIHAN21
I
F
B
ERSARANG
:
JAVA
Estu Sinduningrum, ST, MT
// ---
// Berkas: IfBersarang:. java
// Menggunakan kelas BacaKeyboard // ---
public class IfBersarang {
public static void main(String[] arqs) { System.out.print ( "Nilai ujian: " ) ; String st = BacaKeyboard.bacaString(); int nilaiUjian = Integer.valueOf(st).intValue() ; char skor; if (nilaiUjian >= 90) skor = 'A'; else if (nilaiUjian >= 80) skor = 'B'; else if (nilaiUjian >= 60) skor = 'C' ; else if (nilaiUjian >= 50) skor = 'D' ; else skor = 'E' ; System.out.println("Skor:" + skor) ;
O
PERATORB
ERKONDISI Operator ini dikenal dengan sebutan operator berkondisi.
Selain itu juga disebut operator ternary, karena operator ini
melibatkan tiga buah argumen.
Kaidah pemakaian operator ini:
Dalam hal ini, jika ekspresi_kondisi bernilai benar maka ekspresi dengan operator ?:
ini menghasilkan nilai berupa nilai_1.
Untuk keadaan sebaliknya, hasil ekspresi berupa nihi_2
G
AMBARAN OPERATOR?:.
L
ATIHAN22 :
B
ELANJAI
FE
LSE.
JAVA// ---
// Berkas: BelanjaIfElse. java
// Menggunakan kelas BacaKeyboard // ---
public class BelanjaIfElse {
public static void main(String[] args) { System.out.print( "Total belanja: " ) ; String st = BacaKeyboard.bacaString() ;
int totalBelanja = Integer.valueOf (st).intValue() ; int diskon; if (totalBelanja >= 100000) diskon = totalBelanja / 10; else diskon = 0; System.out.println("Diskon = " + diskon) ; } }
L
ATIHAN22 :
O
PERATORB
ERKONDISI Program berikut menunjukkan contoh penggunaan operator ?: untuk menggantikan peryataan:
if (totalBelanja >= 100000) diskon = totalBelanja / 10; else
diskon = 0;
L
ATIHAN23 :
B
ELANJAI
FE
LSE.
JAVA// ---
// Berkas: BelanjaIfElse. java
// Menggunakan kelas BacaKeyboard // ---
public class BelanjaIfElse {
public static void main(String[] args) { System.out.print( "Total belanja: " ) ; String st = BacaKeyboard.bacaString() ;
int totalBelanja = Integer.valueOf (st).intValue() ; int diskon; if (totalBelanja >= 100000) diskon = totalBelanja / 10; else diskon = 0; System.out.println("Diskon = " + diskon) ; } }
PENJELASAN :
Pada pernyataan,
int diskon = totalBelanja >= 100000 ? totalBelanja/10:0;
totalBelanja lebih besar atau sama dengan 100000 maka diskon diisi dengan nol.
P
ENYELEKSIANK
ONDISI SWITCH Selain bentuk seleksi kondisi if, dalam Java dikenal juga cara penyeleksian
switch.
Bentuk ini digunakan untuk menyeleksi kondisi yang memiliki banyak
kemungkinan (multiple condition), sama seperti mutliple if ..eIse.
Sebagai ilustrasi, seorang pesulap mengacak kartu remi dan meminta Anda
untuk mengambil salah satu.
Selanjutnya sang pesulap akan mencoba menerka kartu apa yang telah diambil. Bila dibuat programnya, maka kita harus membuat 52 kemungkinan dari kartu
remi yang ada.
Bisa Anda bayangkan bila kita harus menggunakan if…else untuk menyatakan
52 kemungkinan tersebut.
Bentuk yang tepat untuk menangani kasus ini adalah switch.
B
ENTUKU
MUM:
switch (ekspresi switch)
{
case
nilai1 : statement 1;
break;
case
nilai2 : statement 2;
break;
---
case
nilaiN : statement ke-N;
break;
default :
statement default;
}
P
ERNYATAAN SWITCHmasing-masing pernyataan (pernyataan_l sampai dengan
pernyataan_n) dapat berupa satu atau beberapa perintah dan tidak perlu berupa blok peryataan.
pernyataan_1 dijalankan kalau nilai ekspresi cocok dengan nilaiSatu. Setelah pernyatan_1 dijalankan, eksekusi
dilanjutkan ke akhir pernyataan switch. pernyataan_1 dijalankan kalau nilai ekspresi cocok dengan nilaiDua. Setelah pernyatan_2 dijalankan, eksekusi
dilanjutkan ke akhir pernyataan switch.
pernyataan_1 dijalankan kalau nilai ekspresi cocok dengan nilaiTiga. Setelah pernyatan_3 dijalankan, eksekusi
dilanjutkan ke akhir pernyataan switch.
Bagian default bersifat opsional. Jika ada, bagian ini hanya akan dijalankan kalau nilai ekspresi tak cocok dengan
nilaiSatu, nilaiDua, dan seterusnya.
Pernyataan break digunakan untuk mengendalikan eksekusi ke akhir
L
ATIHAN24 :
P
ERNYATAAN
S
WITCH
.
JAVA
Estu Sinduningrum, ST, MT
//---
//Berkas : PernyataanSwitch. java //Menggunakan kelas BacaKeyboard
//--- public class Pernyataanswitch { public static void main(String [ ] args);
System.out.println("Pilihan:" ); System.out.println("1.Soto ayam"); System.out.println("2.Nasi rawon" ); System.out.println("3.Gulai kambing"); System.out.println ("") ; System.out.print("pilihan: ") ; String st = BacaKeyboard.bacaString(); int pilihan = Integer.valueOf(st).intValue();
switch(pilihan) { case1:
System.out.println("Pilihan Anda Soto ayam"); System.out.println("Silakan menunggu sebentar");
break; case2:
System.out.println("Pilihan Anda Nasi rawon");
System.out.println("Silakan menunggu sebentar");
break; case3:
System.out.println("Pilihan Anda Gulai kambing"); System.out.println("Silakan menunggu sebentar"); break; default: System.out.println("Silakan memilih 1, 2, atau 3"); } System.out.println("Akhir switch") ; } }
B
REAKN
OU
SE INO
NEC
AST Sebagaimana telah dijelaskan di depan, pernyataan break digunakan untuk mengakhiri eksekusi switch. Namun ada kalanya break justru tidak diberikan pada
bagian case tertentu.
Tujuannya adalah agar eksekusi dilanjutkan ke peryataan yang terletak di bawahnya.
L
ATIHAN25 :
P
ERNYATAAN
S
WITCH
2.
JAVA
Estu Sinduningrum, ST, MT
//---
//Berkas : PernyataanSwitch2. java //
//Menggunakan kelas BacaKeyboard //---
public class PernyataanSwitch2 { public static void main(String[] args) {
System.out.println("Pilihan:"); System.out.println("1.Senin"); System.out.println("2.Selasa"); System.out.println("3.Rabu"); System.out.println("4.Kamis"); System.out.println("5.Jumat"); System.out.println("6.Sabtu "); System.out.println("7.Minggu"); System.out.println(" "); System.out.print("Pilihan: "); String st = BacaKeyboard.bacaString(); int pilihan = Integer.valueOf(st).intValue();
switch(pilihan) { case 1: case 2: case 3: case 4: case 5:
System.out.println ("Hari kerja"); break;
case 6: case 7:
System.out.println ("Hari libur"); break;
default:
System.out.println("Pilihan salah"); } } }
LATIHAN 26 :
DEMOSWITCHCASE. JAVA
Estu Sinduningrum, ST, MT
/**
* Title : Program Demo Switch Case * Deskripsi : Mengaplikasikan pemakaian
switch..
case untuk membuat pilihan *
*/
public class DemoSwitchCase { /** Main Method */
public static void main(String[ ] args) { int pilihan; // ubahlah nilai ini untuk
menguji
// pilihan yang lain
System.out.println("\nPROGRAM DEMO SWITCH
CASE");System.out.println("---\n");
//Menginstruksikan user untuk memasukkan pilihan
System.out.println("Masukkan pilihan anda [1-4]:"); pilihan = InputConsole.readInt();
switch(pilihan) { case 1 :
System.out.println("\nAnda memilih Tom Cruise."); break;
case 2 :
System.out.println("\nAnda memilih Jack Chan."); break;
case 3 :
System.out.println("\nAnda memilih SUJU."); break;
case 4 :
System.out.println("\nAnda memilih Van Damme."); break; default : System.out.println("Hanya pilihan [1-4 yang"+"diperbolehkan."); } //akhir switch } //akhir main method