No Slide Title - miqbalhanafri.files.wordpress.com fileSTART input input A B A > B False True input...
Transcript of No Slide Title - miqbalhanafri.files.wordpress.com fileSTART input input A B A > B False True input...
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 > B False True
input C
True False A > C
True False B > C
1 2 3 4
5 7 9 A 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 > B False True
input C
True False A > C
True False B > C
1 2 3 4
5 7 9 A B C
5 7
7 9
Untuk data diatas, maka flow akan menuju
atau berakhir pada titik : 1
START
input
input
A
B
A > B False True
input C
True False A > C
True False B > C
1 2 3 4
5 9 7 A 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 > B False True
input C
True False A > C
True False B > C
1 2 3 4
5 9 7 A B C
5 9
9 7
Untuk data diatas, maka flow akan menuju
atau berakhir pada titik : 2
START
input
input
A
B
A > B False True
input C
True False A > C
True False B > C
1 2 3 4
7 5 9 A 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 > B False True
input C
True False A > C
True False B > C
1 2 3 4
7 5 9 A B C
7 5
7 9
Untuk data diatas, maka flow akan menuju
atau berakhir pada titik : 3
START
input
input
A
B
A > B False True
input C
True False A > C
True False B > C
1 2 3 4
7 9 5 A 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 > B False True
input C
True False A > C
True False B > C
1 2 3 4
7 9 5 A B C
7 9
9 5
Untuk data diatas, maka flow akan menuju
atau berakhir pada titik : 2
START
input
input
A
B
A > B False True
input C
True False A > C
True False B > C
1 2 3 4
9 5 7 A 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 > B False True
input C
True False A > C
True False B > C
1 2 3 4
9 5 7 A B C
9 5
9 7
Untuk data diatas, maka flow akan menuju
atau berakhir pada titik : 4
START
input
input
A
B
A > B False True
input C
True False A > C
True False B > C
1 2 3 4
9 7 5 A 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 > B False True
input C
True False A > C
True False B > C
1 2 3 4
9 7 5 A 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
17 KEYBOARD
SCREEN
cin
MEMORY
cout
5 17 8
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; } }
B A
17 5
17 KEYBOARD
SCREEN
cin
MEMORY
cout
5 17 8
8
C
Dengan menggunakan
Logical 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 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
END
A,B,C
print print
true
true false A
B C
A>B && A>C
B>A && B>C
B > C
Ini sebenarnya bisa diganti cukup 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
printf printf
true
true false A
B C
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;
}
Cara-6
Berpikir lebih praktis, tapi computer-time tidak efisien
B A
5 17 17
KEYBOARD SCREEN
cin
MEMORY
cout
5
8
17
8
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;
}
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-11 Cara-1
Menggunakan 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
B A
17 5 17
KEYBOARD
SCREEN
cin
MEMORY
cout
5
17
8
12
8
C
12
D
START
inputf
END
A, B,C, D
A>B
A>C
A C
A>D
print print
C>D
D D print print
B>C
B C
B>D
C>D
D D print
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
A C
A>D
print print
C>D
D D
-
-
-
-
-
else
{if (B > C)
{if(B > D)
cout << B;
else
cout << D;
}
else
{if(C > D)
cout << C;
else
cout << D ;
}
}
}
A>B
print print
B>C
B C
B>D
C>D
D D prinf
else
START
input A, B,C, D
A>B
A>C
A>D C>D
B>C
B>D C>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.
Jawab Soal-11 Cara-2
Menggunakan 2 variabel, variabel : A khusus untuk menampung input variabel : MAX khusus untuk menampung nilai terbesar
Bila bilangan yang diinput adalah 5, 17, 8 dan 12,
maka tentunya akan tercetak 17
A KEYBOARD
SCREEN
cin A
MEMORY
cout MAX
5
17
8
12
17
MAX
17
A
5
KEYBOARD
SCREEN
MEMORY
5
17
8
12
5
MAX
Cara ini hanya menggunakan 2 variabel.
Variabel A khusus menerima input
Variabel MAX khusus menampung nilai terbesar
57 9.
. Input 5 ke A
. Simpan 5 di MAX
A
17
KEYBOARD
SCREEN
MEMORY
5
17
8
12
17
MAX
Cara ini hanya menggunakan 2 variabel.
Variabel A khusus menerima input
Variabel MAX khusus menampung nilai terbesar
58 9.
. Input 17 ke A
. 17 > MAX Simpan 17 di MAX
A
8
KEYBOARD
SCREEN
MEMORY
5
17
8
12
17
MAX
Cara ini hanya menggunakan 2 variabel.
Variabel A khusus menerima input
Variabel MAX khusus menampung nilai terbesar
59 9.
. Input 8 ke A
. 8 tidak > MAX MAX tetap 17
#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
MAX=A
input
A>MAX
MAX=A
input
A>MAX
MAX=A
A
A
input
A>MAX
MAX=A
A
print MAX
#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 bilangan
dan mencetak
salah satu
bilangan yang
nilainya terbesar
Instruksi for belum diterangkan penggunaannya
disini 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 penggunaannya
disisni hanya dipinjam satu model penggunaan
65 9.
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 bilangan
dan mencetak
yang 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 bilangan
dan mencetak
yang terbesar
69 9.
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 17 atau tercetak : 5
8
17
5 8 17
KEYBOARD
5
17
8
B A
17 5 8
C
input
FLOWCHART
cara-1 START
input A,B,C
A < B AB BA
AB , A disebelah kiri B
maksudnya A lebih kecil dati B
BA , B disebelah kiri A
maksudnya B lebih kecil dati A
B
A , Belum diketahui siapa yang lebih besar
input
A,B,C
A,B,C
A < B
B < C
AB
ABC C
AB
BA
C
AB
A dan C kedua-duanya lebih kecil dari B,
tapi A dan C belum diketahui siapa yang
lebih besar atau yang lebih kecil
START
input
A,B,C
A,B,C
A,C,B
A < B
B < C
A < C
C,A,B
AB
ABC C
AB
ACB CAB B,A,C
A < C
B < C
BAC C
BA
BA
START
input
A,B,C
A,B,C
A,C,B
A < B
B < C
A < C
C,A,B
AB
ABC C
AB
ACB CAB B,A,C
A < C
B < C
BAC C
BA
BCA CBA
BA
START
input
A,B,C
A,B,C
A,C,B
A < B
B < C
A < C
C,A,B
AB
ABC C
AB
ACB CAB B,A,C
B,C,A
A < C
B < C
BAC C
BA
BCA CBA
BA
START
input
A,B,C
A,B,C
A,C,B
A < B
B < C
A < C
C,A,B
AB
ABC C
AB
ACB CAB B,A,C
B,C,A
A < C
B < C
C,A,B
BAC C
BA
BCA CBA
BA
START
input
A,B,C
A,B,C
A,C,B
A < B
B < C
A < C
C,A,B
AB
ABC C
AB
ACB CAB B,A,C
B,C,A
A < C
B < C
C,A,B
BAC C
BA
BCA CBA
BA
START
input
A,B,C
A,B,C
A,C,B
A < B
B < C
A < C
C,A,B
AB
ABC C
AB
ACB CAB B,A,C
B,C,A
A < C
B < C
C,A,B
BAC C
BA
BCA CBA
BA
START
input
A,B,C
END
A,B,C
A,C,B
A < B
B < C
A < C
C,A,B
AB
ABC C
AB
ACB CAB B,A,C
B,C,A
A < C
B < C
C,A,B
BAC C
BA
BCA CBA
BA
START
input
A,B,C
END
A,B,C
A,C,B
A < B
B < C
A < C
C,A,B
AB
ABC C
AB
ACB CAB B,A,C
B,C,A
A < C
B < C
C,A,B
BAC C
BA
BCA CBA
BA
START
input
A,B,C
END
A,B,C
A,C,B
A < B
B < C
A < C
C,A,B
AB
ABC C
AB
ACB CAB B,A,C
B,C,A
A < C
B < C
C,A,B
BAC
C
BA
BCA CBA
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
ABC
C
AB
ACB CAB
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
BAC C
BA
BCA CBA
}
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;
}
}
}
}
}