1 / 12

Pertemuan 5 Encapsulation

Pertemuan 5 Encapsulation. Matakuliah : T0044/Pemrograman Berorientasi Obyek Tahun : 2005 Versi : 1.0. Learning Outcomes. Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu : Menyimpulkan konsep Encapsulation dalam PBO. Outline Materi. Konsep Encapsulation Struct vs Class

adamma
Download Presentation

Pertemuan 5 Encapsulation

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Pertemuan 5Encapsulation Matakuliah : T0044/Pemrograman Berorientasi Obyek Tahun : 2005 Versi : 1.0

  2. Learning Outcomes Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu : • Menyimpulkan konsep Encapsulation dalam PBO

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

  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 themselves

  5. 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; Struct VS Class Default Access member: public Default Access member: private Class Object Struct 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

  7. Constructor & Destructor class Time { private: int hour; int minute; int second; public: Time(); void setTime( int, int, int ); void printUniversal(); void printStandard(); ~Time(); }; Constructor Destructor

  8. 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)

  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

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

  11. Access with scope resolution operator (::) ClassName :: classMemberName 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" ); } 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(){ } };

  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

More Related