Konsep Pemrograman Berorientasi Objek, Modular dan Terstruktur
Konsep Object-Oriented Ide dasarnya adalah menggabungkan data dan fungsi menjadi satu kesatuan unit yang dikenal sebagai object.
Yang harus diperhatikan : Object Class Attribute Method Inheritance Encapsulation/data hiding Polymorphism
Object (Obyek) Di dunia nyata, tiap obyek memiliki ciri dan tingkah laku (behavior). Misalnya : Obyek-obyek mahasiswa, ciri bisa dilihat dari warna kulit, suara, jenis kelamin. Tingkah laku : berlari, menulis, makan.
Object (Obyek) Di programming, ciri dari tiap obyek diimplementasikan menjadi “attribute” (atau variabel) Tingkah laku diimplementasikan menjadi “method” (atau fungsi)
Contoh : Pada Balok: Objek : balok Data : panjang, lebar dan tinggi Fungsi : menghitung volume dan menghitung luas permukaan balok itu Untuk menghitung volume dan luas permukaan beberapa Balok, maka harus ada beberapa objek Persegi Panjang. Tiap Objek memiliki Data dan fungsi sendiri-sendiri
Class (Kelas) Di dunia nyata, kita sering melihat banyak obyek dengan model yang sama. Obyek-obyek tersebut bisa memiliki perbedaan atau tidak. Misalnya : Mobil, mahasiswa Class adalah blueprint dalam membentuk obyek Obyek-obyek yang sama adalah merupakan anggota dari suatu kelas.
Contoh Class Mahasiswa NIM : Nama: Menulis, Kuliah, Makan, Buku No. Buku: Judul: Dibaca, Disampul Nama class atribut Metoda/ method
Contoh Obyek Mahasiswa NIM : 0411500364 Nama : Darto Menulis, Kuliah, Makan, Buku No.Buku : B001 Judul : PBO Dibaca, disampul
Contoh hubungan Antara Kelas dan Obyek Person Budi Lusi Sri Object = an instance of
Atribut dan Metode Atribut adalah data atau field yang menentukan ciri dari suatu class / obyek. Bisa disebut juga data anggota. Metode adalah fungsi yang dilakukan oleh class atau yang dikenakan terhadap class. Bisa disebut juga sebagai fungsi anggota (member function).
Inheritance (Pewarisan) Sifat dari suatu kelas diturunkan kepada kelas yang lain. Superclass : class yang diturunkan ke kelas lain. Subclass : class yang diturunkan dari kelas lain. Contoh : class “tabung” diturunkan dari kelas “lingkaran”
Contoh inheritance Bidang Lingkaran Segi empat Tabung Kubus superclass subclass
Encapsulation Data hiding Cara kerja dari suatu metode (fungsi) dalam mengakses data (atribut) bersifat tertutup. Bersifat seperti “black box”
Polymorphism Metode (fungsi) yang dapat melakukan tugas lebih dari satu jenis. Dikarenakan karena terdapat beberapa metode dengan nama yang sama namun parameternya berbeda-beda.
Pemrograman Terstruktur Adalah suatu proses untuk mengimplementasikan urutan langkah untuk menyelesaikan suatu masalah dalam bentuk program Adalah teknik pemrograman secara berurut dan terstruktur dalam: analisa, cara dan penulisan program Prinsip dari pemrograman terstruktur adalah bahwa apabila kita sudah sampai pada langkah tertentu, kita tidak boleh mengeksekusi langkah sebelumnya. Hal ini dikecualikan pada langkah-langkah untuk proses berulang.
Tujuan PT Untuk meningkatkan kualitas dan kehandalan program Untuk memudahkan pemahaman terhadap isi program Untuk menyederhanakan program Untuk maintenance (pemeliharaan) program Untuk meningkatkan produktifitas program
Sifat / Ciri PT Gunakan rancangan pendekatan dari atas ke bawah (top down design) -> program dimulai dengan gambaran global yang dinyatakan dengan nama prosedur/sub-rutin dan bukan isi detailnya Bagi program ke dalam modul-modul logika yang sejenis, Gunakan sub-program untuk proses-proses sejenis yang sering digunakan. Gunakan pengkodean terstruktur: IF ... THEN, DO ... WHILE dan lain-lainnya. Menghindari penggunaan perintah GO TO bila tidak diperlukan
Contoh PT COBOL(Common Busines Oriented Language). FORTRAN(FORmula TRANslator) BASIC(Beginner All Purpose Symbolic Interchange Code). Pascal(Dinamakan untuk menghormati Blaise Pascal) Ada (Dinamakan untuk menghormati Ada Lovelace) C
Bentuk / Struktur Dasar PT Sequence Structure: dieksekusi berdasarkan urutannya. Selection Structure: terdapat sejumlah perintah yang dikerjakan tergantung dari kondisi yang dipenuhinya. Loop/Iteration Structure: menggambarkan perulangan dari satu atau lebih instruksi.
Sequence Structure
Selection Structure
Loop / Iteration Structure
Ex. PT COBOL(Common Busines Oriented Language). FORTRAN(FORmula TRANslator) BASIC(Beginner All Purpose Symbolic Interchange Code). Pascal(Dinamakan untuk menghormati Blaise Pascal) Ada (Dinamakan untuk menghormati Ada Lovelace) C
Review PT dengan C Susunan C: Diawali dengan header library #include<stdio.h> Diikuti body Variable Global Function / Procedure / Method Harus ada function main() sebagai titik masuk program int main() { statements; return 0; }
Variable Deklarasi variable: <data type> <variable_name>(, <variable_name_2 dst>); int height; int height, width;
Tipe Data Dasar Tipe Data Ukuran Jangkauan Format Keterangan char 1 byte - 128 s/d 127 %c Karakter int 2 byte - 32768 s/d 32767 %i atau %d Integer / bilangan bulat float 4 byte - 3.4E-38 s/d 3.4E+38 (7 digit) %f Float / bilangan pecah double 8 byte - 1.7E-308 s/d 1.7+308 (15 digit) %lf Double / bilangan pecahan presisi ganda
Modifier short long signed unsigned
Struct Digunakan untuk mendeklarasikan tipe data baru yang berisikan kumpulan sejumlah variable.
Array & Pointer Array: kumpulan data sejenis char j[20]; char j[] = {‘a’, ‘b’}; Pointer: variable yang berisi alamat memori Bentuk umum: <tipe data> *<nama var>; int v = 5; int *p = &v; printf("the value of p is %p\n", p); printf("the value at that address is %d\n", *p);
Flow Control Selection / Branching Iteration / Looping If Else ? : Operator Switch Case Iteration / Looping While For Break & Continue
If Else if (expression) statement; or if (expression) { Block of statements; } or if (expression) { Block of statements; } else { Block of statements; } or if (expression) { Block of statements; } else if(expression) { Block of statements; } else { Block of statements; }
If Else Sample
? : Operator condition ? X : Y;
Switch Case switch( expression ) { case constant-expression1: statements1; break; [case constant-expression2: statements2; break;] [case constant-expression3: statements3; break;] [default : statements4; break;] }
Switch Case Sample
While while ( expression ) { Single statement; or Block of statements; } do { Single statement; or Block of statements; } while (expression);
While Sample
For for(expression1; expression2; expression3) { Single statement; or Block of statements; } expression1 - Initializes variables. expression2 - Conditional expression, as long as this condition is true, loop will keep executing. expression3 - expression3 is the modifier which may be simple increment of a variable.
For Example
Break & Continue break -- exit form loop or switch. continue -- skip 1 iteration of loop.
Function / Procedure / Method Adalah sebuah module / blok code program yang berurusan dengan sebuah tugas tertentu. Functions punya 2 tujuan: They allow a programmer to say: `this piece of code does a specific job which stands by itself and should not be mixed up with anyting else', Second they make a block of code reusable since a function can be reused in many different contexts without repeating parts of the program text. Function dapat memiliki sejumlah parameter, melakukan pemrosesan dan kemudian dapat mengembalikan sebuah nilai (bisa Y/N).
Function <return type> <name>(<param1, [param2, dst]>) { statements; [return value;] } return type: void data type ttn
Function Sample
Pemrograman modular
Tujuan Mahasiswa mampu memecah sebuah program besar menjadi sejumlah subprogram.
Filosofi Untuk mencapai suatu tujuan besar, maka tujuan tsb harus dibagi-bagi menjadi tujuan kecil sampai tujuan kecil itu merupakan tujuan yang dapat dicapai berdasarkan potensi yang dimiliki saat itu (Al Khuwarizmi)
Definisi Pemrograman modular adalah teknik pemecahan sebuah program besar menjadi sejumlah subprogram. Sebuah program yang besar sebaiknya dipecah menjadi beberapa subprogram dimana setiap subprogram melakukan komputasi yang spesifik.
Keuntungan Pemrograman Modular Modularisasi program memberikan dua keuntungan: Pertama, untuk aktivitas yang harus dilakukan lebih dari satu kali, modularisasi menghindari penulisan teks program yang sama. Keuntungan kedua adalah kemudahan dalam menulis dan menemukan kesalahan (debug) program.
Contoh #include <stdio.h> void main() { int A, B, C, D, temp; printf("Masukkan nilai A B C D: "); scanf("%d %d %d %d",&A, &B, &C, &D); temp = A; A = B; B = temp; if (C > D) temp = C; C = D; D = temp; } printf("Nilai A B C D setelah pertukaran adalah: %d %d %d %d\n", A, B, C, D);
Contoh Program Modular #include <stdio.h> void Tukar(int *A, int *B); void main() { int A, B, C, D; printf("Masukkan nilai A B C D: "); scanf("%d %d %d %d",&A, &B, &C, &D); Tukar(&A,&B); if (C > D) Tukar(&C,&D); printf("Nilai A B C D setelah pertukaran adalah: %d %d %d %d", A, B, C, D); } void Tukar(int *A, int *B) int temp; temp = *A; *A = *B; *B = temp;
Teknik Pemrograman Modular Ada 2 teknik pemrograman modular: Prosedur Fungsi Struktur kedua teknik ini pada sasarnya sama dengan struktur program biasa, yakni ada bagian judul (header) yang berisi nama modul, bagian deklarasi dan bagian algoritma yang berisi instruksi yang akan dilaksanakan.
Pendefinisian Subprogram Penamaan subprogram sama dengan peubah, sebaiknya diawali dengan kata kerja karena subprogram berisi suatu aktivitas. Subprogram dideklarasikan sebagai prototype judul sebelum program utama (main) Parameter adalah nama-nama peubah yang dapat disertakan pada bagian judul, tapi tidak harus ada parameter Nama-nama peubah yang dideklarasikan di dalam subprogram hanya dikenal di dalam subprogram tsb, disebut peubah lokal
Pemanggilan Subprogram Instruksi di dalam sebuah subprogram baru dapat dilaksanakan jika subprogram tsb dipanggil. Parameter yang disertakan pada waktu pemanggilan subprogram disebut parameter aktual. Sedangkan parameter yang disertakan di dalam bagian judul disebut parameter formal. Ketika subprogram dipanggil, kendali program berpindah secara otomatis ke subprogram tsb. Setelah semua instruksi di dalam subprogram dilaksanakan, kendali program berpindah secara otomatis kembali ke instruksi sesudah pemanggilan subprogram.
Parameter Aturan yang harus diperhatikan dalam parameter: Jumlah parameter aktual pada pemanggilan subprogram harus sama dengan jumlah parameter formal pada judul subprogram dan deklarasi prototype judul. Tiap parameter aktual harus bertipe sama dengan parameter formal yang bersesuaian. Tiap parameter aktual harus diekspresikan dengan cara yang taat-asas dengan parameter yang bersesuaian.
Program Pertukaran #include <stdio.h> void main() { int A, B, temp; /* Membaca nilai A dan B */ printf("A = "); scanf("%d", &A); printf("B = "); scanf("%d", &B); /* Menukar nilai A dan B */ temp = A; A = B; B = temp; /* Mencetak nilai A dan B */ printf("A = %d \n", A); printf("B = %d \n", B); }
Memecah Program Pertukaran Program pertukaran dapat dipecah menjadi tiga buah subprogram: membaca data A dan B melakukan pertukaran nilai A dan B mencetak nilai A dan B setelah pertukaran
Program Pertukaran Modular #include <stdio.h> void Baca(int *A, int *B); void Tukar(int *A, int *B); void Tulis(int A, int B); void main() { int A, B; Baca(&A,&B); Tukar(&A,&B); Tulis(A,B); }
void Baca(int. A, int. B) { printf("A = "); scanf("%d", & void Baca(int *A, int *B) { printf("A = "); scanf("%d", &*A); printf("B = "); scanf("%d", &*B); } void Tukar(int *A, int *B) int temp; temp = *A; *A = *B; *B = temp; void Tulis(int A, int B) printf("A = %d \n", A); printf("B = %d \n", B);
Program Pertukaran Modular #include <stdio.h> void Baca(int *A, int *B) { printf("A = "); scanf("%d", &*A); printf("B = "); scanf("%d", &*B); } void Tukar(int *A, int *B) int temp; temp = *A; *A = *B; *B = temp; void Tulis(int A, int B) printf("A = %d \n", A); printf("B = %d \n", B);
void main() { int A, B; Baca(&A,&B); /. Membaca nilai A dan B void main() { int A, B; Baca(&A,&B); /* Membaca nilai A dan B */ Tukar(&A,&B); /* Menukar nilai A dan B */ Tulis(A,B); /* Mencetak nilai A dan B */ }