Nested if 164.

Slides:



Advertisements
Presentasi serupa
Introduction to Algorithm evaluation Soal Matrikulasi Buka Buku
Advertisements

CONDITION I (Tunggal – Ganda) IF - Then
Dasar Pemrograman Komputer
Soal-Soal Latihan Mandiri
Soal-2. Susun program untuk menginput empat (4) buah bilangan bulat kemudian mencetak salah satu bilangan yang nilainya terbesar: 180.
09 Control Statement if 143.
STATEMENT KONDISI Adalah perintah yang memungkinkan
Algoritma dan Struktur Data
Struktur Kendali Proses (Seleksi)
3 Variabel, Konstanta Tipe Data dan dalam Bahasa C/C++ Java dan Bab
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 DPK Issa Arwani, S.kom, M.sc.
Nested If = if bersarang = if bertingkat Operator logika
SELECTION STATEMEN KENDALI / PERCABANGAN
SELECTION (STATEMEN KENDALI / PERCABANGAN)
Algorithm and Data Structures.
Struktur Kendali dan Repetisi
Algoritma (Struktur, Tipe Data, Input/Output)
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 REVIEW Issa Arwani, S.kom, M.sc.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 DPK Pertemuan -- Issa Arwani, S.kom, M.sc. PROGRAM STUDI.
Algoritma dan Struktur Data
Chapter 3 PEMROGRAMAN TERSTRUKTUR
{Pertemuan 4 Struktur Kondisi IF}
Percabangan Dosen Pengampu: M. Zidny Naf’an, M.Kom.
Bahasa Pemrogrman Dasar Pertemuan 4
ANALISA DAN DESAIN ALGORITMA
STRUKTUR DASAR ALGORITMA
{Pertemuan 4 Struktur Kondisi IF}
{Pertemuan 6 Struktur Perulangan}
Algoritma dan Pemrograman STRUKTUR PEMILIHAN (SELECTION) lanjutan
IF … THEN …, IF … THEN … ELSE … CASE … OF …
PROGRAM STUDI SISTEM INFORMASI UNIVERSITAS KOMPUTER INDONESIA
Teknik Pemrograman oleh: Yohanes Sugiarto.
Pertemuan 4 PROGRAMMING LANGUAGE.
{Pertemuan 4 Struktur Kondisi IF}
PERCABANGAN.
Pencabangan Bersyarat
Algoritme dan Pemrograman
03.8 Soal-Soal Pekerjaan Rumah.
04.2 Hari-4.
04.1 Hari-4.
Minggu ke-10 Imam Fahrur Rozi
Introduction using 03b to Algorithm C / C++ teknik dasar Algoritma.
Introduction 03 using to Algorithm C / C++ teknik dasar Algoritma.
Pseudocode – Tipe Data, Variabel, dan Operator
07.3 Hari-7.
Contoh Aplikasi Sederhana
Algoritma dan Pemrograman
Algoritma dan Pemrograman STRUKTUR PEMILIHAN (SELECTION) lanjutan
Remainder Senin depan mulai UTS Praktikum
Contoh Aplikasi Sederhana
Pemrograman Terstruktur
02.1 Hari-2.
291.
04.2 Hari-4.
VARIABEL DAN TIPE DATA Erizal, S.Si, M.Kom Sistem Informasi
JENIS DAN SIMBOL FLOWCHART PRODI MIK | FAKULTAS ILMU-ILMU KESEHATAN
09.3 Hari-9.
SELEKSI ALGORITMA & STRUKTUR DATA I PROGRAM STUDI SISTEM INFORMASI
STRUKTUR DATA PERTEMUAN III.
mencetak Total kedua bilangan tersebut
03.7 Latihan Membaca Flowchart.
Bab 2 Struktur Dasar.
UJIAN TERDIRI ATAS 50 SOAL
Algoritma dan Pemrograman STRUKTUR PEMILIHAN (SELECTION) lanjutan
Arithmetic Expression
Bab 08 Menghitung Total Data yang Diinput Dari Keyboard
Introduction 04 to Algorithm LOOP sebagai pembentuk kerangka dasar
Soal-soal.
PERCABANGAN.
CONDITION I (Tunggal – Ganda) IF - Then. Seleksi kondisi adalah proses penentuan langkah berikutnya berdasarkan proses yang terjadi sebelumnya. Bila kondisi.
Transcript presentasi:

