• Tidak ada hasil yang ditemukan

11_12_13 Inheritance – Polimorfisme – Template Fungsi dan Kelas

N/A
N/A
Protected

Academic year: 2018

Membagikan "11_12_13 Inheritance – Polimorfisme – Template Fungsi dan Kelas"

Copied!
46
0
0

Teks penuh

(1)

ALGORITM A DAN

PEM ROGRAM AN 2

(2)

M ATERI

Teks/ string

Pointer

File

Struktur

Kelas/ Class

Konstruktor dan Destruktor

Kelas dan Obyek

Overloading Operator

Inheritance (Pewarisan)

Polimorfisme

Template Fungsi dan Kelas

Sort
(3)

INHERITANCE (PEWARISAN)

Pert emuan 11

(4)

Inheritance

Inheritance (Pewarisan)

adalah

sifat dari suat u kelas yang

dapat mewariskan anggot a

(5)

Inheritance

Kelas yang

mewarisi

sifat dari kelas

lain disebut dengan

kelas t urunan

(derived class)

(6)

Inheritance

Keunt ungan dari inheritance adalah

memungkinkan penggunaan kembali

kode yang sudah teruji benar,

sehingga t idak perlu membuat kode

yang sama set iap kali membuat

(7)

Penentu

Inheritance/ Pewarisan

Terdiri dari 3 macam penent u

pewarisan, yait u :

1. Private

2. Protected

(8)

1. Penentu Pewarisan Private

Sint aks:

class

NamaKelasTurunan

: Privat e NamaKelasDasar

at au

class

NamaKelasTurunan

: NamaKelasDasar

Cont oh:

class OrangTua class Anak : Private OrangTua

