Upload
fazar-ikhwan-guntara
View
264
Download
3
Embed Size (px)
DESCRIPTION
source by : Sugeng Supriyadi S.Kom, M.Kom
Citation preview
Memilih bilangan terbesar atau terkecil dari dua buah bilangan
Soal-8.
Susun algoritma yang ditulis dalam Bahasa C++, untuk menginput dua buah bilangan dan mencetak salah satu bilangan yang nilainya terbesar
7
75
7 5
A B
cin cout
dapat ditulis setelah
dan konsep atau draf secara manual sudah
dibuat
KONSEP penyelesaian
Draf
Misal yang diinput nilai : 7 dan 5
7 + 5 = 12
7 – 5 = 2 | 2 | = 212 + 2 = 14 14 / 2 = 7
7 terbesar
Misal yang diinput nilai : 4 dan 9
4 + 9 = 13
4 – 9 = - 5 | - 5 | = 513 + 5 = 18 18 / 2 = 9
9 terbesar
MENCARI YANG TERBESAR
KONSEP penyelesaian
Draf
Misal yang diinput nilai : 7 dan 5
7 + 5 = 12
7 – 5 = 2 | 2 | = 212 - 2 = 10 10 / 2 = 5
5 terkecil
Misal yang diinput nilai : 4 dan 9
4 + 9 = 13
4 – 9 = - 5 | - 5 | = 513 - 5 = 8 8 / 2 = 4
4 terkecil
MENCARI YANG TERKECIL
KONSEP penyelesaian
DrafMENCARI YANG TERBESAR
5A
9B
14
- 4 4
C
D E
C=A + B
D=A - B E = abs(D)
18
FF = C+E
9G
G = F / 2
terbesar
2
1
3
4
5
12345
C = A + BD = A – BE = abs( D )F = C + EG = F / 2
5A
9B
14
- 4 4
C
D E
C = A + B
D = A - B E = abs(D)
18
FF = C+E
9G
G = F / 2
terbesar
5A
9B
14
4
C
E
C = A + B
E = abs( A – B )
9
GG = ( C+E ) / 2
terbesar
disingkat
copy dari halaman sebelumnya
2
1
3
4
5
2
1
3
12345
C = A + BD = A – BE = abs( D )F = C + EG = F / 2
123
C = A + BE = abs( A-B )G = (C+E) / 2
5A
9B
14
4
C
E
C = A + B
E = abs( A – B )
9
GG = ( C+E ) / 2
terbesar
5A
9B
9
GG = ( (A+B) + abs( A – B ) ) / 2
terbesar
disingkat
copy dari halaman sebelumnya
123
C = A + BE = abs( A-B )G = (C+E) / 2
1 G = ( (A+B) + abs( A – B ) ) / 2
Algoritma yang ditulis dalam suatu Bahasa Pemrograman disebut PROGRAM
5A
9B
14
- 4 4
C
D E
C = A + B
D = A - B E = abs(D)
18
FF = C+E
9G
G = F / 2
terbesar
2
1
3
4
5
12345
C = A + BD = A – BE = abs( D )F = C + EG = F / 2
#include <iostream.h>#include<math.h>void main(){ int A,B,C,D,E,F,G; cin >> A >> B; C = A + B; D = A – B; E = abs( D ); F = C + E; G = F / 2; cout << G;}
Karena menggunakan fungsi matematik abs( )maka file math.h yang mengandung fungsi abs( ) harus di-include-kan
5A
9B
14
4
C
E
C = A + B
E = abs( A – B )
9
GG = ( C+E ) / 2
terbesar
123
C = A + BE = abs( A-B )G = (C+E) / 2#include <iostream.h>
#include<math.h>void main(){ int A,B,C,E,G; cin >> A >> B; C = A + B; E = abs( A - B ); G = ( C + E ) / 2; cout << G;}
2
1
3
5A
9B
9
GG = ( (A+B) + abs( A – B ) ) / 2
terbesar
G = ( (A+B) + abs( A – B ) ) / 2
#include <iostream.h>#include<math.h>void main(){ int A,B,G; cin >> A >> B; G = ( (A+B) + abs( A – B ) ) / 2; cout << G;}
#include <iostream.h>#include<math.h>void main(){ int A,B,C,D,E,F,G; cin >> A >> B; C = A + B; D = A – B; E = abs( D ); F = C + E; G = F / 2; cout << G;}
#include <iostream.h>#include<math.h>void main(){ int A,B,C,E,G; cin >> A >> B; C = A + B; E = abs( A - B ); G = ( C + E ) / 2; cout << G;}
#include <iostream.h>#include<math.h>void main(){ int A,B,G; cin >> A >> B; G = ( (A+B) + abs( A – B ) ) / 2; cout << G;}
Memilih bilangan terbesar atau terkecil dari dua buah bilangan
menggunakan
Control statement
if
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 == diatasdisebut Relational Operator(Operator Hubungan)
Relational Operatoryang 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)
Sebutkan TRUE atau FALSE nilai condition berikut ini :
5 == 2 contoh : if( 5 == 2 )
5 > 2
5 < 2
5 >= 2
5 <= 2
5 >= 5
5 <= 5
5 != 2
5 != 5
5 < 7
5 <= 7
5 >= 7
5 == 2 F
5 > 2 T
5 < 2 F
5 >= 2 T
5 <= 2 F
5 >= 5 T
5 <= 5 T
5 != 2 T
5 != 5 F
5 < 7 T
5 <= 7 T
5 >= 7 F
(A == B)
(A > B)
(A < B)
(A >= B)
(A <= B)
(A != B)
conditionakan
bernilai
F
F
T
F
T
T
T = TRUEF = FALSE
(A == B)
(A > B)
(A < B)
(A >= B)
(A <= B)
(A != B)
conditionakan
bernilai
F
T
F
T
F
T
(A == B)
(A > B)
(A < B)
(A >= B)
(A <= B)
(A != B)
conditionakan
bernilai
T
F
F
T
T
F
5
A
7
B
9
A
7
B
7
A
7
B
if ( cond ) { -
----
}
---
statements-true
next instruction
FlowchartBentuk Umum - 1biasa disebut : Bentuk IF-THEN
cond
------
statements-true
----
next instruction
TRUE
Cara-Kerja
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
if ( cond ) { -
----
}
---
Statementstrue
next instruction
Flowchart
cond
------
----
TRUE cond
------
----
TRUE
Penulisan PROGRAMTerikat aturan / ketentuan
Penggambaran FLOWCHARTbebas
if ( cond ) { -
----
}else { -
----
}
---
statements-true
statements-false
next instruction
Flowchart
Bentuk Umum - 2biasa disebut : Bentuk IF-THEN-ELSE
cond
------
------
statements-false
statements-true
----
next instruction
cond = condition
TRUEFALSE
Flowchart
Cara-Kerja
cond
------
------
statements-false
statements-true
----
next instruction
TRUEFALSE
if ( cond ) { -
---- }
else { -
---- }
---
statements-true
statements-false
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
cond
------
------
falsetrue
----
next instruction
TRUE FALSE
Penulisan PROGRAM terikat aturan,Penggambaran FLOWCHART bebas.
cond
------
------
falsetrue
----
next instruction
TRUE
FALSE
Beberapa contoh penulisan / penggunaan if(cond) bentuk IF-THEN-ELSE
3. int A=5, B=7;if(A<B)
{ cout << “Jakarta” ; }else
{ cout << “Bandung” ; }
cout << “\nSelesai”);Akan tercetak : Jakarta Selesai
4.int A=5, B=7;
if(A<B){cout << “Jakarta” ; }
else {cout << “Bandung” ;}
cout << “\nSelesai” ;Akan tercetak : Jakarta Selesai
1.int A=5, B=7;if(A<B) { cout << “Jakarta” ; }else { cout << “Bandung” ; }cout << “\nSelesai” ;
Akan tercetak : Jakarta Selesai
2. int A=5, B=7;if(A<B) {cout << “Jakarta” ; } else {cout << “Bandung” ; }cout << “\nSelesai” ;
Akan tercetak : Jakarta Selesai
Soal Susun program dalam bahasa C++ untuk menginput 2 (dua) buah bilangan bulat, kemudian mencetak salah satu bilangan yang nilainya terbesar.
Soal-9 Susun program dalam bahasa C++untuk menginput 2 (dua) buah bilangan bulat,kemudian mencetak salah satu bilangan yang nilainya terbesar.
A25 5
cin cout
52
B
MISAL NILAI YANG DIINPUT ADALAH 5 DAN 2
Read(A) Read(B) IF A > B then Write(A) Else Write(B) End If
START
Read
Read
write
END
A
B
AB
A > BFalse True
Write
Algoritma Dasar
#include <iostream.h>void main(){ int A, B; cin >> A; cin >> B; if (A > B) { cout << A; } else { cout << B; }}
Cara-1
START
input
input
ptint
END
A
B
AB
A > BFalse True
A BA B
Algoritma dalam Bahasa C++
FLOWCHART Cara-1
START
cin
cin
cout
END
A
B
AB
A > BFalse True
cout
A BA B
if (A > B) { cout << A; } else { cout << B; }}
if (A > B) cout << A; else cout << B;}
if (A > B) cout << A; else cout << B;
#include <iostream.h>void main(){ int A, B; cin >> A; cin >> B; if (A > B) { cout << A; } else { cout << B; }}
if (A > B) cout << A; else cout << B;
if (A > B) cout << A ; else cout << B ;
if (A < B) cout << ….. ; else cout << ….. ;
if (B > A) cout << …... ; else cout << …... ;
if (B < A) cout << …... ; else cout << …... ;
if (A > B) cout << A ; else cout << B ;
if (A < B) cout << B ; else cout << A ;
if (B > A) cout << B ; else cout << A ;
if (B < A) cout << A ; else cout << B ;
TEKNIKDASAR
Cara-2input
input
A
B
MAX
A > Bfalse true
MAX = AMAX = B
#include <iostream.h>
void main()
{ int A, B, MAX;
cin >> A;
cin >> B;
if (A > B)
{ MAX = A; }
else
{ MAX = B; }
cout << MAX;
}
TEKNIKDASAR
BA
25
5KEYBOARD
SCREEN
cin
MEMORY
cout
52
5
MAX
Dengan cara menyimpan bilangan yang terbesar kedalamsebuah variabel misal namanya MAX
Cara-3
input
input
A
B
MAX
A > Btrue
MAX = A
MAX = B
#include <iostream.h>
void main()
{ int A, B, MAX;
cin >> A;
cin >> B;
MAX = B;
if (A > B)
{ MAX = A; }
cout << MAX;
}
TEKNIKDASAR
Cara-4START
input
input
END
A
B
MAX
B>MAX
False
True
MAX = B
MAX = A
TEKNIKDASAR
#include <iostream.h>
void main()
{ int A, B, MAX;
cin >> A;
MAX = A
cin >> B;
if (B > MAX)
{ MAX = B; }
cout << MAX;
}
Cara-4 START
input
input
END
A
A
MAX
A>MAX
False
True
MAX = A
MAX = A
TEKNIKDASAR#include <iostream.h>
void main()
{ int A, MAX;
cin >> A;
MAX = A
cin >> A;
if (A > MAX)
{ MAX = A; }
cout << MAX;
}
A MAX
Hanya ada 2 variabel.A spesial menampung input,MAX spesial menampung nilai terbesar
Teknik inilah yang mendasari
algoritma untuk mencari nilai
yang terbesar atau terkecil dari
sejumlah nilai yang diinput
Urutan pelaksanaan :
1) int A,MAX;
2) cin >> A;
3) MAX = A;
4) cin A;
5) if (A>max) MAX = A;
6) cut << MAX;
A MAX
5
5
2
5
5
2 5
5
misal nilai yangdiinput adalah5 dan 2
A
misal nilai yangdiinput adalah5 dan 9
A MAX
5
5
9
9
5
9 5
9
Urutan pelaksanaan :
1) int A,MAX;
2) cin >> A;
3) MAX = A;
4) cin A;
5) if (A>max) MAX = A;
6) cut << MAX;
Soal 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.
Soal 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.
BA
175 17
KEYBOARDSCREEN
cin
MEMORY
cout
5817
8
C
BA
517 17
KEYBOARDSCREEN
cin
MEMORY
cout
5817
8
C
BA
85 17
KEYBOARDSCREEN
cin
MEMORY
cout
5817
17
C
START
input
input
A
B
?False True
input C
A B CMenggunakan 3 variabel
Apa yang dibandingkan untuk pertama kali :A dengan BB dengan AA dengan CC dengan AB dengan CC dengan B
A B CMenggunakan 3 variabel
B > AB < AB > CB < C
A > BA < BA > CA < C
C > AC < AC > BC < B
Pilih yang mudah
START
input
input
A
B
?False True
input C
A B CMenggunakan 3 variabel
START
input
input
A
B
A > BFalse True
input C
A BA B
A B CMenggunakan 3 variabel
START
input
input
A
B
A > BFalse True
input C
A B
Mencetak atau
masih membandingkan
?
A B
A B CMenggunakan 3 variabel
A > CC > AB > CC > B
START
input
input
A
B
A > BFalse True
input C
A B
TrueFalse?
A B
Pilih yang mana
?
A B CMenggunakan 3 variabel
A > CC > AB > CC > B
START
input
input
A
B
A > BFalse True
input C
A B
TrueFalse?
A B
Pilih yang mana saja tidak mendatangkan
error. Hanya saja secara logika, mana
yang tepat untuk dipilih
A B CMenggunakan 3 variabel
A > CC > AB > CC > B
START
input
input
A
B
A > BFalse True
input C
A B
Dari ilustrasi ini terlihat jelas bahwa A yang harus dibandingkan dengan C untuk mencari nilai yang terbesarA B A B
TrueFalse?
A B CMenggunakan 3 variabel
START
input
input
A
B
A > BFalse True
input C
A BA B
TrueFalseA > C
Mencetak atau
masih membandingkan
?
A B CMenggunakan 3 variabel
START
input
input
A
B
A > BFalse True
input C
A BA B
TrueFalseA > C
Mencetak atau
masih membandingkan
?
A B C A B C
atau
Kondisi bila A > C true
A B CMenggunakan 3 variabel
START
input
input
A
B
A > BFalse True
input C
A BA B
TrueFalseA > C
Bisakah diambil kesimpulan
bahwa A yang terbesar
?
A B C A B C
atau
Kondisi bila A > C true
A B CMenggunakan 3 variabel
START
input
input
A
B
A > BFalse True
input C
A BA B
A B C A B C
atau
TrueFalseA > C
A B CMenggunakan 3 variabel
START
input
input
A
B
A > BFalse True
input C
A BA B
TrueFalseA > C
print A
A B C A B C
atau
Kondisi bila A > C true
A B CMenggunakan 3 variabel
START
input
input
A
B
A > BFalse True
input C
A BA B
TrueFalseA > C
print A
A B CMenggunakan 3 variabel
START
input
input
A
B
A > BFalse True
input C
A BA B
TrueFalseA > C
print A
Perlukah membandingkan
B dengan C disini
?
AtauDapatkah diambil kesimpulan bahwa C adalah yang terbesar
A B CMenggunakan 3 variabel
START
input
input
A
B
A > BFalse True
input C
A BA B
TrueFalseA > C
print A
Perlukah membandingkan
B dengan C disini
?
A B C
AtauDapatkah diambil kesimpulan bahwa C adalah yang terbesar
Kondisi bila A > C False
Bila A > C Falseartinya
A < CAtau C > A
A B CMenggunakan 3 variabel
START
input
input
A
B
A > BFalse True
input C
A BA B
TrueFalseA > C
print A
Perlukah membandingkan
B dengan C disini
?
A B C
AtauDapatkah diambil kesimpulan bahwa C adalah yang terbesar
A B CMenggunakan 3 variabel
START
input
input
A
B
A > BFalse True
input C
A BA B
A B C A B C
atau
TrueFalseA > C
print A
Perlukah membandingkan
B dengan C disini
?
A B C
AtauDapatkah diambil kesimpulan bahwa C adalah yang terbesar
A B CMenggunakan 3 variabel
START
input
scanf
A
B
A > BFalse True
input C
A BA B
A B C A B C
atau
TrueFalseA > C
print Aprint C
A B C
A B CMenggunakan 3 variabel
START
input
input
A
B
A > BFalse True
input C
A BA B
A B C A B C
atau
TrueFalseA > C
print AB > CA B C
PastiKesini
Tidak Pernahkesini
B > C pasti FalseMembandingkan sesuatu yang pasti
False atau True adalah pekerjaan yang tidak bermanfaat
Pasti False
A B CMenggunakan 3 variabel
START
input
input
A
B
A > BFalse True
input C
A BA B
A B C A B C
atau
TrueFalseA > C
print Aprint C
A B C
START
input
input
A
B
A > BFalse True
input C
A BA B
A B C A B C
atau
TrueFalseA > C
print Aprint C
A B C
START
input
input
A
B
A > BFalse True
input C
A BA B
A B C A B C
atau
TrueFalseA > C
print Aprint C
Mencetak atau
masih membandingkan
?
START
input
input
A
B
A > BFalse True
input C
A BA B
A B C A B C
atau
TrueFalseA > C
print Aprint C
TrueFalse?
A > CC > AB > CC > B
START
input
input
A
B
A > BFalse True
input C
A BA B
A B C A B C
atau
TrueFalseA > C
print Aprint C
TrueFalseB > C
B yang besar, jadi B yang
dibandingkan dengan C
START
input
input
A
B
A > BFalse True
input C
A BA B
A B C A B C
atau
TrueFalseA > C
print Aprint C
TrueFalseB > C
print B
START
input
input
A
B
A > BFalse True
input C
A BA B
A B C A B C
atau
TrueFalseA > C
print Aprint C
TrueFalseB > C
print BA B C
START
input
input
A
B
A > BFalse True
input C
A BA B
A B C A B C
atau
TrueFalseA > C
print Aprint C
TrueFalseB > C
print Bprint CA B C
START
input
input
A
B
A > BFalse True
input C
A BA B
A B C A B C
atau
TrueFalseA > C
print Aprint C
TrueFalseB > C
print Bprint CA B C
START
input
input f
A
B
A > BFalse True
input C
A BA B
A B C A B C
atau
TrueFalseA > C
print Aprint C
TrueFalseB > C
print Bprint CA B C
A > BFalse True A BA B
A B C A B C
atau
TrueFalseA > C
print Aprint C
TrueFalseB > C
print Bprint C
A B C A B CA B C A B C
atau
#include <iostream.h>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 ; }}
Cara-1START
input
input
END
A
B
A > Bfalse true
input C
A > CB > C
printprint
truetruefalse false
ACBC
A B CMenggunakan 3 variabel
#include <iostream.h>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);}
Karena setiap blok instruksi hanya terdiri dari satu instruksi, maka program diatas dapat ditulis menjadi :
A B C
Menggunakan 3 variabel
5 7 9
A B C
Menggunakan 3 variabel
5 9 7
7 5 9
7 9 5
9 5 7
9 7 5
Ada 6 kemungkinan variasi ketiga buah nilai
START
input
input
A
B
A > BFalse True
input C
TrueFalseA > C
TrueFalseB > C
1 2 3 4
5 7 9A B C
1
Ada 4 titik , , dan
Untuk data diatas, maka flow akan menuju titik . . . . . ?
1 2 3 4
START
input
input
A
B
A > BFalse True
input C
TrueFalseA > C
TrueFalseB > C
1 2 3 4
5 7 9A B C
5 7
7 9
Untuk data diatas, maka flow akan menuju
atau berakhir pada titik : 1
START
input
input
A
B
A > BFalse True
input C
TrueFalseA > C
TrueFalseB > C
1 2 3 4
5 9 7A B C
2
Ada 4 titik , , dan
Untuk data diatas, maka flow akan menuju titik . . . . . ?
1 2 3 4
START
input
input
A
B
A > BFalse True
input C
TrueFalseA > C
TrueFalseB > C
1 2 3 4
5 9 7A B C
5 9
9 7
Untuk data diatas, maka flow akan menuju
atau berakhir pada titik : 2
START
input
input
A
B
A > BFalse True
input C
TrueFalseA > C
TrueFalseB > C
1 2 3 4
7 5 9A B C
3
Ada 4 titik , , dan
Untuk data diatas, maka flow akan menuju titik . . . . . ?
1 2 3 4
START
input
input
A
B
A > BFalse True
input C
TrueFalseA > C
TrueFalseB > C
1 2 3 4
7 5 9A B C
7 5
7 9
Untuk data diatas, maka flow akan menuju
atau berakhir pada titik : 3
START
input
input
A
B
A > BFalse True
input C
TrueFalseA > C
TrueFalseB > C
1 2 3 4
7 9 5A B C
4
Ada 4 titik , , dan
Untuk data diatas, maka flow akan menuju titik . . . . . ?
1 2 3 4
START
input
input
A
B
A > BFalse True
input C
TrueFalseA > C
TrueFalseB > C
1 2 3 4
7 9 5A B C
7 9
9 5
Untuk data diatas, maka flow akan menuju
atau berakhir pada titik : 2
START
input
input
A
B
A > BFalse True
input C
TrueFalseA > C
TrueFalseB > C
1 2 3 4
9 5 7A B C
5
Ada 4 titik , , dan
Untuk data diatas, maka flow akan menuju titik . . . . . ?
1 2 3 4
START
input
input
A
B
A > BFalse True
input C
TrueFalseA > C
TrueFalseB > C
1 2 3 4
9 5 7A B C
9 5
9 7
Untuk data diatas, maka flow akan menuju
atau berakhir pada titik : 4
START
input
input
A
B
A > BFalse True
input C
TrueFalseA > C
TrueFalseB > C
1 2 3 4
9 7 5A B C
6
Ada 4 titik , , dan
Untuk data diatas, maka flow akan menuju titik . . . . . ?
1 2 3 4
START
input
input
A
B
A > BFalse True
input C
TrueFalseA > C
TrueFalseB > C
1 2 3 4
9 7 5A B C
9 7
9 5
Untuk data diatas, maka flow akan menuju
atau berakhir pada titik : 4
#include <iostream.h>void main(){ int A,B,C, MAX; cin >> A >> B >> C; MAX = A;
if (B > MAX) MAX = B;
if (C > MAX) MAX = C; cout << MAX;}
Cara-2
A B C MAX
Menggunakan 4 variabel
START
input
END
A, B, C
MAX
B > MAX
false
true
MAX = B
MAX = A
C > MAX
false
true
MAX = C
#include <iostream.h>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; }
input
input
printf
A
B
MAX
B > MAX
false
true
MAX = B
MAX = A
C > MAX
false
true
MAX = C
input C
Cara-3
A B C MAX
A
8
17KEYBOARD
SCREEN
cin
MEMORY
cout
5178
17
MAX
Menggunakan hanya 2 variabel. Variabel A khusus untuk menampung input, dan variabel MAX khusus mencatat atau menyimpan nilai terbesar.
Cara-4
#include <iostream.h>void main(){ int A, MAX; cin >> A; MAX = A; cin >> A;
if (A > MAX) MAX = A; cin >> A;
if (A > MAX) MAX = A; cout << MAX; }
input
scanf
printf
A
A
MAX
A > MAX
false
true
MAX = A
MAX = A
A > MAX
false
true
MAX = A
input A
Algoritma ini nanti yang menjadi dasar algoritma pencarian bilangan terbesar atau terkecil dari sejumlah bilangan yang ada atau bilangan yang diinput.
Cara-4
#include <iostream.h>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; }}
BA
175
17KEYBOARD
SCREEN
cin
MEMORY
cout
5178
8
C
Dengan menggunakanLogical Operator AND (&&)
Menggunakan multi conditions dengan logical operator AND
Cara-5
#include <iostream.h>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 membanding-
kan 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
Hanya untuk keseragaman saja dibuat
lagi if (B>A && B>C), dengan cara ini
berpikirnya lebih mudah
START
input
END
A,B,C
printprint
true
truefalse A
BC
A>B && A>C
B>A && B>C
B > C
Ini sebenarnya bisa diganticukup dengan :
#include <iostream.h>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
printf
END
A,B,C
printfprintf
true
truefalse A
BC
A>B && A>C
B>C
#include <iostream.h>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;}
BA
175
17KEYBOARD
SCREEN
cin
MEMORY
cout
5178
8
C
Cara-6 Berpikir lebih praktis, tapi computer-time tidak efisien
#include <iostream.h>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;}
START
input
END
A,B,C
true
A
A>B && A>C
B>A && B>C
true
B
C>A && C>B
true
C
Soal Susun program untuk menginput 4 (empat) buah bilangan bulat, (dianggap ketiga buah bilangan tersebut nilainya tidak sama satu dengan yang lain), kemudian mencetak salah satu bilangan yang nilainya terbesar.
Jawab-2 Cara-1Menggunakan 5 variabel, 4 variabel untuk input. 1 variabel untuk MAX
Bila bilangan yang diinput adalah 5, 17, 8 dan 12, maka tentunya akan tercetak 17
BA
175
17KEYBOARD
SCREEN
scanf
MEMORY
printf
517812
8
C
12
D
FLOWCHART
Cara-1 START
input A,B,C,D
START
inputf
END
A, B,C, D
A>B
A>C
AC
A>D
printprint
C>D
DDprintprint
B>C
BC
B>D
C>D
DDprint
5 17 8 12
A B C D
#include <iostream.h>void main(){ int A,B,C,D; cin >> A >> B >> C >> D; if(A > B) {if(A > C) {if(A > D) cout << A; else cout << D; } else {if(C > D) cout << C; else cout << D; } }
else
else {if (B > C) {if(B > D) cout << B; else cout << D; } else {if(C > D) cout << C; else cout << D; } }}
bersambung
#include <iostream.h>void main(){ int A,B,C,D; cin >> A >> B >> C >> C; if(A > B) {if(A > C) {if(A > D) cout << A; else cout << D; } else {if(C > D) cout << C; else cout << D; } }
else - - -
}
START
input
A, B,C, D
A>B
A>C
AC
A>D
printprint
C>D
DD
- - - - - else {if (B > C) {if(B > D) cout << B; else cout << D; } else {if(C > D) cout << C; else cout << D ; } }}
A>B
printfprintf
B>C
BC
B>D
printf
C>D
DDprintf
else
LatihanMembaca Flowchart
START
input A, B,C, D
A>B
A>C
A>DC>D
B>C
B>DC>D
5 8 12 17
A B C D
1 2 3 4 5 6 7 8
Untuk nilai yang diinput seperti diatas,Maka flow akan menuju nomor : ………
Soal Susun program untuk menginput 100 (seratus) buah bilangan bulat, (dianggap ketiga buah bilangan tersebut nilainya tidak sama satu dengan yang lain), kemudian mencetak salah satu bilangan yang nilainya terbesar.
Untuk dapat menyelesaikan soal ini,
perhatikan kembali soal no-11
dikerjakan dengan cara lain
Konsep berpikir :
Sebutkan nilai terbesar daribeberapa nilai yang diperlihatkan
berikut ini :
12
7
17
10
15
25
15
19
22
20
Berapa nilai yang terbesar
Yang terbesar
Konsep : Selalu menyimpan nilai terbesar dalam ingatan
Jawab Soal-11 Cara-2Menggunakan 2 variabel, variabel : A khusus untuk menampung input variabel : B khusus untuk menampung nilai terbesar
Bila bilangan yang diinput adalah 5, 17, 8 dan 12, maka tentunya akan tercetak 17
AKEYBOARD
SCREEN
cin A
MEMORY
cout MAX
517812
17MAX
A
5
17KEYBOARD
SCREENMEMORY
517812
5
MAX
Cara ini hanya menggunakan 2 variabel.Variabel A khusus menerima inputVariabel MAX khusus menampung nilai terbesar
1529.
A
17
17KEYBOARD
SCREENMEMORY
517812
17
MAX
Cara ini hanya menggunakan 2 variabel.Variabel A khusus menerima inputVariabel MAX khusus menampung nilai terbesar
1539.
A
8
17KEYBOARD
SCREENMEMORY
517812
17
MAX
Cara ini hanya menggunakan 2 variabel.Variabel A khusus menerima inputVariabel MAX khusus menampung nilai terbesar
1549.
A
12
17KEYBOARD
SCREENMEMORY
517812
17
MAX
Cara ini hanya menggunakan 2 variabel.Variabel A khusus menerima inputVariabel MAX khusus menampung nilai terbesar
1559.
#include <iostream.h>
void main()
{ int A, MAX;
cin >> A; MAX = A;
cin >> A; if (A > MAX) MAX = A;
cin >> A; if (A > MAX) MAX = A;
cin >> A; if (A > MAX) MAX = A;
cout << MAX;
}
input
input
A
A
MAX
A> MAX
MAX = A
MAX = A
A>MAX
MAX = A
A>MAX
MAX = A
input A
input A
#include <iostream.h>void main(){ int A, i, MAX; cin >> A; MAX = A;
for (i=1; i <= 3; i=i+1) { cin >> A; if (A > MAX) MAX = A;
}
cout << MAX;}
Menginput 4 buah bilangandan mencetak
salah satu bilangan yang
nilainya terbesar
Instruksi for belum diterangkan penggunaannyadisini hanya dipinjam satu model penggunaan
#include <iopstream.h>void main(){ int A, i, MAX; cin >> A; MAX = A;
i = 1; while (i <= 3) { cin >> A; if (A > MAX) MAX = A;
i = i + 1; }
cout << MAX;}
Instruksi while belum diterangkan penggunaannyadisisni hanya dipinjam satu model penggunaan
1599.
Soal Susun program untuk menginput 100 (seratus) buah bilangan bulat, (dianggap ketiga buah bilangan tersebut nilainya tidak sama satu dengan yang lain), kemudian mencetak salah satu bilangan yang nilainya terbesar.
KEMBALI KE-
#include <iostream.h>void main(){ int A, i, MAX; cin >> A; MAX = A;
for (i=1; i <= ...; i=i+1) { cin >> A; if (A > MAX) MAX = A;
}
cout << MAX;}
Menginput 100 buah bilangandan mencetakyang terbesar
#include <iostream.h>void main(){ int A, i, MAX; cin >> A; MAX = A;
for (i=1; i <= 99; i=i+1) { cin >> A; if (A > MAX) MAX = A;
}
cout << MAX;}
Menginput 100 buah bilangandan mencetakyang terbesar
1639.
Soal Susun program untuk menginput 3 (tiga) buah bilangan bulat, (dianggap 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.
Bila bilangan yang diinput adalah 5, 17 dan 8, maka tentunya akan tercetak 5 8 17atau tercetak : 5 8 17
5 8 17
KEYBOARD
5178
BA
175 8
C
input
FLOWCHART
cara-1 START
input A,B,C
A < BABBA
AB , A disebelah kiri B maksudnya A lebih kecil dati B
BA , B disebelah kiri A maksudnya B lebih kecil dati A
BA , Belum diketahui siapa yang lebih besar
FLOWCHART
cara-1 START
input A,B,C
A < B
?
ABBA
FLOWCHART
cara-1 START
input A,B,C
A < B
B < C
ABBA
FLOWCHART
cara-1 START
input A,B,C
A < B
B < C
ABBA
ABC
input
A,B,C
A,B,C
A < B
B < C
AB
ABC
BA
input
A,B,C
A,B,C
A < B
B < C
AB
ABCCAB
BA
CAB
A dan C kedua-duanya lebih kecil dari B, tapi A dan C belum diketahui siapa yang lebih besar atau yang lebih kecil
input
A,B,C
A,B,C
A < B
B < C
?
AB
ABCCAB
BA
input
A,B,C
A,B,C
A < B
B < C
A < C
AB
ABCCAB
BA
input
A,B,C
A,B,C
A < B
B < C
A < C
AB
ABCCAB
?
BA
input
A,B,C
A,B,C
A < B
B < C
A < C
AB
ABCCAB
ACB
BA
input
A,B,C
A,B,C
A,C,B
A < B
B < C
A < C
AB
ABCCAB
ACB
BA
input
A,B,C
A,B,C
A,C,B
A < B
B < C
A < C
AB
ABCCAB
ACB?
BA
input
A,B,C
A,B,C
A,C,B
A < B
B < C
A < C
AB
ABCCAB
ACBCAB
BA
input
A,B,C
A,B,C
A,C,B
A < B
B < C
A < C
C,A,B
AB
ABCCAB
ACBCAB
BA
input
A,B,C
A,B,C
A,C,B
A < B
B < C
A < C
C,A,B
AB
ABCCAB
ACBCAB
BA
input
A,B,C
A,B,C
A,C,B
A < B
B < C
A < C
C,A,B
AB
ABCCAB
ACBCAB
BA
input
A,B,C
A,B,C
A,C,B
A < B
B < C
A < C
C,A,B
AB
ABCCAB
ACBCAB
A < CBAC
BA
input
A,B,C
A,B,C
A,C,B
A < B
B < C
A < C
C,A,B
AB
ABCCAB
ACBCABB,A,C
A < CBAC
BA
START
input
A,B,C
A,B,C
A,C,B
A < B
B < C
A < C
C,A,B
AB
ABCCAB
ACBCABB,A,C
A < CBAC
CBA
BA
START
input
A,B,C
A,B,C
A,C,B
A < B
B < C
A < C
C,A,B
AB
ABCCAB
ACBCABB,A,C
A < C
?
BACCBA
BA
START
input
A,B,C
A,B,C
A,C,B
A < B
B < C
A < C
C,A,B
AB
ABCCAB
ACBCABB,A,C
A < C
B < C
BACCBA
BA
START
input
A,B,C
A,B,C
A,C,B
A < B
B < C
A < C
C,A,B
AB
ABCCAB
ACBCABB,A,C
A < C
B < C
BACCBA
BCACBA
BA
START
input
A,B,C
A,B,C
A,C,B
A < B
B < C
A < C
C,A,B
AB
ABCCAB
ACBCABB,A,C
B,C,A
A < C
B < C
BACCBA
BCACBA
BA
START
input
A,B,C
A,B,C
A,C,B
A < B
B < C
A < C
C,A,B
AB
ABCCAB
ACBCABB,A,C
B,C,A
A < C
B < C
C,A,B
BACCBA
BCACBA
BA
START
input
A,B,C
A,B,C
A,C,B
A < B
B < C
A < C
C,A,B
AB
ABCCAB
ACBCABB,A,C
B,C,A
A < C
B < C
C,A,B
BACCBA
BCACBA
BA
START
input
A,B,C
A,B,C
A,C,B
A < B
B < C
A < C
C,A,B
AB
ABCCAB
ACBCABB,A,C
B,C,A
A < C
B < C
C,A,B
BACCBA
BCACBA
BA
START
input
A,B,C
END
A,B,C
A,C,B
A < B
B < C
A < C
C,A,B
AB
ABCCAB
ACBCABB,A,C
B,C,A
A < C
B < C
C,A,B
BACCBA
BCACBA
BA
START
input
A,B,C
END
A,B,C
A,C,B
A < B
B < C
A < C
C,A,B
AB
ABCCAB
ACBCABB,A,C
B,C,A
A < C
B < C
C,A,B
BACCBA
BCACBA
BA
START
input
A,B,C
END
A,B,C
A,C,B
A < B
B < C
A < C
C,A,B
AB
ABCCAB
ACBCABB,A,C
B,C,A
A < C
B < C
C,A,B
BACCBA
BCACBA
BA
#include <iostream.h>
void main()
{ int A,B,C;
cin >> A >> B >> C;
if(A<B)
{ if(B<C)
cout << A << “ “ << B << “ “ << C;
else
{ if(A<C)
cout << A << “ “ << C << “ “ << B;
else
cout << C << “ “ << A << “ “ << B;
}
}
else
{ if(A<C)
cout << B << “ “ << A << “ “ << C;
else
{ if(B<C)
cout << B << “ “ << C << “ “ << A;
else
cout << C << “ “ << B << “ “ << A;
}
}
}
A,B,C
A,C,B
A < B
B < C
A < C
C,A,B
AB
ABCCAB
ACBCAB
if(A<B)
{ if(B<C)
cout << A << “ “ << B << “ “ << C;
else
{if(A<C)
cout << A << “ “ << C << “ “ << B;
else
cout << C << “ “ << A << “ “ << B;
}
}
else
B,A,C
B,C,A
A < C
B < C
C,A,B
BACCBA
BCACBA
}
else
{ if(A<C)
cout << B << “ “ << A << “ “ << C;
else
{if(B<C)
cout << B << “ “ << C << “ “ << A;
else cout << C << “ “ << B << “ “ << A;
}
}
}
Soal-13 Susun program untuk menginput tiga (3) buah bilangan bulat (misal A, B dan C dimana A<>B<>C<>A), kemudian mencetak ketiga nilai tersebut urut dari kecil ke besar.
Cara-2
START
input
END
A,B,C
A<B & B<C
A,B,C
print C,A,B
A,C,B
B,A,C
print C,B,A
B,C,A
A<C & C<B
B<A & A<C
B<C & C<A
C<A & A<B
#include <iostream.h>void main(){int A,B,C; cin >> A >> B >> C; if(A<B && B<C) cout << A << “ “ << B << “ “ << C; else {if(A<C && C<B) cout << A << “ “ << C << “ “ << B; else {if(B<A && A<C) cout << B << “ “ << A << “ “ << C; else {if(B<C && C<A) cout << B << “ “ << C << “ “ << A; else {if(C<A && A<B) cout << C << “ “ << A << “ “ << B; else cout << C << “ “ << B << “ “ << A; } } } } }