Nested if 164

9.4. Nested IF 9. 2 Perhatikan kembali struktur IF-THEN-ELSE dan IF-THEN Statement seperti yang sudah diterangkan sebagai berikut : Cond Cond FALSE TRUE TRUE S2 S1 FALSE S1 Struktur IF-THEN-ELSE Struktur IF-THEN Dari ilustrasi struktur diatas, S adalah satu atau sekelompok statement. Didalam kelompok S mungkin terdapat statement IF sehingga terjadi IF secara berjenjang atau secara tersarang yang biasa disebut Nested If (nest = sarang) 164

9.4. Nested IF if (cond1) {if (cond2) { - - S1 - } else { - - S2 S2 S1 3 Dari ilustrasi struktur diatas, S adalah satu atau sekelompok statement. Didalam kelompok S mungkin terdapat statement IF sehingga terjadi IF secara berjenjang atau secara tersarang yang biasa disebut Nested If (nest = sarang) Contoh : Cond1 False True 1) if (cond1) {if (cond2) { - - S1 - } else { - - S2 Cond2 True S2 S1 False 164

9.4. Nested IF S1 S3 S2 2) if (cond1) {if (cond2) {- Cond1 - S1 - } True False S1 S3 S2 2) if (cond1) {if (cond2) {- - S1 - } else {- - S2 - S3 164

3) if cond1 { - - S1 - if cond2 - S2 } - S3 else {if cond3 - S4 - S5 9. 5 3) if cond1 { - - S1 - if cond2 - S2 } - S3 else {if cond3 - S4 - S5 Cond1 True False Cond3 S1 False True S5 S4 Cond2 True S2 False S3 Perhatikan posisi letak ‘titik’ Endif (akhir fungsi if ) dalam flowchart. Posisi ini penting untuk menganalisa aliran terutama untuk nested IF yang komplek atau untuk proses pengulangan yang bersifat rekursif. 165

S1 S5 S4 S3 S2 S6 165 4) if (cond1) { - - S1 - if (cond2) - S2 Cond1 } 9. 6 4) if (cond1) { - - S1 - if (cond2) - S2 } else { - - S3 else {if (cond3) - S4 - S5 - S6 Cond1 False True Cond3 S1 False True S5 S4 Cond2 True False S3 S2 S6 165

166 5) if(cond1) {if(cond2) {if(cond3) {if(cond4) { - - S1 - } S1 9. 7 5) if(cond1) {if(cond2) {if(cond3) {if(cond4) { - - S1 - } Cond1 True Cond2 True False Cond3 True False Cond4 True False S1 False endif endif endif endif S1 dilaksanakan, hanya bila keempat kondisi nilainya TRUE 166

166 6) if(cond1) { - - S1 - } else {if(cond2) - S2 {if(cond3) - S3 False True Cond2 S1 False True Cond3 S2 False True Cond4 True S3 False S5 S4 endif endif endif endif 166

166 6) if(cond1) { - - S1 - } else {if(cond2) - S2 {if(cond3) - S3 False True Cond2 S1 False True Cond3 S2 False True Cond4 True S3 False S5 S4 endif endif endif endif 166

Multi condition dan Logical Operator. 5.14 9.5. Kadang-kadang satu kondisi saja tidak cukup untu menentukan suatu syarat, sehingga diperlukan dua atau lebih kondisi. Untuk menggabung kondisi kondisi tersebut digunakan operator yang disebut logical operator. Ada 3 maca logical operator yaitu : Yang dalam Bahasa C/C++ dan Java dinyatakan dengan simbol : 1. NOT 2. AND 3. OR 1. ! sebagai NOT 2. && sebagai AND 3. || sebagai OR 167

5.14 1). Operator NOT. Operator NOT, walaupun sifatnya logical, tapi beberapa buku literatur tidak memasukkannya kedalam Logical Operator. Operator NOT, bukan untuk menggabung dua buah kondisi, tapi bekerja sebagai pembalik nilai logika TRUE menjadi FALSE, False menjadi TRUE sehingga sering disebut Unary Operator. 167

Contoh : Misal nilai A = 5 dan B = 2 5 2 A B 167 Condition Nilai Not (Condition) Nilai A == B A > B A < B A >= B A <= B A !=> B False True ! (A == B) ! (A > B) ! (A < B) ! (A >= B) ! (A <= B) ! (A != B) True False 167

Contoh : Misal nilai A = 5 dan B = 2 5 2 A B 167 Sama maksudnya dengan Penulisan ! (A == B) ! (A > B) ! (A < B) ! (A >= B) ! (A <= B) ! (A != B) A != B A <= B A >= B A < B A > B A == B Contoh Penulisan dalam Bahasa C : if( ! ( A < B ) ) disini boleh ada satu atau lebih spasi 167

2). Operator AND. IF cond1 AND cond2 if ( cond1 && cond2 ) 5.15 Operator AND, menggabung dua buah kondisi menjadi satu nilai sedemikian rupa akan bernilai TRUE hanya bila kedua kondisi yang digabungkan bernilai TRUE. Atau dengan perkataan lain harus memenuhi kedua syarat yang ditentukan0 Pemakaiannya dalam instruksi IF IF cond1 AND cond2 cond1 = kondisi-1 cond2 = kondisi-2 Yang dalam Bahasa C ditulis : if ( cond1 && cond2 ) atau if ( (cond1) && (cond2) ) 1) if ( KodeSex == 1 && Umur <= 25 ) 2) if ( Nilai >= 60 && Nilai < 70) 168

Truth Table (Tabel Kebenaran) 5.15 cond-1 AND cond-2 cond-1 cond-2 TRUE FALSE TRUE FALSE TRUE FALSE Contoh pemakaian : Bila nilai A = 5, B= 2, C = 6 dan D = 4 Maka : if( A > B && C > D) akan bernilai TRUE true true if ( A > B && B > D ) akan bernilai FALSE true false if ( A > C && B > D ) akan bernilai FALSE false false if( ( A > B) && ! (B > D) akan bernilai TRUE 168 true true

3). Operator OR if ( cond1 || cond2 ) if ( (cond1) || (cond2) ) 169 5.16 Operator OR, menggabung dua buah kondisi menjadi satu nilai sedemikian rupa akan bernilai TRUE cukup bila salah satu saja dari kedua kondisi yang digabungkan bernilai TRUE. Hanya bila kedua kondisi bernilai FLASE, maka nilai gabungannya bernilsi FALSE. Atau dengan perkataan lain : cukup satu satu syarat saja yang harus dipenuhi. Pemakaiannya dalam instruksi IF : IF cond1 OR cond2 cond1 = kondisi-1 cond2 = kondisi-2 Yang dalam Bahasa C ditulis : if ( cond1 || cond2 ) atau if ( (cond1) || (cond2) ) 169

1) if(Status == 1 || Umur >= 17 ) Contoh penulisan : 1) if(Status == 1 || Umur >= 17 ) 2) if (NilAgo >= 60 || NilMat >= 65 ) Misal maksudnya : 1) Syarat sebagai pemilih : sudah menikah (Status =1 ) atau umur tidak kurang dari 17 tahun. 2) Diberi Sertifikat bila Nilai Algoritma >= 60, atau Nilai Matematik >= 60. 169

Perhatikan Truth Table yang memperlihatkan nilai gabungan dua buah kondisi (cond-1 dan cond-2) yang digabung dengan operator OR. cond-1 cond-2 cond-1 OR cond-2 TRUE FALSE TRUE FALSE TRUE FALSE Salah satu bernilai TRUE akan menghasilkan nilai gabungan = TRUE Hanya bila kedua kondisi bernilai FALSE, yang menghasilkan nilai gabungan = FALSE 169

Bila nilai A = 5, B= 2, C = 6 dan D = 4 Contoh pemakaian : Bila nilai A = 5, B= 2, C = 6 dan D = 4 Maka : if (A > B || C > D) akan bernilai TRUE true true if ( A > B || B > D ) akan bernilai TRUE true false IF (A > C || B > D ) akan bernilai FALSE false false IF (!(A > B) || !(C > D)) akan bernilai FALSE false false 169

if (Cond1 && Cond2) 4) Proses pada multi condition. Kita sebut saja : Pandanglah statement IF dengan condition merupakan gabungan dua kondisi (Cond1 dan Cond2) sebagai berikut: if (Cond1 && Cond2) Kita sebut saja : Nilai Cond1 sebagai input, Nilai Cond2 sebagai input, dan Nilai (Cond1 && Cond2) sebagai output Bagaimana logika proses yang dilakukan oleh komputer untuk mendapatkan output gabungan dari dua atau lebih input dapat dijelaskan sebagai berikut : 170

