Penggunaan if dan teknik dasar bagian 3

Post on 27-Jun-2015

264 views 3 download

description

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

Transcript of Penggunaan if dan teknik dasar bagian 3

Memilih bilangan terbesar atau terkecil dari dua buah bilangan

Soal-8.

Susun algoritma yang ditulis dalam Bahasa C++, untuk menginput dua buah bilangan dan mencetak salah satu bilangan yang nilainya terbesar

7

75

7 5

A B

cin cout

dapat ditulis setelah

dan konsep atau draf secara manual sudah

dibuat

KONSEP penyelesaian

Draf

Misal yang diinput nilai : 7 dan 5

7 + 5 = 12

7 – 5 = 2 | 2 | = 212 + 2 = 14 14 / 2 = 7

7 terbesar

Misal yang diinput nilai : 4 dan 9

4 + 9 = 13

4 – 9 = - 5 | - 5 | = 513 + 5 = 18 18 / 2 = 9

9 terbesar

MENCARI YANG TERBESAR

KONSEP penyelesaian

Draf

Misal yang diinput nilai : 7 dan 5

7 + 5 = 12

7 – 5 = 2 | 2 | = 212 - 2 = 10 10 / 2 = 5

5 terkecil

Misal yang diinput nilai : 4 dan 9

4 + 9 = 13

4 – 9 = - 5 | - 5 | = 513 - 5 = 8 8 / 2 = 4

4 terkecil

MENCARI YANG TERKECIL

KONSEP penyelesaian

DrafMENCARI YANG TERBESAR

5A

9B

14

- 4 4

C

D E

C=A + B

D=A - B E = abs(D)

18

FF = C+E

9G

G = F / 2

terbesar

2

1

3

4

5

12345

C = A + BD = A – BE = abs( D )F = C + EG = F / 2

5A

9B

14

- 4 4

C

D E

C = A + B

D = A - B E = abs(D)

18

FF = C+E

9G

G = F / 2

terbesar

5A

9B

14

4

C

E

C = A + B

E = abs( A – B )

9

GG = ( C+E ) / 2

terbesar

disingkat

copy dari halaman sebelumnya

2

1

3

4

5

2

1

3

12345

C = A + BD = A – BE = abs( D )F = C + EG = F / 2

123

C = A + BE = abs( A-B )G = (C+E) / 2

5A

9B

14

4

C

E

C = A + B

E = abs( A – B )

9

GG = ( C+E ) / 2

terbesar

5A

9B

9

GG = ( (A+B) + abs( A – B ) ) / 2

terbesar

disingkat

copy dari halaman sebelumnya

123

C = A + BE = abs( A-B )G = (C+E) / 2

1 G = ( (A+B) + abs( A – B ) ) / 2

Algoritma yang ditulis dalam suatu Bahasa Pemrograman disebut PROGRAM

5A

9B

14

- 4 4

C

D E

C = A + B

D = A - B E = abs(D)

18

FF = C+E

9G

G = F / 2

terbesar

2

1

3

4

5

12345

C = A + BD = A – BE = abs( D )F = C + EG = F / 2

#include <iostream.h>#include<math.h>void main(){ int A,B,C,D,E,F,G; cin >> A >> B; C = A + B; D = A – B; E = abs( D ); F = C + E; G = F / 2; cout << G;}

Karena menggunakan fungsi matematik abs( )maka file math.h yang mengandung fungsi abs( ) harus di-include-kan

5A

9B

14

4

C

E

C = A + B

E = abs( A – B )

9

GG = ( C+E ) / 2

terbesar

123

C = A + BE = abs( A-B )G = (C+E) / 2#include <iostream.h>

#include<math.h>void main(){ int A,B,C,E,G; cin >> A >> B; C = A + B; E = abs( A - B ); G = ( C + E ) / 2; cout << G;}

2

1

3

5A

9B

9

GG = ( (A+B) + abs( A – B ) ) / 2

terbesar

G = ( (A+B) + abs( A – B ) ) / 2

#include <iostream.h>#include<math.h>void main(){ int A,B,G; cin >> A >> B; G = ( (A+B) + abs( A – B ) ) / 2; cout << G;}

#include <iostream.h>#include<math.h>void main(){ int A,B,C,D,E,F,G; cin >> A >> B; C = A + B; D = A – B; E = abs( D ); F = C + E; G = F / 2; cout << G;}

#include <iostream.h>#include<math.h>void main(){ int A,B,C,E,G; cin >> A >> B; C = A + B; E = abs( A - B ); G = ( C + E ) / 2; cout << G;}

