PENYELEKSIAN /PERCABANGAN & PERULANGAN Part II 5th week Estu Sinduningrum ST,MT
Review last week
Percabangan • Pada java terdapat beberapa percabangan, yaitu : 1. if 2. if-else
3. switch 4. case
Estu Sinduningrum, ST, MT
Penyeleksian Kondisi if
Estu Sinduningrum, ST, MT
Bentuk if..else
Estu Sinduningrum, ST, MT
Flowchart switch…case
Estu Sinduningrum, ST, MT
Percabangan Case
Percabangan Case
Estu Sinduningrum, ST, MT
Estu Sinduningrum, ST, MT
Resume • Berikut ada 3 fitur penting dari pernyataan switch, yaitu : 1.
Pernyataan switch berbeda dengan pernyataan if dimana switch hanya dapat menguji kesamaan, sedang pernyataan if dapat melakukan evaluasi sembarang tipe ekspresi boolean. Dengan demikian terlihat switch seperti hanya mencocokkan di antara nilainilai ekspresi dan konstanta-konstanta case.
2.
Tidak ada konstanta case di blok case yang sama dapat mempunyai nilai yang identik. Tentu saja untuk pernyataan switch bersarang (nested switch) yang diapit switch luar dapat mempunyai konstanta yang sama dengan konstanta di switch luar.
3.
Pernyataan switch biasanya lebih efisien dibanding if bersarang yang dalam.
Estu Sinduningrum, ST, MT
Tugas Hari ini 1. Run Program dari latihan 26-35
Tugas Minggu Depan : 1. Minggu depan Quiz 2. Materi sesuai latihan 1-35. 3. Gambar flowchart (sediakan alat tulis, dan kertas folio). 4. Soal 4 ( (3 soal) membuat program & run program, menulis program dan flowchart di kertas folio, (1 soal) memperbaiki program yang salah). 5. Semua tugas run 1-35 diperiksa.
Belajar melalui contoh Latihan 26 : waterToy.java • Persoalan : • Bentuk air bergantung terhadap suhu (t-temperature) sebagai berikut : • t>0
Berbentuk es atau beku.
• t=0
Berbentuk transisi es dan cair
• 0
Berbentuk cair
• t=100
Berbentuk transisi cari dan gas
• t>100
Berbentuk gas atau uap
Estu Sinduningrum, ST, MT
public class WaterToy { private double temperature; /** Creates a new instance of WaterToy */ public WaterToy(double temperature) { this.temperature = temperature; } public String getForm(){ if(temperature < 0) return "Es - beku"; if(temperature == 0) return "Transisi Es dan Air"; if(temperature >0 && temperature <100) return "Air - cair"; if(temperature == 100) return "Transisi Cair dan Uap"; if(temperature > 100) return "Uap - gas"; return ""; } public String getWorseForm(){ // Bila tanpa fasilitas return seperti pada Pascal String str=""; if(temperature < 0) str = "Es - beku"; else if(temperature == 0) str = "Transisi Es dan Air"; else if(temperature >0 && temperature <100) str = "Air - cair"; else if(temperature == 100) str = "Transisi Cair dan Uap"; else if(temperature > 100) str = "Uap - gas"; return str; } public String getWorstForm(){ // Bila tanpa fasilitas return dan else if seperti pada Pascal String str=""; if(temperature < 0) { str = "Es - beku"; } else { if(temperature == 0) { str = "Transisi Es dan Air"; } else { if(temperature >0 && temperature <100) { str = "Air - cair"; } else { if(temperature == 100) { str = "Transisi Cair dan Uap"; } else { if(temperature > 100) { str = "Uap - gas"; } } } } } return str; }
public String toString(){ String str = "Air bersuhu : "+temperature+"\n"+ "Berbentuk : "+getForm(); return str; } public String toWorseString(){ String str = "Air bersuhu : "+temperature+"\n"+ "Berbentuk : "+getWorseForm(); return str; } public String toWorstString(){ String str = "Air bersuhu : "+temperature+"\n"+ "Berbentuk : "+getWorstForm(); return str; } static void test01(){ System.out.println(new WaterToy(-10)); System.out.println(new WaterToy(0)); System.out.println(new WaterToy(10)); System.out.println(new WaterToy(100)); System.out.println(new WaterToy(110)); } static void test02(){ WaterToy t = new WaterToy(-10); System.out.println(t.toWorseString()); } static void test03() { WaterToy t = new WaterToy(-10); System.out.println(t.toWorstString()); } static void test(){ test01(); test02(); test03(); } public static void main(String[] args){ test(); } }
Keyword break dan continue • Bahasa java menyediakan beragam coding yang mirip dengan C/C++, seperti : 1. break 2. continue
Estu Sinduningrum, ST, MT
Keyword break dan continue 1.
Break
• Berfungsi untuk menghentikan statement yang terletak pada bagian loop yang terdalam. • Biasanya digunakan bersama dengan statement yang mengandung if.
2.
Continue
• Keyword ini hanya menghentikan perulangan yang sedang berlangsung. • Kendali program akan menuju akhir dari body loop.
• Sama seperti break, keyword ini biasanya digunakan bersama dengan statement yang mengandung if.
Estu Sinduningrum, ST, MT
Menghentikan dengan “break”
Estu Sinduningrum, ST, MT
Latihan 27 : DemoBreak2.java *
/** * Title : Program Demo Break 2 * Diskripsi : Mengaplikasikan pemakaian break untuk menghentikan perulangan. */ public class DemoBreak2 { /** Main Method */ public static void main(String[] args) { int counter = 0; System.out.println("\nProgram DEMO BREAK"); System.out.println("-------------------\n");
while (counter <100) { counter++; if (counter==7) break; } System.out.println("Counter terakhir adalah :"+ counter); } }
Estu Sinduningrum, ST, MT
Menghentikan dengan “countinue” • Keyword
ini
hanya
menghentikan
perulangan yang sedang berlangsung. • Kendali program akan menuju akhir dari body loop. • Sama seperti break, keyword ini biasanya digunakan bersama dengan statement yang mengandung if
Estu Sinduningrum, ST, MT
Estu Sinduningrum, ST, MT
Latihan 28: DemoCountinue.java /**
* Title
: Program Demo Countinue
for (int counter = 1; counter <=5; counter++) {
* Diskripsi : Mengaplikasikan pemakaian Countinue
if ( counter == 3) {
* untuk menghentikan sementara
counterDiabaikan = counter;
* proses perulangan.
continue; // Menghentikan sisa perulangan
*/
} // jika counter = 3
public class C { /** Main Method */ public static void main(String[] args) {
else System.out.println("Mencetak counter ke-"+ counterDiabaikan); }
int counterDiabaikan = 0; System.out.println("\nProgram DEMO CONTINUE");
System.out.println("\nPerulangan telah dihentikan "+ "oleh 'countinue' pada counter ke : " + counterDiabaikan);
System.out.println("---------------------\n");
} }
PERULANGAN
PERULANGAN • Perulangan atau looping adalah bagian kode program yang bertugas melakukan suatu proses terus-menerus sampai kondisi berhenti terpenuhi. • Secara umum perulangan dibagi tiga, yaitu : 1. Perulangan for,. 2. Perulangan while-do.
3. Perulangan repeat-until.
Estu Sinduningrum, ST, MT
Perulangan for
Perulangan for • Bentuk ini adalah yang paling sering digunakan for akan mengulang suatu statement atau blok statement sejumlah yang dikehendaki, yakni bila kondisi akhir telah tercapai. for (kondisi awal; persyaratan atau kondisi akhir; increment) { blok statement;
}
• Dari bentuk di atas, terdapat tiga bagian dalam deklarasi for yakni : 1. kondisi awal,
2. akhir, dan 3. banyaknya increment.
Estu Sinduningrum, ST, MT
Flowchart perulangan for
Estu Sinduningrum, ST, MT
Estu Sinduningrum, ST, MT
•
Kondisi Awal
Adalah bagan yang menginisialisasi permulaan dari perulangan,
umumnya dalam
perulangan, kita memerlukan suatu variabel yang berfungsi sebagai indeks perulangan. •
Indeks ini akan memiliki tiga fungsi, yakni sebagai kondisi awal sebelum loop dieksekusi,
sebagai kondisi akhir yang akan dicapai, serta berapa jumlah kenaikan (increment untuk setiap langkah perulangan. •
Ambil contoh, kita menggunakan variabel i sebagai indeks loop.
•
Sebelum loop dieksekusi, kita harus menginisialisasi variabel i ini dengan
•
nilai awal, misalnya int i = 0;
•
Bila terdapat lebih dari satu variabel indeks, kita dapat menginisialisasinya secara bersamaan dan di antara masing-masing variabel dipisahkan dengan koma, misalnya: int i = 0, int k = 0.
•
Sebagai catatan, variabel yang dideklarasikan sebagai indeks perulangan ini hanya berlaku di dalam scope perulangan itu sendiri, jadi tidak akan mengganggu variabel lain yang berada di luar scope.
•
Begitu perulagan tersebut selesai dieksekusi, maka variabel indeks akan berakhir masa tugasnya.
Persyaratan / Kondisi Akhir • Adalah bagian yang akan menyebabkan inrerpreter
menghentikan perulangan karena telah tercapai suatu kondisi akhir. • Kondisi akhir ini dapat berupa suatu nilai boolean yaitu: benar atau salah atau merupakan fungsi yang bisa menghasilkan nilai logika boolean.
• Bila benar, maka perulangan akan terus dilaksanakan dan bila selah, maka dihentikan. contohnya: i < 5. Estu Sinduningrum, ST, MT
Increment • Adalah bagian yang menunjukkan berapa jumlah
kenaikan untuk setiap langkah perulangan. • Misalnya i = i +1 atau yang biasa disingkat
• Sebagai i++ akan menyebabkan variabel indeks perulangan ditambah satu.
Estu Sinduningrum, ST, MT
Perulangan For • Perulangan for digunakan jika sudah dapat
dipastikan kapan pengulangan berhenti. • Dengan kata lain, jumlah perulangan yang
dibutuhkan sudah diketahui sebelumnya. • Ada dua model perulangan dalam for, yaitu : 1. Perulangan for naik. 2. Perulangan for turun. Estu Sinduningrum, ST, MT
Estu Sinduningrum, ST, MT
Perulangan for naik
Estu Sinduningrum, ST, MT
Perulangan for turun
Latihan 29 : DemoFor.java /** * Title : Program Demo For •Deskripsi : Mendemonstrasikan pemakaian •perulangan for untuk mencetak statement ke console sebanyak. * * n kali. */ public class DemoFor { /** Main Metbod */ public static void main(String[] args) {
System.out.println("\rPROGRAM DEMO FOR"); System.out.println( "----------------\n" ); for ( int counter=0; counter<=5; counter++ ) System.out.println( "Mencetak counter ke-" + counter ); } }
Estu Sinduningrum, ST, MT
Latihan 30 : ForNested.java public class ForNested { public static void main(String args[]){ for (int i=0; i<10;i++) {
for (int j=i; j<10; j++) { System.out.print("*");} System.out.println();
} } } Estu Sinduningrum, ST, MT
Perulangan While
Perulangan While • Bentuk ini akan terus mengulang statement/blok statement selama kondisi yang ditentukan belum tercapai. • Perulangan
while-do
biasanya
digunakan
jika
banyaknya
perulangan tidak diketahui. • Misalnya pada program : login password, dimana program akan terus mengulang meminta password selama password masih salah, dan jika password benar proses perulangan berhenti.
• Sama seperti pada for, kondisi adalah ekspresi boolean atau fungsi yang dapat menghasilkan nilai boolean benar atau salah.
Estu Sinduningrum, ST, MT
Estu Sinduningrum, ST, MT
Latihan 31 : DemoWhile.java /** * Title : Program Demo While •Deskripsi : Mendemonstrasikan pemakaian perulangan while untuk mencetak statement ke console sebanyak. * * n kali. */ public class DemoWhile { /** Main Metbod */ public static void main(String[] args) { int counter = 0; //Inisialisasi counter System.out.println("\nPROGRAM DEMO WHILE"); System.out.println( "----------------\n" ); while ( counter <=5) { //Kondisi perulangan System.out.println( "Mencetak counter ke-" + counter ); ++counter; //Menaikkan counter dengan 1 } } Estu Sinduningrum, ST, MT
public class TrianglePatternToy { private int number; /** Creates a new instance of TrianglePatternToy */ public TrianglePatternToy() {
Latihan 32 :
} public TrianglePatternToy(int number){ this.number = number;
System.out.println();
}
public void setNumber(int number) { this.number = number;
public void printFourthPattern() { for(int j=0;j
}
public void printFirstPattern() {
for(int j=0;j
for(int j=0;j<=i;j++){ System.out.print("*");
} } }
public void printSecondPattern() {
System.out.println(); }
}
static void test(){ TrianglePatternToy t = new TrianglePatternToy(10);
for(int i=0;i
}
t.printFirstPattern();
}
System.out.println();
}
t.printSecondPattern();
public void printThirdPattern() {
System.out.println();
for(int i=0;i
t.printThirdPattern(); System.out.println();
for(int j=0;j
}
for(int j=0;j
}
System.out.print("*");
for(int i=0;i
System.out.println();
}
for(int i=0;i
}
public int getNumber() { return number;
}
}
t.printFourthPattern();
}
public static void main(String[] args) { test();
}
}
Estu Sinduningrum, ST, MT
Perulangan do..while
Perulangan do..While • Perulangan
while-do..
Atau
do-while
biasanya
digunakan jika banyaknya perulangan tidak diketahui. • Misalnya pada program : login password, dimana program akan terus mengulang meminta password selama password masih salah, dan jika password benar proses perulangan berhenti.
• Sama seperti pada for, kondisi adalah ekspresi boolean atau fungsi yang dapat menghasilkan nilai boolean benar atau salah.
Estu Sinduningrum, ST, MT
Estu Sinduningrum, ST, MT
Flowchart do..while
Estu Sinduningrum, ST, MT
Estu Sinduningrum, ST, MT
Latihan 33 : DemoDoWhile.java /** * Title : Program Demo Do...While Deskripsi : Mendemonstrasikan pemakaian perulangan do...while untuk mencetak statement ke console sebanyak. * * n kali. */ public class DemoDoWhile { /** Main Metbod */ public static void main(String[] args) { int counter = 0; //Inisialisasi counter System.out.println("\nPROGRAM DEMO DO..WHILE"); System.out.println( "----------------\n" ); do { //kondisi perulangan System.out.println( "Mencetak counter ke-" + counter ); ++counter; //Menaikkan counter dengan 1 } while (counter <=5); } }
public class TrianglePatternSideBySideToy { private int number;
public TrianglePatternSideBySideToy() {
Latihan 34 :
} public TrianglePatternSideBySideToy(int number){ this.number = number;
}
System.out.print(" ");
}
for(int j=0;j
public void setNumber(int number) {
System.out.print("*");
this.number = number; }
// Spasi antara segitiga ketiga dan keempat
public int getNumber() { return number;
// Kenapa harus di-loop, biar serupa aja dengan yang diatas!
}
for (int j=0;j<1;j++) System.out.print(" ");
public void printPattern(){
// Segitiga keempat
for(int i=0;i
for(int j=0;j
// Segitiga pertama
System.out.print(" ");
for(int j=0;j<=i;j++){ System.out.print("*");
}
for (int j=i;j
System.out.print("*"); System.out.println(); }
for(int j=number-0;i<j;j--){
static void test(){ }
// Spasi antara segitiga kedua dan ketiga for (int j=0;j
for(int j=0;i<j;j++){
}
TrianglePatternSideBySideToy t = new TrianglePatternSideBySideToy(10); t.printPattern();
// Spasi antara segitiga kedua dan ketiga for (int j=0;j
}
// Ganti baris
// Segitiga kedua
// Segitiga ketiga
}
for(int j=0;j
// Spasi antara segitiga ke satu dan kedua
System.out.print("*");
}
} public static void main(String[] args) { test(); }
}
Estu Sinduningrum, ST, MT
public class DiamondPatternToy { private int number = 0; /** Creates a new instance of DiamondPattern */
Latihan 35 :
public DiamondPatternToy(int number) { this.number = number;
}
static void test(){ DiamondPatternToy t = new DiamondPatternToy(9); t.printDiamond();
}
public static void main (String[] args){ test();
}
void printDiamond(){ for (int i=0;i
}
// Segitiga bawah for (int i=number/2-1;i>=0;i--){ for(int j=0;j<(number/2-i);j++) System.out.print(" "); for(int j=0;j<2*i+1;j++) System.out.print("*"); System.out.println(); } }
} Estu Sinduningrum, ST, MT
Perulangan Repeat-Until
Perulangan Repeat-Until • Perulangan repeat-until juga dapat digunakan jika jumlah perulangan tidak diketahui, namun prinsip kerjanya berbeda dengan perulangan while-do. • Pada perulangan while-do program akan menyesuaikan variabel dengan kondisi perulangan, jika tidak memenuhi maka
perulangan tidak dilakukan. • Berbeda dengan repeat-until karena minimal perulangan akan dijalankan sekali sebelum masuk ke kondisi perulangan.
• Hal tersebut dapat terjadi karena perulangan repeat-until meletakkan kondisi perulangan dibagian akhir.
Estu Sinduningrum, ST, MT
Estu Sinduningrum, ST, MT
TERIMA KASIH