{ {

(9)

1. Penentu Pewarisan Private

Sifat :

Semua anggot a dat a dan fungsi anggot a yang

bersifat

public dan protected

pada kelas dasar

akan

diwariskan

ke kelas t urunan dengan sifat

private

Anggot a dat a dan fungsi anggot a pada kelas

dasar yang bersifat

private

tidak diwariskan

(10)

2. Penentu Pewarisan Protected

Sint aks:

class

NamaKlsTurunan

: Prot ect ed NamaKelasDasar

at au

class NamaKelasTurunan : NamaKelasDasar

Cont oh:

class OrangTua class Anak : Protected OrangTua

{ {

(11)

2. Penentu Pewarisan Protected

Sifat :

Semua anggot a dat a dan fungsi anggot a yang

bersifat

public dan protected

pada kelas dasar

akan

diwariskan

ke kelas t urunan dengan sifat

protected

Anggot a dat a dan fungsi anggot a pada kelas

dasar yang bersifat

private

tidak diwariskan

(12)

Pewarisan

Contoh Soal 01:

(13)
(14)
(15)

3. Penentu Pewarisan Public

Sint aks:

class

NamaKlsTurunan

: Public NamaKelasDasar

at au

class NamaKelasTurunan : NamaKelasDasar

Cont oh:

class OrangTua class Anak : Public OrangTua

{ {

(16)

3. Penentu Pewarisan Public

Sifat :

Semua anggot a dat a dan fungsi anggot a yang

bersifat

public

dan

protected

pada kelas dasar

akan

diwariskan

ke kelas t urunan

t anpa

perubahan

(prot ect ed diwariskan menjadi

prot ect ed, public diwariskan menjadi public)

Anggot a dat a dan fungsi anggot a pada kelas

dasar yang bersifat

private

tidak diwariskan

(17)

Pewarisan

Contoh Soal 02:

(18)
(19)

Tugas

Algoritma...?????

Pseudocode...??????

Dikumpulkan hari rabu, 27 M ei 2015

(20)
(21)

Rangkuman Pewarisan

Penentu Pewarisan

Penentu Akses di Kelas Dasar

Penentu Akses Baru di Kelas Turunan

private private tidak diwariskan protected private

public private

protected private tidak diwariskan protected protected

public protected

Public private tidak diwariskan protected protected

(22)

Akses ke Anggota Data yang bersifat

Private

Agar dapat mengakses anggota

data pada kelas dasar yang

bersifat private, ada dua cara

yang bisa dilakukan:

1. M engubah penent u akses menjadi

protected

2. M emanggil konst rukt or kelas dasar

pada definisi konst rukt or kelas

(23)

Akses ke Anggota Data yang bersifat

Private

1. M engubah penent u akses menjadi

protected

Dengan mengubah penent u akses menjadi

prot ect ed, maka anggot a dat a bisa diakses dari kelas t urunan

Digunakan jika anggot a dat a dipakai dalam proses selanjut nya di kelas t urunan

2. M emanggil konst rukt or kelas dasar pada

definisi konst rukt or kelas t urunan

Penent u akses di kelas dasar t et ap privat e

Dipakai jika anggot a dat a t idak dipakai pada
(24)

Pewarisan Bertingkat

(25)

Pewarisan Bertingkat

Dalam kasus nama fungsi anggota ket iga

kelas sama, maka harus menggunakan

operat or resolusi lingkup (::) unt uk

menyatakan kepemilikan

Cont oh:

(26)

Pewarisan Berganda

Dalam pewarisan berganda, sebuah kelas dapat

mewarisi sifat lebih dari sat u kelas

Cont oh:

(27)

Pewarisan Berganda

Dalam kasus nama fungsi anggot a pada kedua kelas

dasar sama, maka unt uk mengakses harus menggunakan operat or resolusi lingkup (::) yang menandakan

kepemilikan

Cont oh:

Fungsi anggot a di kelas Ayah dan Ibu sama yait u lihat ().

Cara memanggil fungsi:

Anak anak1;

anak1.Ayah::lihat ();

(28)

POLIFORFISM E

Pert emuan 12

(29)

Fungsi Virtual

Fungsi virt ual adalah fungsi anggota yang

dideklarasikan dengan menggunakan

keyword “ Virt ual”

Guna fungsi virt ual:

M isal pada kelas dasar t erdapat fungsi virt ual.

• Kemudian fungsi t ersebut dideklarasikan lagi pada kelas t urunan.

M isalnya lagi sebuah point er dicipt akan unt uk menunjuk ke kelas dasar.

• Selanjut nya point er dapat memilih obyek yang t epat kalau fungsi anggot a virt ual t ersebut dipanggil

(30)

Keterangan Fungsi Virtual

Fungsi virt ual halo() didefinisikan di kelas

OrangTua (kelas dasar)

Fungsi halo() juga didefinisikan di kelas

Anak dan kelas Cucu

Sebuah pointer ot 1 diciptakan yang

bert ipe OrangTua

(31)

Keterangan Fungsi Virtual

Ket ika fungsi anggot a lihat () dipanggil dari

point er, t ernyat a yang muncul adalah fungsi

lihat () dari kelas OrangTua

Ket ika fungsi anggot a halo() dipanggil dari

point er, t ernyat a yang muncul adalah fungsi

halo() dari kelas Anak

Hal ini t erjadi karena halo() adalah fungsi virt ual

(32)

Polimorfisme

Polimorfisme berart i mempunyai banyak bent uk

Salah sat u bent uk polimorfisme adalah overloading t erhadap fungsi dan operat or

Polimorfisme semacam ini disebut polimorfisme saat kompilasi (compile t ime polimorphism)

Bent uk polimorfisme lainnya adalah polimorfisme saat

eksekusi (execut ion t ime polimorphism), disebut juga lat e binding at au dynamic binding

(33)

Fungsi Virtual M urni

Fungsi virt ual pada kelas dasar t idak pernah diakses sehingga t idak berguna

Hal ini karena t idak pernah ada pencipt aan obyek dari kelas dasar

Cont oh:

Fungsi halo() pada kelas OrangTua t idak pernah diakses karena obyek berkelas OrangTua t idak pernah dicipt akan

Karena t idak berguna, isi fungsi virt ual bisa dihapus dengan cara menambahkan = 0 set elah t anda ()

Cont oh:

virt ual void halo() = 0;

(34)

Kelas Abstrak

Kelas Abst rak adalah kelas yang dideklarasikan namun t idak unt uk mencipt akan obyek

Ciri kelas abst rak:

M engandung paling t idak sat u fungsi virt ual murni

Cont oh:

Kelas OrangTua pada cont oh program merupakan kelas abst rak

Kelas abst rak t idak dapat dipakai unt uk mencipt akan obyek, sehingga pernyat aan berikut t idak diperkenankan:

OrangTua ot 1;

Namun pencipt aan point er bert ipe kls abst rak dpt dilakukan

(35)

Kelas Dasar Virtual

Gambar pewarisan bert ingkat

Bisa t erjadi masalah pada kelas Cucu bila

pendeklarasian dilakukan sepert i pada cont oh

didepan

OrangTua

Cucu

(36)

Kelas Dasar Virtual

Cont oh:

M isal pada kelas OrangTua t erdapat anggot a dat a “ nama” bert ipe prot ect ed. Anggot a dat a ini akan diwariskan ke Anak1 dan Anak2. Karena kelas Cucu merupakan gabungan dari kelas Anak1 dan

Anak2, maka akan t erdapat dua anggot a dat a “ nama” pada kelas Cucu.

Cara mengat asi : dengan menggunakan keyword

virt ual pada saat pendeklarasian kelas t urunan

– Cont oh:

class Anak1 : virt ual public OrangTua{}; class Anak2 : virt ual public OrangTua{};

(37)

TEM PLATE FUNGSI DAN KELAS

Pert emuan 13

(38)

Pendahuluan

Template mirip dengan overloading, yait u

digunakan pada fungsi-fungsi yang

menangani t ugas yang sama tapi berbeda

t ipe data dan jumlah parameternya

Bedanya:

pada overloading, kode harus dit ulis diset iap

fungsi

(39)

Template Fungsi

• Sint aks membuat t emplat e:

t emplat e <class NamaPengenal>

TipeNilaiBalik NamaFungsi(NamaPengenal paramet er, …) {

… }

• Cont oh:

t emplat e <class T> void t ukar(T & x, T & y) {

(40)

Template Fungsi

Set elah membuat t emplat e, prot ot ipe fungsi harus dibuat

Prot ot ipe fungsi harus sama persis dengan definisi fungsi pada t emplat e t ermasuk t ipe nilai balik, jumlah dan t ipe paramet er

Cont oh:

void t ukar(int & x, int & y);

void t ukar(double & x, double & y);

Sepert i pada overloading, t emplat e akan bekerja sesuai dengan jumlah dan t ipe paramet er dari fungsi yang
(41)

Tugas

Apa yang Anda diketahui tentang

NILAI

BALIK

Dikumpulkan hari rabu, 27 M ei 2015

Apabila jawaban Anda sama maka yang

sama nilainya kan dibagi sejumlah

jawaban yang sama

(42)

Template dengan Bermacam Tipe

Sint aks:

t emplat e <class NamaPengenal1, class NamaPengenal2> TipeNilaiBalik NamaFungsi(NamaPengenal1 paramet er1, NamaPengenal2 paramet er2)

{ … }

• Cont oh:

t emplat e <class A, class B>

int lebih_dari(A dat a[], B x, int jumdat a) {

(43)

Overloading terhadap Template

Fungsi

• Cara overloading t erhadap t emplat e fungsi sama dengan overloading t erhadap fungsi

• Caranya: membuat bermacam t emplat e dengan nama sama t api berbeda kegunaannya, berbeda jumlah dan t ipe paramet ernya

• Cont oh:

t emplat e <class T> void t ukar(T & x, T & y)

{T t mp; t mp = x; x = y; y = t mp;} t emplat e <class T>

void t ukar(T x)

{cout << " Nilai x : " << x << endl;} t emplat e <class T>

void t ukar(T * x)

(44)

Template Kelas

Templat e dalam kelas digunakan unt uk

mendefinisikan anggot a dat a dan fungsi

anggot a

Sint aks:

t emplat e <class NamaPengenal>

class NamaKelas

{

..

(45)

Template Kelas

Cont oh:

t emplat e <class Templ> class Arit mat ika

{

public:

Templ penjumlahan(Templ x, Templ y); Templ pengurangan(Templ x, Templ y); };

t emplat e <class Templ>

Templ Arit mat ika<Templ>::penjumlahan(Templ x, Templ y) {

(46)

Template Kelas

t emplat e <class Templ>

Templ Arit mat ika<Templ>::pengurangan(Templ x, Templ y)

{

ret urn(x - y); }

Cont oh pembuat an obyek: Arit mat ika<int > jum_int ;

Arit mat ika<float > jum_float ; Arit mat ika<int > kur_int ;

Referensi

Dokumen terkait

Untuk per hat ian ser ta par t isipasi dalam mengikuti lelang ini diucapkan t er imakasih. Singkawang, 2 Oktober

Dalam penelitian ini dapat disimpulkan dua hal yang merupakan jawaban dari rumusan masalah yang telah dipaparkan sebelumnya. Berikut ini merupakan simpulan dari penelitian

sebuah perancangan interior Desain interior Bali Music Independent Centre untuk.. mendapatkan data yang relatif lengkap dan akurat metode pengumpulan data

Risk analysis adalah proses identifikasi yang dilakukan untuk mengetahui risiko yang mungkin terjadi dalam suatu pekerjaan maupun suatu kondisi.. Di dalam risk analysis

[r]

Menurut Quraisy Shihab men- curi berbeda dengan korupsi, me- rampok, mencopet dan merampas. Mencuri adalah mengambil secara sembunyi-sembunyi barang berhar- ga milik

Teknik pemetaan cerita terdiri dari peta struktur teks naratif yang akan membantu siswa untuk memahami isi teks naratif dengan mudahg. Hasil penelitian menunjukkan

Diperoleh 89 pasien asma yang memenuhi kriteria inklusi untuk dilakukan wawancara mengenai status rinosinusitis kronik, rinitis alergi, kepatuhan berobat, dan tingkat