#include <iostream.h>#include<math.h>void main(){ int A,B,G; cin >> A >> B; G = ( (A+B) + abs( A – B ) ) / 2; cout << G;}

Memilih bilangan terbesar atau terkecil dari dua buah bilangan

menggunakan

Control statement

if

Syntax Penulisan if statement:

if( condition )

Condition : adalah ungkapan atau pernyataan (expression) yang mengandung nilai TRUE (benar) atau FALSE (salah).

Contoh : 5 > 2 bernilai TRUE

5 > 9 bernilai FALSE

5 == 5 bernilai TRUE

Tanda : > dan == diatasdisebut Relational Operator(Operator Hubungan)

Relational Operatoryang digunakan dalam Bahasa C/C++ dan Java

== Equal To (Sama Dengan)

> Greater Than (Lebih Besar Dari)

< Less Than (Lebih Kecil Dari)

>= Greater Than Or Equal To

(Lebih Besar Dari Atau Sama Dengan)

<= Less Than Or Equal To

(Lebih Kecil Dari atau Sama Dengan)

!= Not Equal To ( Tidak Sama Dengan)

Sebutkan TRUE atau FALSE nilai condition berikut ini :

5 == 2 contoh : if( 5 == 2 )

5 > 2

5 < 2

5 >= 2

5 <= 2

5 >= 5

5 <= 5

5 != 2

5 != 5

5 < 7

5 <= 7

5 >= 7

5 == 2 F

5 > 2 T

5 < 2 F

5 >= 2 T

5 <= 2 F

5 >= 5 T

5 <= 5 T

5 != 2 T

5 != 5 F

5 < 7 T

5 <= 7 T

5 >= 7 F

(A == B)

(A > B)

(A < B)

(A >= B)

(A <= B)

(A != B)

conditionakan

bernilai

F

F

T

F

T

T

T = TRUEF = FALSE

(A == B)

(A > B)

(A < B)

(A >= B)

(A <= B)

(A != B)

conditionakan

bernilai

F

T

F

T

F

T

(A == B)

(A > B)

(A < B)

(A >= B)

(A <= B)

(A != B)

conditionakan

bernilai

T

F

F

T

T

F

5

A

7

B

9

A

7

B

7

A

7

B

if ( cond ) { -

----

}

---

statements-true

next instruction

FlowchartBentuk Umum - 1biasa disebut : Bentuk IF-THEN

cond

------

statements-true

----

next instruction

TRUE

Cara-Kerja

Bila nilai cond - TRUE, maka kerjakan semua instruksi yang ada dalam statements-true Setelah selesai, lanjutkan ke next-instruction

- FALSE, maka langsung ‘meloncat’ mengerjakan isnstruksi yang ada di next-instruction

if ( cond ) { -

----

}

---

Statementstrue

next instruction

Flowchart

cond

------

----

TRUE cond

------

----

TRUE

Penulisan PROGRAMTerikat aturan / ketentuan

Penggambaran FLOWCHARTbebas

if ( cond ) { -

----

}else { -

----

}

---

statements-true

statements-false

next instruction

Flowchart

Bentuk Umum - 2biasa disebut : Bentuk IF-THEN-ELSE

cond

------

------

statements-false

statements-true

----

next instruction

cond = condition

TRUEFALSE

Flowchart

Cara-Kerja

cond

------

------

statements-false

statements-true

----

next instruction

TRUEFALSE

if ( cond ) { -

---- }

else { -

---- }

---

statements-true

statements-false

next instruction

Bila nilai cond - TRUE, maka kerjakan semua instruksi yang ada dalam statements-true Setelah selesai, lanjutkan ke next-instruction

- FALSE, maka kerjakan semua instruksi yang ada dalam statements-false Setelah selesai, lanjutkan ke next-instruction

cond

------

------

falsetrue

----

next instruction

TRUE FALSE

Penulisan PROGRAM terikat aturan,Penggambaran FLOWCHART bebas.

cond

------

------

falsetrue

----

next instruction

TRUE

FALSE

Beberapa contoh penulisan / penggunaan if(cond) bentuk IF-THEN-ELSE

3. int A=5, B=7;if(A<B)

{ cout << “Jakarta” ; }else

{ cout << “Bandung” ; }

cout << “\nSelesai”);Akan tercetak : Jakarta Selesai

4.int A=5, B=7;

if(A<B){cout << “Jakarta” ; }

else {cout << “Bandung” ;}

cout << “\nSelesai” ;Akan tercetak : Jakarta Selesai

1.int A=5, B=7;if(A<B) { cout << “Jakarta” ; }else { cout << “Bandung” ; }cout << “\nSelesai” ;

Akan tercetak : Jakarta Selesai

