Anda di halaman 1dari 15

SEJARAH OOP

Pemrograman berorientasi obyek dikembangkan sebagai metodologi


pemrograman yang dominan selama pertengahan 1990-an, sebagian
besar disebabkan oleh pengaruh C++. Dominasinya itu makin diperkuat
oleh meningkatnya popularitas dari antarmuka pengguna grafis, yang
pemrograman berorientasi obyek tampaknya cocok. Contoh dari GUI
dinamis terkait erat dengan perpustakaan dan bahasa OOP dapat
ditemukan di Kakao kerangka kerja di Mac OS X, yang ditulis di
Objective-C, sebuah object-oriented, dinamis ekstensi pesan
ke C didasarkan pada Smalltalk. OOP toolkit juga meningkatkan
popularitas pemrograman kendali-event (walaupun konsep ini tidak
terbatas pada OOP). Sebagian merasa bahwa asosiasi dengan GUI (nyata
atau tidak) adalah apa yang didorong ke dalam pemrograman OOP arus
utama.
Fitur berorientasi objek telah ditambahkan ke banyak bahasa yang ada
selama waktu itu, termasuk Ada, BASIC, Fortran, Pascal, dan lain-lain.
Menambahkan fitur ini untuk bahasa yang awalnya tidak dirancang untuk
mereka sering menimbulkan berbagai permasalahan dengan
kompatibilitas dan Kemampu-rawatan kode. Baru-baru ini, sejumlah
bahasa telah muncul yang berorientasi obyek terutama belum kompatibel
dengan metodologi prosedural, seperti Python dan Ruby. Mungkin yang
paling penting secara komersial baru bahasa berorientasi obyek
adalah Visual Basic.NET (VB.NET) dan C#, baik yang dirancang
untuk Microsoft.NET platform, dan Java, yang dikembangkan oleh Sun
Microsystems. VB.NET dan C# baik dukungan lintas bahasa warisan,
memungkinkan kelas didefinisikan dalam satu bahasa ke bahasa kelas
subclass didefinisikan dalam bahasa lain.

Sama seperti pemrograman prosedural mengarah pada perbaikan teknik


seperti pemrograman terstruktur, modern berorientasi objek metode
desain perangkat lunak mencakup perbaikan seperti penggunaan pola
desain, design by kontrak, dan pemodelan bahasa (seperti UML). OOPS
istilah yang mengacu pada sebuah Object Oriented Programming System,
adalah umum terjadi di awal pengembangan pemrograman berorientasi
obyek.
Usaha untuk menyaring OOP untuk minimal kumpulan fitur dianggap sia-
sia oleh peneliti bahasa pemrograman Cuire Benjamin Pierce. Namun
demikian, ia mengidentifikasi sebagai berikut fitur dasar yang ditemukan
di kebanyakan bahasa-bahasa berorientasi obyek dan bahwa, dalam
konser, mendukung gaya pemrograman OOP:

Dynamic dispatch ketika sebuah metode dipanggil pada objek, obyek


itu sendiri menentukan kode apa yang dijalankan dengan melihat metode
pada saat run waktu dalam sebuah tabel yang berhubungan dengan
objek. Fitur ini membedakan objek dari suatu tipe data abstrak (atau
modul), yang memiliki tetap (statis) pelaksanaan operasi untuk semua
kasus
Enkapsulasi (atau multi-metode, dalam hal ini negara disimpan
terpisah)

Subtipe polimorfisme

objek warisan (atau delegasi)

Buka rekursi variabel khusus (sintaksis ini mungkin merupakan kata


kunci), biasanya disebut this atau self yang memungkinkan tubuh metode
untuk invoke metode lain tubuh objek yang sama. Variabel ini akhir-
terikat; ini memungkinkan sebuah metode yang didefinisikan dalam satu
kelas untuk memanggil metode lain yang ditentukan kemudian, dalam
beberapa subclass daripadanya.

Demikian pula, dalam buku 2003, Konsep-konsep dalam bahasa


