12
Encapsulation 1

pbo 4 ervan

  • Upload
    aris

  • View
    43

  • Download
    0

Embed Size (px)

Citation preview

Page 1: pbo 4 ervan

Encapsulation

1

Page 2: pbo 4 ervan

Learning Outcomes

Pada akhir pertemuan ini, diharapkan mahasiswa

akan mampu :

• Menyimpulkan konsep Encapsulation dalam PBO

2

Page 3: pbo 4 ervan

Outline Materi

• Konsep Encapsulation

• Struct vs Class

• Class Access Control

• Constructor & Destructor

• Object Class

• Access with scope resolution operator (::)

3

Page 4: pbo 4 ervan

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

Page 5: pbo 4 ervan

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

Page 6: pbo 4 ervan

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

Page 7: pbo 4 ervan

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

Page 8: pbo 4 ervan

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

Page 9: pbo 4 ervan

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

Page 10: pbo 4 ervan

Object Class

• Deklarasi Object ClassTime timeObject; //object biasa

Time timeArray[ 10 ]; // object array

Time *timePtr; //object pointer

Time &timeRef = timeObject; // object reference

10

Page 11: pbo 4 ervan

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" );}

Page 12: pbo 4 ervan

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