penggunaan if dan teknik dasar bagian 2
Post on 26-Jun-2015
185 Views
Preview:
DESCRIPTION
TRANSCRIPT
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 FALSEmaka 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
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;}
Cara-6 Berpikir lebih praktis, tapi computer-time tidak efisien
BA
517 17
KEYBOARDSCREEN
cin
MEMORY
cout
5817
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-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 17
KEYBOARD
SCREEN
cin
MEMORY
cout
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
printprint
B>C
BC
B>D
C>D
DDprinf
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 : MAX 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
17
MAX
17
A
5
KEYBOARD
SCREENMEMORY
517812
5
MAX
Cara ini hanya menggunakan 2 variabel.Variabel A khusus menerima inputVariabel MAX khusus menampung nilai terbesar
579.
. Input 5 ke A
. Simpan 5 di MAX
A
17
KEYBOARD
SCREENMEMORY
517812
17
MAX
Cara ini hanya menggunakan 2 variabel.Variabel A khusus menerima inputVariabel MAX khusus menampung nilai terbesar
589.
. Input 17 ke A
. 17 > MAX Simpan 17 di MAX
A
8
KEYBOARD
SCREENMEMORY
517812
17
MAX
Cara ini hanya menggunakan 2 variabel.Variabel A khusus menerima inputVariabel MAX khusus menampung nilai terbesar
599.
. Input 8 ke A
. 8 tidak > MAX MAX tetap 17
A
12
KEYBOARD
SCREENMEMORY
517812
17
MAX
609.
. Input 12 ke A
. 12 tidak > MAX MAX tetap 17
A
12
KEYBOARD
SCREENMEMORY
517812
17
MAX
619.
. Data habis Cetak MAX
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 bilangandan mencetaksalah 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
659.
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
699.
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
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; } } } } }
top related