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 :
1.Pemrograman OOP menekankan pada data dari pada prosedur karena data diperlakukan sebagai elemen yang penting dan tidak boleh mengalir secara bebas dalam program.
1.Pemrograman OOP menekankan pada data dari pada prosedur karena data diperlakukan sebagai elemen yang penting dan tidak boleh mengalir secara bebas dalam program.
2.Data di sembunyikan dari akses program oleh fungsi-fungsi (function)
eksternal.
3.Program dapat dibagi-bagi kedalam objek-objek yang lebih kecil.
4.Objek dapat berkomunikasi satu dengan yang lain melalui function.
5.Data baru dan function dapat dengan mudah ditambahkan pada saat di
butuhkan
6. Konsep pemrogramannya mengikuti pendekatan buttom up.
KONSEP OOP
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
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/KELAS
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.
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.
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.
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
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 :
INHERITANCE/PEWARISAN
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
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.
KEUNGGULAN MENGGUNAKAN PEMROGRAMAN OOP DENGAN PEMROGRAMAN TERSTRUKTUR
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.
KEUNGGULAN MENGGUNAKAN PEMROGRAMAN OOP DENGAN PEMROGRAMAN TERSTRUKTUR
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
REUSIBILITY
Kemampuan untuk dapat dipergunakan kembali bagi mereka yang memerlukan
fungionalitas yang sama yang disediakan oleh kode.
Sumber: http://tugaskuayub.blogspot.com/2013/03/konsep-dasar-oop-object-oriented.html
Tidak ada komentar:
Posting Komentar