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 5 cin
7
5
A
B
cout
7
dapat ditulis setelah
dan konsep atau draf secara manual sudah dibuat
Draf KONSEP penyelesaian
MENCARI YANG TERBESAR
Misal yang diinput nilai : 7 + 5 = 12 7–5=2
7 dan 5 12 + 2 = 14
14 / 2 = 7
|2|=2 7 terbesar
Misal yang diinput nilai : 4 + 9 = 13 4–9=-5
4 dan 9 13 + 5 = 18
18 / 2 = 9
|-5|=5 9 terbesar
Draf KONSEP penyelesaian
MENCARI YANG TERKECIL
Misal yang diinput nilai : 7 + 5 = 12 7–5=2
7 dan 5 12 - 2 = 10
10 / 2 = 5
|2|=2 5 terkecil
Misal yang diinput nilai : 4 + 9 = 13 4–9=-5
4 dan 9 13 - 5 = 8
8/2=4
|-5|=5 4 terkecil
Draf KONSEP penyelesaian
A
MENCARI YANG TERBESAR
5 C
C=A + B 1
D=A - B 2
14
F F = C+E E = abs(D)
-4
3
D B
9
4
4
E 1 2 3 4 5
C=A+B D=A–B E = abs( D ) F=C+E G=F/2
18 5 G=F/2
G 9 terbesar
A
5
copy dari halaman sebelumnya C
C=A+B 1
14
D B
F
F = C+E
D=A- B E = abs(D) -4 2 3
4
5
E
G 9
disingkat A
18
4
9
C=A+B D=A–B E = abs( D ) F=C+E G=F/2
G=F/2
terbesar
5
C C=A+B 1 E = abs( A – B ) 2
14 4
E B
1 2 3 4 5
9
G G = ( C+E ) / 2 3
9 terbesar
1 2 3
C=A+B E = abs( A-B ) G = (C+E) / 2
A
5
copy dari halaman sebelumnya
C C=A+B E = abs( A – B )
14
G G = ( C+E ) / 2
4
terbesar
E B
9 disingkat
A
9
1 2 3
C=A+B E = abs( A-B ) G = (C+E) / 2
5 G = ( (A+B) +
abs( A – B ) ) / 2
G 9 terbesar
B
9
G = ( (A+B) +
abs( A – B ) ) / 2
Algoritma yang ditulis dalam suatu Bahasa Pemrograman disebut PROGRAM
A
5 C=A+B 1
C 14
D=A- B E = abs(D) -4 2 3
D B
F
9 #include
#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; }
F = C+E
18
4
4
5
E
G 9
1 2 3 4 5
C=A+B D=A–B E = abs( D ) F=C+E G=F/2
G=F/2
terbesar
Karena menggunakan fungsi matematik abs( ) maka file math.h yang mengandung fungsi abs( ) harus di-include-kan
A
5
C C=A+B 1 E = abs( A – B ) 2
14 4
E B
9 #include #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; }
G G = ( C+E ) / 2 3
9 terbesar
1 2 3
C=A+B E = abs( A-B ) G = (C+E) / 2
A
5 G = ( (A+B) +
abs( A – B ) ) / 2
G 9 terbesar
B
9
G = ( (A+B) +
abs( A – B ) ) / 2
#include #include<math.h> void main() { int A,B,G; cin >> A >> B; G = ( (A+B) + abs( A – B ) ) / 2; cout << G; }
#include #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 #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 #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 == diatas disebut Relational Operator (Operator Hubungan)
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)
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
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
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
Flowchart if ( cond ) { - Statements - true }
-
cond
-
next instruction
Penulisan PROGRAM Terikat aturan / ketentuan
TRUE
-
cond TRUE -
-
Penggambaran FLOWCHART bebas
Bentuk Umum - 2 biasa disebut : Bentuk IF-THEN-ELSE
Flowchart if ( cond ) { - statements-true } else { - statements-false }
-
next instruction
FALSE
-
cond
statementsfalse
-
TRUE
-
statementstrue
next instruction
cond = condition
if ( cond ) { - statements-true } else {
} -
-
statements-false
Flowchart
FALSE
-
cond
statementsfalse
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 kerjakan semua instruksi yang ada dalam statements-false Setelah selesai, lanjutkan ke next-instruction
Penulisan PROGRAM terikat aturan, Penggambaran FLOWCHART bebas.
TRUE
cond
FALSE
cond TRUE
-
-
true
-
false
next instruction
true
-
-
FALSE
-
false
next instruction
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
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. MISAL NILAI YANG DIINPUT ADALAH
5 DAN 2
5 2 cin
5 A
2 B
cout
5
START
Algoritma Dasar Read(A) Read(B) IF A > B then Write(A) Else Write(B) End If
Read
A
Read
B
False
True
A>B Write
write
B
END
A
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
input
A
input
B
False
True
AB
A>B print
ptint
B
END
A
FLOWCHART Cara-1
AB
cout
START
False
cin
A
cin
B
A>B
True
AB
cout
B
END
A
#include 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 << 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 ;
TEKNIK DASAR
if (A < B) cout << B ; else cout << A ; if (B > A) cout << …... ; else cout << …... ;
if (B < A) cout << …... ; else cout << …... ;
if (A > B) cout << A ; else cout << B ;
TEKNIK DASAR
if (A < B) cout << B ; else cout << A ; if (B > A) cout << B ; else cout << A ;
if (B < A) cout << …... ; else cout << …... ;
if (A > B) cout << A ; else cout << B ;
TEKNIK DASAR
if (A < B) cout << B ; else cout << A ; if (B > A) cout << B ; else cout << A ; if (B < A) cout << A ; else cout << B ;
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
Dengan cara menyimpan bilangan yang terbesar kedalam sebuah variabel misal namanya MAX
5 2 cin KEYBOARD
5
2
A
B
5
cout
5
MAX SCREEN
MEMORY
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
START
TEKNIK DASAR
Cara-4 input
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; } cout << MAX;
}
print
END
MAX
MAX = B
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
MAX = A
MAX
Hanya ada 2 variabel. A spesial menampung input, MAX spesial menampung nilai terbesar
print
END
Teknik inilah yang mendasari algoritma untuk mencari nilai yang terbesar atau terkecil dari sejumlah nilai yang diinput
MAX
Urutan pelaksanaan : A
MAX
1)
int A,MAX;
2)
cin >> A;
5
3)
MAX = A;
5
5
4)
cin A;
2
5
5)
if (A>max) MAX = A;
2
5
6) cut << MAX;
5
misal nilai yang diinput adalah 5 dan 2
Urutan pelaksanaan : A
MAX
1)
int A,MAX;
2)
cin >> A;
5
3)
MAX = A;
5
5
4)
cin A;
9
5
5)
if (A>max) MAX = A;
9
9
6) cut << MAX;
9
misal nilai yang diinput adalah A 5 dan 9
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.
5 8 17
cin KEYBOARD
5 A
17 B
MEMORY
8 C
cout
17
SCREEN
5 8 17
cin KEYBOARD
17
5
A
B
MEMORY
8 C
cout
17
SCREEN
5 8 17
cin KEYBOARD
5 A
8
17
B
C
MEMORY
cout
17
SCREEN
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
START
A B C Menggunakan 3 variabel
False
A>B AC A
input
A
input
B
input
C
?
B>A BC B
True
C>A CB C
Pilih yang mudah
START
A B C Menggunakan 3 variabel
AB
False
input
A
input
B
input
C
A>B
True
AB
START
A B C Menggunakan 3 variabel
AB
False
input
A
input
B
input
C
A>B
True
AB
Mencetak atau masih membandingkan
?
START
A B C Menggunakan 3 variabel
AB
False
input
A
input
B
input
C
A>B
True
False
Pilih yang mana
?
AB
? A>C C>A B>C C>B
True
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 error. Hanya saja secara logika, mana yang tepat untuk dipilih
AB
? A>C C>A B>C C>B
True
START
A B C Menggunakan 3 variabel
AB
False
input
A
input
B
input
C
A>B
True
False
AB
? A>C C>A B>C C>B
Dari ilustrasi ini terlihat jelas bahwa A yang harus dibandingkan dengan C untuk mencari nilai yang terbesar
True
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
?
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
Mencetak atau masih membandingkan
?
ABC
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
Bisakah diambil kesimpulan bahwa A yang terbesar
?
ABC
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
A
ABC
START
A B C Menggunakan 3 variabel
AB
False
input
A
input
B
input
C
A>B
True
False
AB
A>C
True
print
A
START
A B C Menggunakan 3 variabel
AB
False
input
A
input
B
input
C
A>B
True
False
AB
A>C
True
print
Perlukah membandingkan B dengan C disini
?
Atau Dapatkah diambil kesimpulan bahwa C adalah yang terbesar
A
START
A B C Menggunakan 3 variabel
AB
False Kondisi bila A > C False
input
A
input
B
input
C
A>B
True
False
AB
A>C
True
Bila A > C False artinya A A
print ABC
Perlukah membandingkan B dengan C disini
?
Atau Dapatkah diambil kesimpulan bahwa C adalah yang terbesar
A
START
A B C Menggunakan 3 variabel
AB
False
input
A
input
B
input
C
A>B
True
False
AB
A>C
True
print ABC
Perlukah membandingkan B dengan C disini
?
Atau Dapatkah diambil kesimpulan bahwa C adalah yang terbesar
A
START
A B C Menggunakan 3 variabel
AB
False
input
A
input
B
input
C
A>B
True
atau
AB ABC
False
A>C
True
print ABC
Perlukah membandingkan B dengan C disini
?
ABC
Atau Dapatkah diambil kesimpulan bahwa C adalah yang terbesar
A
START
A B C Menggunakan 3 variabel
AB
False
input
A
scanf
B
input
C
A>B
True
ABC
False
print ABC
atau
AB
A>C C
ABC
True
print
A
START
A B C Menggunakan 3 variabel
AB
False
input
A
input
B
input
C
A>B
True
ABC
False
ABC
B>C
pasti False Membandingkan sesuatu yang pasti
False atau True adalah pekerjaan yang tidak bermanfaat
atau
AB
A>C
Pasti Kesini
Pasti False
True
print
B>C Tidak Pernah kesini
ABC
A
START
A B C Menggunakan 3 variabel
AB
False
input
A
input
B
input
C
A>B
True
ABC
False
print ABC
atau
AB
A>C C
ABC
True
print
A
START
AB
False
input
A
input
B
input
C
A>B
True
ABC
False
print ABC
atau
AB
A>C C
ABC
True
print
A
START
AB
False
input
A
input
B
input
C
A>B
True
ABC
False
print Mencetak atau masih membandingkan
?
atau
AB
A>C C
ABC
True
print
A
START
AB
False
? A>C C>A B>C C>B
False
True
input
A
input
B
input
C
A>B
True
atau
AB
ABC
False
print
A>C C
ABC
True
print
A
START
B yang besar, jadi B yang dibandingkan dengan C
False
AB
B>C
False
True
input
A
input
B
input
C
A>B
True
atau
AB
ABC
False
print
A>C C
ABC
True
print
A
START
AB
False
B>C
False
input
A
input
B
input
C
A>B
True
print
True
ABC
False
B
atau
AB
print
A>C C
ABC
True
print
A
START
AB
False ABC
B>C
False
input
A
input
B
input
C
A>B
True
print
True
ABC
False
B
atau
AB
print
A>C C
ABC
True
print
A
START
AB
False ABC
print
B>C C
False
input
A
input
B
input
C
A>B
True
print
True
ABC
False
B
atau
AB
print
A>C C
ABC
True
print
A
START
AB
False ABC
print
B>C C
False
input
A
input
B
input
C
A>B
True
print
True
ABC
False
B
atau
AB
print
A>C C
ABC
True
print
A
START
AB
False ABC
print
B>C C
False
input
A
input f
B
input
C
A>B
True
print
True
ABC
False
B
atau
AB
print
A>C C
ABC
True
print
A
AB
False
print
B>C
False
A>B
True
AB
False
print
C
True
B
print
A>C C
True
print
atau
atau ABC
ABC
A
ABC
ABC
ABC
ABC
Cara-1 #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 ; }
START input A
input B input C false false
print
B>C
C
A>B
true
print
false
B
}
A B C Menggunakan 3 variabel
true
END
print
A>C
C
true
print A
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