penggunaan if dan teknik dasar bagian 2

Post on 26-Jun-2015

182 Views

Category:

Technology

6 Downloads

Preview:

Click to see full reader

DESCRIPTION

source by : Sugeng Supriyadi S.Kom, M.Kom

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

print

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

print

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

print

END

A,B,C

true

A

A>B && A>C

B>A && B>C

print

true

B

C>A && C>B

print

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

print

END

A, B,C, D

print

A>B

A>C

AC

A>D

printprint

C>D

DDprintprint

B>C

BC

B>D

print

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

print

A, B,C, D

print

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

print

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

print

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

print

END

A,B,C

print

A<B && B<C

A,B,C

print C,A,B

A,C,B

print

print

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