4. Materi 4: Strukur Kendali Seleksi (if – else dan switch) 4.1. If – else dengan satu kondisi Seringkali instruksi - instruksi dilaksanakan bila suatu persyaratan dipenuhi, dalam struktur penyeleksian, suatu instruksi atau sekelompok instruksi dapat dilewati, sementara instruksi lain dijalankan. Penulisan struktur kendali seleksi dengan satu kondisi: if (ekspresi boolean) statement; atau: if (ekspresi boolean) { statement1; statement2; } Pernyataan (statement, statement1, dan statement2) akan dilaksanakan jika dan hanya jika kondisi yang diinginkan terpenuhi (ekspresi boolean bernilai true), jika tidak program tidak memberikan hasil apa-apa. Contoh, program untuk menentukan apakah suatu bilangan termasuk bilangan ganjil: output dari kode diatas adalah
12
Embed
Materi 4: Strukur Kendali Seleksi (if – else dan switch) Web viewMateri 4: Strukur Kendali Seleksi (if – else dan switch) If – else dengan satu kondisi. Seringkali instruksi
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Seringkali instruksi - instruksi dilaksanakan bila suatu persyaratan dipenuhi,
dalam struktur penyeleksian, suatu instruksi atau sekelompok instruksi dapat
dilewati, sementara instruksi lain dijalankan.
Penulisan struktur kendali seleksi dengan satu kondisi:if (ekspresi boolean) statement;
atau:if (ekspresi boolean){
statement1;statement2;
}Pernyataan (statement, statement1, dan statement2) akan dilaksanakan
jika dan hanya jika kondisi yang diinginkan terpenuhi (ekspresi boolean bernilai
true), jika tidak program tidak memberikan hasil apa-apa. Contoh, program untuk
menentukan apakah suatu bilangan termasuk bilangan ganjil:
output dari kode diatas adalah
Bagian ekspresi boolean tersebut bernilai true, karena sisa pembagian dari 10 dibagi
2 adalah 1. Karena ekspresi boolean bernilai true, maka statement berikutnya
dikerjakan.
4.2. If – else dengan dua kondisi atau lebih
Penulisan struktur kendali seleksi dengan dua kondisi:
if (ekspresi boolean) statement1;
else statement2;atau:
if (ekspresi boolean){
Statement3;Statement4;
}else{
Statement5;Statement6;
}
Jika ekspresi boolean menghasilkan nilai TRUE, maka statement1 dan blok
statement3 dan statement4 yang akan dilaksanakan, jika tidak (FALSE) maka
statement2 dan blok statement4 dan statement6 yang akan dilaksanakan.
Contohnya dalam program untuk menentukan nilai terbesar dari tiga buah bilangan:
Output:
If-else juga dapat dibentuk bertingkat (nested if) dengan penulisan sintaks berikut:if (ekspresi boolean1) statement1;else if (ekspresi boolean2) statement2;else if (ekspresi boolean3) statement3;.....else statementN;
Contoh, misalnya program untuk menentukan suatu bilangan yang dimasukkan
apakah termasuk bilangan positif, negatif,atau nol:
Output program:
4.3. Switch
Konstruksi ini digunakan sebagai pengganti konstruksi if-else, bila
konstruksi if-else bertingkat terlalu jauh, sehingga menjadi sulit dibaca.
Hal – hal yang perlu diperhatikan adalah :1. Dibelakang keyword case harus diikuti oleh sebuah constant, tidak boleh
diikuti oleh ekspresi ataupun variable.2. Constant yang digunakan bertipe int atau char.3. Jika bentuknya seperti diatas maka apabila ekspresi sesuai dengan constant_2
maka statement_2, statement_3 sampai dengan pernyataan lain dieksekusi. Untuk mencegah hal tersebut, gunakan keyword break;. Jika keyword break digunakan maka setelah statement_2 dieksekusi program langsung keluar dari pernyataan switch. Selain digunakan dalam switch, keyword break banyak digunakan untuk keluar dari pernyataan yang berulang ( looping ).
4. Baris default akan dieksekusi jika constant_1 sampai constant_N tidak ada yang memenuhi ekspresi.
Penggunaan switch - case dalam program sangat banyak, salah satunya adalah untuk
switch(menu) { case 1: cout << "menu input data dipilih"; break; case 2: cout << "menu lihat data dipilih"; break; case 3: cout << "menu hapus data dipilih"; break; case 4: cout << "menu edit data dipilih"; break; case 5: exit(0); }
getch();}
4.4. Contoh penggunaan seleksi
1. Program cek tahun kabisat
Problem: buatlah program untuk mengecek apakah tahun yang dimasukan
user merupakan tahun kabisat atau bukan.
Solve: tahun kabisat adalah tahun yang habis dibagi 4. Jadi sisa pembagian
antara tahun dan 4 adalah 0.
Jika tahun%4 = 0, maka tahun adalah tahun kabisat.
Jika tahun%4 ≠ 0, maka tahun bukan tahun kabisat.
Program:
Output:
2. Menghitung indeks nilai mahasiswa
Problem: nilai indeks mahasiswa ditentukan berdasarkan nilai ujian yang
diraih. Ketentuan pemberian nili indeks adalah:
Jika nilai ujian lebih dari sama dengan 80 maka indeks adalah A. Jika nilai
ujian lebih dari sama dengan 70 dan kurang dari 80 maka indeks adalah B.
Jika nilai lebih dari sama dengan 60 dan kurang dari 70 maka indeks adalah
C. Sedangkan jika kurang dari 60 maka indeks adalah D.
Solve: penentuan indeks dapat menggunakan if-else berikut:
if(nilai >= 80) indeks = ‘A’;
if(nilai>=70 && nilai<80) indeks = ‘B’;
if(nilai>=60 && nilai<70) indeks = ‘C’;
if(nilai<60) indeks = ‘D’;
Program:
Output program:
3. Menentukan upah karyawan berdasarkan golongan
Problem: misalkan karyawan PT ABCD dikelompokkan berdasarkan
golongan. Upah per jam tiap karyawan bergantung pada golongan gaji
golongan A adalah Rp 40000/jam, golongan B adalah Rp 50000/jam,
golongan C adalah Rp 60000/jam, dan golongan D adalah Rp 70000/jam.
Jumlah jam kerja yang normal selama seminggu adalah 48 jam. Kelebihan
jam kerja dianggap lembur dengan upah lembur adalah Rp 30000/jam
untuk semua golongan. Buatlah program yang membaca nama karyawan,