pemrograman, John C. Mitchell mengidentifikasi empat fitur utama:
dinamis pengiriman, abstraksi, subtipe polimorfisme, dan pewarisan.
Michael Lee Scott dalam Programming Language Pragmatics hanya
mempertimbangkan enkapsulasi, pewarisan dan dinamis pengiriman.

Bahasa OOP Simula (1967) secara umum diterima sebagai bahasa


pertama untuk memiliki fitur-fitur utama dari sebuah bahasa berorientasi
objek. Hal ini diciptakan untuk membuat program simulasi, di mana apa
yang kemudian disebut objek adalah representasi informasi yang paling
penting. Smalltalk(1972-1980) adalah dapat dikatakan sebagai contoh
kanonik, dan satu dengan yang banyak teori pemrograman berorientasi
objek adalah dikembangkan.

Bahasa disebut murni OO bahasa, karena segala sesuatu di


dalamnya diperlakukan secara konsisten sebagai sebuah objek, dari
primitif seperti karakter dan tanda baca, sepanjang jalan sampai ke
seluruh kelas, prototip, blok, modul, dll. Mereka dirancang secara
khusus untuk memfasilitasi, bahkan menegakkan, metode OO.
Contoh: Smalltalk, Eiffel, Ruby, JADE
Bahasa dirancang terutama untuk pemrograman OO, tapi dengan
beberapa elemen prosedural. Contoh: C + +, Java, Python.
Bahasa yang secara historis bahasa prosedural, tetapi telah
diperluas dengan beberapa fitur OO. Contoh: Fortran 2003, Perl,
COBOL 2002.
Bahasa dengan sebagian besar fitur objek (kelas, metode, warisan,
usabilitas), tapi dalam bentuk aslinya jelas. Contoh: Oberon
(Oberon-1 atau Oberon-2).
Bahasa dengan tipe data abstrak dukungan, tetapi tidak semua fitur
object-orientasi, kadang-kadang disebut objek berbasis bahasa.
Contoh: Modula-2 (dengan sangat baik dan informasi enkapsulasi
menyembunyikan), liat, CLU.

OOP di scripting dalam beberapa tahun terakhir, pemrograman


berorientasi objek telah menjadi sangat populer dalam bahasa
pemrograman scripting. Python, Ruby dan groovy adalah bahasa scripting
yang dibangun di atas prinsip-prinsip OOP, sementara Perl dan PHP telah
menambahkan fitur berorientasi objek sejak Perl 5 dan PHP 4, dan
ColdFusion sejak versi 6.

Mengapa OOP dibutuhkan ?


Sudut pandang pembuatan program selaras dengan realitas dunia
nyata.
Kemudahan pengembangan.
Kecepatan pengembangan.
Peningkatan produktivitas.
Karakteristik OOP antara lain :
Abstraksi
Enkapsulasi
Pewarisan (Inheritance)
Polymorphism
Komunikasi antar Objek
Reusability

Berberapa bentuk OOP antara lain :


OOP dengan ADT (Abstract Data Type)
OOP dengan Inheritance dan Polymorphism
OOP Client-Supplier
OOP dengan Genericity
OOP Concurrent

Macam-macam bahasa OOP antara lain :

Bahasa OOP Murni adalah bahasa yang mengharuskan program betul-


betul ditulis dari objek-objek saja. Dengan kata lain segala sesuatu di
dalamnya diperlakukan secara konsisten sebagai sebuah objek, dari
primitif seperti karakter dan tanda baca, sepanjang jalan sampai ke
seluruh kelas, prototipe, blok, modul, dll Mereka dirancang secara khusus
untuk memfasilitasi, bahkan menegakkan, metode Objek.

Contoh: Eiffel, SmallTalk, Ruby, JADE.

Bahasa OOP Hybrid (Campuran) adalah bahasa dirancang terutama


