Anda di halaman 1dari 18

Makalah ObjectOriented Programming (OOP)

Perkembangan Pemograman Berbasis


Objek

Ditujukan untuk memenuhi persyaratan nilai Pratikum Pemograman Berbasis Objek

FAKULTAS TEKNIK
UNIVERSITAS IBN KHALDUN BOGOR

BOGOR
2016

DAFTAR ISI

DAFTAR ISI................................................................................................ 2
SEJARAH PERKEMBANGAN OOP (Object Oriented Programming). . .3
PENGERTIAN OOP (Object Oriented Programming)...........................8
KONSEP DASAR OOP (Object Oriented Programming)....................10
A. Objek.................................................................................................. 10
B. Class.................................................................................................. 10
C. Enkapsulasi........................................................................................ 11
D. Inheritance.......................................................................................... 11
E. Polimorfisme....................................................................................... 13
F. Interface.............................................................................................. 13

SEJARAH PERKEMBANGAN OOP (Object Oriented


Programming)

Object-Oriented Programming (OOP)

adalah

sebuah

pendekatan untuk pengembangan / development suatu software


dimana dalam struktur software tersebut didasarkan kepada
interaksi object dalam penyelesaian suatu proses/tugas atau
sebuah

metodologi

atau

cara

berpikir

dalam

melakukan

pemrograman dimana pendefinisian tipe data disertai dengan


pendefinisian fungsi. Struktur data yang seperti ini disebut dengan
istilah object.
Dasar untuk OOP dimulai pada awal tahun 1960-an. Sebuah terobosan
melibatkan contoh dan objek telah dicapai di MIT dengan PDP-1, dan pertama untuk
menggunakan bahasa pemrograman objek adalah Simula 67. Ia dirancang untuk
tujuan membuat simulasi, dan dikembangkan oleh Kristen Nygaard dan Ole-Johan
Dahl di Norwegia.
Mereka bekerja pada simulasi yang berurusan dengan exploding kapal, dan
mereka dapat diwujudkan grup yang berbeda kapal ke kategori. Setiap jenis kapal
akan memiliki class, dan class akan menghasilkan perilaku yang unik dan data.
Simula tidak hanya bertanggung jawab untuk memperkenalkan konsep class, tetapi
juga memperkenalkan instance dari class.
Istilah "object oriented programming" pertama kali digunakan oleh Xerox
PARC mereka di luar program bahasa. Istilah ini digunakan untuk merujuk kepada
proses menggunakan objek sebagai dasar untuk penghitungan. Tim Smalltalk yang
telah terinspirasi oleh Simula 67 proyek, tetapi mereka telah merancang Smalltalk
sehingga akan dinamis. Object dapat diubah, diciptakan, atau dihapus, dan ini
berbeda dengan sistem statis yang digunakan secara umum. smalltalk juga
merupakan bahasa pemrograman pertama kali yang memperkenalkan konsep
inheeritance. Hal ini adalah fitur yang diperbolehkan untuk Smalltalk melebihi simula
4

67 dan pemrograman sistem analog. Meskipun sistem yang canggih pada saat itu
belum bisa menggunakan konsep inheritance.
Simula 67 adalah sistem yang telah memberikan inspirasi banyak bahasa
pemrograman lain, termasuk Pascal dan Lips. Pada tahun 1980-an, pemrograman
berorientasi objek telah menjadi dominan, dan faktor utama dalam hal ini yakitu C++.
object oriented programming juga penting untuk pengembangan grafik user
interface. Cocoa dengan struktur yang ada dalam Mac OS X adalah contoh yang
baik dari GUI yang dinamis yang bekerja dengan bahasa pemrograman berorientasi
objek. Paradigma dari pemrograman ini juga telah memainkan peranan penting
dalam pengembangan event-driven programming.
Niklaus Wirth dan asosiasinya yang mencari daerah seperti modular
programming

dan

abstraction

dan

mereka

mengembangkan

sistem

yang

