Matakuliah
Tahun
Versi
: T0044/Pemrograman Berorientasi Obyek
: 2005
: 1.0
Pertemuan 5
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 themselves
4
Struct VS Class
Default
Access
member:
public
struct Product
{ int Prod_id;
char Prod_Name;
float Price;
int Stock_qty;
};
Product Brg1;
Struct Object
Default
Access
member:
private
class Product
{ public: int Prod_id;
char Prod_Name;
float Price;
int Stock_qty;
};
Class Object
Product Brg1;
5
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;
Constructor
int second;
public: Time();
void setTime( int, int, int );
void printUniversal();
void printStandard();
~Time();
};
Destructor
7
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 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 with scope resolution
operator (::)
ClassName :: classMemberName
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" );
}
11
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
© Copyright 2026 Paperzz