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