untuk pemrograman objek, tapi dengan beberapa elemen prosedural.
atau bahasa yang masih memungkinkan penulisan program
mencampuradukkan objek dengan fungsi dan type lainnya di luar objek.

Contoh: C++, Java, Delphi, Python.

Bahasa OOP Hybrid untuk Web Programming : Perl, PHP


PENGENALAN KONSEP OBJECT ORIENTED

A. SEJARAH OBJECT ORIENTED


Object-Oriented Programming (OOP) adalah sebuah pendekatan untuk
pengembangan suatu software dimana dalam struktur software tersebut
didasarkan kepada interaksi object dalam penyelesaian suatu proses /
tugas.

Berorientasi objek berarti bahwa kita mengorganisasi perangkat lunak


sebagai kumpulan dari objek tertentu yang memiliki struktur data dan
perilakunya. Konsep awal programming (Basic) dengan kekuatan GOTO
statement ini merupakan Non Procedural Language. Procedural Language
/ Bahasa pemograman terstruktur menghilangkan kelemahan GOTO
konsep non procedural language. Contoh : Pascal, COBOL, FORTRAN,
BASIC, dll.

Object Oriented Programming, mengarah pada konsep object. Akhir tahun


1960 diperkenalkan pertama kali dengan bahasa SIMULA. Tahun 1970
dikembangkan Smaltalk. Bahasa pemrograman lainnya : Clipper 5.2 Java,
Prolog dll. Visual Object Oriented Programming, tahun 1991
diperkenalkan pertama kali dengan bahasa Visual Basic oleh Microsoft
Bahasa pemograman lainnya : Visual C++, Visual Foxpro 3.0, CORBA
(Common Object Request Broker Architecture), dll.

Pengembangan berorientasi objek merupakan cara berpikir baru tentang


perangkat lunak berdasarkan abstraksi yang terdapat dalam dunia nyata.
Dalam konteks pengembangan menunjuk pada bagian awal dari siklus
hidup pengembangan sistem, yaitu survei, analis, desain, implementasi
dan pemeliharaan sistem. Hal yang lebih penting dalam pengembangan
berorientasi objek adalah konsep mengidentifikasi dan mengorganisasi
domain aplikasi dari pada penggunaan bahasa pemrograman, berorientasi
objek atau tidak.
B. Konsep Pemodelan
- Berorientasi objek dalam proses konseptual terpisah dengan Bahasa
pemrograman sampai tahap terakhir.

- Pengembangan berorientasi objek secara mendasar merupakan


cara berpikir baru dan bukan suatu teknik pemrograman.

- Dapat melayani sebagai media spesifikasi, analisa, dokumentasi dan


interface seperti halnya pemrograman.

- Bahkan sebagai alat pemrograman, dapat memiliki berbagai


sasaran, termasuk bahasa pemrograman dan basis data sebaik
dengan bahasa pemrograman berorientasi objek.

C. Metodologi Object Oriented

Diperkenalkan tahun 1980 menggunakan perangkat kerja dan teknik


teknik yang dibutuhkan dalam pengembangan sistem, yaitu dynamic dan
static object oriented model, state transition digram dan case
scenario. Fokus utama metodologi ini pada objek, dapat digambarkan
sebagai benda, oreng, tempat dan sebagainya yang memiliki atribut dan
metode.

Tahap tahap metodologi berdasarkan Sistem Development Life Cycle


(SDLC), dengan berorientasi objek dapat dijelaskan sebagai berikut :
Analisa

Dimulai dengan menyatakan suatu masalah, analis membuat model


situasi dari dunia nyata, menggambarkan sifat yang penting.

Model analisa adalah abstraksi yang ringkas dan tepat dari apa
yang harus dilakukan oleh sistem, dan bagaimana melakukannya.
Objek dalam model harus merupakan konsep domain dari aplikasi,
bukan merupakan implementasi komputer seperti struktur data.

Empat kesulitan yang merupakan gangguan utama sistem adalah