2. int A=5, B=7;if(A<B) {cout << “Jakarta” ; } else {cout << “Bandung” ; }cout << “\nSelesai” ;

Akan tercetak : Jakarta Selesai

Soal Susun program dalam bahasa C++ untuk menginput 2 (dua) buah bilangan bulat, kemudian mencetak salah satu bilangan yang nilainya terbesar.

Soal-9 Susun program dalam bahasa C++untuk menginput 2 (dua) buah bilangan bulat,kemudian mencetak salah satu bilangan yang nilainya terbesar.

A25 5

cin cout

52

B

MISAL NILAI YANG DIINPUT ADALAH 5 DAN 2

Read(A) Read(B) IF A > B then Write(A) Else Write(B) End If

START

Read

Read

write

END

A

B

AB

A > BFalse True

Write

Algoritma Dasar

#include <iostream.h>void main(){ int A, B; cin >> A; cin >> B; if (A > B) { cout << A; } else { cout << B; }}

Cara-1

START

input

input

ptint

END

A

B

AB

A > BFalse True

print

A BA B

Algoritma dalam Bahasa C++

FLOWCHART Cara-1

START

cin

cin

cout

END

A

B

AB

A > BFalse True

cout

A BA B

if (A > B) { cout << A; } else { cout << B; }}

if (A > B) cout << A; else cout << B;}

if (A > B) cout << A; else cout << B;

#include <iostream.h>void main(){ int A, B; cin >> A; cin >> B; if (A > B) { cout << A; } else { cout << B; }}

if (A > B) cout << A; else cout << B;

if (A > B) cout << A ; else cout << B ;

if (A < B) cout << ….. ; else cout << ….. ;

if (B > A) cout << …... ; else cout << …... ;

if (B < A) cout << …... ; else cout << …... ;

if (A > B) cout << A ; else cout << B ;

if (A < B) cout << B ; else cout << A ;

if (B > A) cout << B ; else cout << A ;

if (B < A) cout << A ; else cout << B ;

TEKNIKDASAR

Cara-2input

input

print

A

B

MAX

A > Bfalse true

MAX = AMAX = B

#include <iostream.h>

void main()

{ int A, B, MAX;

cin >> A;

cin >> B;

if (A > B)

{ MAX = A; }

else

{ MAX = B; }

cout << MAX;

}

TEKNIKDASAR

BA

25

5KEYBOARD

SCREEN

cin

MEMORY

cout

52

5

MAX

Dengan cara menyimpan bilangan yang terbesar kedalamsebuah variabel misal namanya MAX

Cara-3

input

input

print

A

B

MAX

A > Btrue

MAX = A

MAX = B

#include <iostream.h>

void main()

{ int A, B, MAX;

cin >> A;

cin >> B;

MAX = B;

if (A > B)

{ MAX = A; }

cout << MAX;

}

TEKNIKDASAR

Cara-4START

input

input

print

END

A

B

MAX

B>MAX

False

True

MAX = B

MAX = A

TEKNIKDASAR

#include <iostream.h>

void main()

{ int A, B, MAX;

cin >> A;

MAX = A

cin >> B;

if (B > MAX)

{ MAX = B; }

cout << MAX;

}

Cara-4 START

input

input

print

END

A

A

MAX

A>MAX

False

True

MAX = A

MAX = A

TEKNIKDASAR#include <iostream.h>

void main()

{ int A, MAX;

cin >> A;

MAX = A

cin >> A;

if (A > MAX)

{ MAX = A; }

cout << MAX;

}

A MAX

Hanya ada 2 variabel.A spesial menampung input,MAX spesial menampung nilai terbesar

Teknik inilah yang mendasari

algoritma untuk mencari nilai

yang terbesar atau terkecil dari

sejumlah nilai yang diinput

Urutan pelaksanaan :

1) int A,MAX;

2) cin >> A;

3) MAX = A;

4) cin A;

5) if (A>max) MAX = A;

6) cut << MAX;

A MAX

5

5

2

5

5

2 5

5

misal nilai yangdiinput adalah5 dan 2

A

misal nilai yangdiinput adalah5 dan 9

A MAX

5

5

9

9

5

9 5

9

Urutan pelaksanaan :

1) int A,MAX;

2) cin >> A;

3) MAX = A;

4) cin A;

5) if (A>max) MAX = A;

6) cut << MAX;

Soal Susun program untuk menginput 3 (tiga) buah bilangan bulat, (dianggap ketiga buah bilangan tersebut nilainya tidak sama satu dengan yang lain), kemudian mencetak salah satu bilangan yang nilainya terbesar.

