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

Slides:



Advertisements
Presentasi serupa
Pemrograman Berorientasi Objek
Advertisements

Membuat class sendiri.
Polymorphism Suatu fungsi anggota dari suatu class dapat dijadikan sebagai fungsi virtual Jika fungsi ini dideklarasikan kembali pada class turunan dan.
Fungsi Friend Dalam bahasa C++ kita dapat membuat suatu fungsi yang berada di luar kelas (class) dan dapat meng-ak-ses bagian private suatu kelas. Fungsi.
Modul 14 – Hendi Hermawan - 1
// memerlukan default constructor
Pemrograman Berbasis Objek
BAB III – CLASS (1) DIKTAT PBO Oleh: Adam Mukharil B. S.Kom.
OPERATOR OVERLOADING The ability to provide the operators with a special meaning for a data type but its original meaning is not lost. Example: Operator.
Class, Inheritance, Encapsulation & Interface
Pemrograman Berorientasi Obyek
Class Member Access Control
Pointer Memory Dinamic.
Fungsi.
Pemrograman Berorientasi Obyek1 Sub Pokok Bahasan Array of class. Array Class. Pointer of class. Dynamic Memory Management.
07 Advanced Class Features
#include //bagian modul int hitung(x,y) { return(x+y); } //bagian utama main() { int jumlah,a,b; a=8; b=2; jumlah=hitung(a,b); cout
1 Pertemuan 14 Operator Overloading Matakuliah: T0456 ~ Algoritma dan Metode Object Oriented Programming Tahun: 2005 Versi: 5.
Operator Overloading Pertemuan 20 Matakuliah: T0456 / Algoritma dan Metode Object Oriented Programming Tahun: 2007.
1 Pertemuan 4 ELEMEN DASAR C++ Matakuliah: T0456 ~ Algoritma dan Metode Object Oriented Programming Tahun: 2005 Versi: 5.
Class and Object Introduction Specifying a Class Defining Member Function A C++ Program with Class Nesting of Member Functions Private Member Functions.
Friend. Adalah fungsi bukan anggota kelas yg dapat mengakses anggota kelas. Secara umum friend berguna jika terdapat suatu operasi yg hendak mengakses.
Teknik Pemrograman Terstruktur Linked lis & Inheritance 1/12 Pointer (Lanjutan…) Pemrograman Berorientasi Objek.
1 Pertemuan 5 STREAM INPUT/OUPUT Matakuliah: T0456 ~ Algoritma dan Metode Object Oriented Programming Tahun: 2005 Versi: 5.
Pemrograman Berorientasi Obyek1 Sub Pokok Bahasan Pointer. Reference. Function Passing Parameter by Value, by Reference, by Pointer.
FUNCTIONS Pertemuan 9 Matakuliah: T0456 / Algoritma dan Metode Object Oriented Programming Tahun: 2007.
Inheritance Matakuliah : T0984 / Algoritma dan Metode Object Oriented Programming II Pertemuan : 4 Tahun : 2008 Versi : 1/0.
1 Pertemuan 17 Polymorphism Matakuliah: T0456 ~ Algoritma dan Metode Object Oriented Programming Tahun: 2005 Versi: 5.
1 Pertemuan 9 Inheritance Matakuliah: T0044/Pemrograman Berorientasi Obyek Tahun: 2005 Versi: 1.0.
Class and Object Matakuliah : XXXX / Algoritma dan Metode Object Oriented Programming II Pertemuan : 2 Tahun : 2008 Versi : 1/0.
1 Pertemuan 2 Function & Pointer Matakuliah: T0044/Pemrograman Berorientasi Obyek Tahun: 2005 Versi: 1.0.
Pemrograman Berorientasi Obyek1 Sub Pokok Bahasan Nested Object. Friend Keyword. Pointer This. Operator Overloading.
Fungsi, Array dan String
1 Pertemuan 18 Template Matakuliah: T0456 ~ Algoritma dan Metode Object Oriented Programming Tahun: 2005 Versi: 5.
Matakuliah : T0044/Pemrograman Berorientasi Obyek
1 Pertemuan 5 Encapsulation Matakuliah: T0044/Pemrograman Berorientasi Obyek Tahun: 2005 Versi: 1.0.
Pertemuan 10 Constructor dan Destructor
1 Pertemuan 7 Klasifikasi dan Rekognisi Pola (1) Matakuliah: T0283 – Computer Vision Tahun: 2005 Versi: Revisi 1.
Pertemuan 5 Balok Keran dan Balok Konsol
1 Pertemuan 7 Review 1 – 6 Matakuliah: T0044/Pemrograman Berorientasi Obyek Tahun: 2005 Versi: 1.0.
Matakuliah : R0022/Pengantar Arsitektur Tahun : Sept 2005 Versi : 1/1
1 Pertemuan 8 Array & Pointer of Class Matakuliah: T0044/Pemrograman Berorientasi Obyek Tahun: 2005 Versi: 1.0.
1 Pertemuan 12 Template Matakuliah: T0044/Pemrograman Berorientasi Obyek Tahun: 2005 Versi: 1.0.
Template 1. Learning Outcomes Pada akhir pertemuan ini, diharapkan: Mahasiswa dapat merancang sebuah program dengan menggunakan template 2.
1 Pertemuan 10 Pemrograman Berorientasi Objek Matakuliah: >/ > Tahun: > Versi: >
Matakuliah : H0112 – Pemrograman Bahasa Tingkat Tinggi
Pertemuan 10 Inheritance Lanjutan
Pertemuan 2 SINTAKS BAHASA, TIPE DATA, DAN OPERATOR
Constructor dan Overloading
Pertemuan 4 Abstract Data Type
MODIFIER JAVA.
Polymorphism Pertemuan 23-24
Constructor overloading
Constructor dan Destructor Pertemuan 17
Inheritance Pertemuan 21
Class dan Objek Lanjutan Pertemuan 18
Pertemuan 9 Pemrograman Berbasikan Objek
C++ static.
Pemrograman Berorientasi Objek
Sumber : repository.binus.ac.id/content/T0454/T ppt
Pemrograman Berorientsi Objek Pertemuan 15
Membuat Kelas.
Inheritance lanjutan Pertemuan 22
Class.
PBO Lanjutan Membuat Kelas.
Generic Data Type Pertemuan 25
Matakuliah : M0074/PROGRAMMING II Tahun : 2005 Versi : 1/0
Materi 9 Pembahasan CLASS Dalam C++
Pemrograman Berbasis Objek
Teknik Pemrog. Terstruktur 2
Transcript presentasi:

