PENYELEKSIAN PERCABANGAN PERULANGAN Part II

  

PENYELEKSIAN /PERCABANGAN

& PERULANGAN Part II th

  5 week Estu Sinduningrum ST,MT

  Review last week

  

Percabangan

  • Pada java terdapat beberapa percabangan, yaitu :

  1. if 2. if-else 3. switch 4. case

  Penyeleksian Kondisi if

  Bentuk if..else

  Flowchart switch…case Percabangan Case

  Percabangan Case

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

  Tugas Hari ini

  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<t<100 Berbentuk cair
  • t=100 Berbentuk transisi cari dan gas
  • t>100 Berbentuk gas atau uap
public String toString(){

  public class WaterToy { private double temperature;

  String str =

  /** Creates a new instance of WaterToy */

  "Air bersuhu : "+temperature+"\n"+

  public WaterToy(double temperature) {

  "Berbentuk : "+getForm();

  this.temperature = temperature; }

  return str; }

  public String getForm(){

  public String toWorseString(){

  if(temperature < 0) return "Es - beku";

  String str =

  if(temperature == 0) return "Transisi Es dan Air";

  "Air bersuhu : "+temperature+"\n"+

  if(temperature >0 && temperature <100) return "Air - cair";

  "Berbentuk : "+getWorseForm();

  if(temperature == 100) return "Transisi Cair dan Uap";

  return str; }

  if(temperature > 100) return "Uap - gas";

  public String toWorstString(){

  return ""; }

  String str =

  public String getWorseForm(){ // Bila tanpa fasilitas return seperti pada Pascal "Air bersuhu : "+temperature+"\n"+

  String str="";

  "Berbentuk : "+getWorstForm();

  if(temperature < 0) str = "Es - beku";

  return str; }

  else if(temperature == 0) str = "Transisi Es dan Air";

  static void test01(){

  else if(temperature >0 && temperature <100) str = "Air - cair";

  System.out.println(new WaterToy(-10));

  else if(temperature == 100) str = "Transisi Cair dan Uap";

  System.out.println(new WaterToy(0));

  else if(temperature > 100) str = "Uap - gas";

  System.out.println(new WaterToy(10));

  return str; }

  System.out.println(new WaterToy(100));

  public String getWorstForm(){

  System.out.println(new WaterToy(110));

  // Bila tanpa fasilitas return dan else if seperti pada Pascal

  }

  String str="";

  static void test02(){

  if(temperature < 0) { str = "Es - beku"; WaterToy t = new WaterToy(-10); } else {

  System.out.println(t.toWorseString());

  if(temperature == 0) {

  }

  str = "Transisi Es dan Air";

  static void test03() {

  } else {

  WaterToy t = new WaterToy(-10);

  if(temperature >0 && temperature <100) {

  System.out.println(t.toWorstString()); }

  str = "Air - cair";

  static void test(){

  } else {

  test01();

  if(temperature == 100) {

  test02();

  str = "Transisi Cair dan Uap";

  test03();

  } else {

  }

  if(temperature > 100) { str = "Uap - gas"; public static void main(String[] args){ } } } } }

  test();

  return str; } Keyword break dan continue

  • Bahasa java menyediakan beragam coding yang mirip dengan C/C++, seperti :

  1. break 2. 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.

  Keyword break dan continue

  • Kendali program akan menuju akhir dari body loop.
  • Sama seperti break, keyword ini biasanya digunakan bersama dengan statement yang mengandung if.

  Menghentikan dengan break”

Latihan 27 : DemoBreak2.java

  /**

  • Title : Program Demo Break 2
  • Diskripsi : Mengaplikasikan pemakaian break untuk menghentikan perulanga
  • / 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);

  } 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

  Latihan 28: DemoCountinue.java Estu Sinduningrum, ST, MT

  /**

  • Title : Program Demo Countinue * Diskripsi : Mengaplikasikan pemakaian Countinue * untuk menghentikan sementara * proses perulangan.
  • / public class C { /** Main Method */ public static void main(String[] args) { int counterDiabaikan = 0; System.out.println("\nProgram DEMO CONTINUE"); System.out.println("---------------------\n"); for (int counter = 1; counter <=5; counter++) { if ( counter == 3) { counterDiabaikan = counter; continue; // Menghentikan sisa perulangan } // jika counter = 3

  else System.out.println("Mencetak counter ke-"+ counterDiabaikan); }

  System.out.println("\nPerulangan telah dihentikan "+ "oleh 'countinue' pada counter ke : " + counterDiabaikan); }

  }

  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.

  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.

  Flowchart perulangan for

  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.

  

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.

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.

  Perulangan for naik Estu Sinduningrum, ST, MT Perulangan for turun Estu Sinduningrum, ST, MT

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

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

  }

  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.

  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 } }
    public class TrianglePatternToy { private int number;

  /** Creates a new instance of TrianglePatternToy */ public TrianglePatternToy() { } public TrianglePatternToy(int number){ this.number = number; } public void setNumber(int number) { this.number = number; } public int getNumber() { return number; } public void printFirstPattern() { for(int i=0;i<number;i++){ for(int j=0;j<=i;j++){

Latihan 32 :

  System.out.print("*"); } System.out.println(); } } public void printSecondPattern() { for(int i=0;i<number;i++){ for(int j=number-0;i<j;j--){

  System.out.print("*"); } System.out.println(); } } public void printThirdPattern() { for(int i=0;i<number;i++){ for(int j=0;j<i;j++){

  System.out.print(" "); } for(int j=0;j<number-i;j++) { System.out.print("*"); }

  System.out.println(); } } public void printFourthPattern() { for(int i=0;i<number;i++){ for(int j=0;j<number-i;j++) {

  System.out.print(" "); } for(int j=0;j<i+1;j++){ System.out.print("*");

  } System.out.println();

  } } static void test(){ TrianglePatternToy t = new TrianglePatternToy(10); t.printFirstPattern(); System.out.println(); t.printSecondPattern();

  System.out.println(); t.printThirdPattern();

  System.out.println(); t.printFourthPattern(); } public static void main(String[] args) { test(); } } 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.

  Flowchart do..while

  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){ System.out.print(" "); } this.number = number; } for(int j=0;j<number-i;j++) { public void setNumber(int number) {

  System.out.print("*"); } this.number = number; } // Spasi antara segitiga ketiga dan keempat public int getNumber() {

  // Kenapa harus di-loop, biar serupa aja dengan yang diatas! return number; } for (int j=0;j<1;j++) System.out.print(" "); public void printPattern(){

  // Segitiga keempat for(int i=0;i<number;i++){ for(int j=0;j<number-i;j++) {

  // Segitiga pertama System.out.print(" "); } for(int j=0;j<=i;j++){ for(int j=0;j<i+1;j++){

  System.out.print("*"); } System.out.print("*"); }

  // Spasi antara segitiga ke satu dan kedua // Ganti baris for (int j=i;j<number+1;j++) System.out.print(" ");

  System.out.println(); // Segitiga kedua

  } } for(int j=number-0;i<j;j--){ static void test(){

  System.out.print("*"); } TrianglePatternSideBySideToy t = new

  // Spasi antara segitiga kedua dan ketiga TrianglePatternSideBySideToy(10); for (int j=0;j<i+1;j++) System.out.print(" "); t.printPattern();

  // Spasi antara segitiga kedua dan ketiga } for (int j=0;j<i+1;j++) System.out.print(" "); public static void main(String[] args) {

  // Segitiga ketiga test(); for(int j=0;i<j;j++){

  } } public class DiamondPatternToy { private int number = 0; /** Creates a new instance of DiamondPattern */ 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<number/2+1;i++){ // Segitiga atas for(int j=0;j<(number/2-i);j++) System.out.print(" "); for(int j=0;j<2*i+1;j++) System.out.print("*");

Latihan 35 :

  System.out.println(); } // 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();

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