1 1 1 a) Proses AND. if ( Cond1 && Cond2 ) Truth Table Proses oleh komputer input C1 input C2 output C1 AND C2 1. Mula-mula memeriksa nilai semua kondisi (Cond1 dan Cond2). Nilai logical TRUE dinyatakan dengan : 1 dan logical FALSE dengan : 0 1 1 1 2. Kemudian dilakukan proses AND, yang hasilnya diperlihatkan pada truth table yang diberikan C1 = Cond1 C2 = Cond2 170

170 Mula mula memeriksa Cond1. Bila Cond1 = TRUE baru periksa Cond2 Bagaimana kita (bukan komputer) menganalisa untuk mencari nilai output, dapat kita lakukan dengan menggambarkan padanannya kalau dibuat dalam bentuk Nested If yang Program Flowchartnya diilustrasikan sebagai berikut : Cond1 Cond2 True True TRUE False False FALSE FALSE Mula mula memeriksa Cond1. Bila Cond1 = TRUE baru periksa Cond2 bila Cond2 = TRUE maka output = TRUE bila Cond2 = FALSE maka output = FALSE Bila Cond1 = FALSE , output langsung = FALSE Cond2 tidak diperiksa lagi 170

1 1 1 b) Proses OR . if ( Cond1 || Cond2 ) Truth Table Proses oleh komputer input C1 input C2 output C1 OR C2 1. Mula-mula memeriksa nilai semua kondisi (Cond1 dan Cond2). Nilai logical TRUE dinyatakan dengan : 1 dan logical FALSE dengan : 0 1 1 1 2. Kemudian dilakukan proses OR, yang hasilnya diperlihatkan pada truth table yang diberikan C1 = Cond1 C2 = Cond2 171

