struktur kontrol keputusan • tipe-tipe - jurusan informatika · else, switch) dimana...
TRANSCRIPT
MMT-061 Pemograman Berorientasi Objek (semester genap 2008/2009)
DR. Taufik Fuadi Abidin, M.Tech / Zahnur, M.IT
1
JAVA Education Network Indonesia
jeni.jardiknas.org
Struktur KontrolPengenalan Pemrograman 1
Tujuan
Pada akhir pembahasan, siswa diharapkan mampu untuk:
• Menggunakan struktur kontrol pernyataan keputusan (if,
else, switch) dimana diperbolehkan seleksi dari bagian
spesifik dari kode yang harus dieksekusi.
• Menggunkan struktur kontrol pernyataan pengulangan
(while, do-while, for) dimana memperbolehkan
mengeksekusi bagian spesifik dari kode sesuai dengan
angka yang merupakan jumlah pengulangannya.
• Menggunakan pernyataan branching (break, continue,
return) dimana memperbolehkan redirection dari alur
sebuah program.
Struktur Kontrol• Struktur kontrol
– Memperbolehkan kita untuk merubah sebuah
permintaan dari bagaimana sebuah pernyataan dari
program kita akan dieksekusi.
• Struktur kontrol mempunyai dua tipe:
– Struktur kontrol keputusan
• Memperbolehkan kita untuk memilih bagian yang
spesifik dari kode yang akan dieksekusi
– Struktur kontrol pengulangan
• Memperbolehkan kita untuk mengeksekusi bagian
yang spesifik sesuai dengan jumlah angka
pengulangannya.
Struktur Kontrol Keputusan
• Struktur kontrol keputusan
– Pernyataan Java memperbolehkan kita untukmemilih dan mengeksekusi specific blocks darikode dimana dapat meloncat ke bagian yang lain.
• Tipe-tipe:
– Pernyataan-if
– Pernyataan-if-else
– Pernyataan-if-else if
Pernyataan-if
• Pernyataan-if
– Menspesifikasikan sebuah pernyataan (atau block dari kode) yang akan dieksekusi jika dan hanya jika pernyataan booleanbernilai true.
• Form pernyataan-if:if( boolean_ekspresi )
pernyataan;
atauif( boolean_ekspresi ){
pernyataan 1;
pernyataan 2;
}
– dimana,
• boolean_ekspresi sama dengan boolean ekspresi atauboolean variabel.
if-statement Flowchart
MMT-061 Pemograman Berorientasi Objek (semester genap 2008/2009)
DR. Taufik Fuadi Abidin, M.Tech / Zahnur, M.IT
2
Contoh 1
int grade = 68;
if( grade > 60 )
System.out.println(“Selamat!");
Contoh 2
int grade = 68;
if( grade > 60 ){
System.out.println(“Selamat!");
System.out.println(“AndaBerhasil!");
}
Penuntun Coding
1. Boolean_ekspresi merupakan bagian dari
sebuha pernyataan yang harus dieveluasi
ke sebuha nilai boolean. Hal tersebut
berarti bahwa eksekusi dari kondisi harus
memiliki nilai true atau false.
2. Pernyataan dalam blok-if.
Contoh,if( boolean_ekspresi ){
//pernyataan1; //pernyataan2;
}
Pernyataan if-else
• Pernyataan if-else
– Digunakan ketika kita akan mengeksekusi sebuahpernyataan jika kondisinya true, dan pernyataan yang
lain jika berkondisi false.
• Form pernyataan if-else:if( boolean_ekspresi ){
pernyataan1;
pernyataan2;
. . .
}
else{
pernyataan3;
pernyataan4;
. . .
}
Flowchart Contoh 1
int grade = 68;
if( grade > 60 )
System.out.println(“Selamat!");
else
System.out.println(“Maaf Andagagal");
MMT-061 Pemograman Berorientasi Objek (semester genap 2008/2009)
DR. Taufik Fuadi Abidin, M.Tech / Zahnur, M.IT
3
Contoh 2
int grade = 68;
if( grade > 60 ){
System.out.println(“Selamat!");
System.out.println(“Andaberhasil!");
}
else{
System.out.println(“Maaf Andagagal");
}
Petunjuk Penulisan Program
1. Untuk menghindari kesalahan, selalu letakkan pernyataan-pernyataan dari blok if atau if-else didalam tanda {}.
2. Anda dapat memiliki blok if-else berantai. Artinya Anda dapatmemilki blok if-else yang lain didalam blok if-else yang lain.
Contoh,
if( boolean_ekspresi ){
if( boolean_ekspresi ){//pernyataan
}
}
else{
// pernyataan
}
Pernyataan if-else-else if
• Pernyataan pada else-clause dari sebuah blok if-else
dapat menjadi struktur if-else yang lain.
• Struktur ini memperbolehkan kita untuk membuat
pilihan yang lebih kompleks.
• Form pernyataan if-else-else if:if( boolean_ekspresi1 )
pernyataan1;
else if( boolean_ekspresi2 )
pernyataan2;
else
pernyataan3;
Flowchart
Contoh
int grade = 68;
if( grade > 90 ){ System.out.println(“Sangat Bagus!");
} else if( grade > 60 ){
System.out.println("Sangat Bagus!"); } else{
System.out.println(“Maaf Anda gagal"); }
Kesalahan Umum
1. Kondisi didalam pernyataan if-statement tidak
ditentukan dalam nilai boolean.
Contoh, //SALAH
int number = 0;
if( number ){
//pernyataan
}
Angka variabel tidak ditentukan sebagai nilai boolean.
2. Menulis elseif sebagai ganti dari else if.
MMT-061 Pemograman Berorientasi Objek (semester genap 2008/2009)
DR. Taufik Fuadi Abidin, M.Tech / Zahnur, M.IT
4
Kesalahan Umum
3. Menggunakan = pengganti dari == sebagai pembanding.
Contoh, //SALAH
int number = 0;
if( number = 0 ){
//pernyataan
}
Seharusnya ditulis, //BENAR
int number = 0;
if( number == 0 ){
// pernyataan
}
Contoh Program
1 public class Grade {
2 public static void main( String[] args )
3 {
4 double grade = 92.0;
5 if( grade >= 90 ){
6 System.out.println( "Excellent!" );
7 }
8 else if( (grade < 90) && (grade >= 80)){
9 System.out.println(“Bagus!" );
10 }
11 else if( (grade < 80) && (grade >= 60)){
12 System.out.println(“Belajar lagi!" );
13 }
14 else{
System.out.println(“Maaf, Anda gagal.");15
16 }
17 }
18 }
Pernyataan-switch• Switch
– Memperbolehkan percabangan pada multiple outcomes.
• Form pernyataan-switch:switch( switch_ekspresi ){
case case_pilihan1:
pernyataan1;//
pernyataan2;//blok 1
break;
case case_pilihan2:
pernyataan1;//
pernyataan2;//blok 2
break;
:
default:
pernyataan1;//
pernyataan2;//blok n
}
Pernyataan-switch
• Dimana,
– switch_ekspresi
• Merupakan integer atau karakter ekspresi
– case_pilihan1, case_pilihan2 dan yang lainnya,
• merupakan integer unique atau karakter tetap.
Pernyataan-switch
• Ketika sebuah switch digunakan,
– Pertama Java menilai switch_ekspresi, dan
melompat ke case yang pilihan dari pemilih
sesuai dengan nilai dari ekspresi.
– Program mengeksekusi pernyataan yang diminta
dari point sebuah case sampai pernyataan break
dibaca, kemudian pindah ke pernyataan awal
setelah membaca akhir dari srtuktur switch.
– Jika tidak ada case yang sesuai, maka blok
default akan dieksekusi. Catatan, bahwa bagian
default merupakan pilihan.
Pernyataan-switch
• CATATAN:
– Tidak sama dengan pernyataan-if, pernyataan multiple
dieksekusi pada pernyataan-switch tanpa
membutuhkan pernyataan percabangan (braches
statement).
– Ketikan sebuah case pada pernyataan-switch telah
dicocokan, semua pernyataan yang ada didalam case
tersebut akan dieksekusi. Tidak hanya itu, pernyataan
yang berhubungan dengan case tersebut juga akan
dieksekusi.
– Untuk mencegah program dari pengeksekusian
pernyataan pada case sebelumnya, kita menggunakan
pernyataan-break sebagai pernyataan akhir.
MMT-061 Pemograman Berorientasi Objek (semester genap 2008/2009)
DR. Taufik Fuadi Abidin, M.Tech / Zahnur, M.IT
5
Flowchart Contoh
1 public class Grade {
2 public static void main( String[] args )
3 {
4 int grade = 92;
5 switch(grade){
6 case 100:
7 System.out.println( "Excellent!" );
8 break;
9 case 90:
10 System.out.println(“Bagus!" ); 11 break;
12 case 80:
13 System.out.println(“Belajar lagi!" );
14 break;
15 default:
16 System.out.println(“Maaf, Anda gagal.");
17 }
18 }
19 }
Penunjuk Penulisan Program
1. Penentuan apakah menggunakan pernyataan-if ataupernyataan-switch adalah dengan memikirkan keputusanyang tepat. Anda dapat menentukan yang mana yang akandigunakan, berdasar pada kemampuan hasil program danfaktor yang lain.
2. Sebuah pernyataan-if dapat digunakan untuk membuatkeputusan berdasarkan pada deretan dari nilai atau kondisi, dimana statement-switch dapat membuat keputusan hanyaberdasar kepada single integer atau nilai karakter. Juga, nilaiyang disediakan untuk setiap pernyataan-case harus berbeda(unique).
Struktur Kontrol Pengulangan
• Struktur kontrol pengulangan
– Pada pernyataan Java, kita diperbolehkanuntuk menentukan angka pengulangan yang akan dilakukan,
• Tipe:
– Pengulangan-while
– Pengulangan-do-while
– Pengulangan-for
Pengulangan-while
• Pengulangan while
– Merupakan pernyataan atao blok dari pernyataan
yang diulang selama kondisinya sesuai.
• Form pengulangan while:while( boolean_ekspresi ){
pernyataan1;
pernyataan2;
. . .
}
– Pernyataan didalam pengulangan while akan
dieksekusi selama boolean_ekspresi bernilai true.
Contoh 1
int x = 0;
while (x<10) {System.out.println(x);
x++;}
MMT-061 Pemograman Berorientasi Objek (semester genap 2008/2009)
DR. Taufik Fuadi Abidin, M.Tech / Zahnur, M.IT
6
Contoh 2
//Pengulangan tanpa bataswhile(true)
System.out.println(“hello”);
Contoh 3
//Tanpa pengulangan// Pernyataan yang tidak pernah dieksekusiwhile (false)
System.out.println(“hello”);
Pernyataan-do-while
• Pernyataan-do-while
– Sama dengan pengulangan-while
– Pernyataan didalam pengulangan do-while akan dieksekusibeberapa kali selama kondisinya sesuai dengan ekspressiyang diberikan.
– Hal utama yang membedakan antara pengulangan while dando-while:
• Pernyataan didalam pengulangan do-while loop setidaknya dieksekusi satu kali.
• Form pengulangan-do-while:do{
pernyataan1; pernyataan2; . . .
}while( boolean_ekspresi );
Contoh 1
int x = 0;
do { System.out.println(x); x++;
}while (x<10);
Contoh 2
//pengulangan tanpa batasdo{
System.out.println(“hello”); } while (true);
Contoh 3
//satu kali pengulangan// pernyataan dieksekusi satu kalido
System.out.println(“hello”); while (false);
MMT-061 Pemograman Berorientasi Objek (semester genap 2008/2009)
DR. Taufik Fuadi Abidin, M.Tech / Zahnur, M.IT
7
Petunjuk Penulisan Program
1. Kesalahan pemrograman secara umum terjadi, ketika
lupa menulis semi-colon setelah ekspresi while pada
saat menggunakan pengulangan do-while do{
...
}while(boolean_ekspresi)//SALAH->lupa
semicolon;
2. Sama halnya dengan pengulangan while, pastikan
bahwa pengulangan do-while Anda akan diakhiri
dengan point yang sama (semi-colon).
Pengulangan-for• Pengulangan-for
– Memperbolehkan pengeksekusian dari kode yang berilaisama berulang-ulang.
• Form pengulangan-for:for(InisialisasiEkspresi;KondisiPengulangan;StepEkspresi){ pernyataan1; pernyataan2; . . .
}
– dimana,
• InisialisasiEkspresi –meninisialisasi variabelpengulangan.
• KondisiPengulangan – membandingkan variable pengulangan dengan nilai limit.
• StepEkspresi - memperbarui variabel pengulangan.
Contoh
• Kode diatas sama dengan pengulangan-
while dibawah ini.
int i;
for( i = 0; i < 10; i++ ){
System.out.println(i);
}
int i = 0;
while( i < 10 ){
System.out.print(i);
i++;
}
Pernyataan Branching
• Pernyataan branching memperbolehkan
kita untuk secara langsung mengatur flow
dari pengeksekusian program.
• Java menyediakan tiga pernyataan
branching:
– break
– continue
– return.
Pernyataan Unlabeled break
• Unlabeled break
– Mengakhiri pernyataan switch
– Juga dapat digunakan untuk mengakhiripengulangan for, while, atau do-while
Contoh
String names[]={"Beah","Bianca","Lance","Belle","Nico","Yza",
"Gem","Ethan"};
String searchName = "Yza";
boolean foundName = false;
for( int i=0; i< names.length; i++ ){
if( names[i].equals( searchName )){
foundName = true;
break;
}
}
if( foundName ) System.out.println( searchName + "
ditemukan!" );
else System.out.println( searchName + " tidakditemukan." );
MMT-061 Pemograman Berorientasi Objek (semester genap 2008/2009)
DR. Taufik Fuadi Abidin, M.Tech / Zahnur, M.IT
8
Pernyataan labeled break
• Pernyataan labeled break– Mengakhiri sebuah pernyataan, yang mana
diidentifikasi oleh spesifikasi label padapernyataan break.
– Contoh program pada slide berikutnya untukmencari sebuah nilai pada array dua dimensi. Pengulangan melewati dua array. Ketikanilainya ditemukan, sebuah labeled break mengakhiri pernyataan labeled search, yang mana digunakan diluar pengulangan.
Contohint[][] numbers = {{1, 2, 3}, {4, 5, 6},{7, 8, 9}};
int searchNum = 5;
boolean foundNum = false;
searchLabel:
for( int i=0; i<numbers.length; i++ ){
for( int j=0; j<numbers[i].length; j++ ){
if( searchNum == numbers[i][j] ){
foundNum = true;
break searchLabel;
}
}
}
if( foundNum )System.out.println(searchNum + " ditemukan!" );
else System.out.println(searchNum + " tidak ditemukan!");
Pernyataan Unlabeled Continue
• Pernyataan unlabeled continue
– Pindah ke akhir dari bagian pengulangan danmemberikan nilai boolean ekspresi yang mengontrol pengulangan tersebut, padadasarnya perpindahan merupakanpengingat(remainder) dari iterasi yang berasaldari pengulangan.
Contoh
String names[] = {"Beah", "Bianca", "Lance", "Beah"};
int count = 0;
for( int i=0; i<names.length; i++ ){
if( !names[i].equals("Beah") ){
continue; //pindah kepernyataan berikutnya
}
count++;
}
System.out.println(“Inilah "+count+" Beahs padadaftar");
Pernyataan labeled continue
• Pernyataan labeled continue
– Melewati iterasi dari sebuah outer loop marked dengan memberikan label.
Contoh
outerLoop:
for( int i=0; i<5; i++ ){
for( int j=0; j<5; j++ ){
System.out.println("Inside for(j)
loop"); //pesan1
if( j == 2 ) continue outerLoop;
}
System.out.println("Inside for(i) loop");
//pesan2
}
• Pada contoh ini, pesan2 tidak pernah ditampilkan sejak kita
memiliki pernyataan continue outerloop yang mana
merupakan perpindahan (skip) iterasi.
MMT-061 Pemograman Berorientasi Objek (semester genap 2008/2009)
DR. Taufik Fuadi Abidin, M.Tech / Zahnur, M.IT
9
Pernyataan return
• Pernyataan return
– Digunakan untuk keluar dari method.
– Mengikuti kontrol return dari pernyataan padamethod yang memanggilnya.
Pernyataan return
• Return sebuah nilai
– Menaruh nilai (atau sebuah ekspresi yang menghitung sebuah nilai) setelah return keyword.
– Contoh,return ++count;
or
return "Hello";
– Tipe data dari nilai dikembalikan oleh return harus sama dengan tipe dari pendeklarasiannilai dari method yang memanggilnya.
Pernyataan return
• Ketikan sebuah method dideklasikan
sebagai void, gunakan form yang tidak
menggunakan nilai return.
– Contoh,return;
• Kita akan mendiskusikan pernyataan return
lebih lanjut ketika kita membahas tentang
method.
Ringkasan
• Struktur Kontrol Keputusan
– if
– if-else
– if – else if
– switch
• Struktur Kontrol Pengulangan
– while
– do-while
– for
• Pernyataan Branching
– break
– continue
– return