Minggu, 29 Desember 2013

Video
Text

C++ No.11: INHERITANCE antar Class, apa itu inheritance?


Apa itu inheritance, derived class , dan base class?? Pasti untuk seorang yang baru mengenal bahasa pemrograman berorientasi object akan sangat membingungkan. Inheritance adalah sebuah keistimewaan bahasa yang ber-orientasi object (OOP) tidak hanya C++ tetapi juga bahasa yang lain. Berikut adalah penjelasan singkatnya:

Inheritance = Pewarisan
Derived class = Class turunan
Base Class = Class Utama

contoh:
class Segitiga: public BagunDatar{ };

Artinya:
Class Segitiga adalah derived class (class yang diturunkan.
Class Polygon adalah base class (class utama).
Semua yang dimiliki oleh class utama akan dimiliki juga oleh class turunannya (pengecualian akan kita bahas di tulisan bawah artikel ini).
Keadaan seperti di atas di sebut inheritance (pewarisan).


Di dalam inheritance (pewarisan) tentu kita akan berfikir, siapa yang mewariskan? siapa yang di wariskan??? dan warisannya itu apa?? :)
Sama seperti manusia, yang mewariskan adalah orang tua, yang diwarisi adalah anak, warisannya itu bisa berupa sifat dari kedua orang tua :)

Dalam Object Oriented Programming, yang mewariskan disebut sebagai Base Class, yang diwarisi disebut sebagai Derived Class , dan warisannya itu berupa 'members' dari class yaitu variable dan function.

Untuk lebih gampang di pahami, mari kita mengetikan beberapa baris kode, anda kenal kan dengan yang namanya 'Segitiga'??? kenal juga kan dengan yang namanya 'Kotak'?? Kotak dan Segitiga ini sama sama bangun datar ya kan??? Si Kotak dan Si Segitiga ini beda, tapi mereka sama sama punya 'dasar' dan 'tinggi', ya kan??

Nah, kita akan mengetikan kode dari Si Segitiga, Si Kotak, dan Bangun Datar ini aja biar lebih mudah. Kita akan buat base class nya adalah Bangun Datar, derived class nya adalah Kotak dan Segitiga.

Kita akan mempraktekkannya menggunakan CodeBlocks terbaru (13.12) MingGW, dengan GCC 4.7.*** anda bisa menggunakan Kode Editor dan Compiler lain favorit anda.
Kenapa memakai CodeBlocks??? Karena ukurannya kecil, bisa masuk di Flashdisk dan bisa saya install di mana - mana saat waktu senggang :)

Lihat gambar 1:

Pertama, kita akan membuat sebuah Main.cpp , kita mengetikan Class pertama yang akan kita gunakan sebagai base class. Class ini kita berikan nama BangunDatar.
Perhatikan gambar di atas, kita membuat member class yang berupa dua variables dan satu fungsi.

Variable – variable tersebut adalah lebar dan tinggi dengan type data adalah integer (int) dengan ‘access specifier’ protected.
Sedangkan untuk fungsi nya adalah set_values() yang kita berikan void dan ‘access specifier’ nya public.

Sampai di sini pasti banyak pertanyaan.
*Kenapa memakai protected?
*Kenapa int?
*kenapa public?
*Kenapa void?

Protected access specifier akan mem-protect/ melindungi member/variable dari pengakses-san di luar class BangunDatar. Bila anda memiliki class lain yang tidak ada hubungannya dengan class BangunDatar maka anda tidak akan bisa mengakses variable ini terlebih mengubah nilainya.

Tetapi dengan kita menjadikan Class lain sebagai ‘Derived Class’ / ‘Class Turunan’ , maka Class turunan tersebut akan memiliki varible dari Base Class ini. Hebat bukan?

Kenapa menggunakan type data int?? karena kita hanya ingin nilai yang masuk ke dalam variable lebar dan tinggi adalah angka (interger) :)

Kenapa public?? Ini hanya access specifier, kita ingin supaya function /method ‘set_values()’ ini dapat di akses oleh Class apa saja :)

