7
BAB V POLIMORFISME 5.1. TUJUAN Tujuan dalam bab ini yaitu agar : 1. Memahami konsep dasar dari Polimorfisme. 2. Mampu membuat polimorfisme sesuai keinginan sendiri. 3. Memahami cara pengaksesan polimorfisme. 5.2. DASAR TEORI Polimorfisme berasal dari bahasa Yunani yang berarti “banyak bentuk”. Dalam OOP, konsep ini memungkinkan digunakannya suatu interface yang sama untuk memerintah suatu objek agar melakukan suatu aksi/tindakan yang mungkin secara prinsip sama tetapi secara proses berbeda. Dalam konsep yang lebih umum seringkali polimorfisme disebut dalam istilah : satu interface, banyak aksi. Contoh dalam dunia nyata adalah mobil terdiri atas berbagai tipe dan merek, namun semuanya memiliki interface kemudi yang sama, seperti setir kemudi, pedal gas dan rem. Interface yang sama tersebut tidak berarti cara kerjanya juga sama. Jika menekan pedal gas, maka mobil akan melaju dengan cepat. Tetapi proses ini dapat berbeda untuk setiap jenis mobil. 32

BAB 5 PBO C++ POLIMORFISME

Embed Size (px)

DESCRIPTION

BAB 5 PBO C++ POLIMORFISME

Citation preview

Page 1: BAB 5 PBO C++ POLIMORFISME

BAB V

POLIMORFISME

5.1. TUJUAN

Tujuan dalam bab ini yaitu agar :

1. Memahami konsep dasar dari Polimorfisme.

2. Mampu membuat polimorfisme sesuai keinginan sendiri.

3. Memahami cara pengaksesan polimorfisme.

5.2. DASAR TEORI

Polimorfisme berasal dari bahasa Yunani yang berarti “banyak

bentuk”. Dalam OOP, konsep ini memungkinkan digunakannya suatu

interface yang sama untuk memerintah suatu objek agar melakukan suatu

aksi/tindakan yang mungkin secara prinsip sama tetapi secara proses

berbeda. Dalam konsep yang lebih umum seringkali polimorfisme disebut

dalam istilah : satu interface, banyak aksi. Contoh dalam dunia nyata adalah

mobil terdiri atas berbagai tipe dan merek, namun semuanya memiliki

interface kemudi yang sama, seperti setir kemudi, pedal gas dan rem.

Interface yang sama tersebut tidak berarti cara kerjanya juga sama. Jika

menekan pedal gas, maka mobil akan melaju dengan cepat. Tetapi proses ini

dapat berbeda untuk setiap jenis mobil.

Dalam Java implementasi, method suatu parent-class dapat diubah

oleh sub-class, hal ini dikenal dengan overriding method. Deklarasi method

sama tetapi implementasi atau definisinya berbeda (Method atau perilaku

yang sama tapi implementasinya/caranya yang berbeda-beda inilah yang

disebut dengan Polimorfisme).

32

Page 2: BAB 5 PBO C++ POLIMORFISME

33

5.3. ANALISA PRAKTIKUM

5.3.1. Polimorfisme

//untuk no 1,2,3,4 dan seterusnya hanya merupakan no untuk

keterangan kode

#include<conio.h>

#include<iostream.h>

1. class Makhluk

{

2. public:

3. virtual void keterangan()=0;

};

4. class Mamalia: public Makhluk

{

5. public:

6. void keterangan()

{

7. cout<<"keterangan() pada Mamalia...

"<<endl;

}

};

8. class Sapi: public Mamalia

{

9. public:

10. void keterangan()

{

11. cout<<"keterangan() pada Sapi...

"<<endl;

}

Page 3: BAB 5 PBO C++ POLIMORFISME

34

};

12. void main()

{

13. clrscr();

14. Mamalia mamalia;

15. Sapi sapi_sumba;

16. Makhluk*binatang;

17. binatang=&mamalia;

18. binatang->keterangan();

19. cout<<"------------------------"<<endl;

20. binatang=&sapi_sumba;

21. binatang->keterangan();

getche();

}

Dan hasilnya adalah :

Keterangan :

1. Script No. 1 untuk mendeklarasikan makhluk sebagai kelasnya.

2. Script pada No. 2 untuk mendeklarasikan bahwa hak aksesnya

dapat diakses secara umum.

3. Script pada No. 3 berfungsi untuk mendukung adanya

polymorphic function.

Gambar 5.1. Hasil eksekusi dari program poli morfisme.

Page 4: BAB 5 PBO C++ POLIMORFISME

35

4. Scirpt pada No. 4 untuk mendeklarasikan bahwa kelas mamalia

dapat mengakses kelas makhluk karena kelas mamalia adalah

turunannya.

5. Seperti script No. 2, Script No. 5 juga berfungsi untuk

mendeklarasikan bahwa hak aksesnya dapat diakses secara

umum.

6. No. 6 merupakan fungsi dengan nama keterangan.

7. No. 7 sebagai perintah masukkan untuk menampilkan script

dalam bentuk hasil eksekusi.

8. Script No. 8 untuk mendeklarasikan bahwa kelas sapi dapat

mengakses keseluruhan dari kelas mamalia karena kelas sapi

adalah turunannya.

9. Seperti script No. 2 dan 5, Script No. 9 juga berfungsi untuk

mendeklarasikan bahwa hak aksesnya dapat diakses secara

umum.

10. No. 10 merupakan fungsi dengan nama keterangan.

11. No. 11 sebagai perintah masukkan untuk menampilkan script

dalam bentuk hasil eksekusi.

12. No. 12 sebagai fungsi utama program.

13. No. 13 untuk membersihkan layar.

14. No. 14 dan No. 15 merupakan bentuk inisialisasi dari variabel

untuk masing-masing variabel.

15. Pada No. 16 dan No. 17 merupakan bentuk dari fungsi tipe

bilangan yang digunakan. Dimana tanda (*) untuk tipe bilangan

char, sedangkan (=) untuk bilngan int.

16. Script No. 18 adalah binatang yang merupakan hasil inisialisasi

untuk kelas mamalia dikeluarkan melalui fungsi keterangan.

17. No. 19 sebagai perintah masukkan untuk menampilkan script

dalam bentuk hasil eksekusi.

18. No. 20 dan No. 21 untuk mendeklarasikan binatang yang

merupakan inisialsasi dari kelas sapi yang dideklarasikan dengan

Page 5: BAB 5 PBO C++ POLIMORFISME

36

variabel sapi sumba, dikeluarkan dengan fungsi keterangan yang

terdapat pada kelas sapi.

5.4. KESIMPULAN

Dari percobaan yang telah kita lakukan pada bab ini, kita dapat menarik

kesimpulan :

1. Dalam OOP, konsep polimorfisme memungkinkan digunakannya suatu

interface yang sama untuk memerintah suatu objek agar melakukan

suatu aksi/tindakan yang mungkin secara prinsip sama tetapi secara

proses berbeda.

2. Untuk mendeklarasikan sebuah fungsi virtual dalam kelas induk, anda

cukup menambahkan kata kunci virtual.

3. Fungsi virtual murni biaa dipakai sebagai kelas abstrak.

4. Kelas abstrak adalah kelas yang dideklarasikan tidak untuk menciptakan

objek.

5. Kelas abstrak mempunyai ciri paling tidak mengandung sebuah fungsi

virtual murni.