Bagaimana kita menganalisa untuk mencari nilai output, dapat kita lakukan dengan menggambarkan padanannya kalau dibuat dalam bentuk Nested If yang Program Flowchartnya diilustrasikan sebagai berikut : Cond1 True TRUE False Cond2 True TRUE False Mula mula memeriksa Cond1. Bila Cond1 = TRUE maka langsung output = TRUE tak perlu lagi memeriksa Cond2 Bila Cond1 = FALSE, maka baru memeriksa Cond2 Bila Cond2 = TRUE maka output = TRUE Bila Cond2 = FALSE maka output = FALSE FALSE 171

c) Proses lebih dari satu Logical Operator. 5.19 c.1) if ( Cond1 && Cond2 && Cond3 ) Nomor dan merupakan hasil sekaligus urutan proses oleh komputer Cond1 AND Cond2 menghasilkan Hasil AND Cond3 menghasilkan Output = 1 2 1 2 output Untuk mencari output, apakah hasilnya TRUE atau FALSE dapat dianalisa dengan Nested IF sebagai berikut : Cond1 Cond2 True False Output = FALSE TRUE Cond3 172

172 c.2) if ( Cond1 && Cond2 || Cond3 ) Nomor dan 5.19 Nomor dan merupakan hasil sekaligus urutan proses oleh komputer Cond1 AND Cond2 menghasilkan Hasil OR Cond3 menghasilkan Output = 1 2 if ( Cond1 && Cond2 || Cond3 ) 1 1 1 2 2 2 output Untuk mencari output, apakah hasilnya TRUE atau FALSE dapat dianalisa dengan Nested IF sebagai berikut : Cond1 True Cond2 True Output = TRUE False False Cond3 True Output = TRUE False 172 Output = FALSE

