170 likes | 526 Views
Pertemuan 5 Encapsulation. Matakuliah : T0044/Pemrograman Berorientasi Obyek Tahun : 2005 Versi : 1.0. Learning Outcomes. Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu : Menyimpulkan konsep Encapsulation dalam PBO. Outline Materi. Konsep Encapsulation Struct vs Class
E N D
Pertemuan 5Encapsulation Matakuliah : T0044/Pemrograman Berorientasi Obyek Tahun : 2005 Versi : 1.0
Learning Outcomes Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu : • Menyimpulkan konsep Encapsulation dalam PBO
Outline Materi • Konsep Encapsulation • Struct vs Class • Class Access Control • Constructor & Destructor • Object Class • Access with scope resolution operator (::)
Konsep Encapsulation • Encapsulation pengelompokan data dan functions menjadi satu dalam sebuah class. • Memiliki batasan akses dg default private (default access struct public). • reduces coupling, and almost paradoxically, increases the ability to create large programs. • encourage coherence, which means that any given class does one thing. By increasing coherence, a program becomes easier to understand, more simply organized, and this better organization is reflected in a further reduction in coupling. • Information hiding • Class objects communicate across well-defined interfaces • Implementation details hidden within classes themselves
struct Product { int Prod_id; char Prod_Name; float Price; int Stock_qty; }; Product Brg1; class Product { public: int Prod_id; char Prod_Name; float Price; int Stock_qty; }; Product Brg1; Struct VS Class Default Access member: public Default Access member: private Class Object Struct Object
3 Access Level • Public: • Bagian class yang dapat diakses oleh umum baik dari dalam maupun dari luar class • Protected: • Bagian class yang dapat diakses oleh linkungan internal class dan class turunannya • Private: • Bagian class yang hanya dapat diakses oleh linkungan internal class itu sendiri
Constructor & Destructor class Time { private: int hour; int minute; int second; public: Time(); void setTime( int, int, int ); void printUniversal(); void printStandard(); ~Time(); }; Constructor Destructor
Constructor & Destructor • Constructor member function yang pertama kali di kerjakan ketika satu object di create • Nama constructor harus sama dengan nama classnya • Untuk inisialisasi object • Minimal ada 1 constructor dalam class (bisa lebih / di overload), jika tidak di tulis compiler akan mengenerate default constructor untuk class tersebut • Dapat diberikan argumen • Tidak memiliki return value (default: void)
Constructor & Destructor • Destructor member function yang di kerjakan ketika satu object di destroy / death (sebagai pengakhiran object) • Nama destructor sama dengan nama classnya ditambah tanda tilde (~) di awalnya • Untuk de-inisialisasi / clean up / dealokasi memory • Hanya ada 1 desctuctor (tdk dapat di overload) • Tidak memiliki argumen • Tidak memiliki return value
Object Class • Deklarasi Object Class Time timeObject; //object biasa Time timeArray[ 10 ]; // object array Time *timePtr; //object pointer Time &timeRef = timeObject; // object reference
Access with scope resolution operator (::) ClassName :: classMemberName void Time :: setTime( int h, int m, int s ) { hour = ( h >= 0 && h < 24 ) ? h : 0; minute = ( m >= 0 && m < 60 ) ? m : 0; second = ( s >= 0 && s < 60 ) ? s : 0; } void Time :: printUniversal() { cout << setfill( '0' ) << setw( 2 ) << hour << ":" << setw( 2 ) << minute << ":" << setw( 2 ) << second; } void Time :: printStandard() { cout << ( ( hour == 0 || hour == 12 ) ? 12 : hour % 12 ) << ":" << setfill( '0' ) << setw( 2 ) << minute << ":" << setw( 2 ) << second << ( hour < 12 ? " AM" : " PM" ); } class Time { private: int hour; int minute; int second; public: Time() { hour = minute = second = 0; } void setTime( int, int, int ); void printUniversal(); void printStandard(); ~Time(){ } };
Tugas 5 • Tugas 5A: Mahasiswa membuat ringkasan tentang konsep encapsulation pada OOP dan implementasinya pada C++ • Tugas 5B: Mahasiswa membuat analisis contoh program dengan encapsulation dari dosen • Tugas 5C: Mahasiswa membuat program sederhana dengan mengggunakan konsep Encapsulation