REVIEW
UNIVERSITAS BRAWIJAYA MALANG
©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 1
Slide 1
KONSEP DASAR PEMROGRAMAN KOMPUTER
Apa yang anda ketahui tentang konsep DPK ?
DPK, Algoritma ?
Bagaimana merancang algoritma dan tahapan pembuatan algoritma pemrograman terstruktur.
©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 1
Slide 2
COMPUTER
TO – COMPUTE + ER (Menghitung/Mengolah bilangan) (Mengolah Data)
Data yg Diolah (Masukan/Input)
PUSAT PENGOLAH DATA (berbasis Arithmatika dan Logika)
Data hasil pengolahan (Keluaran/Output)
Penyimpanan Data ©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 1
Slide 3
MASALAH / IDEA
Algoritma
©Ian Sommerville 2004
PEMECAHAN
Source Code
SOLUSI / HASIL
Software
Executable Code
Software Engineering, 7th edition. Chapter 1
Slide 4
What is software? Office Application
Simulation
Multimedia Application
©Ian Sommerville 2004
Operating System
SOFT WARE
Oh, I see... personal software
Programming IDE
Software Engineering, 7th edition. Chapter 1
Slide 5
DEFINISI MASALAH
MEMBUAT MODEL
RANCANG ALGORITMA
TULIS PROGRAM COMPILE
Y
Sintak Err
T Executable code: => Run
Y
Output Err
T DOKUMEN TASI
©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 1
Slide 6
DEFINISI MASALAH
MEMBUAT MODEL
RANCANG ALGORITMA
TULIS PROGRAM
COMPILE
Masalah: Tentukan akar-akar dari suatu persamaan kwadrat. Definisi: Persamaan kwadrat : ax^2 + bx + c = 0
Sintak Err Executable code: => Run
Data input yg diperlukan ?
Nilai dari a, b dan c : tipe real
Output Err DOKUMEN TASI
©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 1
Slide 7
DEFINISI MASALAH
MEMBUAT MODEL
RANCANG ALGORITMA
TULIS PROGRAM
COMPILE
Model Matematika :
Sintak Err
Rumus ABC x1 = (-b + sqrt(b^2 - 4ac))/2a
Executable code: => Run
x2 = (-b – sqrt(b^2 - 4ac))/2a Output Err DOKUMEN TASI ©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 1
Slide 8
DEFINISI MASALAH
MEMBUAT MODEL
RANCANG ALGORITMA
Start
TULIS PROGRAM COMPILE
Masukkan a,b,c Sintak Err
d = b^2 – 4ac
d<0
T
x1=(-b+sqrt(d))/2a x2 =(-b-sqrt(d))/2a
Executable code: => Run
Y Cetak: “Akar majiner”
Output Err
Cetak: x1, x2 DOKUMEN TASI
Stop ©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 1
Slide 9
DEFINISI MASALAH
MEMBUAT MODEL
RANCANG ALGORITMA
TULIS PROGRAM
COMPILE
Sintak Err Executable code: => Run
Output Err DOKUMEN TASI ©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 1
Slide 10
DEFINISI MASALAH
MEMBUAT MODEL
RANCANG ALGORITMA
TULIS PROGRAM
COMPILE
Sintak Err Executable code: => Run
Output Err DOKUMEN TASI
©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 1
Slide 11
DEFINISI MASALAH
MEMBUAT MODEL
RANCANG ALGORITMA
TULIS PROGRAM
COMPILE
Sintak Err Executable code: => Run
Output Err DOKUMEN TASI ©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 1
Slide 12
DEFINISI MASALAH
MEMBUAT MODEL
RANCANG ALGORITMA
TULIS PROGRAM
COMPILE
Sintak Err Executable code: => Run
Output Err DOKUMEN TASI ©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 1
Slide 13
DEFINISI MASALAH
MEMBUAT MODEL
RANCANG ALGORITMA
TULIS PROGRAM
COMPILE
Sintak Err Executable code: => Run
Output Err DOKUMEN TASI ©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 1
Slide 14
DEFINISI MASALAH
MEMBUAT MODEL
RANCANG ALGORITMA
TULIS PROGRAM
COMPILE
Sintak Err Executable code: => Run
Output Err DOKUMEN TASI ©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 1
Slide 15
REVIEW
©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 1
Slide 16
Flexibility : mendekati low level language namun mudah dimengerti. Portability : dipakai mulai dari komputer mikro sampai superkomputer Bahasa yang banyak digunakan dalam ilmu komputer untuk membuat O/S dan program aplikasi, dll. Didukung oleh banyak pustaka (libraries)
©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 1
Slide 17
1.
Format penulisan fungsi main main() { statements;
3.
}
2.
void main() { statements; }
©Ian Sommerville 2004
4.
main() { statements; return (0); }
int main() { statements; return (0); }
Software Engineering, 7th edition. Chapter 1
Slide 18
Contoh: int main() { printf(”Selamat datang di FT-UB\n”); return (0); } #include <stdio.h> int main() { printf(”Selamat datang di FT-UB\n”); return (0); }
©Ian Sommerville 2004
Jika di kompilasi dengan DevC++ program ini akan error, dgn Error Message: ‘printf’ undeclared.
#include adalah sebuah directive/arahan untuk memberitahu compiler bahwa function prototype untuk fungsi printf ada pada header file stdio.h
Software Engineering, 7th edition. Chapter 1
Slide 19
Menggunakan pasangan /* dan */ Digunakan agar program lebih mudah dibaca dan dimengerti Diabaikan oleh compiler Untuk komentar 1 (satu) baris cukup menggunakan tanda // diawal baris Contoh program C sederhana: /*---------------------------------Program Pertama ----------------------------------*/ #include<stdio.h> void main() { printf(“Helloworld \n”); return (0); } //Program mencetak tulisan Helloworld ©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 1
Slide 20
©Ian Sommerville 2004
\a \b \t \n \v \r \’ \” \\ \xdd \ddd
bell, alert, system beep back space horizontal tab new line, line eed vertical tab carriage return single quote double quote backslash notasi hexadecimal notasi octal
Software Engineering, 7th edition. Chapter 1
Slide 21
Variabel : Identifier yang memiliki alamat memori tertentu (di RAM) untuk menyimpan nilai data. Setiap variabel memiliki nama/identifier, alamat (L-Value), tipe, size(rentang nilai) dan data (R-Value). Nilai data atau isi variabel dapat diubah-ubah pada saat Run time Format deklarasi variabel:
; ;
Contoh: int a, b, c, jumlah; float gaji, bonus; int jml_mhs = 20;
©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 1
Slide 22
Deklarasi Variabel: • • •
Variabel dpt dideklarasikan di setiap awal blok statement. Blok statement disebut juga “compound statement” adalah statement-statement yang berada diantara { dan }. Contoh deklarasi variabel: int x; int y; int z; atau bisa ditulis : int x, y, z; atau bisa juga ditulis : int x; int y; int z;
©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 1
Slide 23
Pada dasarnya tipe data primitif pada bahasa pemrograman C ada 5, dan ditambah 4 tipe Modifier yaitu: Tipe Data Primitif/Bawaan
Keyword
1. 2. 3. 4. 5.
1. 2. 3. 4. 5.
Character Integer Floating point Double floating point Void
©Ian Sommerville 2004
char int float double void
Software Engineering, 7th edition. Chapter 1
Slide 24
REVIEW
©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 1
Slide 25
Spesifikai format sbb: %[flags][width][.precision] type Spes. Format
Keterangan
flags
Menentukan rata kanan, kiri atau bertanda: • None : rata-kanan • : rata-kiri
width
Menentukan jumlah kolom yang disediakan
precision
menentukan jumlah angka di belakang titik desimal (untuk bilangan pecahan)
type
Menentukan tipe variabel/nilai-data yang akan ditampilkan
©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 1
Slide 26
Kode Format
Keterangan
“%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<stdio.h> #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 2004
Software Engineering, 7th edition. Chapter 1
Slide 27
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 2004
Software Engineering, 7th edition. Chapter 1
Slide 28
Buat Program Luas Segi Empat
©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 1
Slide 29
Contoh Program Luas Segi Empat
/* Program Luas_Segi_Empat v1*/ #include <stdio.h>
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 2004 Software Engineering, 7th edition. Chapter 1
Slide 30
REVIEW
©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 1
Slide 31
Komponen utama ekspresi adalah operand dan operator. Operand dapat berupa variabel, konstanta, nilai data konstan maupun fungsi. Setiap operand harus memiliki nilai data. Operator adalah simbol yang mengolah nilai pada operand dan menghasilkan satu nilai baru.
Dalam pemrograman komputer penulisan perhitungan arithmatika/logika TIDAK BOLEH BERTINGKAT. Contoh: xy yz x xy yz
Untuk itu setiap operator memiliki presedensi (hirarki) dan assosiativitas.
Untuk itu ©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 1
Slide 32
xy yz x xy yz
Contoh:
Ditulis dalam bhs pemrograman C: x = (x * y + y * z) / (x * y – y * z); 1
4
2
5 6
3 7 8
©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 1
Slide 33
Digunakan untuk melakukan operasi matematika Simbol
Fungsi
Contoh
+
Penambahan
x = y + 6;
-
Pengurangan
y = x – 5;
*
Perkalian
y = y * 3;
/
Pembagian
z = x/y;
%
Modulo
++
Increment
x++;
--
Decrement
z--;
()
Menaikan Priority
©Ian Sommerville 2004
A = 10 % 3;
x=(2+3)*5
Software Engineering, 7th edition. Chapter 1
Slide 34
34
Contoh x = 2; x = y; x = 2 * y; a = sin (y);
// konstanta // variabel lain // ekspresi // fungsi
Tipe hasil operasi disesuaikan dengan tipe operand sebelah kiri. int x = 7/2; float y = 3;
©Ian Sommerville 2004
/*nilai x sama dgn 3 */ /*nilai y sama dengan 3.000 */
Software Engineering, 7th edition. Chapter 1
Slide 35
35
#include <stdio.h> #include int main () { int a, b, z=100; float x, y; printf("Melihat pengaruh prioritas dan urutan pengerjaan\n\n"); printf("Masukkan sebarang nilai integer: "); scanf("%d",&a); x = a/3*3; y = a*3/3; z += b = a; printf("\n\nx = %d/3*3, diperoleh x = %f\n\n",a,x); printf("y = %d*3/3, diperoleh y = %f\n\n",a,y); printf("bila z=100, maka untuk z += b = %d diperoleh z = %d\n\n\n",a,z); system("PAUSE"); return(0); ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 1 Slide 36
36
Modulo: • • • •
Simbol : % Termasuk Binary operator Untuk menghitung sisa hasil bagi n % 2, dapat digunakan untuk menguji apakah integer n bernilai genap atau ganjil • n % 2 = 0 n GENAP • n % 2 = 1 n GANJIL
Increment dan Decrement: • • • •
Simbol : ++(increment), --(decrement) Termasuk unary operator Menaikkan (++) dan menurunkan (--) nilai variabel dengan 1 Posisinya bisa di depan (pre) atau dibelakang (post) variabel
©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 1
Slide 37
37
Contoh: N++; ++N; N--; --N;
//post increment //pre increment //post decrement //pre decrement
Jika statement increment stand alone. Maka N++; atau ++N; sama artinya N=N+1;
Jika statement decrement stand alone. Maka N--; atau --N; sama artinya N=N-1;
©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 1
Slide 38
38
Contoh: #include <stdio.h> int main () { int x = 44; int y = 44; ++x; printf(”x = %d\n”, x); y++; printf(”y = %d\n”, y); }
©Ian Sommerville 2004
/* hasilnya 45 */ /* hasilnya 45 */
Software Engineering, 7th edition. Chapter 1
Slide 39
39
Jika ++n dan n++ sebagai statement yang terikat dalam ekspresi lainnya (sub expresi), keduanya mempunyai arti yang berbeda. ++n -> n ditambah 1, baru diproses terhadap ekspresinya n++ -> n langsung diproses terhadap ekspresinya tanpa ditambah 1 terlebih dahulu, pada saat selesai baru n ditambah 1
int main () { int x=44; int y = 44; int z; z = ++x; /* z, x nilainya 45 */ z = y++; /* z nilainya 44 dan y nilainya 45 */ return(0); } ©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 1
Slide 40
40
Setiap ekspesi yang berbentuk : = <Exp>; dapat diganti dengan : = <Exp>;
Operator ini sering disebut dengan Combined Operator. Ekspresi
Dapat diganti dengan
a = a + b;
a += b;
a = a – b;
a -= b;
a = a * b;
a *= b;
a = a / b;
a /= b;
a = a % b;
a %= b;
a=a^b;
a ^= b;
©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 1
Slide 41
41
Contoh soal: x *= y +1; artinya sama dengan :
A. B. C. D.
x = x * (y + 1); x = x * y + 1; x = x + 1 * y; x = (x + 1) * y;
Jawab: A
©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 1
Slide 42
42
Digunakan untuk membandingkan dua nilai, dan hasilnya TRUE atau FALSE Simbol
©Ian Sommerville 2004
Fungsi
==
Sama Dengan
!=
Tidak Sama Dengan
<
Lebih Kecil Dari
>
Lebih Besar Dari
<=
Lebih Kecil atau Sama Dengan
>=
Lebih Besar atau Sama Dengan
?:
Conditional assignment
Software Engineering, 7th edition. Chapter 1
Slide 43
43
Contoh :
#include<stdio.h> int main() { int x=5,y=6; if ( x == y) printf("%d sama dengan %d\n",x,y); if ( x != y) printf("%d tidak sama dengan %d\n",x,y); if ( x < y) printf("%d lebih kecil daripada %d\n",x,y); if ( x > y) printf("%d lebih besar daripada %d\n",x,y); if ( x <= y) printf("%d lebih kecil atau sama dengan %d\n",x,y); if ( x >= y) printf("%d lebih besar atau sama dengan %d\n",x,y); return(0); }
©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 1
Slide 44
44
Conditional expression menggunakan ternary operator ?: Sintak : exp1 ? exp2 : exp3; •
Jika exp1 bernilai true, maka exp2 dieksekusi. Sebaliknya jika exp1 bernilai false, maka exp3 dieksekusi.
Contoh yang sama artinya dgn statement diatas:
z = (a > b) ? a : b; Jika (a>b) bernilai benar maka z=a. Sebaliknya jika (a>b) bernilai salah maka z=b.
©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 1
Slide 45
45
Contoh:
#include <stdio.h> #include int main () { int bil, abs; printf("Menentukan nilai absolut\n\n"); printf("Masukkan bilangan integer: "); scanf("%d",&bil); abs = (bil >= 0) ? bil : - bil; printf("Nilai absolutnya adalah : %d \n\n",abs);
system("PAUSE");Software Engineering, 7th edition. Chapter 1
©Ian Sommerville 2004
Slide 46
46
Digunakan untuk melakukan operasi logika Simbol
Fungsi
&&
AND
||
OR
!
NOT
Table Kebenaran operator logika: A
B
!A
A && B
A || B
True
True
False
True
True
True
False
False
False
True
False
True
True
False
True
False
False
True
False
False
©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 1
Slide 47
47
#include <stdio.h> int main() { int x=10, y=6; x *= 5 + y; y += y * x; printf(“x = %d\ny = %d",x,y); return(0); } Apakah keluaran yang akan ditampilkan di layar monitor bila program di atas berhasil dieksekusi ? ©Ian Sommerville 2004
Software Engineering, 7th edition. Chapter 1
Slide 48
48