Catatan : Urutan menganalisa hasil output, dengan menggunakan padanan logikanya dalam program flowchart Nested IF belum tentu sama dengan urutan pelaksanaannya oleh komputer. Komputer memperlakukan operator AND tingkat hirarkhinya lebih tinggi dari OR, sehingga apabila ada AND dan OR, output untuk AND dicari lebih dulu dari OR. 172

173 c.3) if ( Cond1 || Cond2 && Cond3 ) Komputer akan mencari output untuk AND lebih dulu, hasilnya digabung dengan OR sehingga didapat output akhir 1 2 output Cond1 True TRUE Untuk mencari output akhir dengan lebih cepat dapat dilakukan dengan mula mula melihat nilai Cond1, bila nilainya TRUE maka outpu akhirnya pasti TRUE tak perlu lagi melihat nilai (Cond2 AND Cond3) seperti yang diperlihatkan padananya bila digambarkan dengan program flowchart Nested If berikut ini. False Cond2 Cond3 True True TRUE False False FALSE FALSE 173

if ( Cond1 || Cond2 || Cond3 ) Padanan logikanya untuk mencari output dapat digambarkan dalam bentuk Flowchart Nested If berikut ini : if ( Cond1 || Cond2 || Cond3 ) 1 Cond1 True TRUE 2 False output Cond2 True TRUE False Cond3 True TRUE False FALSE 173

9. 30 9.6. Contoh Program Sederhana Menggunakan Nested If dan Multi Conditions Soal-1. Susun program dalam bahasa C untuk menginput tiga buah bilangan bulat (integer), dimana ketiga buah bilangan tersebut dianggap bernilai tidak sama, kemudian mencetak salah satu bilangan yang nilainya terbesar: 174

9. 31 5 17 8 scanf 5 17 8 17 A B C printf KEYBOARD SCREEN MEMORY 174

9. 32 17 5 8 scanf 17 5 8 17 A B C printf KEYBOARD SCREEN MEMORY 174

9. 33 5 8 17 scanf 5 8 17 17 A B C printf KEYBOARD SCREEN MEMORY 174

174 Jawab-1. Cara-1 START Scanf A A B C Menggunakan 3 variabel scanf B false true 174

174 Jawab-1. Cara-1 START Scanf A A B C Menggunakan 3 variabel scanf B false A > B true 174

174 Jawab-1. Cara-1 START Scanf A A B C Menggunakan 3 variabel scanf B false A > B true false true 174

174 Jawab-1. Cara-1 START Scanf A A B C Menggunakan 3 variabel scanf B false A > B true false true A > C 174

174 Jawab-1. Cara-1 START Scanf A A B C Menggunakan 3 variabel scanf B false A > B true false true A > C printf A 174

174 Jawab-1. Cara-1 START Scanf A A B C Menggunakan 3 variabel scanf B false A > B true false true A > C printf printf C A 174

174 Jawab-1. Cara-1 START Scanf A A B C Menggunakan 3 variabel scanf B false A > B true false true A > C printf printf C A 174

174 Jawab-1. Cara-1 START Scanf A A B C Menggunakan 3 variabel scanf B false A > B true false true false true A > C printf printf C A 174

174 Jawab-1. Cara-1 START Scanf A A B C Menggunakan 3 variabel scanf B false A > B true false true false true B > C A > C printf printf C A 174

174 Jawab-1. Cara-1 START Scanf A A B C Menggunakan 3 variabel scanf B false A > B true false true false true B > C A > C printf printf printf B C A 174

174 Jawab-1. Cara-1 START Scanf A A B C Menggunakan 3 variabel scanf B false A > B true false true false true B > C A > C printf printf printf printf C B C A 174

