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
adalah
sebuah
metodologi
atau
cara
berpikir
dalam
melakukan
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,
sejumlah
bahasa
lain
yang
telah
berhasil
mengkombinasikan
dalam
bahasa
modeling,
design
patern,
dan
lain
object
dalam
melakukan
tugasnya..
Object-
dengan SMALLTALK
menjadi
yang
pertama
kali
disebut object-oriented.
Meskipun
developer
software
tidak
secara
intensif
pemrogram
sebagai
K&R.
Pada
buku
The
1980-an,
of
dua
Defense)
bahasa
dan
pemrograman
PROLOG
(the
ADA
Japanese
(US
Fifth
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
bahasa
adalah
dukungan
terhadap
konsep
pemrograman
sampai
1991.
Metode
Coad
ini
sempat
tenar
karena
dimulailah
perkembangan
OOP
dengan
era
Martin-Odell (1992)
Object
Oriented
menyadari
bahwa
semakin
dll
10
11
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).
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.
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
15
yang
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
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.
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
18