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 : Atau if (ekspresi boolean) statement; 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 = b 2 4*a*c 3. Bila d >= 0 maka hitung x1 dan x2 Bila d < 0 maka stop 4. Stop 2
Dapatkan x1, dengan rumus : Dapatkan x2, dengan rumus : -b + d 2.a -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, b, dan c */ printf( Masukan koef. a : ); scanf( %f,&a); printf( Masukan koef. b : ); scanf( %f,&b); printf( Masukan koef. c : ); 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 Statement_1 Tidak IF True? ELSE THEN Ya Statement_B Statement_A Tidak Statement_2 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 80 100 70 79 60 69 0 59 Nilai Huruf A : Sangat Baik B : Baik C : Cukup 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 Periksa Ejaan"); break; case '2': printf("panggil fungsi Koreksi Kesalahan Ejaan"); break; case '3': printf("panggil fungsi Tampilan Kesalahan Ejaan"); break; default: printf("tidak ada opsi yang dipilih"); 6
Latihan 1. Tulislah algoritma untuk meminta masukan dua bilangan dari pengguna kemudian menampilkan bilangan terbesar di antara kedua bilangan tersebut. Berdasarkan algoritma itu buat program dalam bahasa C 2. Tulislah algoritma untuk meminta masukan tiga bilangan dari pengguna kemudian menampilkan bilangan terkecil di antara ketiga bilangan tersebut. Berdasarkan algoritma itu buat program dalam bahasa C 7