Lalu kenapa void?? Function /Method ‘set_values()’ tidak me-return apa pun, fungsi ini hanya untuk mengeset nilai dari lebar dan tinggi, sehingga cukup memakai void saja :)

Nah, perlu anda ingat, kita membuat sebuah Class ‘BangunDatar’ dengan variable lebar dan tinggi serta dengan fungsi set_values().

Mari kita ketikan class lain sebagai class turunannya.

Lihat gambar 2:

Lihat, kita membuat sebuah class baru yang merupakan ‘Derived Class’ dari class BangunDatar. Tanda colon ( : ) / titik dua merupakan tanda inheritance.

Class yang kita buat ini hanya memiliki member berupa fungsi luas() saja. Tetapi dari fungsi luas ini, kita bisa memanggil variable lebar dan tinggi miliknya class BangunDatar. Inilah gunanya inheritance :)

Class Kotak ini nantinya akan memiliki semua member dari class BangunDatar termasuk fungsi set_values juga.

Mari kita membuat class baru sebagai class turunan lain dari class BangunDatar.

Lihat gambar 3:


Perhatikan class Segitiga di atas, adakah yang tahu rumus luas segitiga?? :) Yup, rumus luas segitiga sama dengan rumus luas kotak dibagi dua.

Nah, karena class segitiga merupakan class turunan dari class BangunDatar, kita tidak perlu membuat / mendefinisikan variable lebar dan tinggi yang baru, cukup menggunakan variable yang sudah ada pada class BangunDatar.

Sampai di sini mudah dimengerti kan?? Mari kita melanjutkan kode kita selanjutnya. Kita akan membuat main function nya.

Lihat gambar 4:

Kode di atas adalah fungsi main c++ kita, kita membuat sebuah object baru (ini object lho, bukan variable atau function) yaitu ‘kotakku’ dan ‘segitigaku’ yang dibuat dari class nya masing masing.

Nah, dari object tadi, kita memanggil fungsi dari base class BangunDatar yaitu fungsi set_values. Ingat, semua member dari class BangunDatar (variable lebar, tinggi, fungsi set_values) akan diturunkan ke derived class nya :)

Setelah kita meng-set nilai untuk panjang dan lebar dari masing masing object, kita kemudian memanggil fungsi luas dari masing masing object tersebut. Mudah bukan….

Berikut adalah hasilnya:

Lihat gambar 5:


Nah, kemudian bagaimana dengan multiple inheritance???
Coba perhatikan kode berikut ini:

class Kotak: public BangunDatar, public Tampilkan{

};


Kode di atas adalah contoh dari multiple inheritance. Prinsip nya adalah sama dengan penjelasan di atas.

Mari kita membuat class baru seperti pada gambar berikut ini.

Lihat gambar 6:

Kita membuat sebuah class Tampilkan, dalam class tersebut kita membuat sebuah method / function Say(). Kita memberikan access specifier ‘public’. Function void hanya akan menampilkan string.

Nah, kita akan mencoba membuat class ini sebagai base class dari kotak maupun segitiga kita tadi.

Lihat gambar 7:


Lihat, mudah bukan membuat multiple inheritance, sekarang mari kita tambahkan di main function nya.

Lihat gambar 8:

Nah, hasilnya adalah sebagai berikut ini:
Lihat gambar 9:

Selesai, mudah kan,,,
Berikut kita sertakan kode full nya:



Sekian tutorial tentang inheritance, mudah mudahan bermanfaat, salam.

Please share bila tutorial ini cukup berbobot untuk anda!

MediaTutorial mengedepankan tutorial yang berkualitas. Semua penjelasan dipaparkan sedetail mungkin.
Please, bila tutorial ini membantu anda dan cukup berkualitas bagi anda mohon untuk share pada button sharing berikut ini.

Writen by: Okie Eko Wardoyo

Comments

1 komentar:

Rizka Putra mengatakan...

nah... sipp banget tutorialnya mas..
mateb..

Poskan Komentar