You are on page 1of 11

Matakuliah : <<Kode>>/<<Nama mtkul>>

Tahun : <<Tahun Pembuatan>>


Versi : <<versi/revisi>>

Pertemuan 10
Pemrograman Berorientasi Objek

1
Learning Outcomes

• Konsep Encapsulation
• Struct vs Class
• Class Access Control
• Constructor & Destructor
• Object Class
• Access with scope resolution operator
(::)

2
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

3
Struct VS Class

Default
Default
Access
Access
member:
member:
public
private

• struct Product class Product


• { int Prod_id; { public: int Prod_id;
• char Prod_Name; char Prod_Name;
• float Price; float Price;
• int Stock_qty; int Stock_qty;
• }; }; Class Object
• Product Brg1; Product Brg1;
Struct Object
4
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

5
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 6
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)
7
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
8
Object Class

• Deklarasi Object Class


• Time timeObject; //object biasa
• Time timeArray[ 10 ]; // object array
• Time *timePtr; //object pointer
• Time &timeRef = timeObject; // object reference

9
Access with scope resolution
operator (::)
ClassName :: classMemberName
void Time :: setTime( int h, int m, int s )
class Time { hour = ( h >= 0 && h < 24 ) ? h : 0;
{ private: minute = ( m >= 0 && m < 60 ) ? m : 0;
int hour; second = ( s >= 0 && s < 60 ) ? s : 0;
int minute; }
int second; void Time :: printUniversal()
public: { cout << setfill( '0' ) << setw( 2 ) << hour << ":"
<< setw( 2 ) << minute << ":"
Time()
<< setw( 2 ) << second;
{ hour = minute = second = 0; }
} void Time :: printStandard()
void setTime( int, int, int ); { cout << ( ( hour == 0 || hour == 12 ) ? 12 : hour
void printUniversal(); % 12 )
void printStandard(); << ":" << setfill( '0' ) << setw( 2 ) << minute
~Time(){ } << ":" << setw( 2 ) << second
}; << ( hour < 12 ? " AM" : " PM" );
}

10
Topik Minggu Depan

• Inheritance (Turunan)
• Tugas: Mahasiswa membuat program
sederhana dengan mengggunakan
konsep Encapsulation: Sistem Elevator
Sederhana
• Tugas(optional): Studi Kasus-
Intercomputer Communications (Ref:
buku-C is for control)

11

You might also like