memahami problem domain, komunikasi antara pihak yang
berkaitan, perubahan kontinyu, dan penggunaan kembali.
Desain
Pengorganisasian sistem ke dalam sub sistem berdasarkan
struktur analisa dan arsitektur yang dibutuhkan.
Desain model berdasarkan model analisa tetapi berisi detail
implementasi.

Fokus object design adalah perencanaan struktur data dan


algoritma yang diperlukan untuk implementasi setiap kelas. Objek
domain aplikasi dan objek domain komputer dijelaskan dengan
menggunakan konsep dan notasi berorientasi objek yang sama.

System designer menentukan karakteristik penampilan secara


optimal, strategi memecahkan masalah, dan pilihan alokasi sumber
daya. Contoh : system designer mungkin menentukan perubahan
pada screen untuk workstation yang memerlukan kecepatan serta
resolusi lebih tinggi.
Implementasi
Kelas, objek dan relasinya dikembangkan dalam tahap object
design, akhirnya diterjemahkan ke dalam bahasa pemrograman,
basis data, dan implementasi perangkat keras.

Dalam tahap implementasi hal yang penting adalah mengikuti


penggunaan perangkat lunak yang baik.
D. Karakteristik Object

Objek adalah kombinasi antara struktur data dan perilaku dalam satu
entitas dan mempunyai nilai tertentu yang membedakan entitas tersebut.
Memiliki Identity (identitas)
Memiliki klasifikasi
Memiliki state (kondisi / keadaan)
State sebuah objek dinyatakan dalam attribute / properties
Memiliki behavior (perilaku / method)

Perilaku suatu objek dinyatakan dalam operation. Perilaku suatu objek


adalah mendefinisikan bagaimana objek tersebut bertindak dan
memberikan reaksi.
E. Perbedaan Object Oriented dengan Non Object

Perbedaan yang spesifik dengan metodologi non objek adalah :

1. Penggunaan Alat, untuk metodologi non objek menggunakan


beberapa alat untuk menggambarkan model seperti data flow
diagram, entity relationship diagram dan structure chart, sedangkan
metodologi berorientasi objek menggunakan satu jenis model dari
tahap analisa sampai implementasi, yaitu diagram objek.

2. Data dan Proses, pada metodologi non objek, data dan proses
dianggap sebagai dua komponen yang berlainan, sedangkan pada
metodologi berorientasi objek, data dan proses merupakan satu
kesatuan, yaitu bagian dari objek.

3. Bahasa Pemrograman, untuk metodologi non objek dipergunakan


untuk melengkapi pemrograman terstruktur pada bahasa generasi
ketiga, sedangkan metodologi berorientasi objek dipergunakan
untuk pemrograman berorientasi objek dan bahasa generasi
keempat.

KONSEP OBJECT ORIENTED

A. Tehnik Pemodelan Object

Model mempunyai dua dimensi - suatu pandangan tentang sistem


(model objek, model dinamik, atau model fungsional) dan tahapan dari
pengembangan (analisa, desain atau implementasi).

Teknik pemodelan objek menggunakan tiga macam model untuk


menggambarkan sistem, yaitu :

Model Objek
Model objek menggambarkan struktur statis dari suatu objek dalam
sistem dan relasinya.

Model objek berisi diagram objek. Diagram objek adalah graph


dimana nodenya adalah kelas yang mempunyai relasi antar kelas.

Model Dinamik
Model dinamik menggambarkan aspek dari sistem yang berubah
setiap saat.

Model dinamik dipergunakan untuk menyatakan aspek kontrol dari


sistem.
Model dinamik berisi state diagram. State diagram adalah graph
dimana nodenya adalah state dan arc adalah transisi antara state
yang disebabkan oleh event.

Model Fungisional
Model fungisional menggambarkan transformasi nilai data di dalam
sistem.

Model fungisional berisi data flow diagram. DFD adalah suatu graph
dimana nodenya menyatakan proses dan arcnya adalah aliran data.

B. Konsep Object Oriented