1 Pertemuan 6 Encapsulation Lanjutan Matakuliah: T0044/Pemrograman Berorientasi Obyek Tahun: 2005 Versi: 1.0

2 Learning Outcomes Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu : Menghasilkan Program C++ dengan konsep Encapsulation

3 Outline Materi Object constant dan Member Function constant Sintaks Initializer Member Class Nested Object Pointer this Static Class Member Friend Function Operator Overloading

4 Object Constant Untuk object yang tidak dapat di-modify –Jika di-modify akan menyebabkan Compiler error Contoh object konstant: const Time noon( 12, 0, 0 ); deklarasi k onstanta object noon dari class Time yg di-inisial 12

5 Member Functions Constant Member function utk const objects juga harus dibuat const –Tidak bisa me-modify object const pada prototype dan definisinya: int getHour() const; // Prototype int Time::getHour() const // Definisi { return hour; } Constructor dan Destructor tidak boleh di buat const Karena harus dapat me-modify object –Constructor  utk initialsasi objects –Destructor  utk termination object

6 Sintaks Initializer Member Class Initialisasi dg sintaks initializer member dapat digunakan untuk semua const data member. #include class Increment { public: Increment (int c = 0, int i = 1 ); // default constructor void addIncrement ( ) { count += increment; } void print ( ) const; // const member function { cout << "count = " << count << ", increment = " << increment << endl; } private: int count; const int increment; // const data member };

