View
288
Download
0
Category
Preview:
DESCRIPTION
source by : Sugeng Supriyadi S.Kom, M.Kom
Citation preview
Memilih bilangan yang nilainya terbesar atau terkecil dari dua buah bilangan yang ada
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
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
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
Recommended