ALGORITHM
9 Algoritma Menggunakan Control Statement IF Dahlia Widhyaestoeti, S.Kom
[email protected] dahlia74march.wordpress.com
Memilih bilangan terbesar atau terkecil dari dua buah bilangan menggunakan
Control statement
if 2
Syntax Penulisan if statement:
if( condition ) Condition : adalah ungkapan atau pernyataan (expression) yang mengandung nilai TRUE (benar) atau FALSE (salah). Contoh :
5 > 2 bernilai TRUE 5 > 9 bernilai FALSE 5 == 5 bernilai TRUE
Tanda :
> dan == diatas disebut Relational Operator (Operator Hubungan)
3
Relational Operator yang digunakan dalam Bahasa C/C++ dan Java
== Equal To (Sama Dengan) > Greater Than (Lebih Besar Dari) < Less Than (Lebih Kecil Dari) >= Greater Than Or Equal To (Lebih Besar Dari Atau Sama Dengan)
<= Less Than Or Equal To (Lebih Kecil Dari atau Sama Dengan)
!= Not Equal To ( Tidak Sama Dengan) 4
Sebutkan TRUE atau FALSE nilai condition berikut ini :
5 == 2 contoh : if( 5 == 2 )
5 == 2
F
5>2
T
5<2
5<2
F
5 >= 2
5 >= 2
T
5 <= 2
5 <= 2
F
5 >= 5
5 >= 5
T
5 <= 5
5 <= 5
T
5 != 2
5 != 2
T
5 != 5
5 != 5
F
5<7
5<7
T
5 <= 7
5 <= 7
T
5 >= 7
5 >= 7
F
5>2
5
5
7
9
7
7
7
A
B
A
B
A
B
akan condition bernilai
akan condition bernilai
akan condition bernilai
(A == B)
F
(A == B)
F
(A == B)
T
(A > B)
F
(A > B)
T
(A > B)
F
(A < B)
T
(A < B)
F
(A < B)
F
(A >= B)
F
(A >= B)
T
(A >= B)
T
(A <= B)
T
(A <= B)
F
(A <= B)
T
(A != B)
T
(A != B)
T
(A != B)
F
T = TRUE F = FALSE
6
7
8
Bentuk Umum - 1 biasa disebut : Bentuk IF-THEN if ( cond ) { - statements-true }
-
Flowchart
cond
TRUE
-
statementstrue
next instruction
Cara-Kerja
-
next instruction
Bila nilai cond - TRUE, maka kerjakan semua instruksi yang ada dalam statements-true Setelah selesai, lanjutkan ke next-instruction
- FALSE, maka langsung ‘meloncat’ mengerjakan isnstruksi yang ada di next-instruction
9
Flowchart if ( cond ) { - Statements - true }
-
cond
-
next instruction
Penulisan PROGRAM Terikat aturan / ketentuan
TRUE
-
cond TRUE -
-
Penggambaran FLOWCHART bebas 10
11
Bentuk Umum - 2 biasa disebut : Bentuk IF-THEN-ELSE if ( cond ) { - statements-true } else { - statements-false }
-
next instruction
Flowchart
FALSE
-
cond
statementsfalse
-
TRUE
-
statementstrue
next instruction
cond = condition
12
if ( cond ) { - statements-true } else {
-
} -
statements-false
Flowchart
FALSE
-
cond
statementsfalse
TRUE
-
statementstrue
next instruction
-
next instruction
Bila nilai cond - TRUE, maka kerjakan semua instruksi yang ada dalam statements-true Setelah selesai, lanjutkan ke next-instruction
- FALSE, maka kerjakan semua instruksi yang ada dalam statements-false Setelah selesai, lanjutkan ke next-instruction
13
Penulisan PROGRAM terikat aturan, Penggambaran FLOWCHART bebas.
TRUE
cond
cond
FALSE
FALSE
TRUE
-
-
true
-
false
next instruction
true
-
-
-
false
next instruction
14
Beberapa contoh penulisan / penggunaan if(cond) bentuk IF-THEN-ELSE 1.
int A=5, B=7; if(A
2.
Akan tercetak : Jakarta Selesai
Akan tercetak : Jakarta Selesai
3.
int A=5, B=7; if(A
int A=5, B=7; if(A
4.
int A=5, B=7; if(A
cout << “\nSelesai” ; Akan tercetak : Jakarta Selesai
15
Susun program dalam bahasa C++ untuk menginput 2 (dua) buah bilangan bulat, kemudian mencetak salah satu bilangan yang nilainya terbesar.
16
Susun program dalam bahasa C++ untuk menginput 2 (dua) buah bilangan bulat, kemudian mencetak salah satu bilangan yang nilainya terbesar. MISAL NILAI YANG DIINPUT ADALAH
5 DAN 2
5 2 cin
5 A
2 B
cout
5
17
START
Algoritma Dasar Read(A) Read(B) IF A > B then Write(A) Else Write(B) End If
False
Write
Read
A
Read
B
A>B
True
write
B
A
END 18
Algoritma dalam Bahasa C++
Cara-1 #include
void main() { int A, B; cin >> A; cin >> B; if (A > B) { cout << A; } else { cout << B; } }
START
AB
print
False
input
A
input
B
A>B
True
AB
ptint
B
A
END
19
TEKNIK DASAR
Cara-2 #include void main() { int A, B, MAX; cin >> A; cin >> B; if (A > B) { MAX = A; } else { MAX = B; } cout << MAX; }
input A input false
A> B
MAX = B
B true
MAX = A
print
MAX 20
Dengan cara menyimpan bilangan yang terbesar kedalam sebuah variabel misal namanya MAX
5 2 cin KEYBOARD
5
2
A
B
5
cout
5
MAX MEMORY
SCREEN 21
TEKNIK DASAR
Cara-3 #include
input
A
input
B
void main() { int A, B, MAX; cin >> A; cin >> B;
MAX = B
MAX = B; if (A > B)
A>B
{ MAX = A; }
true MAX = A
cout << MAX; }
print
MAX 22
START
Cara-4
input
TEKNIK DASAR
A
#include void main()
MAX = A
{ int A, B, MAX; cin >> A;
input
B
MAX = A cin >> B; if (B > MAX)
True
B>MAX False
MAX = B
{ MAX = B; } cout << MAX; }
print
END
MAX 23
Cara-4
START
#include void main() { int A, MAX; cin >> A; MAX = A cin >> A; if (A > MAX) { MAX = A; } cout << MAX; } A
input
TEKNIK DASAR
A
MAX = A input
A True
A>MAX False
Teknik inilah yang mendasari algoritma untuk mencari nilai yang terbesar atau terkecil dari sejumlah nilai yang diinput
MAX = A
MAX
Hanya ada 2 variabel. A spesial menampung input, MAX spesial menampung nilai terbesar
print
END
MAX
24
Susun program untuk menginput 3 (tiga) buah bilangan bulat, (dianggap ketiga buah bilangan tersebut nilainya tidak sama satu dengan yang lain), kemudian mencetak salah satu bilangan yang nilainya terbesar.
25
5 8 17
cin KEYBOARD
5 A
17 B
8 C
cout
17
SCREEN
MEMORY
26
5 8 17
cin KEYBOARD
17
5
A
B
8 C
cout
17
SCREEN
MEMORY
27
5 8 17
cin KEYBOARD
5 A
8
17
B
C
cout
17
SCREEN
MEMORY
28
START
A B C Menggunakan 3 variabel
False
Apa yang dibandingkan untuk pertama kali : A dengan B B dengan A A dengan C C dengan A B dengan C C dengan B
input
A
input
B
input
C
?
True
29
START
A B C Menggunakan 3 variabel
False
A> A< A> A<
B B C C
input
A
input
B
input
C
?
B>A BC B
True
C>A CB C
Pilih yang mudah
30
START
A B C Menggunakan 3 variabel
AB
False
input
A
input
B
input
C
A>B
True
AB
31
START
A B C Menggunakan 3 variabel
AB
False
input
A
input
B
input
C
A>B
True
AB
Mencetak atau masih membandingkan
?
32
START
A B C Menggunakan 3 variabel
AB
False
input
A
input
B
input
C
A>B
True
False
Pilih yang mana saja tidak mendatangkan Pilih yang mana error. Hanya saja secara logika, mana yang tepat untuk dipilih
?
AB
?
True
A>C C>A B> C C> B
33
START
A B C Menggunakan 3 variabel
AB
False
input
A
input
B
input
C
A>B
True
False
AB
?
Dari ilustrasi ini terlihat jelas bahwa A yang harus dibandingkan dengan C untuk mencari nilai yang terbesar
True
A>C C>A B> C C> B
34
START
A B C Menggunakan 3 variabel
AB
False
input
A
input
B
input
C
A>B
True
False
AB
A>C
True
Mencetak atau masih membandingkan 35 ?
START
A B C Menggunakan 3 variabel
AB
False
input
A
input
B
input
C
A>B
True
False
Kondisi bila A > C true
AB
A>C
atau
True ABC
ABC
Mencetak Bisakah diambil atau kesimpulan masih membandingkan bahwa A yang ? terbesar
?
36
START
A B C Menggunakan 3 variabel
AB
False
input
A
input
B
input
C
A>B
True
False
Kondisi bila A > C true
AB
A>C
atau
True ABC
print
ABC
A
37
START
A B C Menggunakan 3 variabel
AB
False Kondisi bila A > C False
Bila A > C False artinya A< C Atau C > A
input
A
input
B
input
C
A>B
True
False
AB
A>C
True
print
A
AB C
Perlukah membandingkan B dengan C disini
?
Atau Dapatkah diambil kesimpulan bahwa C adalah yang terbesar
38
START
A B C Menggunakan 3 variabel
input
A
input
B
input
C atau
AB
False
A>B
True
False
AB
A>C
ABC
ABC
True
print
A
AB C
Perlukah membandingkan B dengan C disini
?
Atau Dapatkah diambil kesimpulan bahwa C adalah yang terbesar
39
START
A B C Menggunakan 3 variabel
AB
False
input
A
scanf
B
input
C
A>B
atau
AB
True
AB C
False
print
A>C C
AB C
True
print
A
AB C
40
START
A B C Menggunakan 3 variabel
AB
False
input
A
input
B
input
C
A>B
True
AB C
False
AB C
B> C
pasti False Membandingkan sesuatu yang pasti
False atau True adalah pekerjaan yang tidak bermanfaat
atau
AB
A>C
True
print
B> C
AB C
A
Pasti Kesini
Pasti False
Tidak Pernah kesini
41
START
AB
False
input
A
input
B
input
C
A>B
True
AB C
False
print Mencetak atau masih membandingkan
?
atau
AB
A>C C
AB C
True
print
A
AB C 42
START
B yang besar, jadi B yang dibandingkan dengan C
False
AB
? A>C C>A B> C C> B
False
True
input
A
input
B
input
C
A>B
atau
AB
True
AB C
False
print
A>C C
AB C
True
print
A
43
START
AB
False AB C
B> C
False
input
A
input
B
input
C
A>B
True
print
True
AB C
False
B
atau
AB
print
A>C C
AB C
True
print
A
44
START
AB
False
print
B> C
C
False
input
A
input
B
input
C
A>B
True
print
True
AB C
False
B
atau
AB
print
A>C C
AB C
True
print
A
45
START
AB
False AB C
print
B> C C
False
input
A
input
B
input
C
A>B
True
print
AB C
False
B
atau
AB
True
print
A>C C
AB C
True
print
A
46
AB
False
print
B> C
False
A>B
True
False
print
C
AB
True
B
print
A>C C
True
print
atau
atau AB C
AB C
A
AB C
AB C
AB C
AB C
47
Cara-1
START
#include void main() { int A,B,C; cin >> A; cin >> B); cin >> C); if(A > B) { if(A > C) cout << A ; else cout << C ; } else { if(B > C) cout << B ; else cout << C ; } }
A B C Menggunakan 3 variabel
input A
input B input C false false
print
B> C
C
A>B
true
print
true false
B
END
print
A>C
C
true
print A
48
Karena setiap blok instruksi hanya terdiri dari satu instruksi, maka program diatas dapat ditulis menjadi : #include void main() { int A,B,C; cin >> A ; cin >> B ; cin >> C ; if (A > B) if (A > C) cout << A ; else cout << C ; else if (B > C) cout << B ; else cout << C); }
A
B
C
Menggunakan 3 variabel
49
Menggunakan 3 variabel
Ada 6 kemungkinan variasi ketiga buah nilai
A
B
C
5
7
9
5
9
7
7
5
9
7
9
5
9
5
7
9
7
5 50
1
START
5
7
9
A
B
C
False
False
A
input
B
input
C True
A>B
False
True
B> C
1
Ada 4 titik
input
2
1
,
2
,
3
3
dan
A>C
True
4
4
Untuk data diatas, maka flow akan menuju titik . . . . . ?
51
2
START
5
9
7
A
B
C
False
False
A
input
B
input
C True
A>B
False
True
B> C
1
Ada 4 titik
input
2
1
,
2
,
3
3
dan
A>C
True
4
4
Untuk data diatas, maka flow akan menuju titik . . . . . ?
52
3
START
7
5
9
A
B
C
False
False
A
input
B
input
C True
A>B
False
True
B> C
1
Ada 4 titik
input
2
1
,
2
,
3
3
dan
A>C
True
4
4
Untuk data diatas, maka flow akan menuju titik . . . . . ?
53
4
START
7
9
5
A
B
C
False
False
A
input
B
input
C True
A>B
False
True
B> C
1
Ada 4 titik
input
2
1
,
2
,
3
3
dan
A>C
True
4
4
Untuk data diatas, maka flow akan menuju titik . . . . . ?
54
5
START
9
5
7
A
B
C
False
False
A
input
B
input
C True
A>B
False
True
B> C
1
Ada 4 titik
input
2
1
,
2
,
3
3
dan
A>C
True
4
4
Untuk data diatas, maka flow akan menuju titik . . . . . ?
55
6
START
9
7
5
A
B
C
False
False
A
input
B
input
C True
A>B
False
True
B> C
1
Ada 4 titik
input
2
1
,
2
,
3
3
dan
A>C
True
4
4
Untuk data diatas, maka flow akan menuju titik . . . . . ?
56
Cara-2
START
#include void main() { int A,B,C, MAX;
input A, B, C MAX = A
cin >> A >> B >> C; MAX = A; if (B > MAX) MAX = B;
MAX = B
false
if (C > MAX) MAX = C; }
true
B > MAX
true
C > MAX
cout << MAX;
false
A
B
C
MAX
print
Menggunakan 4 variabel END
MAX = C
MAX
57
Cara-3 #include void main() { int A,B,C, MAX; cin >> A; MAX = A; cin >> B; if (B > MAX) MAX = B; cin >> C; if (C > MAX) MAX = C; cout << MAX; }
A
B
C
MAX
input A MAX = A
input B true
B > MAX false
MAX = B
input C true C > MAX false
printf
MAX = C
MAX 58
Cara-4 Menggunakan hanya 2 variabel. Variabel A khusus untuk menampung input, dan variabel MAX khusus mencatat atau menyimpan nilai terbesar.
5 17 8 cin
8 A
KEYBOARD
17
cout
17
MAX MEMORY SCREEN 59
Cara-4 #include void main() { int A, MAX; cin >> A; MAX = A; cin >> A;
if (A > MAX) MAX = A;
input A MAX = A scanf
A true
A > MAX false
MAX = A
cin >> A;
if (A > MAX) MAX = A; cout << MAX; }
input A A > MAX
true
false Algoritma ini nanti yang menjadi dasar algoritma pencarian bilangan terbesar atau terkecil dari sejumlah bilangan yang ada atau bilangan yang diinput.
printf
MAX = A
MAX
60
Cara-5
5 17 8
Menggunakan multi conditions dengan logical operator AND
cin KEYBOARD
Dengan menggunakan Logical Operator AND (&&)
5
17
A
B
8 C
cout
17
MEMORY SCREEN
#include void main() { int A,B,C; cin >> A >> B >> C;
}
if (A>B && A>C) cout << A; else { if (B>A && B>C) cout << B; else cout << C; } 61
#include void main() { int A,B,C; cin >> A >> B >> C;
}
if (A>B && A>C) cout << A; else { if (B>A && B>C) cout << B; else cout << C; }
Sebenarnya disini cukup membandingkan B dengan C karena bila pemeriksaan pertama if (A>B && A>C) hasilnya FALSE maka A sudah pasti bukan yang terbesar, tinggal B atau C yang terbesar Hanya untuk keseragaman saja dibuat lagi if (B>A && B>C), dengan cara ini berpikirnya lebih mudah
START
input
A,B,C
true A>B && A>C
false
print
true
A
B>A && B>C
print
print
C
B
END
Ini sebenarnya bisa diganti cukup dengan : B>C
62
#include void main() { int A,B,C; cin >> A >> B >> C;
}
if (A>B && A>C) cout << A; else { if (B>C) cout << B; else cout << C; }
START
scanf
A,B,C
true A>B && A>C
false
printf
true
A
B>C
printf
C
printf
B
END
63
5 8 17 cin
17
5
8
A
B
C
KEYBOARD
cout
17 SCREEN
MEMORY
#include void main() { int A,B,C; cin >> A >> B >> C;
}
if (A>B && A>C)
cout << A;
if (B>A && B>C)
cout << B;
if (C>A && C>B)
cout << C; 64
START
#include void main() { int A,B,C; cin >> A >> B >> C; if (A>B && A>C) cout << A; if (B>A && B>C) cout << B; if (C>A && C>B) cout << C; }
input
A>B && A>C
B>A && B>C
C>A && C>B
END
A,B,C
true
print
A
print
B
print
C
true
true
65
66
START
5
8
12
17
A
B
C
D
input
A, B,C, D
A>B B>C
A>C
C>D
1
B>D
2
3
C>D
4
5
A>D
6
Untuk nilai yang diinput seperti diatas, Maka flow akan menuju nomor : ………
7
8
67
68
Susun program untuk menginput 3 (tiga) buah bilangan bulat, (dianggap 9. ketiga buah bilangan tersebut nilainya tidak sama satu dengan yang lain), kemudian cetaklah ketiga bilangan tersebut sedemikian rupa sehingga tercetak urut mulai nilai terkecil sampai dengan nilai terbesar. 69
Bila bilangan yang diinput adalah 5, 17 dan 8, maka tentunya akan tercetak 5 8 17 atau tercetak : 5 8 17
5 17 8 input KEYBOARD
5
17
A
B
8 C
print
5 8 17 70
START input BA
A
A,B,C AB
AB , A disebelah kiri B maksudnya A lebih kecil dari B BA , B disebelah kiri A maksudnya B lebih kecil dari A B A , Belum diketahui siapa yang lebih besar 71
START input BA
A
A,B,C AB
? Tugas : Untuk SI = Lanjutkan Flowchart tersebut Kumpulkan dalam bentuk soft (file) dengan extention .jpg Contoh : Gita.JPG Untuk TI = Buat program C++ nya Bentuk ekstension .txt Kumpulkan hari Senin, 19 Nopember 2012.
Terima Kasih untuk mengumpulkan tepat waktu.
72