7 Sintaks Initializer Member Class // definisi constructor Increment::Increment (int c, int i ) : count( c ), // initializer non-const member increment( i ) // initializer const member { } //empty body void main() { Increment value( 10, 5 ); cout << "Before incrementing: "; value.print(); for ( int j = 0; j < 3; j++ ) { value.addIncrement(); cout << "After increment " << j + 1 << ": "; value.print(); } Before incrementing: count = 10, increment = 5 After increment 1: count = 15, increment = 5 After increment 2: count = 20, increment = 5 After increment 3: count = 25, increment = 5

8 Nested Object Sebuah Class dapat berisi object dari class lain  Composite / Nested Object Member object disusun berurutan –class dg member objects (host objects) berada setelah deklarasi class host object tsb  perlu class prototype Contoh: class B; // class prototype class A { public: int i; } class B { public: int j; A obj_A; //host object } B obj_B; // create object class B Obj_B.Obj_A.i = 0; // inisialisasi member class A via object B Class B Berisi Class A

9 Pointer “this” Tiap class member function memiliki hidden parameter -> pointer "this“ "this" menunjuk ke individual object. pointer "this" dpt digunakan secara explicit

10 Static Class Member static Data Member –“Class-wide” data property class tdk specific pada object tertentu Seperti global variables, tapi punya class scope Hanya accessible ke object dgn class yg sama –Efisien untuk single copy data Dimana hanya static variable yg akan di-update –Initialized hanya 1 kali pada file scope –Berlaku walaupun suatu class tidak punya object –Berlaku independent terhadap objects –Berlaku utk public, private & protected

11 Static Class Member –Dpt di akses lewat object apapun dari sebuah class –Utk public static variables Dapat diakses dgn operator binary scope resolution ( :: ) Employee::count –Utk private static variables Jika suatu class tdk ada object  Hanya dapat diakses via public static member function dgn operator binary scope resolution ( :: ) Employee::getCount() static member functions Tdk dpt mengakses non-static data / function

12 Friend Function friend function di definisikan di luar dari class’s scope namum memiliki hak akses ke semua members dari class tersebut Deklarasi friend funcion dg keyword ‘ friend ’ Contoh: friend void setX( Count &, int );

13 Contoh Program dg Friend Function #include class Count { friend void setX( Count &, int ); public: Count ( ) : x ( 0 ) { // empty body } void print() const { cout << x << endl; } private: int x; }; void setX( Count &c, int val ) { c.x = val; // legal: setX is a friend of Count } void main() { Count counter; cout << "counter.x after instantiation: "; counter.print(); setX( counter, 8 ); cout << "counter.x after call to setX friend function: "; counter.print(); }

14 Operator Overloading Pemakaian Overloading operator ditujukan untuk mengoperasikan data pada object menjadi mudah Menggunakan keyword operator

15 Overloading Arithmatic Operator Class Buah {int apel; int jeruk; public: Buah Buah(int A, int j) { apel = A; jeruk = j;} Buah operator + (Buah b) { Buah temp; temp.apel = apel + b.apel; temp.jeruk = jeruk + b.jeruk; return (temp) } Buah operator - (Buah b) }; Buah Buah::operator - (Buah b) {Buah temp; temp.apel = apel - b.apel; temp.jeruk = jeruk - b.jeruk; return (temp) } void main() {Buah B1 (2, 3), B2 (7, 5), B3 ; cout << B1.apel << “ dan ” << B1.jeruk << “ + “ << B2.apel << “ dan “ << B2.jeruk << “ = “; B3 = B1 + B2 ; cout << B3.apel << “ dan ” << B3.jeruk; }

16 Operator yg tdk dpt di-overload OperatorKegunaanContoh. (dot) Access ke member class cin.getline.* (dot asterix) Pointer ke member class Object.*member :: (scope) Akses ke data / member function Class::member ?: (ternary) seleksi kondisi C=(a>b)?a:b sizeof Memperoleh ukuran tipe data Sizeof (int)

17 Tugas 6 Tugas 6A: Mahasiswa membuat ringkasan tentang friend function dan operator overloading Tugas 6B: Mahasiswa menganalisis contoh program yang diberikan oleh dosen Tugas 6C: Mahasiswa membuat contoh program dengan menggunakan friend function dan operator overloading