Pemrograman Dasar
1
Pada akhir pertemuan ini, diharapkan mahasiswa memiliki kemampuan untuk:
Menggunakan struktur kendali pencabangan bersyarat dalam bahasa pemrograman.
2
Pencabangan Bersyarat
Pernyataan if dan if-else
Pernyataan nested if-else dan switch-case
Operator kondisional
3
Dalam sebuah algoritma, seringkali beberapa instruksi harus dilaksanakan bila suatu persyaratan dipenuhi (bernilai benar) dan sebaliknya.
Dalam struktur pencabangan bersyarat, suatu instruksi atau sekelompok instruksi dapat dilewati, sementara instruksi lain dijalankan.
Pernyataan pencabangan bersyarat terdiri dari: if if-else switch-case
4
Penggambaran dalam flow-chart Statements sebelum if
Eks.boolean
false
true Statement; Statement; ...
Statements setelah if
5
Sintaks : if (ekspresi boolean) statement; atau if (ekspresi boolean)
{
}
statement1; statement2; ……
Blok statement
Jika ekspresi boolean bernilai TRUE, maka statement atau blok statement akan dilaksanakan.
6
Penggambaran dalam flow-chart Statements sebelum if false
Eks.boolean
Statement_11; Statement_12; ...
true Statement_01; Statement_02; ...
Statements setelah if
7
Sintaks : if (ekspresi boolean) statement_01; else statement_11; atau if (ekspresi boolean) { statement_01; …… } else { statement_11; …... }
Blok statement_01
Blok statement_11
Jika ekspresi boolean bernilai TRUE, maka statement_01 atau blok statement_01 yang dilaksanakan, jika bernilai FALSE maka statement_01 atau blok statement_11 yang dilaksanakan. 8
Buatlah
program yang akan membaca sebuah angka integer. Jika angka di atas 75 tuliskan “Lulus”. Algoritma : 1. deklarasikan variabel bernama nilai 2. baca (nilai)
3. jika nilai > 75
tulis (“Lulus”)
Buatlah
program yang akan menerima input sebuah huruf. Jika huruf adalah ‘Y’ atau ‘y’ tuliskan “Proses diteruskan” Algoritma : 1. deklarasikan variabel char bernama huruf 2. baca (huruf)
3. jika huruf==‘Y’ atau huruf==‘y’
tulis (“Proses diteruskan”)
Contoh Program untuk mendapatkan akar-akar dari persamaan kwardrat. Algoritma : 1. Dapatkan koefisien a, b, dan c dari keyboard 2. Hitung diskriminan d = b*b – 4*a*c 3. Bila d >= 0 maka hitung x1 dan x2 Bila d < 0 maka akar imajiner dan stop 4. Stop
-b + d
Menghitung x1, dengan rumus : Menghitung x2, dengan rumus :
2*a -b - d 2*a 13
Buatlah
program yang akan menerima input berupa nilai integer. Jika angka merupakan kelipatan 5 tuliskan “Kelipatan 5”, jika tidak tuliskan “Bukan kelipatan 5”. Algoritma : 1. deklarasikan variabel bernama angka (int) 2. baca (angka) 3. jika angka%5==0
tulis (“Kelipatan 5”) else tulis (“Bukan kelipatan 5”)
Buatlah
program yang akan menerima data berupa angka integer. Jika 5
5 dan nilai<50
tulis (“Memenuhi”) else tulis (“Tidak memenuhi”)
Konstruksi if-else dapat digunakan secara bertingkat atau bersarang (nested) Contoh: if (ekspresi boolean1) statement1; else if (ekspresi boolean2) statement2; else if (ekspresi boolean3) statement3; ..... ..... else if (ekspresi booleanN) statementN;
16
Formula : • if( ekspresi_boolean1 )
statement1; else if(ekspresi_boolean2) statement2; else statement3; • if(ekspresi_boolean1 ) { statement1; } else if(ekspresi_boolean2 ) { statement2; } else { statement3; }
Buatlah
program yang akan menerima sebuah angka integer. Tuliskan output sesuai ketentuan : Angka
Output
angka<50
“Kurang”
50<=angka<70
“Cukup”
Angka>=70
“Baik”
Buatlah
program yang akan menentukan vokal/konsonal sebuah huruf. Jika huruf termasuk huruf vokal tuliskan “Vokal”, jika bukan tuliskan “Konsonan”
Penulisan if-else harus jelas maksudnya.... Contoh penulisan if-else yang kurang jelas meskipun tidak salah. #include <stdio.h> #include int main(){ int suhu; printf("Input suhu ? (F): "); scanf("%d",&suhu); if (suhu<80) if (suhu>30) printf("Panas\n\n"); else printf("Sejuk\n\n"); system("PAUSE"); return(0); } 20
Pernyataan switch-case dapat dipergunakan sebagai pengganti pernyataan if-else, jika pernyataan if-else bertingkat terlalu banyak, sehingga menjadi sulit dibaca. Sintaks pernyataan switch-case switch (ekspresi integer) { case constant1 : statements1; break; case constant2 : statements2; break; . . [ default : statements; ] } 21
Pernyataan switch mengevaluasi ekspresi dan kemudian melihat isi case constant. Jika nilai ekspresi ada didalam constant list maka pernyataan dieksekusi. Jika tidak ada yang cocok, pernyataan default yang dieksekusi. Catatan: nilai ekspresi harus integer dan constant harus integer constant termasuk char.
22
Formula : • switch( switch_ekspresi ){
}
case case_pilihan1: statement1;// statement2;//blok 1 break; case case_pilihan2: statement1;// statement2;//blok 2 break; : default: statement1;// statement2;//blok n
Struktur logika switch-case dapat digambarkan sbb.: case a false
case b
true true
case a action(s)
break
case b action(s)
break
case z action(s)
break
false
case z
true
false
default action(s)
24
public class Grade { public static void main( String[] args ) { int grade = 92; switch(grade){ case 100: System.out.println( "Excellent!" ); break; case 90: System.out.println(“Bagus!" ); break; case 80: System.out.println(“Belajar lagi!" ); break; default: System.out.println(“Maaf, Anda gagal."); } } }
Buat program untuk menginput nilai IPK mahasiswa dan berikan penilaian : 3.5 - 4.0 Sangat Memuaskan 3.0 - 3.4 Memuaskan 2.5 – 2.9 Baik Sekali 2.0 – 2.4 Baik Dibawah 2.0 Kurang Gunakan perintah if / if-else !
27
Buatlah program komputer untuk menentukan nilai-huruf dari sebuah matakuliah yang nilainya terdiri dari: nilai tugas, nilai kuis dan nilai UAS. Bila nilai-kuis > UAS, nilai akhir dihitung dg rumus: • Nilai akhir = 40% (nilai-kuis) + 40% (UAS) + 20% (tugas) Bila nilai UAS>= nilai-kuis, nilai akhir dihitung dg rumus: • Nilai akhir = 30% (nilai-kuis) + 50% (UAS) + 20% (tugas) Sedangkan konversi nilai-akhir menjadi nilai huruf menggunakan tabel berikut: Nilai Akhir
Bobot
Nilai Huruf
85 - 100
4
A : Sangat Baik
75 - 84
3
B : Baik
65 - 74
2
C : Cukup
50 - 64
1
D : Kurang
0 - 49
0
E : Gagal 28
Perhatikan potongan program dibawah ini:
if(n > 0) if(a > b) z = a; else z = b; •
Jelaskan keyword else berpasangan dengan if yang mana ?
•
Perbaiki cara penulisan potongan program diatas, agar menjadi lebih jelas dibaca algoritmanya !
29