menghimpun dua unsur ini. Kedua sistem ini adalah Oberon dan Modula-2. Oberon
menggunakan pendekatan yang unik untuk class dan objek orientasi yang jauh
berbeda dibandingkan C++ atau smalltalk. Sejak diperkenalkannya OOP, sejumlah
besar bahasa pemrograman modern sekarang menggunakan konsep ini. Beberapa
diantaranya adalah Fortran, BASIC, dan Pascal. Ada beberapa masalah
kompatibilitas, karena banyak bahasa pemrograman yang tidak dirancang dengan
pendekatan OOP. Pemrograman bahasa berorientasi objek yang "murni" tidak
memiliki banyak fungsi yang diperlukan oleh programmer.
Untuk memecahkan masalah tersebut, sejumlah peneliti telah mencoba
membuat desain baru untuk bahasa pemrograman yang menggunakan kosep obejct
oriented yang masih tetap memnggunakan fungsi yang diperlukan oleh programer.
Satu contoh dari sebuah bahasa pemrograman yang telah dicapai adalah Eiffel.
Bahasa pemrograman lain yang telah berusaha untuk memecahkan masalah ini
adalah Java. Java menjadi populer karena menggunakan virtual Machine, dan
sangat mirip dengan C++ dan C. mesin virtual penting karena memungkinkan kode
untuk dijalankan pada berbagai platform tanpa perlu diubah. Sistem lain yang serupa
adalah Microsoft .NET. Banyak pengembang sekarang memahami pentingnya OOP,

dan sedang aktif menggunakan dalam programnya masing-masing. Banyak peneliti


terus membuat pengembangan dengan menggunakan pendekatan object oriented.
Ada

sejumlah

bahasa

lain

yang

telah

berhasil

mengkombinasikan

pendekatan objek oriented dengan prosedur yang berguna untuk programmer.


Python adalah salah satu contoh, dan Ruby menggunakan pendekatan yang serupa
juga.
Penggunaan pendekatan yang berorientasi objek telah menyebabkan
pengembangan

dalam

bahasa

modeling,

design

patern,

dan

lain

sebagainya.Kemungkinan OOP merupakan paradigma pemrograman yang akan


terus berkembang seperti yang kita maju ke depan. Ini merupakan bahasa yang kuat
untuk terus ditingkatkan selama bertahun-tahun. Ini adalah perdebatan dalam
komunitas, sebagai kritikus menunjukkan sejumlah masalah dengan struktur.
Namun, popularitas bahasa pemrograman seperti Java menunjukkan bahwa
paradigma ini akan terus ada.

Paradigma pemrograman OOP dapat dilihat sebagai interaksi


sebuah

object

dalam

melakukan

tugasnya..

Object-

oriented programs terdiri dari objects yang berinteraksi satu sama


lainnya untuk menyelesaikan sebuah tugas. Konsep OOP dimulai
pertengahan 1960-an dengan sebuah bahasa program SIMULA
I (1962-65) dan Simula 67 (1967).. Kemudian dilanjutkan di era
1970-an

dengan SMALLTALK

menjadi

yang

pertama

kali

disebut object-oriented.
Meskipun

developer

software

tidak

secara

intensif

mengembangkan OOP. Bahasa pemrograman C adalah salah satu


bahasa pemrograman komputer. Dibuat pada tahun 1970-an untuk
Sistem Operasi Unix oleh Bell Labs (Ken Thompson dan Dennis
M. Ritchie). Merupakan kelanjutan dari bahasa BCPL. Bahasa
Pemrograman C merupakan salah satu bahasa pemrograman yang
peling sering dipakai oleh pemrogram di seluruh dunia, terutama
6

karena C memperbolehkan pengakses memori secara manual. C


telah mempengaruhi bahasa-bahasa pemrograman yang lain,
terutama C++. Bahkan C seringkali dipakai untuk membuat bahasabahasa pemrograman yang lain. Umumnya C dipakai untuk
membuat program sistem dan jaringan, walaupun tidak jarang juga
dipakai untuk membuat program aplikasi.. VersiBahasaC.
CK&R
Pada tahun 1978, Dennis Ritchie dan Brian Kernighan
menerbitkan edisi pertama dari buku yang berjudul The C
Programming Language. Buku ini hingga sekarang diakui sebagai
kitab suci bahasa C dan merupakan referensi utama seorang
pemrogram yang ingin mengetahui tentang bahasa C, terutama
karena begitu lengkapnya cakupan buku ini tentang bahasa C dan
mudahnya program yang dicontohkan dalam buku ini. Versi bahasa
C yang ditampilkan dalam buku ini kemudian dikenal dalam
kalangan

