download

Matakuliah
Tahun
: T0456 / Algoritma dan Metode Object
Oriented Programming
: 2007
Inheritance
Pertemuan 21
Learning Outcomes
Pada akhir pertemuan ini, diharapkan:
Mahasiswa dapat menjelaskan konsep inheritance dalam pembuatan
program.
Buku Referensi:
C++ - How to program, Deitel & Deitel,
Prentice Hall, 2001.
Websites:
http://www.deitel.com
3
Bina Nusantara
Outline Materi
•
•
•
•
Konsep Inheritance.
Class Hierarchy Diagram
Deklarasi Derived Class.
Jenis Akses Inheritance.
4
Bina Nusantara
Inheritance
• Adalah proses pembentukan satu klas baru (derived
class) dari klas lainnya (based class)
• Untuk tujuan reusability
• Derived class mendapat warisan semua kemampuan
dari yang dimiliki oleh based class, baik data members
dan methods yang dideklarasikan dengan akses public
atau protected.
• Derived class dan based class saling berhubungan
membentuk sebuah Hierarchy.
• Ada yang single dan ada yang multiple Inheritance
Bina Nusantara
Inheritance cont…
• Pada perancangan hirarki class, based class
merupakan class yang mempunyai sifat (property)
yang paling umum atau yang harus dimiliki oleh
seluruh class turunannya.
• Dengan adanya Inheritance, maka dimungkinkan
untuk reusability, sehingga tidak perlu membuat dari
baru
Bina Nusantara
Class Hierarchy Diagram
(Single Inheritance)
Based Class
Derived Class
Based Class A
Derived Class
(also Based Class B)
Derived Class
Bina Nusantara
Based Class
Derived 1
Derived 2
Based Class and Derived Class
• Member based class dapat diakses oleh member
derived class apabila jenis akses dari member based
class adalah public atau protected.
• Member tersebut dapat diakses seolah-olah
dideklarasikan dalam derived class.
• Member protected tetap tidak dapat diakses class lain
yang bukan turunannya.
Bina Nusantara
Deklarasi Derived Class
class Kendaraan{
protected:
int roda;
}
Kendaraan
Based class
Class Mobil: public Kendaraan{
Mobil(){
roda=4; //mendapat warisan int roda
}
};
Derived class
Bina Nusantara
Jenis akses Inheritance
Mobil
Jenis Akses Inheritance
• Public
– Semua member public dari based class tetap menjadi public di
dalam derived class.
– Semua member protected dari based class tetap menjadi
protected di dalam derived class.
• Protected
– Semua member public dari based class menjadi protected di
dalam derived class.
– Semua member protected dari based class tetap menjadi
protected di dalam derived class.
• Private
– Semua member public dari based class menjadi private di dalam
derived class.
– Semua member protected dari based class menjadi private di
dalam derived class.
Bina Nusantara
Jenis Akses Inheritance
Bina Nusantara
Penerapan Inheritance
Case Time Zone, tanpa inheritance
PelangganVIP
PelangganBiasa
long Saldo
long Saldo
PelangganVIP
Saldo = 0
Tambah
Kurang
disc = 10%
Bina Nusantara
PelangganBiasa
Saldo = 0
Tambah
Kurang
disc = 0%
Penerapan Inheritance
Case Time Zone, dengan inheritance
Pelanggan
long Saldo
Pelanggan
Saldo = 0
Tambah
PelangganVIP
Kurang
disc = 10%
Bina Nusantara
PelangganBiasa
Kurang
disc = 0%
Inheritance
Dengan adanya Inheritance, maka dimungkinkan untuk
reusability, sehingga tidak perlu membuat dari baru
Code:
class pelangganVIP: public pelanggan
{
-- class content -};
Bina Nusantara
Contoh Program
// program C++ dengan inheritance
#include <constream.h>
class Counter {
protected :
unsigned int count;
public :
Counter() { count = 0 ; }
unsigned int get_count() { return count; }
Counter operator ++ () {
count++ ;
return Counter( count ) ; }
};
Bina Nusantara
class CountDn : public Counter {
public :
Counter operator --(){
count -- ;
return Counter( count ) ;
}
};
void main(){
CountDn c1;
cout << “ \nc1 = “ < c1.get_count();
c1 -- ;
c1 -- ;
cout << “ \nc1 = “ < c1.get_count();
}
Bina Nusantara
Diskusi dan Tanya Jawab
Latihan soal
17
Bina Nusantara