Metodologi berorientasi objek mempunyai karakteristik sebagai berikut
:
1. Encapsulation atau pengkapsulan, merupakan dasar untuk
pembatasan ruang lingkup program terhadap data yang diproses.
Dengan demikian objek atau prosedur dari luar tidak dapat
mengaksesnya. Data terlindung dari prosedur atau objek lain
kecuali prosedur yang berada dalam objek itu sendiri.

2. Inheritance (pewarisan), adalah teknik yang menyatakan bahwa


anak dari objek akan mewarisi data / atribut dan metode dari
induknya langsung. Bila inheritance dipergunakan, kita tidak perlu
membuat atribut dan metode lagi pada anaknya, karena telah
diwarisi oleh induknya. Inheritance mempunyai arti bahwa atribut
dan operasi yang dimiliki bersama diantara kelas yang mempunyai
hubungan secara hirarki.

3. Polymorphisme, yaitu aksi yang sama yang dapat dilakukan


terhadap beberapa objek. Polimorfisme berarti bahwa operasi yang
sama mungkin mempunyai perbedaan dalam kelas yang berbeda.
Suatu implementasi yang spesifik dari suatu operasi dari kelas
tertentu disebut metode. Memungkinkan dapar mempunyai lebih
dari satu metode.

4. Class, adalah kumpulan atas definisi data dan fungs - fungsi


dalam suatu unit untuk suatu tujuan tertentu. Sebuah class adalah
dasar dari modularitas dan struktur dalam pemrograman
berorientasi object. Sebuah class secara tipikal sebaiknya dapat
dikenali oleh seorang non - programmer sekalipun terkait dengan
domain permasalahan yang ada, dan kode yang terdapat dalam
sebuah class sebaiknya (relatif) bersifat mandiri dan independen
(sebagaimana kode tersebut digunakan jika tidak
menggunakan OOP). Dengan modularitas, struktur dari sebuah
program akan terkait dengan aspek-aspek dalam masalah yang
akan diselesaikan melalui program tersebut. Cara seperti ini akan
menyederhanakan pemetaan dari masalah ke sebuah program
ataupun sebaliknya.

5. Objects, adalah sebuah structure yang menggabungkan data


dan prosedur untuk bekerja bersama-sama. Objek merupakan
dasar dari modularitas dan struktur dalam sebuah program
komputer berorientasi objek. Dalam term OOP, object adalah
sebuah structure yang menggabungkan data dan prosedur untuk
bekerja bersama-sama. Contoh, jika kamu tertarik dalam pelacakan
data yang dihubungkan dengan produk, kamu akan menciptakan
sebuah object produk yang bertanggung jawab untuk me-
maintenance dan bekerja dengan data yang bersinggungan dengan
produk. Jika kamu ingin kemampuan mencetak dalam
aplikasi kamu, kamu harus bekerja dengan sebuah object printer
yang bertanggungjawab untuk data serta metode yang digunakan
untuk berinteraksi dengan printermu.

6. Abstraction, ketika membangun objects dalam aplikasi OOP,


adalah penting untuk menggabungkan konsep abstraction ini. Jika
kamu membangun aplikasi shipping, kamu harus membangun
object produk dengan atribut seperti ukuran dan berat. Warna
adalah contoh informasi yang tidak ada hubungannya dan harus
dibuang. Tetapi ketika kamu membangun orderentry application,
warna menjadi penting dan harus termasuk atribut object produk.

7. Aggregation, adalah kondisi ketika object berisi gabungan


dari object-object yang berbeda dan bekerja bersama. Contoh
mesin pemotong rumput terdiri dari object roda, objects mesin,
object pisau dan lain-lain. Object mesinpun merupakan gabungan
dari berbagai object. Kemampuan untuk menggunakan aggregation
dalam OOP adalah satu feature yang powerful yang memungkinkan
model menjadi akurat.
8. Inheritas
Mengatur polimorfisme dan enkapsulasi dengan mengijinkan objek
didefinisikan dan diciptakan dengan jenis khusus dari objek yang
sudah ada - objek-objek ini dapat membagi (dan memperluas)
perilaku mereka tanpa haru mengimplementasi ulang perilaku
tersebut (bahasa berbasis-objek tidak selalu memiliki inheritas.)
0

