Pertemuan v : Struktur Kontrol Percabangan
Transcript of Pertemuan v : Struktur Kontrol Percabangan
Pertemuan V : Struktur Kontrol Percabangan
Materi hari ini akan membahas mengenai bagaimana membuat program yang dapat mengambil keputusan berdasarkan input dari pengguna atau hasil dari suatu perhitungan
Operator Relasional Struktur Kontrol : Percabangan Operator Logical Nested If
Ada beberapa operator relasional : > : lebih besar >= : lebih besar atau sama
dengan < : lebih kecil <= : lebih kecil atau sama dengan == : sama dengan != : tidak sama dengan
Operator relasional melambangkan hubungan antara dua entitas
Entitas tersebut bisa berupa variabel, konstanta maupun fungsi
Nilai dari hubungan tersebut adalah TRUE atau FALSE
Contoh : 5 > 3 bernilai benar
(TRUE) 6 < 2 bernilai salah
(FALSE) 45 != 34 bernilai benar (TRUE) (5 + 4) <= (3x3) bernilai benar
(TRUE) 6/7 >= 12/17 bernilai benar
(TRUE)
Hasil dari operator relasional adalah nilai TRUE atau FALSE
Nilai TRUE bernilai sama dengan 1, sedangkan FALSE bernilai sama dengan 0.
Contoh :
#include <stdio.h>void main() {
printf(“ 3 < 5 bernilai : %d\n”, 3 < 5);printf(“15 >= 3 * 5 bernilai : %d\n”, 15 >= 3 * 5);printf(“ 8 == 7 bernilai : %d\n”, 8==7); printf(“11<=5+4 bernilai : %d\n”, 11<=5+4);
}
Outputnya :
3 < 5 bernilai : 115>=3*5 bernilai : 18==7 bernilai : 011<=5+4 bernilai : 0
Program dapat menentukan operasi/perintah mana yang akan dijalankan sesuai kondisi tertentu
Bentuknya seperti pilihan atas alternatif-alternatif yang disediakan
Prinsipnya mirip dengan : Ada 2 wanita, A dan B. A itu kurang cantik
tapi baik dan pintar, sedangkan B itu cantik dan baik tapi kurang pintar. Pilih A atau B ?
Ada 3 macam perintah percabangan di C If (kondisi)
<statement> If (kondisi)
{ … <statement> …} else
{ … <statement> …} switch (expression) { … <statement>
… }
Perintah percabangan pertama, sintaksnya :If (kondisi)
<statement>
(kondisi) diisi dengan operator relasional Contoh : (nilai > 80)
<statement> adalah perintah yang dijalankan jika kondisi terpenuhi Contoh : printf(“Nilai anda : A”);
Lengkapnya menjadi :
…if(nilai > 80)
printf(“Nilai anda : A”);
Pada bentuk If (kondisi)
<statement>
Ada kemungkinan untuk menjalankan lebih dari 1 perintah, menjadi:
If (kondisi) {…<statement>…
}
Compound Statement
Contoh:
…if(nilai > 80) {
printf(“selamat anda lulus alpro\n”);
printf(“nilai anda : A”);}
Perintah percabangan kedua, sintaksnya :if(kondisi)
<statement A>else
<statement B> Mirip dengan bentuk pertama, tapi yang
ini ditambah dengan else, yang memuat perintah-perintah yang dijalankan jika (kondisi) tidak terpenuhi
Contoh:Bila jumlah membolos lebih dari 5 maka tampilkan pesan “tidak boleh ujian”, jika tidak maka tampilkan pesan “boleh ujian”.
…if(bolos>5)
printf(“tidak boleh ujian”);else
printf(“boleh ujian);
Penulisan if-else tersebut dapat menggunakan conditional operator seperti berikut:
bolos > 5? printf(“tidak boleh ujian”) : printf(“boleh ujian”);
(kondisi)?<statement 1> : <statement 2>;
Jumlah alternatif kondisi <else> bisa lebih dari 1, seperti contoh berikut :
…if(suhu>=100)
printf(“berwujud gas”);else if(suhu<=0)
printf(“wujud padat”);else
printf(“wujud cair”);
Pada C, kondisi yang bernilai tidak sama dengan 0 (nol) berarti bernilai TRUE, jika nilainya 0 maka bernilai FALSE.
Contoh: If(4+5) bernilai TRUE Bagaimana dengan if(4-5)? Apa
nilainya?
Bentuk ketiga menggunakan switch Formatnya:
switch(expression) {case <constant expr> :
<statement>; break;
…case <constant expr> :
<statement>; break;
default : <statement>;}
switch (expression) Expression di sini biasanya adalah
variabel/fungsiConstant-expr : konstanta
Berupa konstanta, misal ‘A’, 4, 20 dan sebagainya
Kode program menjadi lebih mudah dibaca bila ditulis menggunakan switch dibanding if-else-if
default : <statement> perintah yang dijalankan bila tidak memenuhi kriteria-kriteria yang ada
Contoh:switch(nilai) {
case ‘A’ : bobot = 4; break;
case ‘B’ : bobot = 3; break;
case ‘C’ : bobot = 2; break;
default : bobot = 1;}
Keyword break digunakan untuk keluar dari operasi switch. Jika tidak ditemukan break, maka operasi akan dilanjutkan ke constant-expression berikutnya.
Pada struktur kontrol percabangan, (kondisi) yang dicek selain menggunakan operator relasional juga dapat dikombinasikan dengan operator logical
Operator logical : AND (&&), OR (||), NOT (!)
Operator precedence
! not* / perkalian dan pembagian< <= => >== !=&& AND|| OR
Operator Logical AND
A B A && BTRUE TRUE TRUETRUE FALSE FALSEFALSE TRUE FALSEFALSE FALSE FALSE
Operator Logical OR
A B A || BTRUE TRUE TRUETRUE FALSE TRUEFALSE TRUE TRUEFALSE FALSE FALSE
Operator Logical NOT
A !ATRUE FALSEFALSE TRUE
Apa nilai dari expression berikut ?
(5==5)||(6==7)(!5)||(5>=6) && (3==3)!(4 < 3) && (5<=10) || (‘b’ < ‘d’) && (!0)
Kita dapat menggunakan operator logical untuk digunakan sebagai pengecekan kondisi pada percabangan if
Contoh:if((nilai>40) && (nilai < 60))
printf(“nilai huruf : C”);else if((nilai > 61) && (nilai < 80))
printf(“nilai huruf : B”);else if(nilai > 81)
printf(“nilai huruf : A”);
Jika diperlukan, kita bisa melalukan operasi percabangan dalam percabangan (nested if)
Jika statement di dalam if tersebut lebih dari satu, maka perlu ditambahkan curly bracket { } untuk mengelompokkannya
int a = 10; int b = 15; int c = 20;if(a>b) {
if(a>c)printf(“a yang terbesar”);
elseprintf(“c yang terbesar”);
} else if (b>c) {if(b>a)
printf(“b yang terbesar”);else
printf(“a yang terbesar”);} else if(c>a) {
if(c>b)printf(“c yang terbesar”);
elseprintf(“b yang terbesar”);
}
Latihan Soal Buatlah program untuk menentukan apakah
penghasilan per bulan yang dimasukkan kena pajak atau tidak (kena pajak jika penghasilan setahun lebih besar sama dengan Rp. 15.600.000)
Buatlah program untuk menentukan apakah suatu tahun merupakan tahun kabisat atau tidak
Buatlah program untuk menentukan kuadran dari input titik (x,y) yang dimasukkan oleh pengguna
Latihan Soal Buatlah program untuk menentukan
bilangan yang terletak di tengah antara tiga bilangan yang dimasukkan pengguna. Misal : 35, 12, 27 berarti bilangan yang di tengah adalah 27
Struktur Kontrol Perulangan