STRUKTUR KENDALI PROSES
STRUKTUR KENDALI PEMILIHAN Suatu Struktur dasar algoritma yang memiliki satu atau lebih kondisi tertentu dimana sebuah instruksi dilaksanakan jika sebuah kondisi/persyaratan terpenuhi. Ada beberapa bentuk struktur dasar pemilihan ini : if if… else switch... case
PEMILIHAN (SELECTION) if (kondisi) pernyataan; Pernyataan dilaksanakan jika dan hanya jika kondisi yang diinginkan terpenuhi, jika tidak program tidak memberikan hasil apa-apa. Contoh ptongan program : if(nilai >= 56) puts(“Lulus”); false kondisi true pernyataan
PEMILIHAN (SELECTION) if(kondisi) pernyataan1; else pernyataan2; Jika kondisi benar, maka laksanakan pernyataan1, selain itu lakukan pernyataan2. if tanpa else, program tidak error. else tanpa if, program akan error. Jika pernyataan1 atau pernyataan2 hanya terdiri dari satu instruksi, maka tanda { } tidak diperlukan, namun jika lebih dari satu instruksi (blok instruksi) maka diperlukan { } untuk menyatukan instruksi - instruksi tersebut menjadi sebuah blok. Selain dari if … else, juga dikenal bentuk if … else if. kondisi pernyataan1 true false pernyataan2
PEMILIHAN (SELECTION) Instruksi switch…case Pernyataan switch…case adalah pernyataan yang digunakan untuk menjalankan salah satu blok instruksi dari beberapa kemungkinan pernyataan, berdasarkan nilai dari sebuah ekspresi. Pernyataan if…else yang banyak lebih mudah dibangun dengan pernyataan switch…case. switch (ekspresi) { case konstanta1 : pernyataan_1;[break;] case konstanta2 : pernyataan_2;[break;] ... case konstantan : pernyataan_n;[break;] [default] : pernyataan_x } Klausa [default] dan [break] bersifat optional
PEMILIHAN (SELECTION) //contoh Switch : 1 = senin, 2= selasa dst. #include <stdio.h> #include <stdlib.h> int main() { int angka; printf(“input Angka 1 - 7: “);scanf(“%d”,&angka); switch(angka) { case 1 : puts(“senin”);break; case 2 : puts(“selasa”);break; case 3 : puts(“rabu”);break; case 4 : puts(“kamis”);break; case 5 : puts(“jumat”);break; case 6 : puts(“sabtu”);break; case 7 : puts(“minggu”); // PERLU BREAK ATAU TIDAK? } system(“PAUSE”); return 0;
PEMILIHAN (SELECTION) //contoh : Switch #include <stdio.h> #include <stdlib.h> int main() { int nilai; printf(“input nilai : “);scanf(“%d”,&nilai); switch(nilai/10) { case 10 : case 9 : case 8 : puts(“hebat”);break; case 7 : case 6 : puts(“cukup”);break; case 5 : puts(“buruk”);break; default: puts(“Anda harus mengulang !”); } system(“PAUSE”); return 0;
contoh-contoh
IF (1) Masukkan Nilai Akhir Cari Grade berdasarkan aturan sbb: Contoh: Nilai Akhir ? 90 Cari Grade berdasarkan aturan sbb: Jika Nilai Akhir lebih besar dari 79.99 dan lebih kecil sama dengan 100 maka Grade A Jika Nilai Akhir lebih besar dari 67.99 dan lebih kecil sama dengan 79.99 maka Grade B Jika Nilai Akhir lebih besar dari 55.99 dan lebih kecil sama dengan 67.99 maka Grade C Jika Nilai Akhir lebih besar dari 44.99 dan lebih kecil sama dengan 55.99 maka Grade D Jika Nilai Akhir lebih besar sama dengan 0 dan lebih kecil sama dengan 44.99 maka Grade E Cetak Grade: Contoh: Grade = A
GUNAKAN STATEMEN IF SAJA Input : Nilai Grade Algoritma ? (isinya adalah 1 huruf ‘A’ – ‘E’); Proses: jika Grade = ‘A’ atau ‘B’ atau ‘C’ maka dinyatakan Lulus Mata kuliah algoritma jika Grade = ‘D’ atau ‘E’ atau ‘F’ maka Mata Kuliah Algoritma Harus diulang Selain itu berikan warning “ Salah isi Grade “ (Misalkan user menginput grade ‘R’. Output : “Lulus Mata Kuliah Algoritma” ATAU “Mata Kuliah Algoritma harus diulang” atau “SALAH ISI GRADE”
IF (3) Tulis program untuk menampilkan bilangan bulat terbesar di antara ketiga bilangan bulat yang berbeda. GUNAKAN IF Input: 3 buah bilangan Misalkan Input 3 bilangan: 15 90 20 Proses: Cari Bilangan terbesar diantara 3 bilangan yang diinput Output: Bilangan Terbesar : (misalkan 90)
IF … ELSE (1) Input: IPK ? (Contoh 1.75) SKS? (contoh 20) Proses: Seorang mahasiswa kemungkinan akan jadi calon sarjana jika Jika IPK lebih besar dari 2.00 dan SKS yang sudah ditempuh MINIMAL 60 SKS. Selain itu mahasiswa tersebut Calon Drop Out. Output: Calon Sarjana atau Calon Drop Out.
GUNAKAN STATEMEN IF-ELSE (untuk kondisi ke 2 dan 3) Input : Nilai Grade Algoritma ? (isinya adalah 1 huruf ‘A’ – ‘E’); Proses: jika Grade = ‘A’ atau ‘B’ atau ‘C’ maka dinyatakan Lulus Mata kuliah algoritma jika Grade = ‘D’ atau ‘E’ atau ‘F’ maka Mata Kuliah Algoritma Harus diulang Selain itu berikan warning “ Salah isi Grade “ (Misalkan user menginput grade ‘R’. Output : “Lulus Mata Kuliah Algoritma” ATAU “Mata Kuliah Algoritma harus diulang” atau “SALAH ISI GRADE”
IF … ELSE (3) Tulis program untuk menampilkan bilangan bulat terbesar di antara ketiga bilangan bulat yang berbeda. GUNAKAN IF ELSE Input: 3 buah bilangan Misalkan Input 3 bilangan: 15 90 20 Proses: Cari Bilangan terbesar diantara 3 bilangan yang diinput Output: Bilangan Terbesar : (misalkan 90)
IF … ELSE (4) Terdapat tiga bilangan bulat (a, b, c dengan a <= b dan b <= c) yang menyatakan panjang tiga ruas garis. Tulis program untuk menguji apakah ketiga ruas garis ini dapat membentuk sebuah segitiga. c a b ? RUMUS ?
Switch – Break – Continue (1) Input : Kode Pos (5 digit) , Contoh 15180 Proses: jika 2 digit pertama dari Kode Pos adalah: 10 maka wilayah tersebut : Jakarta Pusat 11 maka wilayah tersebut : Jakarta Barat 12 maka wilayah tersebut : Jakarta Selatan 13 maka wilayah tersebut : Jakarta Timur 14 maka wilayah tersebut : Jakarta Utara 15 maka wilayah tersebut : Tangerang 16 maka wilayah tersebut : Bogor 17 maka wilayah tersebut : Bekasi Selain itu wilayah tersebut : diluar Jabotake; Output : Contoh : Wilayah = Tangerang.
Switch – Break – Continue (2) Input : Nilai Grade Algoritma ? (isinya adalah 1 huruf ‘A’ – ‘E’); Proses: jika Grade = ‘A’ atau ‘B’ atau ‘C’ maka dinyatakan Lulus Mata kuliah algoritma jika Grade = ‘D’ atau ‘E’ atau ‘F’ maka Mata Kuliah Algoritma Harus diulang Selain itu berikan warning “ Salah isi Grade “ (Misalkan user menginput grade ‘R’. Output : “Lulus Mata Kuliah Algoritma” ATAU “Mata Kuliah Algoritma harus diulang” atau “SALAH ISI GRADE”
References : Thompson SN, 2009, Algoritma dan Struktur Data dengan C. Deitel, PJ, HM.Deitel, 2007, C How to Program, 5th Edition.