Soal Susun program untuk menginput 3 (tiga) buah bilangan bulat, (dianggap ketiga buah bilangan tersebut nilainya tidak sama satu dengan yang lain), kemudian mencetak salah satu bilangan yang nilainya terbesar.

BA

175 17

KEYBOARDSCREEN

cin

MEMORY

cout

5817

8

C

BA

517 17

KEYBOARDSCREEN

cin

MEMORY

cout

5817

8

C

BA

85 17

KEYBOARDSCREEN

cin

MEMORY

cout

5817

17

C

START

input

input

A

B

?False True

input C

A B CMenggunakan 3 variabel

Apa yang dibandingkan untuk pertama kali :A dengan BB dengan AA dengan CC dengan AB dengan CC dengan B

A B CMenggunakan 3 variabel

B > AB < AB > CB < C

A > BA < BA > CA < C

C > AC < AC > BC < B

Pilih yang mudah

START

input

input

A

B

?False True

input C

A B CMenggunakan 3 variabel

START

input

input

A

B

A > BFalse True

input C

A BA B

A B CMenggunakan 3 variabel

START

input

input

A

B

A > BFalse True

input C

A B

Mencetak atau

masih membandingkan

?

A B

A B CMenggunakan 3 variabel

A > CC > AB > CC > B

START

input

input

A

B

A > BFalse True

input C

A B

TrueFalse?

A B

Pilih yang mana

?

A B CMenggunakan 3 variabel

A > CC > AB > CC > B

START

input

input

A

B

A > BFalse True

input C

A B

TrueFalse?

A B

Pilih yang mana saja tidak mendatangkan

error. Hanya saja secara logika, mana

yang tepat untuk dipilih

A B CMenggunakan 3 variabel

A > CC > AB > CC > B

START

input

input

A

B

A > BFalse True

input C

A B

Dari ilustrasi ini terlihat jelas bahwa A yang harus dibandingkan dengan C untuk mencari nilai yang terbesarA B A B

TrueFalse?

A B CMenggunakan 3 variabel

START

input

input

A

B

A > BFalse True

input C

A BA B

TrueFalseA > C

Mencetak atau

masih membandingkan

?

A B CMenggunakan 3 variabel

START

input

input

A

B

A > BFalse True

input C

A BA B

TrueFalseA > C

Mencetak atau

masih membandingkan

?

A B C A B C

atau

Kondisi bila A > C true

A B CMenggunakan 3 variabel

START

input

input

A

B

A > BFalse True

input C

A BA B

TrueFalseA > C

Bisakah diambil kesimpulan

bahwa A yang terbesar

?

A B C A B C

atau

Kondisi bila A > C true

A B CMenggunakan 3 variabel

START

input

input

A

B

A > BFalse True

input C

A BA B

A B C A B C

atau

TrueFalseA > C

A B CMenggunakan 3 variabel

START

input

input

A

B

A > BFalse True

input C

A BA B

TrueFalseA > C

print A

A B C A B C

atau

Kondisi bila A > C true

A B CMenggunakan 3 variabel

START

input

input

A

B

A > BFalse True

input C

A BA B

TrueFalseA > C

print A

A B CMenggunakan 3 variabel

START

input

input

A

B

A > BFalse True

input C

A BA B

TrueFalseA > C

print A

Perlukah membandingkan

B dengan C disini

?

AtauDapatkah diambil kesimpulan bahwa C adalah yang terbesar

A B CMenggunakan 3 variabel

START

input

input

A

B

A > BFalse True

input C

A BA B

TrueFalseA > C

print A

Perlukah membandingkan

B dengan C disini

?

A B C

AtauDapatkah diambil kesimpulan bahwa C adalah yang terbesar

Kondisi bila A > C False

Bila A > C Falseartinya

A < CAtau C > A

A B CMenggunakan 3 variabel

START

input

input

A

B

A > BFalse True

input C

A BA B

TrueFalseA > C

print A

Perlukah membandingkan

B dengan C disini

?

A B C

AtauDapatkah diambil kesimpulan bahwa C adalah yang terbesar

A B CMenggunakan 3 variabel

START

input

input

A

B

A > BFalse True

input C

A BA B

A B C A B C

atau

TrueFalseA > C

print A

Perlukah membandingkan

B dengan C disini

?

A B C

AtauDapatkah diambil kesimpulan bahwa C adalah yang terbesar

A B CMenggunakan 3 variabel

START

input

scanf

A

B

A > BFalse True

input C

A BA B

A B C A B C

atau

TrueFalseA > C

print Aprint C

A B C

A B CMenggunakan 3 variabel

START

input

input

A

B

