STRUKTUR KENDALI PERCABANGAN Percabangan adalah pemilihan statemen pada kondisi dua pilihan atau bank pilihan, ng akan dieksekusi selanjutn di mana pemilihan tersebut didasarkan atas kondisi tertentu. Dalam bahasa C terdapat dua buah jenis percabangan, itu struktur if dan struktur switch. A. STATEMENT IF Perntaan if mempuni bentuk umum : If(expression) statement; Bentuk ini dintakan : Jika kondisi ng diseleksi adalah benar (bernilai logika = 1), maka perntaan ng mengikutin akan diproses Sebalikn, jika kondisi ng diseleksi adalah benar (bernilai logika = 0), maka perntaan ng mengikutin akan diproses. Mengenai kondisi ng harus ditulis diantara tanda kurung, sedangkan perntaan ng dapat berupa sebuah perntaan tunggal, perntaan majemuk, atau perntaan kosong. Kondisi benar salah Perntan main() { float total_pembelian, total_pembaran, discount = 0; printf("total pembelian : Rp "); scanf("%f", &total_pembelian); if (total_pembelian>=200000) discount = 0.10 * total_pembelian; total_pembaran = total_pembelian - discount; printf("discount : Rp %.0f\n", discount); printf("anda han membar : Rp %.0f\n", total_pembaran);
B. STATEMENT IF-ELSE Statement if-else digunakan untuk melakukan logical test dan kemudian menentukan tindakan atau aksi mana ng harus dilaksanakan dari dua kemungkinan pilihan, berdasarkan dari hasil test apakah benar (true) atau salah (false). Bentuk umum dari statemen if-else ini adalah sebagai berikut : If(expression) statement-1 else statement-2 Jika kondisi (expression) benar (true) atau bernilai bukan nol, maka statement-1 akan dilaksanakan. Jika kondisi (expression) salah (false) atau bernilai nol, maka statement-2 akan dilaksanakan. Jika anda menginginkan lebihdari satu statement untuk statement-1 dan atau statement-2 menggunakan tanda kurung kurawal untuk menciptakan satu blok statement. Kondisi benar salah Perntaan-1 Perntaan-2 main() { int nilai; printf("masukkan Nilai Anda : ", nilai); scanf ("%d", &nilai); if (nilai>70){ printf("selamat Anda Lulus!!!\n"); else { printf("kasihan Anda Tidak Lulus\n");
C. STATEMENT SWITCH Statement switch merupakan perntaan ng dirancang khusus untuk menangani pengambilan keputusan ng melibatkan sejumlah alternatif, misaln untuk menggantikan perntaan if bertingkat. Bila dalam statement if-else han ada dua pilihan benar (true) atau salah (false), statement switch memungkinkan pilihan lebih dari dua berdasarkan suatu expression. Bentuk umum dari statement switch adalah sebagai berikut : Switch (expression) { Case konstanta-1: statement-1:... Case konstanta-2: statement-2:... Case konstanta-n: statement-n:... default;...... Dengan ekspresi dapat berupa ekspresi bertipe integer atau bertipe karakter. Demikian juga konstanta-1, konstanta-2,..., konstanta n dapat berupa konstanta integer atau karakter. Setiap statement (statement1, statement2,...,statement-n) dapat berupa perntaan tunggal ataupun perntaan jamak. Dalam hal ini urutan penulisan perntaan case berpengaruh. Proses penyeleksian berlangsung sebagai berikut : Pengujian pada switch akan dimulai dari konstanta1. Kalau nilai konstanta-1 cocok dengan ekspresi maka statement-1 dijalankan. Kata kunci break harus disertai di bagian akhir setiap perntaan case, ng akan mengarahkan eksekusi ke akhir switch. Kalau ternta statement-1 sama dengan nilai ekspresi pengujian dilanjutkan pada konstanta-2, dan berikutn serupa dengan pengujian pada konstanta-1. Jika sampai pada pengujian case ng terakhir ternta ada kecocokan, maka perntaan ng mengikuti kata kunci default ng akan diekskusi. Kata kunci default ini bersifat opsional. Tanda kurung kurawal tutup ( ) menandakan akhir dari proses penyeleksian kondisi case
Input Case 1 Statement 1 caccc Case 2 Statement 2 Case 3 Statement 3 main() { int menu; printf("masukkan Menu [1-5]? "); scanf("%d", &menu); switch(menu){ case 1: printf("anda memilih menu 1!\n"); case 2: printf("anda memilih menu 2!\n"); case 3: printf("anda memilih menu 3!\n");
case 4: printf("anda memilih menu 4!\n"); case 5: printf("anda memilih menu 5!\n"); default: printf("maaf!\n"); printf("anda memilih menu ng salah!\n"); printf("coba Lagi (Y/N) : "); scanf("%s", &coba); getch(); D. SELEKSI MULTI KONDISI Percabangan jenis ini merupakan perluasan dari struktur ng memiliki dua kondisi diatas itu dengan menyisipkan satu atau lebih kondisi ke dalamn. Bentuk umum: if (kondisi1) statemen_jika_kondisi1_terpenuhi; else if (kondisi2) statemen_jika_kondisi1 terpenuhi; else if (kondisi3). else statemen_jika_kondisi2 terpenuhi; statemen_jika_semua_kondisi terpenuhi; main(){
int nilai; printf("masukkan Nilai : "); scanf("%d", &nilai); if( nilai > 90 ) { printf("selamat Anda mendapat Grade A\n"); else if (nilai > 80) { printf("selamat Anda mendapat Grade B\n"); else if (nilai > 70) { printf("selamat Anda mendapat Grade C\n"); else if (nilai > 60) { printf("selamat Anda mendapat Grade D\n"); else { printf ("Grade E\n"); E. SELEKSI BERTINGKAT Didalam suatu perntaan if (atau if-else) bisa saja terdapat perntaan if (atau iffalse) ng lain. Bentuk seperti ini dinamakan sebagai nested if. Secara umum, bentuk dari perntaan ini adalah sebagai berikut : If ( expression-1) If (expression-2).. If (expression-n) Statement; Else Statement;.. Else Statement; Else Statement; Kondisi ng akan diseleksi pertama kali adalah kondisi ng terluar (expression-1). Jika expression-1 bernilai salah, maka statement else ng terluar (pasangan if ng bersangkutan) ng akan diproses. Jika else (pasangan tersebut) ditulis, maka penyeleksian kondisi akan dihentikan.
Jika expression-1 bernilai benar, maka kondisi berikutn ng lebih dalam (expression-2) akan diseleksi. Jika expression-2 bernilai salah, maka statement else pasangan dari if ng bersangkutan ng akan diproses. Jika else (untuk expression- 2) ditulis, maka penyeleksian kondisi akan dihentikan. Dengan cara ng sama, penyeleksian experession (kondisi) akan dilakukan sampai expression-n, jika kondisi kondisi sebelumn berniali benar. KONDISI 1 main() { int nilai; char jk; printf("jenis Kelamin (L/P)? "); scanf("%s", &jk); printf("masukan Nilai : "); scanf("%d", &nilai); if(jk == 'L' jk == 'l'){
if(nilai > 80) printf("lulus!\n"); else printf("tidak Lulus!\n"); else if(jk == 'P' jk == 'p'){ if(nilai > 60) printf("lulus!\n"); else printf("tidak Lulus!\n"); else { printf("masukan Dengan Benar!\n");