174 Jawab-1. Cara-1 START Scanf A A B C Menggunakan 3 variabel scanf B false A > B true false true false true B > C A > C printf printf printf printf C B C A 174

174 Jawab-1. Cara-1 START Scanf A A B C Menggunakan 3 variabel scanf B false A > B true false true false true B > C A > C printf printf printf printf C B C A 174 END

174 Jawab-1. Cara-1 #include <stdio.h> main() { int A,B,C; START 47 #include <stdio.h> main() { int A,B,C; scanf(“ %i ”, &A); scanf(“ %i ”, &B); scanf(“ %i ”, &C); if(A > B) if(A > C) printf(“%i“, A); else printf(“%i”, C); } if(B > C) printf(“%i“, B); Scanf A scanf B scanf C false true A > B false true false true B > C A > C printf printf printf printf C B C A A B C 174 END Menggunakan 3 variabel

A B C #include <stdio.h> main() { int A,B,C; scanf(%i”, &A); Karena setiap blok instruksi hanya terdiri dari satu instruksi, maka program diatas dapat ditulis menjadi : 9. 48 #include <stdio.h> main() { int A,B,C; scanf(%i”, &A); scanf(%i”, &B); scanf(%i”, &C); if (A > B) if (A > C) printf(“%i“, A); else printf(“%i”, C); if (B > C) printf(“%i“, B); } A B C Menggunakan 3 variabel 176

5 7 9 5 9 7 7 5 9 7 9 5 9 5 7 9 7 5 Menggunakan 3 variabel A B C 175 Jawab-1. Cara-1 Menggunakan 3 variabel A B C 5 7 9 5 9 7 7 5 9 7 9 5 9 5 7 9 7 5 175

Jawab-1. Cara-1 START 5 7 9 Scanf A A B C Menggunakan 3 variabel scanf B scanf C false A > B true false true false true B > C A > C 1 2 3 4 Bila diinput 3 buah nilai diatas, maka flow akan menuju nomor : ……… 175

Jawab-1. Cara-1 START 5 7 9 Scanf A A B C Menggunakan 3 variabel scanf B scanf C false A > B true false true false true B > C A > C 1 2 3 4 Bila diinput 3 buah nilai diatas, maka flow akan menuju nomor : ……… 175

Jawab-1. Cara-1 START 5 7 9 Scanf A A B C Menggunakan 3 variabel scanf B scanf C false A > B true false true false true B > C A > C 1 2 3 4 Bila diinput 3 buah nilai diatas, maka flow akan menuju nomor : ……… 175

Jawab-1. Cara-1 START 5 7 9 Scanf A A B C Menggunakan 3 variabel scanf B scanf C false A > B true false true false true B > C A > C 1 2 3 4 Bila diinput 3 buah nilai diatas, maka flow akan menuju nomor : ……… 175

Jawab-1. Cara-1 START 5 7 9 Scanf A A B C Menggunakan 3 variabel scanf B scanf C false A > B true false true false true B > C A > C 1 2 3 4 Bila diinput 3 buah nilai diatas, maka flow akan menuju nomor : ……… 175

Jawab-1. Cara-1 START 5 7 9 Scanf A A B C Menggunakan 3 variabel scanf B scanf C false A > B true false true false true B > C A > C 1 2 3 4 Bila diinput 3 buah nilai diatas, maka flow akan menuju nomor : ……… 175

Jawab-1. Cara-2 175

#include <stdio.h> main() { int A,B,C, MAX; Jawab-1. Cara-2 START #include <stdio.h> main() { int A,B,C, MAX; scanf(“%i %i %i”, &A, &B, &C); MAX = A; if (B > MAX) MAX = B; if (C > MAX) MAX = C; printf(“%i“, MAX); } scanf A, B, C MAX = A B > MAX true MAX = B false C > MAX true MAX = C false printf MAX A B C MAX Menggunakan 4 variabel 175 END

Jawab-1. Cara-3 176