Sebagai contoh perhatikan hirarki diatas. Kelas Binatang


merupakan sebuah class dengan level tertinggi ( supperclass ),
level selanjutnya Kelas Mamalia dan Kelas Reptil yang merupakan
kelas turunan dari kelas Binatang, sehingga method yang berada
pada kelas binatang berdasarkan hak akses dapat digunakan pada
kelas Mamalia dan kelas Reptil. Demikian juga kelas Mamalia
memiliki kelas turunan kelas Anjing, kelas Kucing, kelas Monyet
dsb. (Sumber : id.wikipedia.com )

C. Tema Object Oriented


Terdapat beberapa tema sebagai dasar teknologi berorientasi objek
sebagai penunjang berorientasi objek.

1. Abstraksi, berarti fokus pada aspek yang melekat dari entitas dan
mengabaikan sifat yang sementara. Dalam mengembangkan
sistem, fokus pada apakah suatu objek dan apa yang dikerjakan
oleh objek tersebut, sebelum menentukan implementasinya.
Penggunaan abstraksi yang sesuai memungkinkan model yang
sama digunakan untuk analisa perancangan tingkat tinggi, struktur
program, struktur basis data dan dokumentasi. Menggunakan
abstraksi dalam analisa berarti hanya melakukan konsep domain
aplikasi, tidak menentukan desain dan implementasi sebelumm
masalah dipahami.
2. Pengakapsulan (information hiding), terdiri dari pemisahan
aspek eksternal dari suatu objek, dimana dapat diakses oleh objek
lain. Pengkapsulan melindungi program dari saling keterkaitan
sehingga kesempatan kecil mempunyai akibat penyimpangan.

3. Menggabungkan Data dan Perilaku, Pemanggilan dari operasi


tidak perlu dipikirkan berapa banyak implementasi yang diberikan
oleh operasi yang ada.

4. Penggunaan Bersama (Sharing), teknik berorientasi objek


menawarkan penggunaan bersama untuk beberapa tingkat yang
berbeda. Pewarisan struktur data dan perilaku memungkinkan
penggunaan bersama antara beberapa sub kelas yang sama tanpa
redundancy. Pemakaian bersama code adalah keuntungan utama
dari bahasa berorientasi objek. Pengembangan berorientasi objek
tidak hanya mengizinkan informasi dipergunakan bersama dalam
aplikasi, tetapi memberikan prospek untuk menggunakan desain
dan code bersama pada prospek mendatang.
Karakteristik Berorientasi Object
Enkapsulasi/pengkapsulan(Encapsulation)
Enkapsulasi adalah pembungkus, pembungkus disini dimaksudkan untuk
menjaga suatu proses program agar tidak dapat diakses secara
sembarangan atau di intervensi oleh program lain. Konsep enkapsulasi
sangat penting dilakukan untuk menjaga kebutuhan program agar dapat
diakses sewaktu-waktu, sekaligus menjaga program tersebut.
Enkapsulasi juga merupakan suatu cara untuk menyembunyikan
informasi detail dari suatu class. Dua hal yang mendasar dalam
enkapsulasi yakni :

Information hiding.
Interface to access data.

Dalam kehidupan sehari hari enkapsulasi dapat dimisalkan sebagai arus


listrik pada generator, dan sistem perputaran generator untuk
menghasilkan arus listrik. Kerja arus listrik tidak mempengaruhi kerja dari
sistem perputaran generator, begitu pula sebaliknya. Karena didalam arus
listrik tersebut, kita tidak perlu mengetahui bagaimana kinerja sistem
perputaran generator, apakah generator berputar kebelakang atau ke
depan atau bahkan serong. Begitu pula dalam sistem perputaran
generator, kita tidak perlu tahu bagaimana arus listrik, apakah menyala
atau tidak.
Begitulah konsep kerja dari enkapsulasi, dia akan melindungi sebuah
program dari akses ataupun intervensi dari program lain yang
mempengaruhinya. Hal ini sangat menjaga keutuhan program yang telah
dibuat dengan konsep dan rencana yang sudah ditentukan dari awal.