pemrogram

sebagai

K&R.

Pada

buku

The

Programming Language edisi kedua kemudian melingkupi ANSI C


yang diperkenalkan belakangan.
ANSI C & ISO C
Pada perkembangannya, muncul versi-versi C lain yang pada
akhirnya membuat kebingungan di kalangan pemrogram. Karena
itu, pada tahun 1983, American National Standards Institute (ANSI)
membuat sebuah komite untuk membuat sebuah versi standar dari
bahasa C. Setelah melalui proses yang panjang dan sengit, pada
tahun 1989, telah berhasil disahkan standar yang dinamakan ANSI
X3.159-1989, versi ini seringkali dinamakan ANSI C, atau kadangkadang C89.

Pada 1990, versi ANSI C diadopsi oleh Organization for


Standardization (ISO) dengan sedikit perubahan dengan nama
ISO/IEC 9899:1990. Versi ini seringkali dinamakan ISO C atau C90.
Karena versi ANSI C dan ISO C hanya memiliki sedikit perbedaan,
pemanggilan C90 dan C89 merujuk pada bahasa yang sama
C99
Versi C99 dibuat oleh ISO C pada tahun 1999. Versi ini
dimaksudkan terutama untuk memperbanyak dukungan kepada
pemrograman berorientasi objek, terutama setelah C++, yang
dibuat berdasarkan bahasa ini mendapat tempat yang istimewa di
kalangan pemrogram.
Tetapi metodologi object-oriented tetap digunakan. Pada
pertengahan
Department

1980-an,
of

dua

Defense)

bahasa

dan

pemrograman

PROLOG

