Modul 4 Pernyataan Kondisi Pemograman Terstruktur S. Indriani Lestariningati, M.T Indonesia Computer University Bandung 2011 Jenis Pernyataan Pernyataan berkondisi • if single selection structure • if_else double selection structure • nested if, switch_case multiple selection structure 1. If (Single Selection Structure) • Pernyataan if dapat dipakai untuk mengambil keputusan berdasarkan suatu kondisi. • Pernyataan if yang paling sederhana berbentuk: if (kondisi) pernyataan; Kondisi digunakan untuk menentukan pengambilan keputusan Pernyataan dapat berupa sebuah pernyataan ataupun pernyataan majemuk. • Bagian ini dijalankan hanya kalau kondisi bernilai benar. if (kondisi) benar pernyataan salah Penerapan if Penerapan if misalnya untuk menentukan seseorang boleh menonton pertunjukan bioskop atau tidak. Kondisi yang dipergunakan, seseorang boleh menonton jika sudah berusia 17 tahun. Penulisan programnya sbb: #include<stdio.h> #include<conio.h> void main() { int usia; clrscr(); printf("Berapa Usia Anda ="); scanf("%i", &usia); if (usia<17) printf("Anda tidak diperkenankan menonton"); } 2. if_else (Double Selection Sructure) • Pernyataan else tidak pernah berdiri sendiri tanpa kehadiran if. if (kondisi) pernyataan_1; else pernyataan_2; kondisi salah benar Pernyataan_1 Pernyataan_2 Penerapan If-else • Penulisan programnya sbb: #include<stdio.h> #include<conio.h> void main() { int usia; clrscr(); printf("Berapa Usia Anda ="); scanf("%i", &usia); if (usia<17) printf("Anda tidak diperkenankan menonton"); else printf("Selamat menonton"); } 3. If-else if, switch-case (Multiple repetion structure) a. if-else if Pernyataan if yang terletak didalam if sering disebut nested if atau if bersarang: if (kondisi_1) pernyataan_1; else if (kondisi_2) pernyataan_2; else if (kondisi_3) pernyataan_3; else if (kondisi_M) pernyataan_M; else pernyataan_N; /*opsional*/ /*opsional*/ kondis i1 benar pernyataan1 salah salah kondis i2 benar pernyataan1 kondis i M benar pernyataan1 salah benar pernyataan1 #include<stdio.h> void main() { char nilaiIndeks; int nilaiUTS, nilaiUAS, nilaiAkhir; // contoh data yang dimasukkan printf("Masukkan nilai UTS: \n"); scanf("%i", &nilaiUTS); printf("Masukkan nilai UAS:\n"); scanf("%i", &nilaiUAS); // menghitung nilai akhir menggunakan rumus di atas nilaiAkhir = (0.4 * nilaiUTS) + (0.6 * nilaiUAS); if (nilaiAkhir >= 80) nilaiIndeks='A'; else if (nilaiAkhir >= 70) nilaiIndeks='B'; else if (nilaiAkhir >= 50) nilaiIndeks='C'; else if (nilaiAkhir >= 30) nilaiIndeks='D'; else // (nilaiAkhir < 30) nilaiIndeks='E'; printf("Nilai Akhir\t: %i \n", nilaiAkhir); printf("Nilai Indeks\t: %c", nilaiIndeks); } Contoh program b. switch_case • Kaidah umum pernyataan switch: switch (ungkapan) { case ungkapan_1; pernyataan_1; break; case ungkapan_2; pernyataan_2; break; … default: /*opsional*/ pernyataan_x; /*opsional*/ } Perlu diketahui! Bagian default hanya akan dijalankan kalau ungkapan pada bagian case tidak ada yang cocok dengan ungkapan switch. ungkapan = ungkapan1 benar pernyataan_1; break; salah ungkapan = ungkapan1 salah pernyataan_x; benar pernyataan_1; break; //contoh program switch_case #include<stdio.h> #include<conio.h> void main() { int x; clrscr(); printf("masukkan angka:"); scanf("%i", &x); switch (x) { case 1: printf("x adalah 1"); break; case 2: printf("x adalah 2"); break; default: printf("tidak terindentifikasi"); } } Latihan 1. Susun program untuk menginput 3 buah bilangan yang masingmasing menyatakan panjang sebuah garis. Kemudian periksa ketiga buah garis tersebut apakah dapat membentuk sebuah segitiga atau tidak. Bila ketiga buah garis tersebut dapat membentuk sebuah segitiga, maka cetak perkataan “SEGI TIGA”, sebaliknya bila ketiga garis tersebut tidak mungkin membentuk sebuah segitiga, maka cetak perkataan: “BUKAN SEGITIGA” Catatan: Pada sebuah segitiga, berlaku ketentuan yang pasti, yaitu panjang sebuah sisi selalu lebih kecil dibandinkan dengan jumlah panjang kedua buah sisi yang lain. Atau, jumlah panjang dua buah sisi selalu lebih besar dari panjang yang lain – – Menggunakan logical operator AND atau OR Tidak boleh menggunakan logical operator AND dan OR Latihan 2. Susun program untuk menginput 3 buah bilangan yang masing-masing menyatakan panjang sisi sebuah segitiga. Kemudian periksa ketiga buah garus tersebut. Bila ketiga buah garis (sisi) tersebut panjangnya sama maka cetak perkataan “SAMA SISI”. Bila hanya dua sisi yang sama maka cetak perkataan “SAMA KAKI”. Tetapi bila ketiga tiganya tidak sama maka cetak perkataan “SEMBARANG” – Menggunakan logical operator AND atau OR – Tidak boleh menggunakan logical operator AND dan OR Latihan 3. Susun program untuk menginput tiga buah bilangan yang masing-masing menyatakan besar sebuah sudut (dalam derajat). Periksa ketiga buah bilangan tadi. Bila total ketiganya =180, maka cetak perkataan “SEGITIGA”, tapi bila totalnya bukan 180, maka cetak perkataan “BUKAN SEGITIGA” Latihan 4. Susun program untuk menginputkan sebuah nilai interger (nilai ujian mahasiswa) Anggap nilai yang diinput berada dalam batas (0-100), artinya tidak dibawah 0 dan tidak diatas 100 Cetak huruf Bila nilai berada dalam batas: A 80-100 B 70-79 C 60-69 D 40-59 E 0-39 Nilai yang anda masukkan salah >100 Buatlah flowchart untuk soal diatas!