Pertemuan v : Struktur Kontrol Percabangan

Post on 18-Jun-2015

478 views 67 download

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