-->

Mengetahui Definisi dan Fungsi Objek Array Inheritance Pada PBO

Objek Array

Salah satu pokok pembelajaran dalam algoritma dan pemrogaman adalah pembuatan array untuk mendefinisikan group item dengan tipe yang sama. Akses item pada array menggunakan indeks angka sehingga dapat mempermudah untuk mengkses item dalam jumlah yang banyak. Array pada PBO juga dimanfaatkan dalam mendefinisikan objek dari kelas yang sama dalam jumlah yang banyak. Gambar 1 adalah contoh program beserta output nya menggunakan Objek Array.

Pendefinisan objek array dilakukan di awal main program dalam program C++ memiliki format penulisan sebagai berikut
nama kelas nama objek[jumlah array];

Pengertian Pewarisan (Inheritance)

Inheritance atau pewarisan merupakan salah satu fitur yang paling powerfull dari Pemrograman Berorientasi Objek setelah fitur kelas itu sendiri. Inheritance adalah proses pembuatan kelas baru yang biasa dipanggil sebagai kelas turunan atau derived classes, dari kelas induk atau base classes. Kelas turunan mewarisi seluruh isi dari kelas induk, tetapi dapat menambahkan kelebihan dan perbaikan dari kelas induknya. Kelas induk sendiri tidak mengalami perubahan selama proses inheritance itu sendiri.
Objek Array Inheritance
Garis panah dalam gambar di atas menunjukkan arah yang mungkin berlawanan dengan arah yang anda ekspektasikan. Gambar di atas dapat diartikan bahwa kelas turunan merupakan “turunan dari” kelas induk yang ada di atasnya.

Pewarisan adalah bagaian penting dari PBO dan salah satu keunggulan yang diperoleh dari pewarisan ini adalah “reusability” atau kemampuan digunakan kembali. Penggunaan kode program yang sudah ada lebih menghemat waktu, uang dan meningkatkan kehandalan program. Seorang programmer juga dapat menggunakan kelas yang sudah dibuat oleh orang atau perusahaan lain tanpa harus memodifikasinya, lalu membuat kelas turunan dari program tersebut yang sesuai dengan situsasi tertentu.

Kelas Induk dan Kelas Turunan

Contoh program sederhana yang berisi kelas induk dan kelas turunan ditunjukkan dalam Gambar 3

Menurut program dalam Gambar 3, Kelas Anak merupakan turunan dari Kelas induk Ortu. Format penulisan Kode program untuk mendefinisikan kelas turunan adalah sebagai berikut
class nama kelas turunan:acces specifier nama kelas induk

Pada main program pada Gambar 3 didefinisikan suatu objek bernama obj1 dari Kelas Anak. Kelas Anak merupakan turunan dari kelas Ortu sehingga semua objek dari kelas Anak dapat mengakses semua member data dan member fungsi yang terdapat di kelas induk Ortu. Hal ini terlihat pada baris 30, dimana objek dari kelas turunan Anak, obj1, dapat memanggil member fungsi beri() dari kelas induk. Untuk memanggil member yang berada di private tetap harus melalui member fungsi yang terdapat di public:. Objek obj1 dapat memanggil fungsi terima() karena fungsi terima() merupakan member dari kelas asal obj1 yaitu Kelas Anak.

Dalam program di atas juga terdapat dua fungsi yang memiliki nama yang sama pada Kelas induk dan kelas turunan yaitu fungsi milan(). Kondisi ini biasa disebut dengan overriding. Saat obj1 memanggil fungsi milan(), maka fungsi milan() pada kelas turunan (Anak) yang akan dijalankan. Pemanggilan fungsi milan() pada kelas induk dari kelas turunan dapat dilakukan melalui member fungsi di kelas turunan dengan menggunakan list program seperti pada baris ke 23. Format penulisan kode program untuk memanggil member data atau fungsi pada kelas induk dari kelas turunan adalah sebagai berikut.
nama kelas induk::nama member fungsi() atau data;

Program dalam PBO dapat digambarkan dengan menggunakan Unified Modeling Language (UML). Keuntungan dari penggunaan UML ini adalah untuk mempermudah perancangan program dan mempermudah orang lain untuk memahami bagaimana program tersebut bekerja. Program 3 dapat digambarkan dengan menggunakan UML seperti pada Gambar 4

Access Combinations

Salah satu Acces specifier yang sering digunakan adalah public. Dalam PBO terdapat 2 acces specifier lain selain public, yaitu private dan protected yang memiliki aturan acces data yang berbeda-beda. Hal ini menyebabkan banyak kemungkinan kombinasi akses data antar kelas dalam pewarisan. Gambar 5 menunjukkan aturan akses data pada public dan private
Gambar 5 menunjukkan bahwa Objek dari kelas B, yang merupakan kelas turunan public dari kelas A, dapat mengakses member public dari kelas A. Sedangkan Objek dari Kelas C ,yang merupakan turunan private dari kelas A, tidak dapat mengakses member public dari kelas A. Contoh program berdasarkan aturan akses pada gambar 5 ditunjukkan pada program pada gambar 6 berikut

Multilevel Inheritance

Suatu kelas mungkin saja diturunkan dai kelas turunan lain. Sebagai gambaran dari multi level inheritance perhatikan UML berikut
Berdasarkan UML di atas dapat dibuat suatu program multilevel inheritance sebagai berikut
Kelas Grandson merupakan kelas turunan dari Kelas Daughter dan Kelas Daughter merupakan kelas turunan dari kelas induk Parents. Jadi dapat disimpulkan bahwa Kelas Grandson merupakan kelas turunan level kedua.

Program di atas menunjukkan bahwa obj1 yang merupakan objek dari kelas turunan Grandson dapat mengakses member public dari kelas induk Parents. Kelas Grandson mengakses secara tidak langsung member dari kelas induk Parents melalui Kelas Daughter. Kesimpulan yang dapat diperoleh dari program 8 adalah kelas turunan level kedua atau lebih yang saling berhubungan mewarisi semua member public: dari kelas turunan level atasnya atau kelas induknya.

Multiple Inheritance

Suatu kelas dapat memiliki lebih dari satu kelas induk. Ini biasa disebut dengan Multiple Inheritance atau Pewarisan berganda. Gambar berikut adalah bentuk UML dasar dari multiple inheritance
Multiple inheritance ini digunakan ketika kita ingin menggabungkan dua atau lebih kelas induk dengan satu atau lebih kelas turunan. Hal ini terjadi karena tidak semua kelas turunan membutuhkan kelas induk baru. Dari UML di atas dapat dibuat kode program multiple inheritance sebagai berikut
Program pada Gambar 10 didefiniskan objek b1 dari kelas burung yang merupakan kelas turunan dari dua kelas induk, yaitu Kelas Mamalia dan Vertebrata. Ketika objek b1 dari kelas burung didefiniskan, konstruktor dari Kelas induk Mamalia bekerja secara otomatis yang terlihat dari output program ”Mamalia hewan yang melahirkan”. Hal ini menunjukkan bahwa objek dari kelas turunan burung dapat memanggil fungsi pada public: kelas induk Mamalia. Objek b1 juga berhasil memanggil member fungsi ciri() dari kelas Vertebrata. Hal ini menunjukkan objek b1 dari kelas burung mewarisi member pada public: kedua kelas induknya.

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel

close