Introduction 03 using to Algorithm C / C++ teknik dasar Algoritma
Soal-8 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 5 7 cin 7 5 cout A B
dan konsep atau draf secara manual sudah dibuat algoritma dapat ditulis setelah peroalannya sudah dipahami dan konsep atau draf secara manual sudah dibuat
Misal yang diinput nilai : 7 dan 5 Draf KONSEP penyelesaian MENCARI YANG TERBESAR Misal yang diinput nilai : 7 dan 5 7 + 5 = 12 14 / 2 = 7 12 + 2 = 14 | 2 | = 2 7 – 5 = 2 7 terbesar Misal yang diinput nilai : 4 dan 9 4 + 9 = 13 18 / 2 = 9 13 + 5 = 18 | - 5 | = 5 4 – 9 = - 5 9 terbesar
Misal yang diinput nilai : 7 dan 5 Draf KONSEP penyelesaian MENCARI YANG TERKECIL Misal yang diinput nilai : 7 dan 5 7 + 5 = 12 10 / 2 = 5 12 - 2 = 10 | 2 | = 2 7 – 5 = 2 5 terkecil Misal yang diinput nilai : 4 dan 9 4 + 9 = 13 8 / 2 = 4 13 - 5 = 8 | - 5 | = 5 4 – 9 = - 5 4 terkecil
Draf MENCARI YANG TERBESAR 5 A 9 B 14 - 4 4 C D E C=A + B D=A - B KONSEP penyelesaian MENCARI YANG TERBESAR 5 A 9 B 14 - 4 4 C D E C=A + B D=A - B E = abs(D) 18 F F = C+E G G = F / 2 terbesar 1 4 2 3 5 1 2 3 4 5 C = A + B D = A – B E = abs( D ) F = C + E G = F / 2
copy dari halaman sebelumnya C F 14 18 5 copy dari halaman sebelumnya 1 2 3 4 5 C = A + B D = A – B E = abs( D ) F = C + E G = F / 2 A C C = A + B F 14 F = C+E 1 18 4 D = A - B E = abs(D) 4 - 4 G = F / 2 5 2 3 D E 9 G 9 B disingkat terbesar 5 A C 1 2 3 C = A + B E = abs( A-B ) G = (C+E) / 2 C = A + B 14 G 1 G = ( C+E ) / 2 9 3 E = abs( A – B ) 4 terbesar 2 E 9 B
copy dari halaman sebelumnya 5 C C = A + B 14 G G = ( C+E ) / 2 9 E = abs( A – B ) 4 terbesar E 1 2 3 C = A + B E = abs( A-B ) G = (C+E) / 2 9 B disingkat 5 A G G = ( (A+B) + abs( A – B ) ) / 2 9 terbesar 9 1 G = ( (A+B) + abs( A – B ) ) / 2 B
Program memilih dan mencetak nilai yang terbesar Algoritma yang ditulis dalam suatu Bahasa Pemrograman disebut PROGRAM memilih dan mencetak nilai yang terbesar
Karena menggunakan fungsi matematik abs( ) 5 1 2 3 4 5 C = A + B D = A – B E = abs( D ) F = C + E G = F / 2 A C C = A + B F 14 F = C+E 1 18 4 D = A - B E = abs(D) 4 - 4 G = F / 2 5 2 3 D E 9 G 9 B #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; } terbesar Karena menggunakan fungsi matematik abs( ) maka file math.h yang mengandung fungsi abs( ) harus di-include-kan
5 C G 14 9 4 E 9 A C = A + B 1 G = ( C+E ) / 2 3 E = abs( A – B ) terbesar 2 E 1 2 3 C = A + B E = abs( A-B ) G = (C+E) / 2 9 B #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; }
5 G 9 9 cout << G; A G = ( (A+B) + abs( A – B ) ) / 2 terbesar #include <iostream.h> #include<math.h> void main() { int A,B,G; cin >> A >> B; G = ( (A+B) + abs( A – B ) ) / 2; cout << G; }
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; }
Algoritma menggunakan Control Statement if
Soal-9 Memilih bilangan terbesar atau terkecil dari dua buah bilangan menggunakan Control statement if
Control Statement if
Syntax: if( ) condition
if( condition ) Syntax Penulisan if statement: 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 == diatas disebut Relational Operator (Operator Hubungan)
== Equal To (Sama Dengan) > Greater Than (Lebih Besar Dari) Relational Operator yang 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)
pemahaman 5 == 2 contoh : if( 5 == 2 ) 5 > 2 5 < 2 5 >= 2 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 pemahaman
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
5 7 9 7 7 7 A B A B A B T = TRUE F = FALSE akan bernilai akan bernilai condition condition condition (A == B) (A > B) (A < B) (A >= B) (A <= B) (A != B) F T (A == B) (A > B) (A < B) (A >= B) (A <= B) (A != B) F T (A == B) (A > B) (A < B) (A >= B) (A <= B) (A != B) T F T = TRUE F = FALSE
Bentuk Umum dan Cara Kerja Control Statement if
Bentuk Umum : IF-THEN Bentuk Umum - 1 : Bentuk Umum - 2 : IF-THEN-ELSE
Bentuk Umum - 1 IF-THEN Bentuk :
- Cara-Kerja Bentuk Umum - 1 biasa disebut : Bentuk IF-THEN Flowchart if ( cond ) { cond TRUE - statements-true - statements- true } - next instruction next instruction - 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
- Flowchart if ( cond ) { - cond } Penulisan PROGRAM TRUE cond - TRUE - Statements true } - next instruction Penulisan PROGRAM Terikat aturan / ketentuan Penggambaran FLOWCHART bebas
Bentuk Umum - 2 IF-THEN-ELSE Bentuk :
- cond = condition Bentuk Umum - 2 biasa disebut : Bentuk IF-THEN-ELSE Flowchart if ( cond ) { - statements-true FALSE cond TRUE } else { - statements- false - statements- true - statements-false } next instruction - - next instruction cond = condition
Cara-Kerja Flowchart if ( cond ) { - } cond else - Bila nilai cond statements-true statements-false next instruction Flowchart FALSE cond TRUE - statements- false - statements- true next instruction - Cara-Kerja 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
Penulisan PROGRAM terikat aturan, Penggambaran FLOWCHART bebas. cond FALSE TRUE cond FALSE TRUE - - - - false true false true next instruction next instruction - -
Penulisan / Penggunaan Beberapa contoh Penulisan / Penggunaan if statement
cout << “\nSelesai” ; cout << “\nSelesai” ; Beberapa contoh penulisan / penggunaan if(cond) bentuk IF-THEN-ELSE int A=5, B=7; if(A<B) { cout << “Jakarta” ; } else cout << “Bandung” ; cout << “\nSelesai” ; 1. 2. int A=5, B=7; if(A<B) {cout << “Jakarta” ; } else {cout << “Bandung” ; cout << “\nSelesai” ; Akan tercetak : Jakarta Selesai Akan tercetak : Jakarta Selesai 3. int A=5, B=7; if(A<B) { cout << “Jakarta” ; } else { cout << “Bandung” ; } cout << “\nSelesai”); int A=5, B=7; if(A<B){cout << “Jakarta” ; } else {cout << “Bandung” ;} cout << “\nSelesai” ; 4. Akan tercetak : Jakarta Selesai Akan tercetak : Jakarta Selesai
Soal-9 Soal Susun program dalam bahasa C++ untuk menginput 2 (dua) buah bilangan bulat, kemudian mencetak salah satu bilangan yang nilainya terbesar. 9
5 5 2 A B Soal-9 Susun program dalam bahasa C++ untuk menginput 2 (dua) buah bilangan bulat, kemudian mencetak salah satu bilangan yang nilainya terbesar. MISAL NILAI YANG DIINPUT ADALAH 5 DAN 2 5 2 5 cin 5 2 cout A B
Algoritma Dasar Read(A) Read(B) IF A > B then Write(A) Else START Algoritma Dasar Read(A) Read(B) IF A > B then Write(A) Else Write(B) End If Read A Read B False A > B True Write write B A END
#include <iostream.h> void main() { int A, B; cin >> A; Algoritma dalam Bahasa C++ START Cara-1 input #include <iostream.h> void main() { int A, B; cin >> A; cin >> B; if (A > B) { cout << A; } else { cout << B; A input B A B A B False A > B True print ptint B A END
START cin cin A > B cout cout END FLOWCHART Cara-1 START cin A cin B A B A B False A > B True cout cout B A END
#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 << 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 if (B > A) cout << …... ; else if (B < A) cout << …... ; else
if (A > B) cout << A ; else cout << B ; if (A < B) TEKNIK DASAR if (A < B) cout << B ; else cout << A ; if (B > A) cout << B ; else cout << A ; if (B < A) cout << A ; else cout << B ;
Cara-2 TEKNIK DASAR #include <iostream.h> void main() input #include <iostream.h> void main() { int A, B, MAX; cin >> A; cin >> B; if (A > B) { MAX = A; } else { MAX = B; } cout << MAX; } A input B false A > B true MAX = B MAX = A print MAX
5 2 5 2 5 A B 5 Dengan cara menyimpan bilangan yang terbesar kedalam sebuah variabel misal namanya MAX 5 2 5 2 cin 5 A B 5 cout KEYBOARD MAX SCREEN MEMORY
Cara-3 TEKNIK DASAR #include <iostream.h> void main() { int A, B, MAX; cin >> A; cin >> B; MAX = B; if (A > B) { MAX = A; } cout << MAX; } input A input B MAX = B A > B true MAX = A print MAX
Cara-4 TEKNIK DASAR #include <iostream.h> void main() START TEKNIK DASAR Cara-4 input A #include <iostream.h> void main() { int A, B, MAX; cin >> A; MAX = A cin >> B; if (B > MAX) { MAX = B; } cout << MAX; } MAX = A input B B>MAX True False MAX = B print MAX END
Cara-4 TEKNIK DASAR #include <iostream.h> void main() START input print END A MAX A>MAX False True MAX = A TEKNIK DASAR #include <iostream.h> void main() { int A, MAX; cin >> A; MAX = A if (A > MAX) { MAX = A; } cout << MAX; } Teknik inilah yang mendasari algoritma untuk mencari nilai yang terbesar atau terkecil dari sejumlah nilai yang diinput A MAX Hanya ada 2 variabel. A spesial menampung input, MAX spesial menampung nilai terbesar
misal nilai yang diinput adalah 5 dan 2 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 5 2 5 2 5 5
misal nilai yang diinput adalah 5 dan 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; A MAX A 5 5 5 9 5 9 9 9
Soal-10 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 10
Cara-1
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. 10 5 8 17 17 cin cout 5 17 8 A B C KEYBOARD SCREEN MEMORY
5 8 17 17 cin cout 17 5 8 A B C KEYBOARD SCREEN MEMORY
5 8 17 17 cin cout 5 8 17 A B C KEYBOARD SCREEN MEMORY
? ? Apa yang dibandingkan untuk pertama kali : A dengan B B dengan A START input A B ? False True C A B C Menggunakan 3 variabel Apa yang dibandingkan untuk pertama kali : A dengan B B dengan A A dengan C C dengan A B dengan C C dengan B ?
? ? input A > B A < B A > C A < C B > A B < A START input A B ? False True C A B C Menggunakan 3 variabel A > B A < B A > C A < C B > A B < A B > C B < C C > A C < A C > B C < B Pilih yang mudah ?
input START A B A > B False True C A B C Menggunakan 3 variabel A B
? input START A B A > B False True C A B C Menggunakan 3 variabel ? Mencetak atau masih membandingkan ?
? ? ? input input input START A A B C Menggunakan 3 variabel B C False True A B A > B False ? True Pilih yang mana ? A > C C > A B > C C > B ?
? ? input input input START A A B C Menggunakan 3 variabel B C False True A B A > B False ? True Pilih yang mana saja tidak mendatangkan error. Hanya saja secara logika, mana yang tepat untuk dipilih A > C C > A B > C C > B ?
? ? input input START input A Dari ilustrasi ini terlihat jelas bahwa A yang harus dibandingkan dengan C untuk mencari nilai yang terbesar A B C Menggunakan 3 variabel input B input C A B False A B A B A > B True False ? True A > C C > A B > C C > B ?
? input input input START A A B C Menggunakan 3 variabel B C False True False A > C True ? Mencetak atau masih membandingkan ?
? input input input START A A B C Menggunakan 3 variabel B C False Kondisi bila A > C true A B False A > B True A B False A > C True atau A B C A B C ? Mencetak atau masih membandingkan ?
Bisakah diambil kesimpulan bahwa A yang terbesar START input A A B C Menggunakan 3 variabel input B input C Kondisi bila A > C true A B False A > B True A B False A > C True atau A B C A B C ? Bisakah diambil kesimpulan bahwa A yang terbesar ?
? input input input START A A B C Menggunakan 3 variabel B C False atau C A B False A B A > B True False A > C True ?
input input input START A A B C Menggunakan 3 variabel B C False Kondisi bila A > C true A B False A > B True A B False A > C True atau A B C A B C print A
? input input input START A A B C Menggunakan 3 variabel B C False True A B A > B False A > C True print ? A
? input input input START A A B C Menggunakan 3 variabel B C False True A B False A > C True print ? A Atau Dapatkah diambil kesimpulan bahwa C adalah yang terbesar Perlukah membandingkan B dengan C disini ?
? input input input START A A B C Menggunakan 3 variabel B C False True A B A > B Kondisi bila A > C False False A > C True Bila A > C False artinya A < C Atau C > A A B C print ? A Atau Dapatkah diambil kesimpulan bahwa C adalah yang terbesar Perlukah membandingkan B dengan C disini ?
? input input input START A A B C Menggunakan 3 variabel B C False True False A > C True A B C print ? A Atau Dapatkah diambil kesimpulan bahwa C adalah yang terbesar Perlukah membandingkan B dengan C disini ?
? input input input START A A B C Menggunakan 3 variabel B C False atau A B False True A B A > B False A > C True A B C print ? A Atau Dapatkah diambil kesimpulan bahwa C adalah yang terbesar Perlukah membandingkan B dengan C disini ?
input input START A A B C Menggunakan 3 variabel scanf B C False True atau C A B False True A B A > B A B C False A > C True print C print A
input input input START A A B C Menggunakan 3 variabel B C False atau C A B False A > B True A B A B C False A > C True B > C print A Pasti Kesini B > C pasti False Membandingkan sesuatu yang pasti False atau True adalah pekerjaan yang tidak bermanfaat Pasti False Tidak Pernah kesini
input input input START A A B C Menggunakan 3 variabel B C False True atau C A B False True A B A > B A B C False A > C True print C print A
input input input START A B C False True A > B False A > C True atau C A B False True A B A > B A B C False A > C True print C print A
? input input input START A B C False True A > B False A > C atau C A B False True A B A > B False A > C True ? print C print A Mencetak atau masih membandingkan ?
? ? input input input START A B C False A > B True False True False atau C A B False A B A > B True False ? True False A > C True print C print A > C C > A B > C C > B A ?
B yang besar, jadi B yang dibandingkan dengan C START input A input B input A B C atau C B yang besar, jadi B yang dibandingkan dengan C A B False A B A > B True False B > C True False A > C True print C print A ?
input input input START A B C False A > B True False B > C True atau C A B False A B A > B True False B > C True False A > C True print print C print B A
? input input input START A B C False A > B True False B > C atau C A B False A B A > B True False B > C True False A > C True A B C print print C print B A ?
input input input START A B C False A > B True False B > C True atau C A B False A B A > B True False B > C True False A > C True A B C print C print print C print B A
input input input START A B C False A > B True False B > C True atau C A B False A B A > B True False B > C True False A > C True A B C print C print print C print B A
input input f input START A B C False A > B True False B > C atau C A B False A B A > B True False B > C True False A > C True A B C print C print print C print B A
A > B B > C A > C print print print print False A B A > B True False B > C True False A > C True print C print print B C print A atau atau A B C A B C A B C A B C A B C A B C
#include <iostream.h> void main() { int A,B,C; cin >> A; Cara-1 START #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 ; } if(B > C) cout << B ; cout << C ; input A input B input C false true A > B false true false true B > C A > C print print print print C B C A A B C END Menggunakan 3 variabel
Karena setiap blok instruksi hanya terdiri dari satu instruksi, maka program diatas dapat ditulis menjadi : #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 ; if (B > C) cout << B ; cout << C); } A B C Menggunakan 3 variabel
Latihan Membaca Flowchart
5 7 9 5 9 7 7 5 9 7 9 5 9 5 7 9 7 5 Menggunakan 3 variabel A B C Ada 6 kemungkinan variasi ketiga buah nilai 7 5 9 7 9 5 9 5 7 9 7 5
1 START 5 7 9 A B C input A Soal input B input C False A > B True False True False True B > C A > C 1 2 3 4 Ada 4 titik , , dan Untuk data diatas, maka flow akan menuju titik . . . . . ? 1 2 3 4
START 5 7 9 A B C input A Jawab input B input C False A > B True 5 7 False True False True B > C A > C 1 2 3 4 7 9 Untuk data diatas, maka flow akan menuju atau berakhir pada titik : 1
2 START 5 9 7 A B C input A Soal input B input C False A > B True False True False True B > C A > C 1 2 3 4 Ada 4 titik , , dan Untuk data diatas, maka flow akan menuju titik . . . . . ? 1 2 3 4
START 5 9 7 A B C input A Jawab input B input C False A > B True 5 9 False True False True B > C A > C 1 2 3 4 9 7 Untuk data diatas, maka flow akan menuju atau berakhir pada titik : 2
3 START 7 5 9 A B C input A Soal input B input C False A > B True False True False True B > C A > C 1 2 3 4 Ada 4 titik , , dan Untuk data diatas, maka flow akan menuju titik . . . . . ? 1 2 3 4
START 7 5 9 A B C input A Jawab input B input C False A > B True 7 5 False True False True B > C A > C 1 2 3 4 7 9 Untuk data diatas, maka flow akan menuju atau berakhir pada titik : 3
4 START 7 9 5 A B C input A Soal input B input C False A > B True False True False True B > C A > C 1 2 3 4 Ada 4 titik , , dan Untuk data diatas, maka flow akan menuju titik . . . . . ? 1 2 3 4
START 7 9 5 A B C input A Jawab input B input C False A > B True 7 9 False True False True B > C A > C 1 2 3 4 9 5 Untuk data diatas, maka flow akan menuju atau berakhir pada titik : 2
5 START 9 5 7 A B C input A Soal input B input C False A > B True False True False True B > C A > C 1 2 3 4 Ada 4 titik , , dan Untuk data diatas, maka flow akan menuju titik . . . . . ? 1 2 3 4
START 9 5 7 A B C input A Jawab input B input C False A > B True 9 5 False True False True B > C A > C 1 2 3 4 9 7 Untuk data diatas, maka flow akan menuju atau berakhir pada titik : 4
6 START 9 7 5 A B C input A Soal input B input C False A > B True False True False True B > C A > C 1 2 3 4 Ada 4 titik , , dan Untuk data diatas, maka flow akan menuju titik . . . . . ? 1 2 3 4
START 9 7 5 A B C input A Jawab input B input C False A > B True 9 7 False True False True B > C A > C 1 2 3 4 9 5 Untuk data diatas, maka flow akan menuju atau berakhir pada titik : 4
Cara-2
Cara-2 #include <iostream.h> void main() { int A,B,C, MAX; START #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; } input A, B, C MAX = A B > MAX true MAX = B false C > MAX true MAX = C false print MAX A B C MAX Menggunakan 4 variabel END
Cara-3
#include <iostream.h> void main() { int A,B,C, MAX; Cara-3 #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 A MAX = A input B true B > MAX false MAX = B input C true C > MAX false MAX = C MAX A B C MAX printf
Cara-4
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 17 A 17 cout KEYBOARD MAX MEMORY SCREEN
#include <iostream.h> void main() { int A, MAX; cin >> A; Cara-4 input A #include <iostream.h> void main() { int A, MAX; cin >> A; MAX = A; if (A > MAX) cout << MAX; } MAX = A scanf A A > MAX true false MAX = A input A true A > MAX false MAX = A Algoritma ini nanti yang menjadi dasar algoritma pencarian bilangan terbesar atau terkecil dari sejumlah bilangan yang ada atau bilangan yang diinput. printf MAX
Cara-5
Cara-5 Menggunakan multi conditions dengan logical operator AND 17 8 cin 5 17 8 17 A B C cout KEYBOARD MEMORY Dengan menggunakan Logical Operator AND (&&) SCREEN #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; cout << C; }
#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; cout << C; } START input A,B,C A>B && A>C true print B>A && B>C A false true print print C B 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 END Ini sebenarnya bisa diganti cukup dengan : B > C
#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; cout << C; } START scanf A,B,C A>B && A>C true printf B>C A false true printf printf C B END
Cara-6
Cara-6 Berpikir lebih praktis, tapi computer-time tidak efisien 17 5 17 8 cin 5 17 8 cout 17 A B C KEYBOARD MEMORY SCREEN #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; }
#include <iostream.h> void main() { int A,B,C; START #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; } input A,B,C A>B && A>C true print A B>A && B>C true print B C>A && C>B true print C END
Soal-11 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. Soal 11
Jawab-2 Cara-1 Menggunakan 5 variabel, 4 variabel untuk input. 1 variabel untuk MAX 5 17 8 12 scanf 5 17 8 12 17 A B C D printf KEYBOARD MEMORY SCREEN Bila bilangan yang diinput adalah 5, 17, 8 dan 12, maka tentunya akan tercetak 17
FLOWCHART Cara-1 START input A,B,C,D
5 17 8 12 A B C D START inputf A, B,C, D A>B B>C A>C C>D B>D C>D A>D print D print C print D print B print D print C print D print A END
bersambung #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; } {if(C > D) cout << C; else {if (B > C) {if(B > D) cout << B; cout << D; } {if(C > D) cout << C; bersambung
#include <iostream.h> void main() { int A,B,C,D; START #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; } {if(C > D) cout << C; - input A, B,C, D A>B A>C C>D A>D print D print C print D print A
else - else {if (B > C) {if(B > D) cout << B; cout << D; } {if(C > D) cout << C; cout << D ; else A>B B>C C>D B>D printf D printf C printf D printf B
Latihan Membaca Flowchart
Untuk nilai yang diinput seperti diatas, START 5 8 12 17 A B C D input A, B,C, D A>B B>C A>C C>D B>D C>D A>D 1 2 3 4 5 6 7 8 Untuk nilai yang diinput seperti diatas, Maka flow akan menuju nomor : ………
Soal-12 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. Soal 12
Untuk dapat menyelesaikan soal ini, perhatikan kembali soal no-11 dikerjakan dengan cara lain
Sebutkan nilai terbesar dari beberapa nilai yang diperlihatkan 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 25
Konsep : Selalu menyimpan nilai terbesar dalam ingatan
5 17 8 12 17 Jawab Soal-11 Cara-2 Menggunakan 2 variabel, variabel : A khusus untuk menampung input variabel : B khusus untuk menampung nilai terbesar 5 17 8 12 cin A 17 cout MAX A MAX KEYBOARD MEMORY SCREEN Bila bilangan yang diinput adalah 5, 17, 8 dan 12, maka tentunya akan tercetak 17
5 5 17 8 12 5 A Cara ini hanya menggunakan 2 variabel. 9. 152 5 17 8 12 5 17 A 5 KEYBOARD MAX SCREEN MEMORY Cara ini hanya menggunakan 2 variabel. Variabel A khusus menerima input Variabel MAX khusus menampung nilai terbesar
5 17 8 12 17 A 17 Cara ini hanya menggunakan 2 variabel. 9. 153 5 17 8 12 17 17 A 17 KEYBOARD MAX SCREEN MEMORY Cara ini hanya menggunakan 2 variabel. Variabel A khusus menerima input Variabel MAX khusus menampung nilai terbesar
5 17 8 12 8 A 17 Cara ini hanya menggunakan 2 variabel. 9. 154 5 17 8 12 8 17 A 17 KEYBOARD MAX SCREEN MEMORY Cara ini hanya menggunakan 2 variabel. Variabel A khusus menerima input Variabel MAX khusus menampung nilai terbesar
5 17 8 12 12 A 17 Cara ini hanya menggunakan 2 variabel. 9. 155 5 17 8 12 12 17 A 17 KEYBOARD MAX SCREEN MEMORY Cara ini hanya menggunakan 2 variabel. Variabel A khusus menerima input Variabel MAX khusus menampung nilai terbesar
#include <iostream.h> void main() { int A, MAX; cin >> A; MAX = A; if (A > MAX) cout << MAX; } input A MAX = A input A A> MAX MAX = A input A A>MAX MAX = A input A A>MAX MAX = A print MAX
Menginput 4 buah bilangan dan mencetak salah satu bilangan yang nilainya terbesar #include <iostream.h> void main() { int A, i, MAX; cin >> A; MAX = A; for (i=1; i <= 3; i=i+1) if (A > MAX) } cout << MAX; 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) { if (A > MAX) i = i + 1; } cout << MAX; Instruksi while belum diterangkan penggunaannya disisni hanya dipinjam satu model penggunaan
KEMBALI KE- Soal-12 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. Soal 9. 159 12
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 <= ...; i=i+1) if (A > MAX) } 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) if (A > MAX) } cout << MAX;
Soal-13 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. Soal 9. 163 13
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 5 17 8 A B C KEYBOARD print 5 8 17
cara-1 AB , A disebelah kiri B maksudnya A lebih kecil dati B FLOWCHART cara-1 START input A,B,C BA AB A < B 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 BA AB A < B ?
FLOWCHART cara-1 START input A,B,C BA AB A < B B < C
FLOWCHART cara-1 START input A,B,C BA AB A < B ABC B < C
input A,B,C BA AB A < B B < C ABC A,B,C
input A,B,C BA AB A < B C AB B < C 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 A,B,C BA AB A < B C AB B < C ABC ? A,B,C
input A,B,C BA AB A < B C AB B < C ABC A < C A,B,C
input A,B,C BA AB A < B C AB B < C ABC ? A < C A,B,C
input A,B,C BA AB A < B C AB B < C ABC A < C ACB A,B,C
input A,B,C BA AB A < B C AB B < C ABC A < C ACB A,B,C A,C,B
? input A,B,C BA AB A < B C AB B < C ABC A < C ACB A,B,C
input A,B,C BA AB A < B C AB B < C ABC CAB A < C ACB A,B,C A,C,B
input A,B,C BA AB A < B C AB B < C ABC CAB A < C ACB A,B,C C,A,B A,C,B
input A,B,C BA AB A < B C AB B < C ABC CAB A < C ACB A,B,C C,A,B A,C,B
input A,B,C BA AB A < B C AB B < C ABC CAB A < C ACB A,B,C C,A,B A,C,B
input A,B,C BA AB A < B C AB A < C BAC B < C ABC CAB A < C ACB A,B,C C,A,B A,C,B
input A,B,C BA AB A < B C AB A < C BAC B < C ABC CAB B,A,C A < C ACB A,B,C C,A,B A,C,B
START input A,B,C BA AB A < B C BA C AB A < C BAC B < C ABC CAB B,A,C A < C ACB A,B,C C,A,B A,C,B
? START input A,B,C BA AB A < B C BA C AB A < C BAC B < C ABC
START input A,B,C BA AB A < B C BA C AB A < C BAC B < C ABC CAB B < C B,A,C A < C ACB A,B,C C,A,B A,C,B
START input A,B,C BA AB A < B C BA C AB A < C BAC B < C ABC BCA CBA CAB B < C B,A,C A < C ACB A,B,C C,A,B A,C,B
START input A,B,C BA AB A < B C BA C AB A < C BAC B < C ABC BCA CBA CAB B < C B,A,C A < C ACB A,B,C B,C,A C,A,B A,C,B
START input A,B,C BA AB A < B C BA C AB A < C BAC B < C ABC BCA CBA CAB B < C B,A,C A < C ACB A,B,C C,A,B B,C,A C,A,B A,C,B
START input A,B,C BA AB A < B C BA C AB A < C BAC B < C ABC BCA CBA CAB B < C B,A,C A < C ACB A,B,C C,A,B B,C,A C,A,B A,C,B
START input A,B,C BA AB A < B C BA C AB A < C BAC B < C ABC BCA CBA CAB B < C B,A,C A < C ACB A,B,C C,A,B B,C,A C,A,B A,C,B
START input A,B,C BA AB A < B C BA C AB A < C BAC B < C ABC BCA CBA CAB B < C B,A,C A < C ACB A,B,C C,A,B B,C,A C,A,B A,C,B END
START input A,B,C BA AB A < B C BA C AB A < C BAC B < C ABC BCA CBA CAB B < C B,A,C A < C ACB A,B,C C,A,B B,C,A C,A,B A,C,B END
#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; cout << C << “ “ << A << “ “ << B; } cout << B << “ “ << A << “ “ << C; { if(B<C) cout << B << “ “ << C << “ “ << A; cout << C << “ “ << B << “ “ << A; START input A,B,C END A,C,B A < B B < C A < C C,A,B AB ABC C ACB CAB B,A,C B,C,A BAC BA BCA CBA
cout << A << “ “ << B << “ “ << C; else if(A<B) { if(B<C) cout << A << “ “ << B << “ “ << C; else {if(A<C) cout << A << “ “ << C << “ “ << B; cout << C << “ “ << A << “ “ << B; } A < B AB C AB B < C ABC A < C A,B,C CAB ACB C,A,B A,C,B
cout << B << “ “ << A << “ “ << C; } else { if(A<C) cout << B << “ “ << A << “ “ << C; {if(B<C) cout << B << “ “ << C << “ “ << A; cout << C << “ “ << B << “ “ << A; C BA A < C BAC CBA B < C BCA B,A,C 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 print END A,B,C A<B & B<C C,A,B A,C,B B,A,C 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; {if(B<A && A<C) cout << B << “ “ << A << “ “ << C; {if(B<C && C<A) cout << B << “ “ << C << “ “ << A; {if(C<A && A<B) cout << C << “ “ << A << “ “ << B; cout << C << “ “ << B << “ “ << A; }
seleseai Tahap-3