Transcript Bab-09b-if

164
9.4. Nested IF
9. 2
Perhatikan kembali struktur IF-THEN-ELSE dan IF-THEN
Statement seperti yang sudah diterangkan sebagai berikut :
FALSE
Cond
TRUE
Cond
TRUE
FALSE
S2
S1
Struktur
IF-THEN-ELSE
S1
Struktur
IF-THEN
Dari ilustrasi struktur diatas, S adalah satu atau sekelompok statement.
Didalam kelompok S mungkin terdapat statement IF sehingga terjadi IF
secara berjenjang atau secara tersarang yang biasa disebut Nested If
(nest = sarang)
164
9.4. Nested IF
9. 3
Dari ilustrasi struktur diatas, S adalah satu atau sekelompok
statement. Didalam kelompok S mungkin terdapat statement IF
sehingga terjadi IF secara berjenjang atau secara tersarang yang
biasa disebut Nested If
(nest = sarang)
Contoh :
1)
if (cond1)
{if (cond2)
{ - S1
}
}
else { - S2
}
False
Cond1
True
Cond2
S2
False
True
S1
164
9.4. Nested IF
2)
if (cond1)
{if (cond2)
{- S1
}
else {- S2
}
}
else {- S3
}
9. 4
False
Cond1 True
False
S3
S2
Cond2 True
S1
164
3)
9. 5
if cond1
{ - S1
if cond2
{ - S2
}
- S3
}
else
{if cond3
{ - S4
}
else
{ - S5
}
}
False
False
S5
Cond3
Cond1
True
True
S1
S4
Cond2
True
False
S2
S3
Perhatikan posisi letak ‘titik’ Endif (akhir fungsi if ) dalam flowchart.
Posisi ini penting untuk menganalisa aliran terutama untuk nested IF yang
komplek atau untuk proses pengulangan yang bersifat rekursif.
165
4) if (cond1)
{ - S1
if (cond2)
{ - S2
}
else { - S3
}
}
else
{if (cond3)
{ - S4
}
else
{ - S5
}
- S6
}
9. 6
False
False
Cond3
S5
Cond1
True
S1
True
S4
False
S3
Cond2
True
S2
S6
165
5)
9. 7
if(cond1)
{if(cond2)
{if(cond3)
Cond1
True
Cond2
{if(cond4)
{ -
False
True
Cond3
- S1
True
False
False
}
Cond4
False
}
True
S1
endif
}
endif
}
endif
endif
S1 dilaksanakan, hanya bila
keempat kondisi nilainya TRUE
166
6) if(cond1)
{ - S1
}
else
{if(cond2)
{ - S2
}
else
{if(cond3)
{ - S3
}
else
{if(cond3)
{ - S4
}
else
{ - S5
}
}
}
}
False
False
False
False
Cond4
S5
Cond3
True
Cond2
True
Cond1
True
True
S1
S2
S3
S4
endif
endif
endif
endif
166
6) if(cond1)
{ - S1
}
else
{if(cond2)
{ - S2
}
else
{if(cond3)
{ - S3
}
else
{if(cond3)
{ - S4
}
else
{ - S5
}
}
}
}
False
False
False
False
Cond4
S5
Cond3
True
Cond2
True
Cond1
True
True
S1
S2
S3
S4
endif
endif
endif
endif
166
9.5. Multi
condition dan Logical Operator.
5.14
Kadang-kadang satu kondisi saja tidak cukup untu menentukan
suatu syarat, sehingga diperlukan dua atau lebih kondisi.
Untuk menggabung kondisi kondisi tersebut digunakan
operator yang disebut logical operator.
Ada 3 maca logical operator
yaitu :
1. NOT
2. AND
3. OR
Yang dalam Bahasa C/C++ dan Java
dinyatakan dengan simbol :
1. !
2. &&
3. ||
sebagai
sebagai
sebagai
NOT
AND
OR
167
5.14
1).
Operator NOT.
Operator NOT, walaupun sifatnya logical, tapi
beberapa buku literatur tidak memasukkannya
kedalam Logical Operator.
Operator NOT, bukan untuk menggabung dua
buah kondisi, tapi bekerja sebagai pembalik
nilai logika TRUE menjadi FALSE, False
menjadi TRUE sehingga sering disebut Unary
Operator.
167
Contoh :
Misal nilai A = 5 dan B = 2
5
2
A
B
Condition
Nilai
Not (Condition)
Nilai
A == B
False
! (A == B)
True
A > B
True
! (A > B)
False
A < B
False
! (A < B)
True
A >= B
True
! (A >= B)
False
A <= B
False
! (A <= B)
True
A !=> B
True
! (A != B)
False
167
Contoh :
Misal nilai A = 5 dan B = 2
Penulisan
! (A == B)
5
2
A
B
Sama maksudnya
dengan
A != B
! (A > B)
A <= B
! (A < B)
A >= B
! (A >= B)
A < B
! (A <= B)
A > B
! (A != B)
A == B
Contoh Penulisan dalam Bahasa C :
if( ! ( A < B ) )
disini boleh ada satu
atau lebih spasi
167
2).
Operator AND.
5.15
Operator AND, menggabung dua buah kondisi menjadi satu nilai sedemikian rupa akan bernilai TRUE hanya bila
kedua kondisi yang digabungkan bernilai TRUE.
Atau dengan perkataan lain harus memenuhi kedua syarat yang ditentukan0
Pemakaiannya dalam instruksi IF
IF cond1 AND cond2
cond1 = kondisi-1
cond2 = kondisi-2
Yang dalam Bahasa C ditulis :
if ( cond1 && cond2 )
1) if ( KodeSex == 1 &&
atau
if ( (cond1) && (cond2) )
Umur <= 25 )
2) if ( Nilai >= 60 && Nilai < 70)
168
Truth Table (Tabel Kebenaran)
5.15
cond-1 AND
cond-2
cond-1
cond-2
TRUE
TRUE
TRUE
TRUE
FALSE
FALSE
FALSE
TRUE
FALSE
FALSE
FALSE
FALSE
Contoh pemakaian :
Bila nilai A = 5, B= 2, C = 6 dan D = 4
Maka : if( A > B && C > D)
true
if ( A > B &&
true
true
akan bernilai TRUE
B > D )
false
if ( A > C && B > D )
false
if( ( A > B) &&
true
false
! (B > D)
true
akan bernilai FALSE
akan bernilai FALSE
akan bernilai TRUE
168
3). Operator OR
5.16
Operator OR, menggabung dua buah kondisi menjadi satu nilai sedemikian
rupa akan bernilai TRUE cukup bila salah satu saja dari kedua kondisi yang
digabungkan bernilai TRUE. Hanya bila kedua kondisi bernilai FLASE, maka
nilai gabungannya bernilsi FALSE.
Atau dengan perkataan lain : cukup satu satu syarat saja yang harus
dipenuhi.
Pemakaiannya dalam instruksi IF :
IF cond1 OR cond2
cond1 = kondisi-1
cond2 = kondisi-2
Yang dalam Bahasa C ditulis :
if ( cond1 || cond2 )
atau
if ( (cond1) || (cond2) )
169
Contoh penulisan :
1) if(Status == 1 || Umur >= 17 )
2) if (NilAgo >= 60 || NilMat >= 65 )
Misal maksudnya :
1)
Syarat sebagai pemilih : sudah menikah (Status =1 )
atau umur tidak kurang dari 17 tahun.
2)
Diberi Sertifikat bila Nilai Algoritma >= 60, atau Nilai
Matematik >= 60.
169
Perhatikan Truth Table yang memperlihatkan nilai gabungan dua
buah kondisi (cond-1 dan cond-2) yang digabung dengan operator
OR.
cond-1
cond-2
cond-1 OR cond-2
TRUE
TRUE
TRUE
TRUE
FALSE
TRUE
FALSE
TRUE
TRUE
FALSE
FALSE
FALSE
Salah satu bernilai TRUE
akan menghasilkan
nilai gabungan = TRUE
Hanya bila kedua
kondisi bernilai FALSE,
yang menghasilkan
nilai gabungan = FALSE
169
Contoh pemakaian :
Bila nilai A = 5, B= 2, C = 6 dan D = 4
Maka :
if (A > B || C > D)
true
if ( A > B
true
||
true
IF (A > C
false
akan bernilai TRUE
B > D )
false
||
B > D )
akan bernilai FALSE
false
IF (!(A > B) || !(C > D))
false
akan bernilai TRUE
false
akan bernilai FALSE
169
4) Proses pada multi condition.
Pandanglah statement IF dengan condition merupakan gabungan
dua kondisi (Cond1 dan Cond2) sebagai berikut:
if (Cond1 && Cond2)
Kita sebut saja :
Nilai Cond1 sebagai input,
Nilai Cond2 sebagai input, dan
Nilai (Cond1 && Cond2) sebagai output
Bagaimana logika proses yang dilakukan oleh
komputer untuk mendapatkan output gabungan dari
dua atau lebih input dapat dijelaskan sebagai berikut :
170
a) Proses AND.
if ( Cond1 && Cond2 )
Truth Table
input
C1
input
C2
output
C1 AND C2
1
1
1
1
0
0
0
1
0
0
0
0
C1 = Cond1
C2 = Cond2
Proses oleh komputer
1.
Mula-mula memeriksa nilai semua
kondisi (Cond1 dan Cond2).
Nilai logical TRUE dinyatakan
dengan : 1
dan logical FALSE dengan : 0
2. Kemudian dilakukan proses AND,
yang hasilnya diperlihatkan pada
truth table yang diberikan
170
Bagaimana kita (bukan komputer)
menganalisa untuk mencari nilai output,
dapat kita lakukan dengan menggambarkan
padanannya kalau dibuat dalam bentuk
Nested If yang Program Flowchartnya
diilustrasikan sebagai berikut :
Cond1
True
False
FALSE
Cond2
True
TRUE
False
FALSE
Mula mula memeriksa Cond1.
Bila Cond1 = TRUE
baru periksa Cond2
bila Cond2 = TRUE
maka output = TRUE
bila Cond2 = FALSE
maka output = FALSE
Bila Cond1 = FALSE , output langsung = FALSE
Cond2 tidak diperiksa lagi
170
b) Proses OR .
if ( Cond1 || Cond2 )
Truth Table
input
C1
input
C2
output
C1 OR C2
1
1
1
1
0
1
0
1
1
0
0
0
C1 = Cond1
C2 = Cond2
Proses oleh komputer
1.
Mula-mula memeriksa nilai semua
kondisi (Cond1 dan Cond2).
Nilai logical TRUE dinyatakan
dengan : 1
dan logical FALSE dengan : 0
2. Kemudian dilakukan proses OR,
yang hasilnya diperlihatkan pada
truth table yang diberikan
171
Bagaimana kita menganalisa untuk
mencari nilai output, dapat kita
lakukan dengan menggambarkan
padanannya kalau dibuat dalam
bentuk Nested If yang Program
Flowchartnya diilustrasikan sebagai
berikut :
True
Cond1
TRUE
False
Cond2
True
TRUE
False
Mula mula memeriksa Cond1.
FALSE
Bila Cond1 = TRUE
maka langsung output = TRUE
tak perlu lagi memeriksa Cond2
Bila Cond1 = FALSE,
maka baru memeriksa Cond2
Bila Cond2 = TRUE
maka output = TRUE
Bila Cond2 = FALSE
maka output = FALSE
171
c) Proses lebih dari satu Logical Operator.
c.1)
if ( Cond1 && Cond2 && Cond3 )
1
2
output
5.19
1
Nomor
dan 2
merupakan hasil sekaligus urutan
proses oleh komputer
Cond1 AND Cond2 menghasilkan 1
Hasil 1 AND Cond3 menghasilkan
Output = 2
2
Untuk mencari output, apakah hasilnya TRUE atau FALSE dapat dianalisa
dengan Nested IF sebagai berikut :
Cond1
True
False
Output =
FALSE
Cond2
True
False
Output =
FALSE
Cond3
True
Output =
TRUE
False
Output =
FALSE
172
5.19
c.2)
if ( Cond1 && Cond2 ||
Cond3 )
Nomor 1
dan
2
merupakan hasil sekaligus urutan
proses oleh komputer
1
Cond1 AND Cond2 menghasilkan 1
Hasil
2
1
OR Cond3 menghasilkan 2
Output = 2
output
Untuk mencari output, apakah hasilnya TRUE atau FALSE dapat dianalisa
dengan Nested IF sebagai berikut :
Cond1
True
Cond2
False
True
Output = TRUE
False
Cond3
True
False
Output = FALSE
Output = TRUE
172
Catatan :
Urutan menganalisa hasil output, dengan menggunakan
padanan logikanya dalam program flowchart Nested IF
belum tentu sama dengan urutan pelaksanaannya oleh
komputer.
Komputer
memperlakukan
operator
AND
tingkat
hirarkhinya lebih tinggi dari OR, sehingga apabila
ada AND dan OR, output untuk AND dicari lebih dulu
dari OR.
172
c.3)
if ( Cond1
||
Cond2 && Cond3 )
Komputer akan mencari
output untuk AND lebih
dulu, hasilnya digabung
dengan OR sehingga
didapat output akhir
1
2
output
Untuk mencari output akhir dengan lebih
cepat dapat dilakukan dengan mula mula
melihat nilai Cond1, bila nilainya TRUE
maka outpu akhirnya pasti TRUE tak
perlu lagi melihat nilai (Cond2 AND
Cond3)
seperti yang diperlihatkan padananya
bila digambarkan dengan program
flowchart Nested If berikut ini.
Cond1
True TRUE
False
Cond2
False
FALSE
True
Cond3
True
TRUE
False
FALSE
173
c.4)
if ( Cond1 || Cond2 || Cond3 )
Padanan logikanya untuk mencari output
dapat digambarkan dalam bentuk
Flowchart Nested If berikut ini :
1
2
output
Cond1
True
TRUE
False
Cond2
True
TRUE
False
Cond3
True TRUE
False
FALSE
173
9. 30
9.6. Contoh Program Sederhana Menggunakan
Nested If dan Multi Conditions
Soal-1.
Susun program dalam bahasa
C
untuk menginput tiga buah bilangan bulat
(integer), dimana ketiga buah bilangan
tersebut dianggap bernilai tidak sama,
kemudian mencetak salah satu bilangan
yang nilainya terbesar:
174
9. 31
5
17
8
scanf
KEYBOARD
5
A
17
B
MEMORY
8
C
printf
17
SCREEN
174
9. 32
17
5
8
scanf
KEYBOARD
17
5
A
B
MEMORY
8
C
printf
17
SCREEN
174
9. 33
5
8
17
scanf
KEYBOARD
5
A
8
17
B
C
MEMORY
printf
17
SCREEN
174
Jawab-1. Cara-1
START
A
B
C
Menggunakan 3 variabel
false
Scanf
A
scanf
B
scanf
C
true
174
Jawab-1. Cara-1
START
A
B
C
Menggunakan 3 variabel
false
Scanf
A
scanf
B
scanf
C
A > B
true
174
Jawab-1. Cara-1
START
A
B
C
Menggunakan 3 variabel
false
Scanf
A
scanf
B
scanf
C
A > B
true
false
true
174
Jawab-1. Cara-1
START
A
B
C
Menggunakan 3 variabel
false
Scanf
A
scanf
B
scanf
C
A > B
true
false
A > C
true
174
Jawab-1. Cara-1
START
A
B
C
Menggunakan 3 variabel
false
Scanf
A
scanf
B
scanf
C
A > B
true
false
A > C
true
printf
A
174
Jawab-1. Cara-1
START
A
B
C
Menggunakan 3 variabel
false
Scanf
A
scanf
B
scanf
C
A > B
true
false
printf
A > C
C
true
printf
A
174
Jawab-1. Cara-1
START
A
B
C
Menggunakan 3 variabel
false
Scanf
A
scanf
B
scanf
C
A > B
true
false
printf
A > C
C
true
printf
A
174
Jawab-1. Cara-1
START
A
B
C
Menggunakan 3 variabel
false
false
true
Scanf
A
scanf
B
scanf
C
A > B
true
false
printf
A > C
C
true
printf
A
174
Jawab-1. Cara-1
START
A
B
C
Menggunakan 3 variabel
false
false
B > C
true
Scanf
A
scanf
B
scanf
C
A > B
true
false
printf
A > C
C
true
printf
A
174
Jawab-1. Cara-1
START
A
B
C
Menggunakan 3 variabel
false
false
B > C
Scanf
A
scanf
B
scanf
C
A > B
true
printf
true
false
B
printf
A > C
C
true
printf
A
174
Jawab-1. Cara-1
START
A
B
C
Menggunakan 3 variabel
false
false
printf
B > C
C
Scanf
A
scanf
B
scanf
C
A > B
true
printf
true
false
B
printf
A > C
C
true
printf
A
174
Jawab-1. Cara-1
START
A
B
C
Menggunakan 3 variabel
false
false
printf
B > C
C
Scanf
A
scanf
B
scanf
C
A > B
true
printf
true
false
B
printf
A > C
C
true
printf
A
174
Jawab-1. Cara-1
START
A
B
C
Menggunakan 3 variabel
false
false
printf
B > C
C
Scanf
A
scanf
B
scanf
C
A > B
true
printf
true
false
printf
B
END
A > C
C
true
printf
A
174
Jawab-1. Cara-1
#include <stdio.h>
main()
{
int A,B,C;
scanf(“ %i ”, &A);
scanf(“ %i ”, &B);
scanf(“ %i ”, &C);
if(A > B)
{
if(A > C)
printf(“%i“, A);
else
printf(“%i”, C);
}
else
{
if(B > C)
printf(“%i“, B);
else
printf(“%i”, C);
}
START
47
Scanf A
scanf B
scanf C
false
false
B > C
printf C
A > B
true
true
false
printf B
printf C
A > C
true
printf A
}
A
B
C
Menggunakan 3 variabel
END
174
Karena setiap blok instruksi hanya terdiri dari satu
instruksi, maka program diatas dapat ditulis menjadi :
#include <stdio.h>
main()
{
int A,B,C;
scanf(%i”, &A);
scanf(%i”, &B);
scanf(%i”, &C);
if (A > B)
if (A > C)
printf(“%i“,
else
printf(“%i”,
else
if (B > C)
printf(“%i“,
else
printf(“%i”,
}
A
B
9. 48
C
Menggunakan 3 variabel
A);
C);
B);
C);
176
Jawab-1. Cara-1
Menggunakan 3 variabel
A
B
C
5
7
9
5
9
7
7
5
9
7
9
5
9
5
7
9
7
5
175
Jawab-1. Cara-1
5
7
START
9
A
B
C
Menggunakan 3 variabel
false
false
1
B > C
true
Scanf
A
scanf
B
scanf
C
true
A > B
false
2
3
A > C
true
4
Bila diinput 3 buah nilai diatas, maka flow akan menuju
nomor : ………
175
Jawab-1. Cara-1
5
7
START
9
A
B
C
Menggunakan 3 variabel
false
false
1
B > C
true
Scanf
A
scanf
B
scanf
C
true
A > B
false
2
3
A > C
true
4
Bila diinput 3 buah nilai diatas, maka flow akan menuju
nomor : ………
175
Jawab-1. Cara-1
5
7
START
9
A
B
C
Menggunakan 3 variabel
false
false
1
B > C
true
Scanf
A
scanf
B
scanf
C
true
A > B
false
2
3
A > C
true
4
Bila diinput 3 buah nilai diatas, maka flow akan menuju
nomor : ………
175
Jawab-1. Cara-1
5
7
START
9
A
B
C
Menggunakan 3 variabel
false
false
1
B > C
true
Scanf
A
scanf
B
scanf
C
true
A > B
false
2
3
A > C
true
4
Bila diinput 3 buah nilai diatas, maka flow akan menuju
nomor : ………
175
Jawab-1. Cara-1
5
7
START
9
A
B
C
Menggunakan 3 variabel
false
false
1
B > C
true
Scanf
A
scanf
B
scanf
C
true
A > B
false
2
3
A > C
true
4
Bila diinput 3 buah nilai diatas, maka flow akan menuju
nomor : ………
175
Jawab-1. Cara-1
5
7
START
9
A
B
C
Menggunakan 3 variabel
false
false
1
B > C
true
Scanf
A
scanf
B
scanf
C
true
A > B
false
2
3
A > C
true
4
Bila diinput 3 buah nilai diatas, maka flow akan menuju
nomor : ………
175
Jawab-1. Cara-2
175
Jawab-1. Cara-2
START
#include <stdio.h>
main()
{
int A,B,C, MAX;
scanf(“%i %i %i”, &A, &B, &C);
MAX = A;
A, B, C
MAX = A
true
B > MAX
if (B > MAX)
MAX = B;
MAX = B
false
if (C > MAX)
MAX = C;
}
scanf
printf(“%i“, MAX);
true
C > MAX
false
A
B
C
MAX
Menggunakan 4 variabel
printf
END
MAX = C
MAX
175
Jawab-1. Cara-3
176
Jawab-1. Cara-3
#include <stdio.h>
main()
{
int A,B,C, MAX;
scanf(“ %i ”, &A);
MAX = A;
scanf(“ %i ”, &B);
if (B > MAX)
MAX = B;
scanf(“ %i ”, &C);
if (C > MAX)
MAX = C;
printf(“%i “, MAX);
}
A
B
C
MAX
9. 59
Scanf
A
MAX = A
scanf
B
true
B > MAX
false
scanf
MAX = B
C
true
C > MAX
false
printf
MAX
MAX = C
176
Jawab-1. Cara-4
177
Jawab-1. Cara-4
Menggunakan hanya 2 variabel. Variabel A khusus untuk menampung
input, dan variabel MAX khusus mencatat atau menyimpan nilai
terbesar.
5
17
8
scanf
8
A
KEYBOARD
17
printf
17
MAX
MEMORY
SCREEN
177
Jawab-1. Cara-4
#include <stdio.h>
main()
{
int A, MAX;
scanf(“ %i ”, &A);
MAX = A;
scanf(“ %i ”, &A);
if (A > MAX)
MAX = A;
scanf(“ %i ”, &A);
if (A > MAX)
MAX = A;
printf(“\n %i “, MAX);
}
Algoritma ini nanti yang menjadi dasar
algoritma pencarian bilangan terbesar atau
terkecil dari sejumlah bilangan yang ada atau
bilangan yang diinput.
Scanf
A
MAX = A
scanf
A
true
A > MAX
false
scanf
MAX = A
A
A > MAX
true
false
printf MAX
MAX = A
177
Jawab-1. Cara-5
178
Jawab-1. Cara-5
5
17
8
Menggunakan multi conditions
dengan logical operator AND
scanf
KEYBOARD
Dengan menggunakan
Logical Operator AND (&&)
5
17
A
B
9. 64
8
C
printf
17
MEMORY
SCREEN
#include <stdio.h>
main()
{
int A,B,C;
scanf(“ %i %i %i”, &A, &B, &C);
}
if (A>B && A>C) printf(“\n %i“, A);
else
{ if (B>A && B>C)
printf(“\n %i”, B);
else
printf(“\n %i“, C);
}
178
#include <stdio.h>
main()
{
int A,B,C;
scanf(“ %i %i %i”, &A, &B, &C);
}
if (A>B && A>C)
printf(“\n %i“, A);
else
{ if (B>A && B>C)
printf(“\n %i”, B);
else
printf(“\n %i“, C);
}
START
Scanf
true
A>B && A>C
false
B>A && B>C
printf
Sebenarnya disini cukup membandingkan B dengan C karena bila
pemeriksaan pertama if (A>B && A>C)
hasilnya FALSE
maka A sudah bukan yang terbesar,
tinggal B atau C yang terbesar
A,B,C
C
printf
true
printf
B
END
Ini sebenarnya bisa diganti
cukup dengan :
B>C
Hanya untuk keseragaman saja dibuat
lagi if (B>A && B>C), dengan cara ini
berpikirnya lebih mudah
178
A
Jawab-1. Cara-6
179
Jawab-1. Cara-6
9. 67
Berpikir lebih praktis, tapi computer-time tidak efisien
5
17
8
scanf
KEYBOARD
5
A
17
B
8
C
printf
17
MEMORY
SCREEN
#include <stdio.h>
main()
{
int A,B,C;
scanf(“ %i %i %i”, &A, &B, &C);
}
if (A>B && A>C)
printf(“\n i%“, A);
if (B>A && B>C)
printf(“\n i%”, B);
if (C>A && C>B)
printf(“\n i%“, C);
179
#include <stdio.h>
main()
{
int A,B,C;
scanf(“ %i %i %i”,&A,&B,&C);
if (A>B && A>C)
printf(“\n i%“, A);
if (B>A && B>C)
printf(“\n i%”, B);
9. 68
START
Scanf
A,B,C
true
A>B && A>C
printf
A
printf
B
printf
C
true
B>A && B>C
if (C>A && C>B)
printf(“\n i%“, C);
}
true
C>A && C>B
END
179
#include <stdio.h>
main()
{
int A,B,C;
scanf(“ %i %i %i”, &A, &B, &C);
if (A>B && A>C)
printf(“\n i%“, A);
if (B>A && B>C)
printf(“\n i%”, B);
if (C>A && C>B)
printf(“\n i%“, C);
}
!
Cara ini yang paling mudah logikanya. Tapi dengan cara seperti ini, computer-time bisa lebih
panjang karena computer akan melaksanakan semua instruksi if
Walaupun pada if yang pertama didapat misal A yang terbesar, tapi computer akan tetap
melaksanakan if yang ke-dua memeriksa apakah B yang terbesar dan juga masih
melaksanakan if yang ke-tiga, memeriksa apakah C yang terbesar.
Dengan perkataan lain, data seperti apapun yang diinput, ketiga instruksi if tersebut akan
selalu dilaksanakan.
Dalam pemrograman selalu ada kompromi antara kemudahan membuat program dengan
efisiensi.
179