Sejarah OOP
Sejarah perkembangan OOP dimulai pada tahun 1966 saat Ole
Johan Dhal dan Kristen Nygaard dari universitas Olslo, norwegia menerbitkan
sebuah jurnal kertas kerja dengan judul "SIMULA An Algol Based
Language".
Pemrograman
berorientasi objek (OOP) merupakan metode pemrograman dimana pengembang harus
mendefiniskan tipe dari struktur data dan juga tipe dari operasi yang dapat di
aplikasikan ke struktur data. dengan demikian struktur data menjadi objek yang
dapat memilik data dan fungsi. beberapa kemampuan utama dari pemrograman OOP
antara lain :
Pemrograman OOP menekankan pada data dari pada prosedur
karena data diperlakukan sebagai elemen yang penting dan tidak boleh
mengalir secara bebas dalam program.
-
Data di sembunyikan dari akses program oleh fungsi-fungsi (function) eksternal.
- Program dapat dibagi-bagi kedalam objek-objek yang lebih kecil.
- Objek dapat berkomunikasi satu dengan yang lain melalui function.
- Data baru dan function dapat dengan mudah ditambahkan pada saat di butuhkan.
- Konsep pemrogramannya mengikuti pendekatan buttom up.
Konsep OOP
OOP adalah pemrograman yang paling populer pada saat
ini karena menjadikan objek sebagai komponen utama dalam suatu program. Objek
ini menggabungkan data dan fungsi sebagai satu kesatuan, hal ini membedakan
dengan pemrograman yang tidak berorientasi objek (terstruktur) dimana fungsilah
yang menjadi perhatian utama. Fungsi adalah subprogram atau sekumpulan kode
yang diberi suatu nama tersendiri. Java adalah salah satu dari bahasa pemrograman
berorientasi objek, karena dalam pemrograman java kita dapat mengetahui dan
membedakan.
Dalam OOP
mempunyai ciri-ciri dan beberapa konsep penting, seperti Object, Class,
Method, Enkapsulasi, Inheritance, dan Polimorfisme.
Object
Object adalah elemen dasar dari konsep pemrograman,
merupakan sesuatu yang memiliki identitas (nama), pada umumnya juga memiliki
data tentang dirinya maupun object lain dan mempunyai kemampuan untuk melakukan
sesuatu dan bisa bekerja sama dengan objek lainnya. Pada dasarnya semua benda
yang ada di dunia dapat dianggap sebagai sebuah object. Rumah, mobil, sepeda
motor, meja, dan komputer merupakan contoh-contoh object yang ada di dunia
nyata. Setiap object memiliki dua karakteristik yang utama yaitu, atribut dan
behavior. Atribut merupakan status object dan behavior merupakan tingkah laku
dari object tersebut.
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 :
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.
Method
Method adalah fungsi dan prosedur atau behavior dari suatu
objek atau juga sebuah tindakan (implementasi) dari sebuah object . Contohnya pada
Komputer seperti cara memastikan, cara menghidupkan, cara menyimpan,
menghapus data dan lain-lain.
Field
Adalah informasi atau atribut yang terdapat dalam suatu
object. Bentuk field mirip dengan variabel yaitu dapat dibaca dan diset
langsung.
Contoh:
suatu class Anak yang memiliki field Nama_Anak dan usia anak, juga memiliki subrutin(method)
kegiatan_Anak.
Interface
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 variabel-variabel 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.
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.
Inheritance
Pewarisan atau inheritance..adalah sebuah kelas mewarisi
state dan behaviour dari kelas lain. Contohnya kelas komputerLapotop akan
mewarisi state dan behaviour dari kelas komputer. Demikian juga dengan kelas
komputerNetbook. Kelas komputerLaptop dan kelas komputerNetbook disebut
subkelas, atau kelas anak, dari kelas komputer , yang disebut superkelas,atau
kelas Induk. Kegunaan konsep pewarisan antara lain :
- Dapat membuat superkelas yang hanya mendefinisikan behaviour namun tidak memberi implementasi dari metode-metode yang ada.
- Dapat menggunakan kembali kelas-kelas yang kita buat (sebagai superkelas) dan membuat kelas-kelas baru berdasar superkelas tersebut dengan karakteristik yang lebih khusus dari behaviour umum yang dimiliki superkelas.
Hal ini berguna jika kita ingin membuat
prototype/template kelas. Kelas semacam ini disebut kelas abstraksi, karena
behaviournya masih abstrak dan belum diimplementasikan. Subkelas-subkelas dari
kelas semacam ini, yang disebut kelas konkret/nyata, mengimplementasikan
behaviour abstrak tersebut sesuai dengan kegunaan masing-masing.
Encaptulation
Enkapsulasi
secara definisi adalah mekanisme pembungkusan untuk menyembunyikan atau
melindungi suatu proses dari kemungkinan interferensi atau penyalahgunaan dari
luar sistem juga sekaligus menyederhanakan penggunaan system itu sendiri. Akses
ke internal sistem diatur sedemikian rupa melalui seperangkat
interface/antarmuka. Contohnya Komputer, pada saat menyalakan, mematikan,
pembacaan data, pemrosesan data maka pemakai/user tidak perlu tahu detail
dari bagaimana proses menyalakan dan mematikan, itu dilakukan oleh komputer,
cukup tahu bagaimana cara menyalakan/mematikan komputer , keyboard, mouse,
tombol power merupakan interface (antar muka) pemakai dengan sistem komputer
tersebut.
Polymorphism
Polymorphism
sebuah kata dari bahasa Yunani yang mempunyai arti banyak bentuk., konsep
ini dimungkinkan untuk menggunakan suatu interface yang sama agar suatu
objek melakukan aksi atau tindakan yang mungkin secara prinsip sama tapi secara
proses bisa berbeda-beda. Pada umumnya konsep ini sering kali disebut dalam
istilah satu interface banyak aksi. Contoh yang nyata adalah. komputer yang ada
dipasaran terdiri atas berbagai tipe dan merk, namun semuanya memiliki
interface yang sama, seperti: tombol power, keyboard, mouse,
monitor dlsb,. Jika seseorang dapat mengoperasikan komputer satu
jenis saja dari merk tertentu, maka orang itu akan dapat mengoperasikan hampir
seluruh jenis komputer yang ada, karena semua komputer tersebut menggunakan
interface yang sama. Perlu diketahui disini bahwa interface yang sama tidak
berarti cara kerjanya juga sama. Misal kecepatan/speed komputer, kapasitas
memory penyimpan, jika dibandingkan komputer 1 dan komputer 2 maka kecepatan
komputer berbeda.
Perbedaan
Object Oriented Programming (OOP) dengan Procedural Programmming (PP)
- Pemrograman Prosedural Fungsi dan data menjadi satu kesatuan yang disebut obyek sedangkan Pemrograman Prosedural Diselesaikan dalam bentuk prosedur atau fungsi.
- Pemrograman Prosedural Obyek-obyek dalam OOP bersifat aktif sedangkan Pemrograman Prosedural Program merupakan urut-urutan Instruksi.
- Pemrograman Prosedural Cara pandang : program bukan urut-urutan instruksi tapi diselesaikan oleh obyek-obyek yang bekerjasama untuk menyelesaikan masalah sedangkan Pemrograman Prosedural Program dipecah-pecah ke dalam sub program yang lebih sederhana,
- Pemrograman Prosedural Fungsi dan prosedur digunakan untuk memanipulasi data.
- Pemrograman Prosedural Sedangkan data sendiri bersifat pasif.
Kesimpulan
Perbedaan antara OOP dan PP
- OOP : Fokus pada masalah yang ditangani dengan menggunakan komputer.
- PP : Fokus pada bagaimana cara komputer menangani masalah.
Keunggulan
menggunakan pemrograman OOP dengan Prosedural Progamming
- Maintenability : Kemampuan untuk mudah dikelola. Maksudnya jika terjadi kesalahan pada program yang besar maka solusinya adalah memecah program tersebut menjadi modul-modul kecil (modularitas). Modularitas melekat pada OOP karena kelas-kelas yang ada merupakan suatu modul sehingga kelas-kelas yang mempunyai fungsi sama akan disimpan pada namespace yang sama pula.
- Extensibility : Kemampuan dapat di perluas, yaitu Class-class yang ada dapat diperluas dengan menambahkan method atau data, atau mengubah prilaku dari method.
- Reusibility : Kemampuan untuk dapat dipergunakan kembali bagi mereka yang memerlukan fungionalitas yang sama yang disediakan oleh kode.
Sumber :
0 komentar:
Posting Komentar