105

No Slide Title - miqbalhanafri.files.wordpress.com fileSTART input input A B A > B False True input C False True A > C False True B > C 1 2 3 4 5 7 9 A B C 1 Ada 4 titik , , dan

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

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

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

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

print

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

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-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

FLOWCHA

RT

Cara-1 START

input A,B,C,D

START

inputf

print

END

A, B,C, D

print

A>B

A>C

A C

A>D

print print

C>D

D D print print

B>C

B C

B>D

print

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

print

A, B,C, D

print

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

print

C>D

D D prinf

else

Latihan

Membaca Flowchart

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.

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

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

A

12

KEYBOARD

SCREEN

MEMORY

5

17

8

12

17

MAX

60 9.

. Input 12 ke A

. 12 tidak > MAX MAX tetap 17

A

12

KEYBOARD

SCREEN

MEMORY

5

17

8

12

17

MAX

61 9.

. 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 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

print

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

FLOWCHART

cara-1 START

input A,B,C

A < B

?

AB BA

FLOWCHART

cara-1 START

input A,B,C

A < B

B < C

AB BA

FLOWCHART

cara-1 START

input A,B,C

A < B

B < C

AB BA

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

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

input

A,B,C

A,B,C

A < B

B < C

?

AB

ABC C

AB

BA

input

A,B,C

A,B,C

A < B

B < C

A < C

AB

ABC C

AB

BA

input

A,B,C

A,B,C

A < B

B < C

A < C

AB

ABC C

AB

?

BA

input

A,B,C

A,B,C

A < B

B < C

A < C

AB

ABC C

AB

ACB

BA

input

A,B,C

A,B,C

A,C,B

A < B

B < C

A < C

AB

ABC C

AB

ACB

BA

input

A,B,C

A,B,C

A,C,B

A < B

B < C

A < C

AB

ABC C

AB

ACB ?

BA

input

A,B,C

A,B,C

A,C,B

A < B

B < C

A < C

AB

ABC C

AB

ACB CAB

BA

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

BA

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

BA

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

BA

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

A < C BAC

BA

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 BAC

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 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

?

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

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

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;

}

}

}

}

}