(the

ADA

Japanese

(US
Fifth

Generation Computer Project) dipercayai akan bersaing ketat


sebagai bahasa pemrograman yang paling dominan. Namun justru
OOP yang menjadi paradigma pemrograman yang paling dominan
sampai sekarang. Bahasa

pemrograman yang object-oriented

seperti C++ pada tahun 80-an menjadi populer. Bahasa OOP seperti
C++ dan Eifle menjadi popular diantara programmer computer. C+
+ adalah salah satu bahasa pemrograman komputer. Dibuat pada
tahun

1980-an

oleh

Bell

Labs

(Bjarne

Stroustrup)

sebagai

pengembangan dari Bahasa pemrograman C. Bahasa ini bersifat


kompatibel dengan bahasa dahulunya yakni bahasa C. Nama C++
sendiri di berikan oleh Rick Mascitti pada musim panas tahun
1983. Adapun tanda ++ berasal dari nama operator penaikan pada
bahasa C++. Salah satu perbedaan yang paling mendasar dengan

bahasa

adalah

dukungan

terhadap

konsep

pemrograman

berorientasi objek (Object Oriented Programming).


Popularitas OOP berlanjut pada tahun 1990-an, banyak
pengembang software menggunakan konsep OOP seperti Java dll.
Sehingga Peter Coad telah mengenalkan konsep dasar metode
object oriented pada buku-bukunya bersama Yourdon pada tahun
1990

sampai

1991.

Metode

Coad

ini

sempat

tenar

karena

menggunakan bahasa pemrograman C++, yang menjadi bahasa


pemrograman object oriented yang popular saat itu.
Selanjutnya

dimulailah

perkembangan

OOP

dengan

era

pembuatan buku Analisa dan desain object oriented, diantaranya

OMT (Object Modeling Technique) yang diperkenalkan


oleh James Rumbaugh tahun 1991. Metode OMT ini
mengadopsi dari metode Coad.

Martin-Odell (1992)

OOSE (Object Oriented Software Engineering) yang


diperkenalkan Ivar Jacobson tahun 1992. Metode ini
menekankan bahwa tahap analisa seharusnya dimulai
dengan tool use case daripada dengan tool class model.
Sehingga sebuah class dapat dibentuk berdasarkan use
case. Teknik ini menjadi sebuah langkah maju dalam
analisa object oriented dan telah secara luas dipakai.

RDD (Responsibility-Driven Design) yang diperkenalkan


oleh Wirfs-Brocks tahun 1990, yang menggunakan bahasa
pemrograman smalltalk

OBA (Object behaviour Analysis) yang diperkenalkan


Goldberg dan Rubin tahun 1992, yang menggunakan

bahasa pemrograman smalltalk yang tidak sepenuhnya


dipublikasikan
BON (Business Object Notation) yang diperkenalkan

oleh Walden dan Nerson tahun 1995


MOSES yang diperkenalkan oleh Henderson-Sellers dan

Edwards tahun 1994


SOMA yang diperkenalkan oleh Graham tahun 1995

yang dipengaruhi oleh metode MOSES.


Pada Oktober 1994, Dr. James Rumbaugh bergabung dengan
Perusahaan Rational sotware, dimana Grady Booch sudah bekerja
disana sebelumnya. Grady Booch mengembangkan Object Oriented
Design (OOD) dan Dr. James Rumbaugh mengembangkan Object
Modeling Technique (OMT). Duet Mereka pada Oktober 1995
menghasilkan Unified Method versi 0.8. Musim gugur 1995 Dr. Ivar
Jacobson ikut pula bergabung dengan duet Rumbaugh-Booch,
dengan memperkenalkan tool use case. Trio tersebut pada bulan
Juni 1996 menghasilkan Unified Modeling Language (UML) versi 0.9.
Sebelumnya Dr. Ivar Jacobson mengembangkan Object Oriented
Software Engineering (OOSE). Trio ini mengembangkan Ratinal
Unified Process (RUP)
Pada tahun 1994 ada 72 lebih metode object oriented.
Masyarakat

Object

Oriented

menyadari

bahwa

semakin

berkembangnya metode ini maka perlu adanya standarisasi.


Apalagi ada beberapa metode object oriented yang bergabung,
diantaranya :

coleman dan Malan

MOSES dan SOMA

dll

10

RDD (Responsibility-Driven Design) yang diperkenalkan


oleh Wirfs-Brocks tahun 1990, yang menggunakan bahasa
pemrograman smalltalk

OBA (Object behaviour Analysis) yang diperkenalkan


Goldberg dan Rubin tahun 1992, yang menggunakan
bahasa pemrograman smalltalk yang tidak sepenuhnya
dipublikasikan

BON (Business Object Notation) yang diperkenalkan


oleh Walden dan Nerson tahun 1995

MOSES yang diperkenalkan oleh Henderson-Sellers dan


Edwards tahun 1994

SOMA yang diperkenalkan oleh Graham tahun 1995


yang dipengaruhi oleh metode MOSES.

Sampai pada 2002 berkembang menjadi Microsoft Visual


Studio memperkenalkan bahasa object-oriented baru yang diberi
nama C#. Disusul VB.NET yang merupakan penyempurnaan Visual
Basic 6.0 yang tidak mendukung OOP. Bermula dari Objek Oriented
Programming(OOP) yang kemudian dikembangkan menjadi Objek
Oriented Design (OOD) dan pada akhirnya menjadi Objek Oriented
Analysis (OOA). Di tahun 2002, versi terakhir dari Visual Studio,
Microsoft memperkenalkan bahasa OOP baru yaitu C# (dibaca Csharp) serta upgrade Visual Basic, dan ini merupakan sebuah
bahasa OOP sesungguhnya.

PENGERTIAN OOP (Object Oriented Programming)


Pemrograman berorientasi objek (Inggris: object-oriented programming
disingkat OOP) merupakan paradigma pemrograman yang berorientasikan kepada
objek. Semua data dan fungsi di dalam paradigma ini dibungkus dalam kelas-kelas

11

atau objek-objek. Bandingkan dengan logika pemrograman terstruktur. Setiap objek


dapat menerima pesan, memproses data, dan mengirim pesan ke objek lainnya.
Pendekatan berorientasi objek mendorong para programmer untuk tempat
data di mana tidak langsung dapat diakses oleh seluruh program. Sebaliknya data
diakses dengan memanggil tertulis fungsi khusus, yang biasa disebut metode, baik
yang dibundel dengan data atau warisan dari objek kelas dan bertindak sebagai
perantara untuk mengambil atau memodifikasi data tersebut. Pemrograman yang
membangun yang menggabungkan data dengan satu set metode untuk mengakses
dan mengelola data tersebut disebut objek.
Sebuah program berorientasi objek biasanya akan mengandung berbagai
jenis objek, masing-masing jenis yang sesuai untuk jenis tertentu dari data yang
kompleks untuk dikelola atau mungkin ke objek dunia nyata atau konsep seperti
rekening bank, pemain hoki, atau buldoser. Sebuah program mungkin berisi
beberapa salinan dari setiap jenis objek, satu untuk setiap objek dunia nyata
program ini berurusan dengan OOP.Sebagai contoh, ada bisa menjadi salah satu
rekening bank untuk setiap account objek dunia nyata di sebuah bank
tertentu. Setiap salinan dari objek rekening bank akan sama dalam metode ini
menawarkan untuk memanipulasi atau membaca data, tetapi data dalam setiap
objek akan berbeda mencerminkan sejarah yang berbeda dari setiap account.
Objek dapat dianggap sebagai pembungkus data mereka dalam satu set
fungsi yang dirancang untuk memastikan bahwa data yang digunakan tepat, dan
untuk membantu dalam menggunakan. Metode ini objek biasanya akan mencakup
pemeriksaan dan perlindungan yang khusus untuk jenis data objek berisi. Sebuah
objek juga dapat menawarkan sederhana digunakan, metode standar untuk
melakukan operasi tertentu pada data, sementara menyembunyikan secara spesifik
tentang bagaimana tugas-tugas yang dicapai. Dengan cara ini perubahan dapat
dibuat dengan struktur internal atau metode obyek tanpa memerlukan bahwa sisa
program dimodifikasi. Pendekatan ini juga dapat digunakan untuk menawarkan
metode standar di berbagai jenis objek.Sebagai contoh, beberapa jenis benda
mungkin menawarkan metode cetak. Setiap jenis objek yang mungkin menerapkan
metode cetak dalam cara yang berbeda, yang mencerminkan jenis data yang
berbeda masing-masing berisi, tetapi semua metode cetak yang berbeda mungkin
disebut dengan cara standar yang sama dari tempat lain di program ini. Fitur-fitur ini
menjadi berguna terutama ketika lebih dari satu programmer berkontribusi kode

12

untuk proyek atau ketika tujuannya adalah untuk menggunakan kembali kode di
antara proyek.
Pemrograman berorientasi obyek memiliki akar yang dapat ditelusuri ke
tahun 1960-an. Sebagai perangkat keras dan softwaremenjadi semakin kompleks,
pengelolaan sering menjadi perhatian. Para peneliti mempelajari cara untuk menjaga
kualitas software dan pemrograman berorientasi objek yang dikembangkan
sebagian untuk mengatasi masalah-masalah umum dengan sangat menekankan
diskrit, unit dapat digunakan kembali logika. Teknologi ini berfokus pada data
daripada proses, dengan program yang terdiri dari modul mandiri (kelas), setiap
contoh (objek) yang berisi semua informasi yang dibutuhkan untuk memanipulasi
data struktur sendiri (anggota). Hal ini berbeda dengan yang ada pemrograman
modular yang

telah

dominan

selama

bertahun-tahun

yang

difokuskan

pada fungsi dari sebuah modul, bukan data spesifik, tetapi juga disediakan
untuk penggunaan kembali kode, dan cukup dapat digunakan kembali unit-diri dari
logika pemrograman, memungkinkan kolaborasi melalui penggunaan modul terkait
(subrutin).Pendekatan yang lebih konvensional, yang masih tetap, cenderung untuk
mempertimbangkan data dan perilaku secara terpisah.
Program berorientasi objek dengan demikian dapat dilihat sebagai
kumpulan objek berinteraksi, yang bertentangan dengan model konvensional, di
mana program dipandang sebagai daftar tugas (subrutin) untuk melakukan. Dalam
OOP, setiap objek dapat menerima pesan, pengolahan data, dan mengirim pesan ke
objek lainnya. Setiap objek dapat dilihat sebagai mesin independen dengan peran
yang berbeda atau tanggung jawab. Tindakan (metode) pada obyek-obyek yang
terkait erat dengan objek. Sebagai contoh, OOP struktur data cenderung membawa
operator sendiri main dengan mereka (atau setidaknya mewarisi mereka dari
obyek yang sama atau kelas).

KONSEP DASAR OOP (Object Oriented Programming)


Untuk dapat menguasai pemrograman Java, harus mengerti dengan baik
konsep pemrograman berorientasi objek, karena Java merupakan bahasa
pemrograman berorientasi objek. Pada bagian ini akan dibahas konsep-konsep
penting dalam pemrograman berorientasi objek.

13

A. Objek
Pada dasarnya semua benda yang ada di dunia nyata dapat dianggap
sebagai sebuah objek. Jika perhatikan lebih lanjut, pada dasarnya ada dua
karakteristik yang utama pada sebuah objek , yaitu :

Setiap objek memiliki atribut sebagai status yang kemudian akan disebut
sebagai state.

Setiap objek memiliki tingkah laku yang kemudian akan disebutsebagai


behaviour.

Contoh sederhananya adalah : objek sepeda

Sepeda memiliki atribut ( state ) : pedal, roda, jeruji, dan warna.

Sepeda memiliki tingkah laku ( behaviour ) : kecepatannya menaik,


kecepatannya menurun, dan perpindahan gigi sepeda.
Dalam pengembangan perangkat lunak berorientasi objek, objek dalam

perangkat lunak akan menyimpan state-nya dalam variabel dan menyimpan


informasi tingkah laku ( behaviour ) dalam method-method atau fungsifungsi/prosedur.
B. Class
Class berbeda dengan object. Class merupakan prototipe, blue print,
ataupun template dengan kata lain Class adalah representasi abstrak dari suatu
objek, sedangkan objek adalah representasi nyata dari Class ataupun perwujudan
(instance) dari suatu class.
jika diilustrasikan hubungan antara class dan object seperti pada gambar
dibawah ini :

14

suatu class dapat berisi property,field,method dan event dari suatu object, gabungan
dari property,field,method dan event dari suatu object biasanya member dari class.
C. Enkapsulasi
Dalam sebuah objek yang mengandung variabel-variabel dan methodmethod, dapat ditentukan hak akses pada sebuah variabel atau method dari objek.
Pembungkusan variabel dan method dalam sebuah objek dalam bagian yang
terlindungi inilah yang disebut dengan enkapsulasi. Jadi, enkapsulasi dapat
diartikan sebagai bungkusan (wrapper ) pelindung program dan data yang sedang
diolah. Pembungkus ini mendefinisikan perilaku dan melindungi program dan data
yang sedang diolah agar tidak diakses sembarangan oleh program lain. Manfaat dari
proses enkapsulasi adalah :

Modularitas
Kode sumber dari sebuah objek dapat dikelola secara independen dari kode
sumber objek yang lain.

Information Hiding
Karena kita dapat menentukan hak akses sebuah variabel/method dari objek,
dengan demikian kita bisa menyembunyikan informasi yang tidak perlu
diketahui objek lain.

D. Inheritance
Class dapat didefinisikan dengan referensi pada class yang lain yang telah
terdefinisi. Inheritance merupakan pewarisan atribut dan method pada sebuah class
yang diperoleh dari class yang telah terdefinisi tersebut. Setiap subclass akan
mewarisi state ( variabelvariabel) dan behaviour ( method- method ) dari
superclass-nya. Subclass kemudian dapat menambahkan state dan behaviour
baru yang spesifik dan dapat pula memodifikasi ( override ) state dan behaviour
yang diturunkan oleh superclass-nya.
Keuntungan dari inheritance adalah :

Subclass

menyediakan

state/behaviour

yang

spesifik

membedakannya dengan superclass, hal ini akan memungkinkan

15

yang

Programmer Java untuk menggunakan ulang source code dari superclass


yang telah ada. Programmer Java dapat mendefinisikan superclass khusus
yang bersifat generik, yang disebut abstract class, untuk mendefinisikan
class dengan behaviour dan state secara umum.

Istilah dalam inheritance yang perlu diperhatikan :

Extends
Keyword ini harus kita tambahkan pada definisi class yang menjadi subclass.

Superclass
Superclass digunakan untuk menunjukkan hirarki class yang berarti class
dasar dari subclass/class anak.

Subclass
Subclass adalah class anak atau turunan secara hirarki dari superclass.

Super
Keyword ini digunakan untuk memanggil konstruktor dari superclass atau
menjadi variabel yang mengacu pada superclass.

Methode Overriding
Pendefinisian ulang method yang sama pada subclass.
Dalam

inheritance,

method

overriding

berbeda

dengan

method

overloading. Kalau method overriding adalah mendefinisikan kembali method yang


sama, baik nama method maupun signature atau parameter yang diperlukan dalam
subclass, kalau method overloading adalah mendefinisikan method yang memiliki
nama yang sama, tetapi dengan signature yang berbeda dalam definisi class yang
sama.

E. Polimorfisme
Kata polimorfisme yang berarti satu objek dengan banyak bentuk yang
berbeda, adalah konsep sederhana dalam bahasa pemrograman berorientasi objek
yang berarti kemampuan dari suatu variabel referensi objek untuk memiliki aksi
berbeda bila method yang sama dipanggil, dimana aksi method tergantung dari tipe
16

objeknya.

Kondisi

yang

harus

dipenuhi

supaya

polimorfisme

dapat

diimplementasikan adalah :

Method yang dipanggil harus melalui variabel dari basis class atau
superclass.

Method yang dipanggil harus juga menjadi method dari basis class.

Signature method harus sama baik pada superclass maupun subclass.

Method access attribute pada subclass tidak boleh lebih terbatas dari basis
class.

F. Interface
Pada Java juga dikenal konsep interface, yang merupakan device yang
digunakan untuk komunikasi antar objek berbeda yang tidak memiliki hubungan
apapun. Interface bisa dikatakan sebagai protokol komunikasi antar objek tersebut.
Interface atau diartikan dalam bahasa indonesianya adalah antarmuka, atau
secara fungsi adalah alat untuk menghubungkan benda-benda lain secara langsung
untuk dapat berinteraksi. Makna dalam bahasa pemrograman sendiri interface
dapat didefinisikan sebagai koleksi /kumpulan definisi metode-metode dan variabelvariabel konstan, namun tanpa implementasi. Implementasi akan dilakukan oleh
kelas-kelas yang mengimplements interface ini. Tanpa implementasi di sini tidak
seperti pada kelas abstrak yang merupakan metode-metode yang tidak melakukan
apa-apa, melainkan hanya sekedar nama metode saja.Sebuah kelas tidak dapat
menjadi subkelas dari beberapa superkelas, melainkan hanya bisa menjadi subkelas
dari satu superkelas saja. Hal ini membuat desain program lebih rapi dan teratur,
sehingga dapat mengurangi kompleksitas program. Namun, terkadang hal ini dapat
menjadi suatu kendala yang tidak menyenangkan, misalnya saat kita membutuhkan
suatu kelas yang memiliki sifat-sifat dari dua atau lebih kelas lain. Nah disinalah
fungsi interface itu dapat memberikan sebuah alternatif jalan keluar.
Tentunya dengan adanya interface maka beberapa kelas akan dapat
menangani interaksi yang sama tapi dengan behaviour yang bisa berbeda. Contoh
beberapa kelas mengimplementasi sebuah interface yang sama, maka kelas-kelas
tersebut dapat menangani interaksi sesuai interface tersebut, namun tiap kelas
dapat memiliki implementasi sendiri-sendiri.

17

Jika sebuah kelas mengimplementasi banyak interface, maka kelas tersebut


akan dapat menangani interaksi-interaksi sesuai salah satu interface yang
diimplement oleh kelas tersebut.tapi kelas tersebut harus mengimplementasi sendiri
behaviournya. Inilah letak perbedaan penggunaan interface dengan multiple
inheritance. Pada multiple inheritance, seperti single inheritance, subkelas tidak
harus mengimplementasikan sendiri behaviournya karena secara default kelas
tersebut akan mengikuti behaviour superkelasnya.

18

Anda mungkin juga menyukai