Contoh dalam program


Belajar.Java
class belajar{
public String x =Pintar;
private String y = Java;
}
Pintar.Java
public class Pintar{
public static void main(String[]args){
Coba panggil = new Belajar();
System.out.println(Panggil X : +panggil.x);
System.out.println(Panggil Y : +panggil.y);
}}

Tipe public dan private mempunyai fungsi yang berbeda.


Fungsi public yang terdapat dalam class Coba pada variable x,
memungkinkan nilai dari variable x dapat diakses oleh class Belajar.
Sedangkan variable y yang menggunakan fungsi private tidak dapat
dipanggil didalam class Belajar.

Information hiding
Sebelumnya kita dapat mengakses anggota class baik berupa atribut
maupun method secara langsung dengan menggunakan objek yang telah
kita buat. Hal ini dikarenakan akses kontrol yang diberikan kepada atribut
maupun method yang ada di dalam class tersebut adalah 'public'. Kita
dapat menyembunyikan informasi dari suatu class sehingga anggota class
tersebut tidak dapat diakses dari luar, caranya adalah hanya dengan
memberikan akses kontrol 'private' ketika mendeklarasikan atribut atau
method. Proses ini disebut dengan information hiding.
Interface to access data Jika kita telah melakukan information hiding
terhadap suatu atribut pada suatu class, lalu bagaimana cara melakukan
perubahan terhadap atribut yang kita sembunyikan tersebut, caranya
adalah dengan membuat suatu interface berupa method untuk
menginisialisasi atau merubah nilai dari suatu atribut tersebut.
Pengertian Inheritance(Pewarisan)
Konsep inheritance ini mengadopsi dunia riil dimana suatu entitas/obyek
dapat mempunyai entitas/obyek turunan. Dengan konsep inheritance,
sebuah class dapat mempunyai class turunan.

Suatu class yang mempunyai class turunan dinamakan parent class atau
base class. Sedangkan class turunan itu sendiri seringkali disebut
subclass atau child class. Suatu subclass dapat mewarisi apa-apa yang
dipunyai oleh parent class.

Karena suatu subclass dapat mewarisi apa apa yang dipunyai oleh parent
class-nya, maka member dari suatu subclass adalah terdiri dari apa-apa
yang ia punyai dan juga apa-apa yang ia warisi dari class parent-nya.

Kesimpulannya, boleh dikatakan bahwa suatu subclass adalah tidak lain


hanya memperluas (extend) parent class-nya.

Dari hirarki diatas dapat dilihat bahwa, semakin kebawah, class akan
semakin bersifat spesifik. Class mamalia memiliki seluruh sifat yang
dimiliki oleh binatang, demikian halnya juga macan , kucing, Paus dan
Monyet memiliki seluruh sifat yang diturunkan dari class mamalia.

Dengan konsep ini, karakteristik yang dimiliki oleh class binatang cukup
didefinisikan didefinisikan dalam class binatang saja.

Class mamalia tidak perlu mendefinisikan ulang apa yang telah dimiliki
oleh class binatang, karena sebagai class turunannya, ia akan
mendapatkan karakteristik dari class binatang secara otomatis. Demikian
juga dengan class macan, kucing, Paus dan monyet, hanya perlu
mendefinisikan karakteristik yang spesifik dimiliki oleh class-nya masing-
masing.

Dengan memanfaatkan konsep pewarisan ini dalam pemrograman, maka


hanya perlu mendefinisikan karakteristik yang lebih umum akan
didapatkan dari class darimana ia diturunkan.
Contoh Inheritance :

Anda mungkin juga menyukai