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 themse4 lves
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 sendiri 6
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
• ConstructCoro nstrumcteomr b&e r Dfuenstcrtuiocnto ryang 
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 
8 
• 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 
9
Object Class 
• Deklarasi Object Class 
Time timeObject; //object biasa 
Time timeArray[ 10 ]; // object array 
Time *timePtr; //object pointer 
Time &timeRef = timeObject; // object reference 
10
Access ClassName with :: classMemberName 
scope resolution 
operator (::) 
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

pbo 4 ervan

  • 1.
  • 2.
    Learning Outcomes Padaakhir pertemuan ini, diharapkan mahasiswa akan mampu : • Menyimpulkan konsep Encapsulation dalam PBO 2
  • 3.
    Outline Materi •Konsep Encapsulation • Struct vs Class • Class Access Control • Constructor & Destructor • Object Class • Access with scope resolution operator (::) 3
  • 4.
    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 themse4 lves
  • 5.
    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
  • 6.
    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 6
  • 7.
    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
  • 8.
    • ConstructCoro nstrumcteomrb&e r Dfuenstcrtuiocnto ryang 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 8 • Tidak memiliki return value (default: void)
  • 9.
    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 9
  • 10.
    Object Class •Deklarasi Object Class Time timeObject; //object biasa Time timeArray[ 10 ]; // object array Time *timePtr; //object pointer Time &timeRef = timeObject; // object reference 10
  • 11.
    Access ClassName with:: classMemberName scope resolution operator (::) 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" ); }
  • 12.
    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