©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 REVIEW Issa Arwani, S.kom, M.sc. PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS TEKNIK UNIVERSITAS BRAWIJAYA MALANG
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 2 l Apa yang anda ketahui tentang konsep DPK ? l Bagaimana merancang algoritma dan tahapan pembuatan algoritma pemrograman terstruktur. DPK, Algoritma ?
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 3 Penyimpanan Data PUSAT PENGOLAH DATA (berbasis Arithmatika dan Logika) Data yg Diolah (Masukan/Input) Data hasil pengolahan (Keluaran/Output) Nilai Data COMPUTER TO – COMPUTE + ER (Menghitung/Mengolah bilangan) (Mengolah Data)
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 4 MASALAH / IDEA PEMECAHANSOLUSI / HASIL Algoritma Source Code Executable Code Software
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 5 REVIEW
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 6 l Contoh: int main() { printf(”Selamat datang di FT-UB\n”); return (0); } Jika di kompilasi dengan Dev- C++ program ini akan error, dgn Error Message: ‘printf’ undeclared. #include int main() { printf(”Selamat datang di FT-UB\n”); return (0); } #include adalah sebuah directive/arahan untuk memberitahu compiler bahwa function prototype untuk fungsi printf ada pada header file stdio.h
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 7 l Menggunakan pasangan /* dan */ l Digunakan agar program lebih mudah dibaca dan dimengerti l Diabaikan oleh compiler l Untuk komentar 1 (satu) baris cukup menggunakan tanda // diawal baris l Contoh program C sederhana: /* Program Pertama */ #include void main() { printf(“Helloworld \n”); return (0); } //Program mencetak tulisan Helloworld
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 8 l Variabel : Identifier yang memiliki alamat memori tertentu (di RAM) untuk menyimpan nilai data. l Setiap variabel memiliki nama/identifier, alamat (L-Value), tipe, size(rentang nilai) dan data (R-Value). l Nilai data atau isi variabel dapat diubah-ubah pada saat Run time l Format deklarasi variabel: ; l Contoh: int a, b, c, jumlah; float gaji, bonus; int jml_mhs = 20;
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 9 l Pada dasarnya tipe data primitif pada bahasa pemrograman C ada 5, dan ditambah 4 tipe Modifier yaitu: Tipe Data Primitif/BawaanKeyword 1.Character 2.Integer 3.Floating point 4.Double floating point 5.Void 1.char 2.int 3.float 4.double 5.void
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 10 REVIEW
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 11 l Spesifikai format sbb: %[flags][width][.precision] type Spes. FormatKeterangan flagsMenentukan rata kanan, kiri atau bertanda: None : rata-kanan - : rata-kiri widthMenentukan jumlah kolom yang disediakan precisionmenentukan jumlah angka di belakang titik desimal (untuk bilangan pecahan) typeMenentukan tipe variabel/nilai-data yang akan ditampilkan
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 12 Kode FormatKeterangan “%c”Menampilkan sebuah karakter tunggal terformat “%nc”Menampilkan sebuah karakter lebar n kolom rata kanan “%-nc”Menampilkan sebuah karakter lebar n kolom rata kiri Contoh: #include int main(){ printf("%c\n",65); printf("%5c%5c%5c\n",65,66,67); printf("%-5c%-5c%-5c\n",65,66,67); system("PAUSE"); return(0); }
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 13 Header file dari scanf terletak di stdio.h Format: int scanf( const char *format [, argument]... ); Semua tipe argument pada scanf adalah pointer (alamat dari variabel yang akan diisi data). Untuk memperoleh alamat dari variabel digunakan operator &. Fungsi scanf didefinisikan di header file stdio.h Contoh : int umurTahun; scanf(”%d”, &umurTahun);
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 14 l Buat Program Luas Segi Empat
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 15 l Contoh Program Luas Segi Empat /* Program Luas_Segi_Empat v1*/ #include int main() { int panjang, lebar, luas; printf("Menghitung Luas Segiempat\n\n"); printf("Panjang : "); scanf("%d",&panjang); printf("Lebar : "); scanf("%d",&lebar); luas = panjang * lebar; printf("\nLuas = %d x %d = %d\n\n", panjang, lebar, luas); return(0); }
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 16 l Komponen utama ekspresi adalah operand dan operator. l Operand dapat berupa variabel, konstanta, nilai data konstan maupun fungsi. Setiap operand harus memiliki nilai data. l Operator adalah simbol yang mengolah nilai pada operand dan menghasilkan satu nilai baru. l Dalam pemrograman komputer penulisan perhitungan arithmatika/logika TIDAK BOLEH BERTINGKAT. Contoh: Untuk itu Untuk itu setiap operator memiliki presedensi (hirarki) dan assosiativitas.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 17 l Contoh: l Ditulis dalam bhs pemrograman C: x = (x * y + y * z) / (x * y – y * z);
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 18 l Digunakan untuk melakukan operasi matematika 18 SimbolFungsiContoh +Penambahanx = y + 6; -Pengurangany = x – 5; *Perkaliany = y * 3; /Pembagianz = x/y; %ModuloA = 10 % 3; ++Incrementx++; --Decrementz--; ()Menaikan Priorityx=(2+3)*5
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide Digunakan untuk membandingkan dua nilai, dan hasilnya TRUE atau FALSE SimbolFungsi = Sama Dengan !=Tidak Sama Dengan <Lebih Kecil Dari > Lebih Besar Dari <=Lebih Kecil atau Sama Dengan >=Lebih Besar atau Sama Dengan ?:Conditional assignment
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide Digunakan untuk melakukan operasi logika Table Kebenaran operator logika: AB!AA && BA || B True FalseTrue False True FalseTrue FalseTrue False TrueFalse SimbolFungsi &&AND ||OR !NOT
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 21 #include int main() { int x=10, y=6; x *= 5 + y; // hasil x=110 y += y * x; //hasil y=66 printf(“x = %d\ny = %d",x,y); return(0); } Apakah keluaran yang akan ditampilkan di layar monitor bila program di atas berhasil dieksekusi ? 21
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 22 l Apa yang anda ketahui tentang konsep Percabangan? Percabangan ?
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 23 Case l Ada 2 wanita, A dan B. B itu kurang cantik tapi baik dan pintar, sedangkan A itu cantik dan baik tapi kurang pintar. Pilih A atau B ? AB Pilih mana ya ……
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 24 l Penggambaran dalam flow-chart Eks.boolean Statement;... true false Statements sebelum if Statements setelah if Eks.boolean Statement;... true false
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 25 l Penggambaran dalam flow-chart Statements sebelum if Statements setelah if Eks.boolean Statement_01; Statement_02;... truefalse Statement_11; Statement_12;... Eks.boolean Statement_01; Statement_02;... truefalse Statement_11; Statement_12;...
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 26
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 27 l Struktur logika switch-case dapat digambarkan sbb.: case b case a case z case a action(s) case b action(s) case z action(s) break default action(s) true false case b case a case z case a action(s) case b action(s) case z action(s) break default action(s) true false
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 28 Algoritma Sarapan Pagi Mulai Ambil piring Masukkan nasi dan lauk dalam piring Ambil sendok dan garpu Ulangi Angkat sendok dan garpu Ambil nasi dan lauk Suapkan ke dalam mulut Taruh sendok dan garpu Kunyah Sampai (nasi dan lauk habis) ATAU kekenyangan Bereskan piring, sendok dan garpu Selesai 28
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide lSlStruktur logika pengulangan for exp1 exp3 statements exp2 true false exp1 exp3 statements exp2 true false
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide l Contoh : for (x=1; x <= 10; x++) printf(“%d\n”,x); x = 1 x++ printf(“%d\n”,x) x<=1 0 true false
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 31 l Sintaks : while (eks.boolean) statements; atau : while(eks.boolean){ statement1; statement2; ….. } 31 eks. boolean statements true false
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 32 l Contoh : while(product <= 1000) product = 2*product; 32 product <= 1000 product=2*product; false tru e
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 33 l Sintaks : do statement while (eks.boolean); atau : do { statement1; statement2; ….. } while(eks.boolean) l Selama eks.boolean bernilai true maka statements dieksekusi berulang-ulang. l Pengetesan eks.boolean dilakukan setelah meng-eksekusi statements. 33 eks. boolean true false statements
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 34 l Contoh: int i = 0; do { printf(”%d\n”, i); } while(++i <=10); 34 ++i <= 10 true false I = 0 Cetak i
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 35 l Pada pengulangan while, statement atau blok statement mungkin tidak akan pernah dilaksanakan, bila nilai ekspresi boolen bernilai false, karena operasi pengulangan diawali dengan mengeksekusi ekspresi boolean terlebih dahulu. l Pada pengulangan do-while statement atau blok statement pasti dikerjakan paling sedikit satu kali, karena ekspresi boolean baru diuji pada akhir blok pengulangan. 35
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 36 l break Digunakan untuk keluar dari loop (for, while dan do- while) Digunakan untuk keluar dari switch l continue skip sisa instruksi dalam loop, dan eksekusi loop berjalan ke tahap selanjutnya 36
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 37 #include int main() { int x = 1; while (x<=10) { printf( "%d\n", x ); x++; if (x>5) break; } return 0; } 37 Contoh penggunaan statement break pada loop yang menyebabkan program keluar dari loop tersebut Keluar dari loop
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 38 l Contoh: 38 #include int main() { int x; for(x=1; x<=10; x++) { if (x == 5) continue; printf("%d ", x); } return 0; } Output :
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide do { scanf(“%f”, &x); if(x<0) { printf”\nEror. Negatif”); break; } /*Proses nonnegatif */ … } while(exp); do { scanf(“%f”, &x); if(x<0) { printf”\nEror. Negatif”); continue; } /*Proses nonnegatif */ … } while(exp);
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 40 End of This Session...