A > BFalse True

input C

A BA B

A B C A B C

atau

TrueFalseA > C

print AB > CA B C

PastiKesini

Tidak Pernahkesini

B > C pasti FalseMembandingkan sesuatu yang pasti

False atau True adalah pekerjaan yang tidak bermanfaat

Pasti False

A B CMenggunakan 3 variabel

START

input

input

A

B

A > BFalse True

input C

A BA B

A B C A B C

atau

TrueFalseA > C

print Aprint C

A B C

START

input

input

A

B

A > BFalse True

input C

A BA B

A B C A B C

atau

TrueFalseA > C

print Aprint C

A B C

START

input

input

A

B

A > BFalse True

input C

A BA B

A B C A B C

atau

TrueFalseA > C

print Aprint C

Mencetak atau

masih membandingkan

?

START

input

input

A

B

A > BFalse True

input C

A BA B

A B C A B C

atau

TrueFalseA > C

print Aprint C

TrueFalse?

A > CC > AB > CC > B

START

input

input

A

B

A > BFalse True

input C

A BA B

A B C A B C

atau

TrueFalseA > C

print Aprint C

TrueFalseB > C

B yang besar, jadi B yang

dibandingkan dengan C

START

input

input

A

B

A > BFalse True

input C

A BA B

A B C A B C

atau

TrueFalseA > C

print Aprint C

TrueFalseB > C

print B

START

input

input

A

B

A > BFalse True

input C

A BA B

A B C A B C

atau

TrueFalseA > C

print Aprint C

TrueFalseB > C

print BA B C

START

input

input

A

B

A > BFalse True

input C

A BA B

A B C A B C

atau

TrueFalseA > C

print Aprint C

TrueFalseB > C

print Bprint CA B C

START

input

input

A

B

A > BFalse True

input C

A BA B

A B C A B C

atau

TrueFalseA > C

print Aprint C

TrueFalseB > C

print Bprint CA B C

START

input

input f

A

B

A > BFalse True

input C

A BA B

A B C A B C

atau

TrueFalseA > C

print Aprint C

TrueFalseB > C

print Bprint CA B C

A > BFalse True A BA B

A B C A B C

atau

TrueFalseA > C

print Aprint C

TrueFalseB > C

print Bprint C

A B C A B CA B C A B C

atau

#include <iostream.h>void main(){ int A,B,C; cin >> A; cin >> B); cin >> C); if(A > B) { if(A > C) cout << A ; else cout << C ; }

else { if(B > C) cout << B ; else cout << C ; }}

Cara-1START

input

input

print

END

A

B

print

A > Bfalse true

input C

A > CB > C

printprint

truetruefalse false

ACBC

A B CMenggunakan 3 variabel

#include <iostream.h>void main(){ int A,B,C; cin >> A ; cin >> B ; cin >> C ; if (A > B) if (A > C) cout << A ; else cout << C ; else if (B > C) cout << B ; else cout << C);}

Karena setiap blok instruksi hanya terdiri dari satu instruksi, maka program diatas dapat ditulis menjadi :

A B C

Menggunakan 3 variabel

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 FALSE

maka A sudah 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;}

BA

175

17KEYBOARD

SCREEN

cin

MEMORY

cout

5178

8

C

Cara-6 Berpikir lebih praktis, tapi computer-time tidak efisien

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

17KEYBOARD

SCREEN

scanf

MEMORY

printf

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

printfprintf

B>C

BC

B>D

printf

C>D

DDprintf

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

17MAX

A

5

17KEYBOARD

SCREENMEMORY

517812

5

MAX

Cara ini hanya menggunakan 2 variabel.Variabel A khusus menerima inputVariabel MAX khusus menampung nilai terbesar

1529.

A

17

17KEYBOARD

SCREENMEMORY

517812

17

MAX

Cara ini hanya menggunakan 2 variabel.Variabel A khusus menerima inputVariabel MAX khusus menampung nilai terbesar

1539.

A

8

17KEYBOARD

SCREENMEMORY

517812

17

MAX

Cara ini hanya menggunakan 2 variabel.Variabel A khusus menerima inputVariabel MAX khusus menampung nilai terbesar

1549.

A

12

17KEYBOARD

SCREENMEMORY

517812

17

MAX

Cara ini hanya menggunakan 2 variabel.Variabel A khusus menerima inputVariabel MAX khusus menampung nilai terbesar

1559.

#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

input

print

A

A

MAX

A> MAX

MAX = A

MAX = A

A>MAX

MAX = A

A>MAX

MAX = A

input A

input A

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

salah 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

1599.

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

1639.

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 17atau 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; } } } } }