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
1
START
5
7
A
B
9 C
False
False
B>C
1
Ada 4 titik
True
2
input
A
input
B
input
C
A>B
True
False
True
A>C 3
4
, 2 , 3 dan 4 Untuk data diatas, maka flow akan menuju titik . . . . . ? 1
START
5
7
A
B
9 C
False
False
1
True
B>C 7
9
input
A
input
B
input
C True
A>B 7
5
False
True
A>C
2
3
Untuk data diatas, maka flow akan menuju atau berakhir pada titik :
1
4
2
START
5
9
A
B
7 C
False
False
B>C
1
Ada 4 titik
True
2
input
A
input
B
input
C
A>B
True
False
True
A>C 3
4
, 2 , 3 dan 4 Untuk data diatas, maka flow akan menuju titik . . . . . ? 1
START
5
9
A
B
7 C
False
False
1
True
B>C 9
7
input
A
input
B
input
C True
A>B 9
5
False
True
A>C
2
3
Untuk data diatas, maka flow akan menuju atau berakhir pada titik :
2
4
3
START
7
5
A
B
9 C
False
False
B>C
1
Ada 4 titik
True
2
input
A
input
B
input
C
A>B
True
False
True
A>C 3
4
, 2 , 3 dan 4 Untuk data diatas, maka flow akan menuju titik . . . . . ? 1
START
7
5
A
B
9 C
False
False
1
B>C
True
input
A
input
B
input
C True
A>B 5
7
False
True
A>C
2
3
7
Untuk data diatas, maka flow akan menuju atau berakhir pada titik :
3
9
4
4
START
7
9
A
B
5 C
False
False
B>C
1
Ada 4 titik
True
2
input
A
input
B
input
C
A>B
True
False
True
A>C 3
4
, 2 , 3 dan 4 Untuk data diatas, maka flow akan menuju titik . . . . . ? 1
START
7
9
A
B
5 C
False
False
1
True
B>C 9
5
input
A
input
B
input
C True
A>B 9
7
False
True
A>C
2
3
Untuk data diatas, maka flow akan menuju atau berakhir pada titik :
2
4
5
START
9
5
A
B
7 C
False
False
B>C
1
Ada 4 titik
True
2
input
A
input
B
input
C
A>B
True
False
True
A>C 3
4
, 2 , 3 dan 4 Untuk data diatas, maka flow akan menuju titik . . . . . ? 1
START
9
5
A
B
7 C
False
False
1
B>C
True
input
A
input
B
input
C True
A>B 5
9
False
True
A>C
2
3
9
Untuk data diatas, maka flow akan menuju atau berakhir pada titik :
4
7
4
6
START
9
7
A
B
5 C
False
False
B>C
1
Ada 4 titik
True
2
input
A
input
B
input
C
A>B
True
False
True
A>C 3
4
, 2 , 3 dan 4 Untuk data diatas, maka flow akan menuju titik . . . . . ? 1
START
9
7
A
B
5 C
False
False
1
B>C
True
input
A
input
B
input
C True
A>B 7
9
False
True
A>C
2
3
9
Untuk data diatas, maka flow akan menuju atau berakhir pada titik :
4
5
4
Cara-2
START
#include
void main() { int A,B,C, MAX;
input A, B, C MAX = A
cin >> A >> B >> C; MAX = A;
true
B > MAX
if (B > MAX) MAX = B;
MAX = B
false
if (C > MAX) MAX = C;
true
C > MAX
}
cout << MAX; false
A
B
C
MAX
print
Menggunakan 4 variabel END
MAX
MAX = C
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
MAX = C
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
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
A > MAX
true
false
MAX = A
cin >> A;
if (A > MAX) MAX = A; cout << MAX; }
input A true A > MAX
false Algoritma ini nanti yang menjadi dasar algoritma pencarian bilangan terbesar atau terkecil dari sejumlah bilangan yang ada atau bilangan yang diinput.
printf MAX
MAX = A
Cara-5
5 17 8
Menggunakan multi conditions dengan logical operator AND
cin KEYBOARD
Dengan menggunakan Logical Operator AND (&&)
5
17
A
B
C
cout
17
MEMORY
#include void main() { int A,B,C; cin >> A >> B >> C;
}
8
if (A>B && A>C) cout << A; else { if (B>A && B>C) cout << B; else cout << C; }
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; }
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 B>A && B>C
print
print
C
B
END
Ini sebenarnya bisa diganti cukup dengan : B>C
A
#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 B>C
printf
C
printf
B
END
A
Cara-6 Berpikir lebih praktis, tapi computer-time tidak efisien 5 8 17
cin
17
5
8
A
B
C
KEYBOARD
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;
cout
17 SCREEN
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
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 5 17 8 12 cin
5
17
8
12
A
B
C
D
cout
17
KEYBOARD SCREEN
MEMORY
Bila bilangan yang diinput adalah 5, 17, 8 dan 12, maka tentunya akan tercetak 17
FLOWCHA RT
Cara-1
START
input
A,B,C,D
START
5
17
8
12
A
B
C
D
inputf A, B,C, D
A>B
B>C
C>D
print D
A>C
B>D
print
C print D
C>D
print B
END
print D
A>D
print C print D
print A
#include 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 << else cout << } else {if(C > D) cout << else cout << } } }
bersambung
B; D;
C; D;
#include void main() { int A,B,C,D; cin >> A >> B >> C >> C;
START
if(A > B) {if(A > C) {if(A > D) cout << A; else cout << D; } else {if(C > D) cout << C; else cout << D; } }
A>B
else }
input
A, B,C, D
A>C
C>D
print D
A>D
print C print D
print A
else {if (B > C) {if(B > D) cout << else cout << } else {if(C > D) cout << else cout << } } }
else
A>B
B>C
B; D;
C; D ;
C>D
prinf D
B>D
print
C print D
print B
Latihan Membaca Flowchart
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
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 dari beberapa 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-2 Menggunakan 2 variabel, variabel : A khusus untuk menampung input variabel : MAX khusus untuk menampung nilai terbesar 5 17 8 12 cin A KEYBOARD
17 A
cout MAX
17
MAX
MEMORY
Bila bilangan yang diinput adalah 5, 17, 8 dan 12, maka tentunya akan tercetak 17
SCREEN
9. 57
. Input 5 ke A . Simpan 5 di MAX
5 17 8 12
5 KEYBOARD
A
5 MAX SCREEN
MEMORY
Cara ini hanya menggunakan 2 variabel. Variabel A khusus menerima input Variabel MAX khusus menampung nilai terbesar
9. 58
. Input 17 ke A . 17 > MAX Simpan 17 di MAX
5 17 8 12
17 KEYBOARD
A
17 MAX SCREEN
MEMORY
Cara ini hanya menggunakan 2 variabel. Variabel A khusus menerima input Variabel MAX khusus menampung nilai terbesar
9. 59
. Input 8 ke A . 8 tidak > MAX MAX tetap 17
5 17 8 12
8 KEYBOARD
A
17 MAX SCREEN
MEMORY
Cara ini hanya menggunakan 2 variabel. Variabel A khusus menerima input Variabel MAX khusus menampung nilai terbesar
9. 60
5 17 8 12
. Input 12 ke A . 12 tidak > MAX MAX tetap 17
12 KEYBOARD
A
17 MAX SCREEN
MEMORY
9. 61
5 17 8 12
. Data habis Cetak MAX
12 KEYBOARD
A
17
17
MAX SCREEN
MEMORY
#include void main() { int A, MAX; cin >> A; MAX = A;
input
MAX=A input
A
A>MAX
MAX=A
cin >> A; if (A > MAX) MAX = A; cin >> A;
if (A > MAX) MAX = A; cin >> A; if (A > MAX) MAX = A; cout <<
input
A
A>MAX
MAX=A
input
A
A>MAX
MAX;
MAX=A
} print
MAX
#include void main() { int A, i, MAX; cin >> A; MAX = A;
Menginput 4 buah bilangan dan mencetak salah satu bilangan yang nilainya terbesar
for (i=1; i <= 3; i=i+1) { cin >> A; if (A > MAX) MAX = A; } cout << MAX;
} Instruksi for belum diterangkan penggunaannya disini hanya dipinjam satu model penggunaan
#include 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
KEMBALI
Soal
KE-
Susun program untuk menginput 100 (seratus) buah bilangan bulat, 9. 65 (dianggap ketiga buah bilangan tersebut nilainya tidak sama satu dengan yang lain), kemudian mencetak salah satu bilangan yang nilainya terbesar.
#include 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 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
Soal
Susun program untuk menginput 3 (tiga) buah bilangan bulat, (dianggap 9. 69 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 17 8 input KEYBOARD
5
17
A
B
print
5 8 17
8 C
FLOWCHART START
cara-1
input BA
A
A,B,C AB
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
FLOWCHART START
cara-1
input BA
A
A,B,C AB
?
FLOWCHART START
cara-1
input BA
A
A,B,C AB
B
FLOWCHART START
cara-1
input BA
A
A,B,C AB
B
ABC
input BA
A
A,B,C AB
B
ABC
A,B,C
input BA
A
A,B,C AB C AB
B
ABC
A,B,C
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
input BA
A
A,B,C AB C AB
?
B
ABC
A,B,C
input BA
A
A,B,C AB C AB
A
B
ABC
A,B,C
input BA
A
A,B,C AB C AB
A
B
?
ABC
A,B,C
input BA
A
A,B,C AB C AB
A
B
ACB
ABC
A,B,C
input BA
A
A,B,C AB C AB
A
B
ACB
A,C,B
ABC
A,B,C
input BA
A,B,C AB
A
C AB
?
A
B
ACB
A,C,B
ABC
A,B,C
input BA
A
A,B,C AB C AB
CAB
A
B
ACB
A,C,B
ABC
A,B,C
input BA
A,B,C
A
AB C AB
CAB
C,A,B
A
B
ACB
A,C,B
ABC
A,B,C
input BA
A,B,C
A
AB C AB
CAB
C,A,B
A
B
ACB
A,C,B
ABC
A,B,C
input BA
A,B,C
A
AB C AB
CAB
C,A,B
A
B
ACB
A,C,B
ABC
A,B,C
input BA
A
A,B,C
A
AB C AB
BAC CAB
C,A,B
A
B
ACB
A,C,B
ABC
A,B,C
input BA
A
A,B,C
A
AB C AB
BAC
B,A,C
CAB
C,A,B
A
B
ACB
A,C,B
ABC
A,B,C
START input BA C BA
A
A,B,C
A
AB C AB
BAC
B,A,C
CAB
C,A,B
A
B
ACB
A,C,B
ABC
A,B,C
START input BA C BA
?
A
A,B,C
A
AB C AB
BAC
B,A,C
CAB
C,A,B
A
B
ACB
A,C,B
ABC
A,B,C
START input BA C BA
B
A
A,B,C
A
AB C AB
BAC
B,A,C
CAB
C,A,B
A
B
ACB
A,C,B
ABC
A,B,C
START input BA C BA
CBA
A
B
A,B,C
A
AB C AB
BAC
B,A,C
CAB
C,A,B
A
B
ACB
A,C,B
ABC
A,B,C
START input BA C BA
CBA
A
B
B,C,A
A,B,C
A
AB C AB
BAC
B,A,C
CAB
C,A,B
A
B
ACB
A,C,B
ABC
A,B,C
START input BA C BA
CBA
C,A,B
A
B
B,C,A
A,B,C
A
AB C AB
BAC
B,A,C
CAB
C,A,B
A
B
ACB
A,C,B
ABC
A,B,C
START input BA C BA
CBA
C,A,B
A
B
B,C,A
A,B,C
A
AB C AB
BAC
B,A,C
CAB
C,A,B
A
B
ACB
A,C,B
ABC
A,B,C
START input BA C BA
CBA
C,A,B
A
B
B,C,A
A,B,C
A
AB C AB
BAC
B,A,C
CAB
C,A,B
A
B
ACB
A,C,B
ABC
A,B,C
START input BA C BA
CBA
C,A,B
A
B
B,C,A
A,B,C
A
AB C AB
BAC
B,A,C
CAB
C,A,B
END
A
B
ACB
A,C,B
ABC
A,B,C
START input BA C BA
CBA
C,A,B
A
B
B,C,A
A,B,C
A
AB C AB
BAC
B,A,C
CAB
C,A,B
END
A
B
ACB
A,C,B
ABC
A,B,C
START
input A,B,C
BA
AB A
C BA A
CBA
C,A,B
B
BCA
B,C,A
C AB
BAC
B,A,C
CAB
C,A,B
END
A
B
ACB
A,C,B
ABC
A,B,C
#include void main() { int A,B,C; cin >> A >> B >> C; if(A
if(A
AB
A
cout << A << “ “ << B << “ “ << C;
else
C AB
ABC
{if(A
B
cout << A << “ “ << C << “ “ << B; CAB
ACB
A
else
A,B,C
cout << C << “ “ << A << “ “ << B;
} C,A,B
A,C,B
}
else
}
else { if(A
C BA
BAC
else
A
{if(B
BCA
B
cout << B << “ “ << C << “ “ << A; B,A,C
else cout << C << “ “ << B << “ “ << A;
} C,A,B
B,C,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
A,B,C
A
B
B,A,C
B
B,C,A
C
C,B,A
print
C,A,B
END
A,C,B
A,B,C
#include void main() {int A,B,C; cin >> A >> B >> C; if(A