Struktur Kendali Seleksi Algoritma dan Struktur Data Tahar Agastani Teknik Informatika UIN - 2008
Struktur Kontrol Pada C Struktur penyeleksian : • Seringkali instruksi - instruksi dilaksanakan bila suatu persyaratan dipenuhi, dalam struktur penyeleksian, suatu instruksi atau sekelompok instruksi dapat dilewati, sementara instruksi lain dijalankan. Konstruksi if Sintaks : if (ekspresi boolean) statement; Atau If (ekspresi boolean){ statement1; Blok statement statement2; }
1
• Jika ekspresi boolean menghasilkan nilai TRUE, maka statement atau blok statement akan dilaksanakan. Konstruksi if-else Sintaks : if (ekspresi boolean) statement1; else statement2; Atau if (ekspresi boolean){ statement1; statement2; Blok statement1 } else { statement3; statement4; Blok statement2 }
• Jika ekspresi boolean menghasilkan nilai TRUE, maka statement1 dan statement2 atau blok statement1 yang akan dilaksanakan, jika tidak (FALSE) maka statement3 dan statement4 atau blok statement2 yang akan dilaksanakan. • Contoh Program untuk mendapatkan akar-akar dari persamaan kwardrat. Algoritma : 1. Dapatkan koefisien a, b, dan c dari keyboard 2. Hitung diskriminan d = b2 – 4*a*c 3. Bila d >= 0 maka hitung x1 dan x2 Bila d < 0 maka stop 4. Stop
2
Dapatkan x1, dengan rumus :
-b +√ d 2.a
Dapatkan x2, dengan rumus :
-b -√ d 2.a
/*-----------------------------Program Pers_Kwadrat ------------------------------*/ #include <stdio.h> #include <math.h> float a,b,c,d,x1,x2; main() { /* Memasukkan data koef. a, printf(“Masukan koef. a : “); printf(“Masukan koef. b : “); printf(”Masukan koef. c : ”);
b, dan c */ scanf(“%f”,&a); scanf(“%f”,&b); scanf(“%f”,&c);
/* Menghitung Diskriminant */ d = b*b - 4 * a * c; /* Menghitung x1 dan x2 serta Menampilkan hasil */ if (d >= 0){ x1 = (-b + sqrt(d)) / (2 * a); x2 = (-b - sqrt(d)) / (2 * a); printf(“x1=%f\n x2=%f\n”,x1,x2); } else { printf(”Akar Persamaan Imajiner”); } }
3
Konstruksi if-else dapat digunakan secara bertingkat (nested) Contoh: if (ekspresi boolean1) statement1; else if (ekspresi boolean2) statement2; else if (ekspresi boolean3) statement3; ..... else statementN; Perbedaan Alur logika if-else dengan if Alur Logika if - else
Statement_1 IF
True? THEN Ya
Statement_A
Alur Logika if Tidak ELSE
Statement_B
Statement_2
IF
Statement_1 True?
Tidak
THEN Ya
Statement_A
Statement_2
Konstruksi switch -case Konstruksi ini digunakan sebagai pengganti konstruksi if-else, bila konstruksi if-else bertingkat terlalu jauh, sehingga menjadi sulit dibaca. Sintaks konstruksi switch-case : switch (ekspresi) { case constant_1 : statements_1; break; case constant_2 : statements_2; break; … case constant_N : statements_N; break; default : statements; }
4
Contoh Program Konversi Nilai Ujian : Tabel Nilai Nilai Akhir
Nilai Huruf
80 – 100
A : Sangat Baik
70 – 79
B : Baik
60 – 69
C : Cukup
0 – 59
G : Gagal
/*---------------------------Program Konversi Nilai_Ujian ----------------------------*/ #include <stdio.h> main() { int Nilai_akhir; printf(“Masukkan Nilai Akhir (0 s/d 100): ”); scanf(“%d”,&Nilai_akhir);
if(Nilai_akhir >=80) printf(“Nilai_akhir = A (Sangat Baik)”); else if(Nilai_akhir >=70) printf(“Nilai_akhir= B (Baik)”); else if(Nilai_akhir >=60) printf(“Nilai_akhir = C (Cukup)”); else printf(“Nilai_akhir = G (Gagal)”); printf(“\n”); }
5
Contoh Program Membuat Menu : Untuk Program Pengecekan Ejaan #include <stdio.h> void main() { char ch; printf("1. Periksa Ejaan\n"); printf("2. Koreksi Kesalahan Ejaan\n"); printf("3. Tampilkan Kesalahan Ejaan\n"); printf("Tekan Tombol Lain untuk Keluar\n"); printf(" Masukan pilihan anda: "); ch = getchar();
/* baca pilihan dari keyboard
*/
switch(ch){ case '1': printf("Panggil fungsi break; case '2': printf("Panggil fungsi break; case '3': printf("Panggil fungsi break; default: printf("Tidak ada opsi }
Periksa Ejaan");
Koreksi Kesalahan Ejaan");
Tampilan Kesalahan Ejaan");
yang dipilih");
}
6
Latihan 1. Tulislah algoritma untuk meminta masukan dua
2.
bilangan dari pengguna kemudian menampilkan bilangan terbesar di antara kedua bilangan tersebut. tersebut. Berdasarkan algoritma itu buat program dalam bahasa C Tulislah algoritma untuk meminta masukan tiga bilangan dari pengguna kemudian menampilkan bilangan terkecil di antara ketiga bilangan tersebut. tersebut. Berdasarkan algoritma itu buat program dalam bahasa C
7