Anda di halaman 1dari 33

Algoritma dan

Pemrograman
PERTEMUAN V : STRUKTUR KONTROL PERCABANGAN
Overview

 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
Operator Relasional

 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

 Operator relasional melambangkan hubungan


antara dua entitas
 Entitas tersebut bisa berupa variabel, konstanta
maupun fungsi
 Nilai dari hubungan tersebut adalah TRUE atau
FALSE
Operator Relasional

 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)
Operator Relasional

 Hasil dari operator relasional adalah nilai TRUE


atau FALSE
 Nilai TRUE bernilai sama dengan 1, sedangkan
FALSE bernilai sama dengan 0.
Operator Relasional

 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);
}
Operator Relasional

 Outputnya :

3 < 5 bernilai : 1
15>=3*5 bernilai : 1
8==7 bernilai : 0
11<=5+4 bernilai : 0
Struktur Kontrol :
Percabangan
 Program dapat menentukan operasi/perintah
mana yang akan dijalankan sesuai kondisi
tertentu

 Bentuknya seperti pilihan atas alternatif-alternatif


yang disediakan.
Struktur Kontrol :
Percabangan
 Ada 3 macam perintah percabangan di C
 If (kondisi)
<statement>
 If (kondisi)
{ … <statement> …}
else
{ … <statement> …}
 switch (expression) { … <statement> … }
Struktur Kontrol :
Percabangan
 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”);
Struktur Kontrol :
Percabangan
 Lengkapnya menjadi :


if(nilai > 80)
printf(“Nilai anda : A”);
Struktur Kontrol :
Percabangan
 Pada bentuk
If (kondisi)
<statement>

 Ada kemungkinan untuk menjalankan lebih dari


1 perintah, menjadi:

If (kondisi) {

<statement> Compound

}
Statement
Struktur Kontrol :
Percabangan
 Contoh:


if(nilai > 80) {
printf(“selamat anda lulus alpro\n”);
printf(“nilai anda : A”);
}
Struktur Kontrol :
Percabangan
 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
Struktur Kontrol :
Percabangan
 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);
Struktur Kontrol :
Percabangan
 Penulisan if-else tersebut dapat menggunakan
conditional operator seperti berikut:

 bolos > 5? printf(“tidak boleh ujian”) : printf(“boleh


ujian”);

 (kondisi)?<statement 1> : <statement 2>;


Struktur Kontrol :
Percabangan
 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”);
Struktur Kontrol :
Percabangan
 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?
Struktur Kontrol :
Percabangan
 Bentuk ketiga menggunakan switch
 Formatnya:
switch(expression) {
case <constant expr> : <statement>;
break;

case <constant expr> : <statement>;
break;
default : <statement>;
}
Struktur Kontrol :
Percabangan
 switch (expression)
 Expression di sini biasanya adalah variabel/fungsi
 Constant-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
Struktur Kontrol :
Percabangan
 Contoh:
switch(nilai) {
case ‘A’ : bobot = 4;
break;
case ‘B’ : bobot = 3;
break;
case ‘C’ : bobot = 2;
break;
default : bobot = 1;
}
Struktur Kontrol :
Percabangan
 Keyword break digunakan untuk keluar dari
operasi switch. Jika tidak ditemukan break, maka
operasi akan dilanjutkan ke constant-expression
berikutnya.
Operator Logical

 Pada struktur kontrol percabangan, (kondisi) yang


dicek selain menggunakan operator relasional
juga dapat dikombinasikan dengan operator
logical
 Operator logical : AND (&&), OR (||), NOT (!)
Operator Logical

 Operator precedence

! not
*/ perkalian dan pembagian
< <= => >
== !=
&& AND
|| OR
Operator Logical

 Operator Logical AND

A B A && B
TRUE TRUE TRUE
TRUE FALSE FALSE
FALSE TRUE FALSE
FALSE FALSE FALSE
Operator Logical

 Operator Logical OR

A B A || B
TRUE TRUE TRUE
TRUE FALSE TRUE
FALSE TRUE TRUE
FALSE FALSE FALSE
Operator Logical

 Operator Logical NOT

A !A
TRUE FALSE
FALSE TRUE
Operator Logical

 Apa nilai dari expression berikut ?

(5==5)||(6==7)
(!1)||(5>=6) && (3==3)
!(4 < 3) && (5<=10) || (‘b’ < ‘d’) && (!0)
Operator Logical

 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”);
Nested If

 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
Nested If : Contoh

int a = 10; int b = 15; int c = 20;


if(a>b) {
if(a>c)
printf(“a yang terbesar”);
else
printf(“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”);
else
printf(“b yang terbesar”);
}
Latihan Soal

 Latihan Soal
 Buatlah program untuk menentukan apakah suatu
tahun merupakan tahun kabisat atau tidak.
 Buatlah program untuk menentukan range nilai A,
B, C, D , dan E

Anda mungkin juga menyukai