Transcript if-else
Dasar Pemrograman
Komputer
Seleksi/Pencabangan
Sutrisno
Ismiarta Aknuranda
Issa Arwani
Adharul Muttaqin
Teknik Informatika - UB
Aliran Kendali
(Flow Control)
Pernyataan-pernyataan yang menentukan
urutan eksekusi
Pernyataan/struktur berurutan (sequence)
Pencabangan bersyarat (selection, conditional
structure)
if, if-else, switch-case
Pengulangan (repetition, iteration, loop)
for, while, do-while
Aliran Kendali Pencabangan - TIF UB 2010
2
Pencabangan bersyarat
Dalam sebuah algoritma, seringkali suatu atau
sekelompok instruksi harus dilaksanakan bila suatu
persyaratan dipenuhi (bernilai benar) dan sebaliknya,
dilewati atau tidak dilaksanakan jika persyaratan
tersebut tidak dipenuhi (bernilai salah).
Pernyataan pencabangan bersyarat terdiri dari:
if, if-else
switch-case
Aliran Kendali Pencabangan - TIF UB 2010
3
Pernyataan if
Penggambaran dalam flow-chart
Statements sebelum if
Boolean
Eks.boolean
expression
true
false
Statement;
Statement;
...
Statements setelah if
Aliran Kendali Pencabangan - TIF UB 2010
4
Pernyataan if
Sintaksis :
if (boolean expression)statement;
atau
if (boolean expression)
{
statement1;
statement2;
……
}
Block statement
Jika ekspresi boolean bernilai TRUE, maka statement atau block
statement akan dilaksanakan.
Aliran Kendali Pencabangan - TIF UB 2010
5
Pernyataan if-else
Penggambaran if-else dalam flow-chart
Statements sebelum if
false
Boolean
Eks.boolean
expression
Statement_11;
Statement_12;
...
true
Statement_01;
Statement_02;
...
Statements setelah if
Aliran Kendali Pencabangan - TIF UB 2010
6
Pernyataan if-else
Sintaksis :
if (ekspresi boolean) statement_01;
else statement_02;
atau
if (ekspresi boolean)
{
statement_01;
……
Block statement_01
}
else
{
statement_02;
Block statement_02
…...
}
Jika ekspresi boolean bernilai TRUE, maka statement_01 atau block statement_01 yang
dilaksanakan, jika bernilai FALSE maka statement_02 atau block statement_02 yang
dilaksanakan.
Aliran Kendali Pencabangan - TIF UB 2010
7
Pernyataan if-else
Contoh program untuk mendapatkan akar-akar dari
persamaan kwardrat.
Algoritma :
1. Dapatkan koefisien a, b, dan c dari keyboard
2. Hitung diskriminan d = b*b – 4*a*c
3. Bila d >= 0 maka hitung x1 dan x2
Bila d < 0 maka akar imajiner dan stop
4. Stop
Menghitung x1, dengan rumus :
-b + d
2*a
Menghitung x2, dengan rumus : -b - d
2*a
Aliran Kendali Pencabangan - TIF UB 2010
8
Pernyataan if-else
Contoh :
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
int main(){
float a,b,c,d,x1,x2;
printf("PERHITUNGAN AKAR PERS. KUADRAT\n\n");
printf("Masukan koef. a : "); scanf("%f",&a);
printf("Masukan koef. b : "); scanf("%f",&b);
printf("Masukan koef. c : "); scanf("%f",&c);
d = b*b - 4 * a * c;
if (d >= 0){
x1 = (-b + sqrt(d)) / (2 * a);
x2 = (-b - sqrt(d)) / (2 * a);
printf("\nx1=%f\nx2=%f\n\n",x1,x2);
}
else
printf("Akar Persamaan Imajiner\n\n");
system("PAUSE");
return 0;
Aliran Kendali Pencabangan - TIF UB 2010
}
9
Pernyataan if-else
Konstruksi if-else dapat memiliki kondisi (pengecekan) lebih
dari satu. If-else if-...-else
Contoh:
Semua statements dalam level yang sama
if (boolean exp) {
statement;
}
else if (boolean exp) {
statement;
}
else {
statement;
}
Aliran Kendali Pencabangan - TIF UB 2010
10
Pernyataan if-else
Konstruksi if-else dapat digunakan secara bersarang (nested)
Contoh:
Konstruksi if-else bersarang; terdapat statements dalam level
yang berbeda
if (boolean exp) {
statement;
}
else if (boolean exp) {
if (boolean exp) statement;
else statement;
}
else {
statement;
}
Aliran Kendali Pencabangan - TIF UB 2010
11
Seleksi
Perhatikan potongan program dibawah ini:
if(n > 0)
if(a > b)
z = a;
else
z = b;
• Keyword else berpasangan dengan if yang mana ?
• Perbaiki penulisan potongan program di atas agar terbaca
jelas algoritmanya!
12
Pernyataan if
Aliran Kendali Pencabangan - TIF UB 2010
13
Pernyataan switch-case
Pernyataan switch-case dapat dipergunakan sebagai
pengganti pernyataan if-else, jika pernyataan if-else
bertingkat terlalu banyak, sehingga menjadi sulit dibaca.
Sintaksis:
switch (int or char expression)
{
case constant1 : statements1;
break;
case constant2 : statements2;
break;
…
[ default : statements; ]
}
Aliran Kendali Pencabangan - TIF UB 2010
14
Pernyataan switch-case
Pernyataan switch mengevaluasi ekspresi dan kemudian
melihat isi case constant. Jika nilai ekspresi ada didalam
constant list maka pernyataan dieksekusi. Jika tidak ada
yang cocok, pernyataan default yang dieksekusi.
Catatan:
Nilai ekspresi harus integer atau character dan constant
harus integer constant termasuk char constant.
Aliran Kendali Pencabangan - TIF UB 2010
15
Pernyataan switch-case
Struktur logika switch-case dapat digambarkan sbb.:
case a
false
case b
true
true
case a action(s)
break
case b action(s)
break
case z action(s)
break
false
case z
true
false
default action(s)
Aliran Kendali Pencabangan - TIF UB 2010
16
Pernyataan switch-case
Contoh :
#include
#include
<stdio.h>
<stdlib.h>
int main(){
float bil1, bil2; char op;
scanf("%f %c %f", &bil1, &op, &bil2);
switch(op){
case '+': printf(" = %f", bil1 + bil2); break;
case '-': printf(" = %f", bil1 - bil2); break;
case '*': printf(" = %f", bil1 * bil2); break;
case '/': printf(" = %f", bil1 / bil2); break;
default: printf("operator TAK DIKENAL");
}
printf("\n\n");
system("PAUSE");
return(0);
}
Aliran Kendali Pencabangan - TIF UB 2010
17
Pernyataan switch-case
Aliran Kendali Pencabangan - TIF UB 2010
18