Upload
aris
View
43
Download
0
Tags:
Embed Size (px)
Citation preview
Encapsulation
1
Learning Outcomes
Pada akhir pertemuan ini, diharapkan mahasiswa
akan mampu :
• Menyimpulkan konsep Encapsulation dalam PBO
2
Outline Materi
• Konsep Encapsulation
• Struct vs Class
• Class Access Control
• Constructor & Destructor
• Object Class
• Access with scope resolution operator (::)
3
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 themselves4
Struct VS Class
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;5
Default Access
member: public
Default Access
member: private
Struct Object
Class 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 sendiri6
Constructor & Destructor
class Time{ private: int hour; int minute; int second; public: Time();
void setTime( int, int, int ); void printUniversal();
void printStandard(); ~Time();};
7
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) 8
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 value9
Object Class
• Deklarasi Object ClassTime timeObject; //object biasa
Time timeArray[ 10 ]; // object array
Time *timePtr; //object pointer
Time &timeRef = timeObject; // object reference
10
Access with scope resolution operator (::)
ClassName :: classMemberName
11
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(){ }};
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" );}
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
12