#include <stdio.h> main() { int A,B,C, MAX; scanf(“ %i ”, &A); Jawab-1. Cara-3 9. 59 #include <stdio.h> main() { int A,B,C, MAX; scanf(“ %i ”, &A); MAX = A; scanf(“ %i ”, &B); if (B > MAX) MAX = B; scanf(“ %i ”, &C); if (C > MAX) MAX = C; printf(“%i “, MAX); } Scanf A MAX = A scanf B true B > MAX false MAX = B scanf C true C > MAX false MAX = C A B C MAX printf MAX 176

Jawab-1. Cara-4 177

Jawab-1. Cara-4 Menggunakan hanya 2 variabel. Variabel A khusus untuk menampung input, dan variabel MAX khusus mencatat atau menyimpan nilai terbesar. 5 17 8 scanf 8 17 A 17 printf KEYBOARD MAX MEMORY SCREEN 177

#include <stdio.h> main() { int A, MAX; scanf(“ %i ”, &A); Jawab-1. Cara-4 #include <stdio.h> main() { int A, MAX; scanf(“ %i ”, &A); MAX = A; if (A > MAX) printf(“\n %i “, MAX); } Scanf A MAX = A scanf A A > MAX true false MAX = A scanf A A > MAX true 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 177

Jawab-1. Cara-5 178

#include <stdio.h> main() { int A,B,C; Jawab-1. Cara-5 Menggunakan multi conditions dengan logical operator AND 9. 64 5 17 8 scanf 5 17 8 17 A B C printf KEYBOARD MEMORY Dengan menggunakan Logical Operator AND (&&) SCREEN #include <stdio.h> main() { int A,B,C; scanf(“ %i %i %i”, &A, &B, &C); if (A>B && A>C) printf(“\n %i“, A); else { if (B>A && B>C) printf(“\n %i”, B); printf(“\n %i“, C); } 178

178 #include <stdio.h> main() { int A,B,C; scanf(“ %i %i %i”, &A, &B, &C); if (A>B && A>C) printf(“\n %i“, A); else { if (B>A && B>C) printf(“\n %i”, B); printf(“\n %i“, C); } START Scanf A,B,C A>B && A>C true printf false B>A && B>C A true printf printf 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 178

Jawab-1. Cara-6 179

Jawab-1. Cara-6 Berpikir lebih praktis, tapi computer-time tidak efisien 9. 67 5 17 8 scanf 5 17 8 C printf 17 A B KEYBOARD MEMORY SCREEN #include <stdio.h> main() { int A,B,C; scanf(“ %i %i %i”, &A, &B, &C); if (A>B && A>C) printf(“\n i%“, A); if (B>A && B>C) printf(“\n i%”, B); if (C>A && C>B) printf(“\n i%“, C); } 179

#include <stdio.h> main() { int A,B,C; START 9. 68 #include <stdio.h> main() { int A,B,C; scanf(“ %i %i %i”,&A,&B,&C); if (A>B && A>C) printf(“\n i%“, A); if (B>A && B>C) printf(“\n i%”, B); if (C>A && C>B) printf(“\n i%“, C); } Scanf A,B,C A>B && A>C true printf A B>A && B>C true printf B C>A && C>B true printf C END 179

! 179 #include <stdio.h> main() { int A,B,C; scanf(“ %i %i %i”, &A, &B, &C); if (A>B && A>C) printf(“\n i%“, A); if (B>A && B>C) printf(“\n i%”, B); if (C>A && C>B) printf(“\n i%“, C); } ! Cara ini yang paling mudah logikanya. Tapi dengan cara seperti ini, computer-time bisa lebih panjang karena computer akan melaksanakan semua instruksi if Walaupun pada if yang pertama didapat misal A yang terbesar, tapi computer akan tetap melaksanakan if yang ke-dua memeriksa apakah B yang terbesar dan juga masih melaksanakan if yang ke-tiga, memeriksa apakah C yang terbesar. Dengan perkataan lain, data seperti apapun yang diinput, ketiga instruksi if tersebut akan selalu dilaksanakan. Dalam pemrograman selalu ada kompromi antara kemudahan membuat program dengan efisiensi. 179