PEMROGRAMAN BERORIENTASI OBJEK
Pemrograman beriorientasi obyek (Object Oriented Programming = OOP)
berbeda dengan pemrograman konvensional pada umumnya, terutama dalam
memperlakukan prosedur dan data. Pada pemrograman biasa, prosedur dan
data merupakan dua hal yang dipisahkan satu sama lain. Sebagai contoh,
untuk mengelola data waktu yang terdiri dari jam, menit, dan detik dapat
dibuat suatu struktur data dalam C sebagai berikut :
struct Time {
int hour; // 0-23
int minute; // 0-59
int second; // 0-59
};
Definisi
ini terdiri dari tiga data, dimana untuk mengelolanya dibutuhkan
prosedur yang disusun pada bagian yang terpisah. Salah satu konsep OOP
yang paling penting adalah membungkus prosedur dan data menjadi satu
software obyek. Konsep ini disebut sebagai encapsulation.
Pemrograman berorientasi objek (OOP)
ini juga merupakan paradigma pemrograman yang menggunakan "objek" -
struktur data yang terdiri dari datafields dan metode bersama dengan
interaksi mereka - untuk merancang aplikasi dan program komputer. Teknik
pemrograman dapat mencakup fitur seperti data abstraksi, enkapsulasi,
modularitas, polimorfisme, dan pewarisan. Itu tidak umum digunakan dalam
pengembangan aplikasi perangkat lunak arus utama sampai awal 1990-an.
[Rujukan?] Banyak bahasapemrograman modern sekarang mendukung OOP.
OOP memodelkan obyek yang ada di dunia nyata (real-word objects)
ke dalam software obyek dalam pemrograman. Oleh karena itu, di dalam
OOP juga dikenal istilah seperti yang ada pada obyek dunia nyata, yaitu
pewarisan (inheritance), dimana suatu obyek dapat mewariskan sifat-sifat yang dimilikinya kepada obyek turunannya.
Secara umum, beberapa keuntungan yang dapat diperoleh pada OOP antara lain adalah simplicity, modularity, modifiability, extensibility, flexibility, maintainability, dan reasonability. Bahasa pemrograman yang mendukung OOP antara lain adalah: Smalltalk (murni OOP), C++, CLOS (Common Lisp Object System), Java, dan sebagainya. Dalam buku ini digunakan bahasa pemrograman C++ untuk memahami implementasi OOP.
Dengan
menggunakan OOP maka dalam melakukan pemecahan suatu masalah kita tidak
melihat bagaimana cara menyelesaikan suatu masalah tersebut
(terstruktur) tetapi objek-objek apa yang dapat melakukan pemecahan
masalah tersebut. Sebagai contoh anggap kita memiliki sebuah departemen
yang memiliki manager, sekretaris, petugas administrasi data dan
lainnya. Misal manager tersebut ingin memperoleh data dari bag
administrasi maka manager tersebut tidak harus mengambilnya langsung
tetapi dapat menyuruh petugas bag administrasi untuk mengambilnya. Pada
kasus tersebut seorang manager tidak harus mengetahui bagaimana cara
mengambil data tersebut tetapi manager bisa mendapatkan data tersebut
melalui objek petugas adminiistrasi. Jadi untuk menyelesaikan suatu
masalah dengan kolaborasi antar objek-objek yang ada karena setiap objek
memiliki deskripsi tugasnya sendiri.
KONSEP DAN CONTOH OOP
Kelas : Sebuah kelas mendefinisikan karakteristik abstrak dari sesuatu (objek),
termasuk hal karakteristik (sifat-sifatnya, ladang atau properti) dan
hal perilaku (hal-hal itu dapat dilakukan, atau metode, operasi atau
fitur). Orang mungkin mengatakan bahwa kelas adalah cetak biru atau
pabrik yang menggambarkan sifat sesuatu. Sebagai contoh, Anjing kelas
akan terdiri dari sifat-sifat yang dimiliki oleh semua anjing, seperti
berkembang biak dan bulu warna (karakteristik), dan kemampuan untuk
kulit dan duduk (perilaku). Kelas menyediakan modularitas dan struktur
dalam sebuah object-oriented program komputer. Kelas harus biasanya
dapat dikenali untuk non-programmer akrab dengan masalah domain, yang
berarti bahwa karakteristik kelas harus masuk akal dalam konteks. Selain
itu, kode untuk kelas harus relatif self-contained (biasanya
menggunakan enkapsulasi). Secara kolektif, sifat dan metode yang
didefinisikan oleh kelas yang disebut anggota.
Objek :
Sebuah pola (contoh) dari sebuah kelas. Dog kelas mendefinisikan semua
kemungkinan anjing dengan membuat daftar karakteristik dan perilaku yang
mereka dapat miliki; objek Lassie adalah salah satu anjing tertentu,
dengan versi tertentu karakteristik. A Dog telah bulu; Lassie telah
cokelat-dan-bulu putih.
Instance :
Satu dapat memiliki sebuah instance dari kelas, sedangkan contoh adalah
objek sebenarnya dibuatpada saat runtime. Dalam programmer jargon, yang
Lassie objek adalah instance dari kelas Dog. Himpunan nilai-nilai dari
atribut objek tertentu disebut dengan negara. Objek terdiri dari negara
dan perilaku yang didefinisikan dalam kelas objek.
Abstraksi :
Abstraksi menyederhanakan realitas kompleks oleh kelas pemodelan sesuai
dengan masalah, dan bekerja pada tingkat paling tepat warisan untuk
suatu aspek dari masalah.Sebagai contoh, Lassie the Dog dapat
diperlakukan sebagai Anjing banyak waktu, bila perlu Collie mengakses
atribut khusus atau perilaku, dan sebagai Hewan (mungkin kelas induk
anjing), ketika menghitung Timmy's pets.
Abstraksi
juga dicapai melalui Komposisi. Sebagai contoh, sebuah Mobil kelas akan
terdiri dari sebuah Engine, Gearbox, Steering objek, dan banyak lagi
komponen. Untuk membangun kelas Mobil, seseorang tidak perlu mengetahui
bagaimana berbagai komponen bekerja secara internal, tetapi hanya
bagaimana untuk berinteraksi dengan mereka, yaitu, mengirim pesan kepada
mereka, menerima pesan dari mereka, dan mungkin membuat objek yang
berbeda yang menyusun kelas berinteraksi dengan satu sama lain.
Encapsulation :
Enkapsulasi menyembunyikan detail fungsional dari sebuah kelas dari
objek yang mengirimkan pesan itu. Sebagai contoh, kelas memiliki Anjing
menggonggong () method. Kode untuk kulit () method mendefinisikan persis
bagaimana kulit terjadi (misalnya, dengan menghirup () dan kemudian
buang napas (), di lapangan tertentu dan volume). Timmy, Lassie teman,
bagaimanapun, tidak perlu tahu persis bagaimana dia menyalak.
Enkapsulasi dicapai dengan menetapkan kelas-kelas yang dapat menggunakan
anggota suatu objek. Hasilnya adalah bahwa setiap objek menghadapkan
untuk setiap kelas antarmuka tertentu - dapat diakses oleh para anggota
kelas. Alasan untuk enkapsulasi adalah untuk mencegah klien dari sebuah
antarmuka dari tergantung pada bagian-bagian dari pelaksanaan yang
mungkin berubah di masa depan, sehingga memungkinkan perubahan itu harus
dilakukan dengan lebih mudah, yaitu tanpa perubahan kepada klien.
Sebagai contoh, sebuah antarmuka dapat memastikan bahwa anak-anak anjing
hanya dapat ditambahkan ke sebuah objek dari kelas Dog oleh kode di
kelas.
Anggota
seringkali ditentukan sebagai publik, dilindungi atau swasta,
menentukan apakah mereka yang tersedia untuk semua kelas, sub-class atau
hanya mendefinisikan kelas. Beberapa bahasa melangkah lebih jauh: Jawa
menggunakan pengubah akses standar untuk membatasi akses juga untuk
kelas-kelas dalam paket yang sama, C # dan VB.NET cadangan beberapa
anggota kelas-kelas dalam majelis yang sama menggunakan kata kunci
internal (C #) atau Friend (VB.NET), dan Eiffel dan C dapat digunakan
untuk menentukan kelas-kelas yang dapat mengakses setiap anggota.
Polimorfisme : Polimorfisme
memungkinkan programmer untuk memperlakukan anggota kelas turunan
seperti orangtua mereka anggota kelas. Lebih tepatnya, polimorfisme
dalam pemrograman berorientasi obyek adalah kemampuan benda-benda yang
termasuk tipe data yang berbeda untuk menanggapi panggilan metode dengan
nama yang sama, masing-masing sesuai dengan tipe yang sesuai perilaku
tertentu. Salah satu metode, atau operator seperti, -, atau *, dapat
abstrak diterapkan dalam banyak situasi yang berbeda. Jika Anjing
diperintahkan untuk berbicara (), hal ini dapat mendatangkan suatu kulit
(). Namun, jika Pig diperintahkan untuk berbicara (), hal ini dapat
menimbulkan suatu oink (). Setiap subclass menimpa berbicara () method
yang diwarisi dari kelas induk Animal.
Materi JAVA yaitu Pengenalan Pemrograman Berorientasi Object atau disebut juga PBO.
Dari materi yang akan kita diskusikan adalah :
- Konsep Dasar Pemrograman Berorientasi Objek:
Class, Object, Attribute, Method, Constructor - Karakteristik Pemrograman Berorientasi Objek:
Encapsulation, Inheritance, Polymorphisme
- Pengenalan OOP
- Class:
- blueprint/cetakan
- Object:
- hasil cetakan dari class
- Implementasi Class/Object
- Notasi Class/Object
- Class Member – Atribut
- Atribut / Variable / State
- Variable digunakan untuk menyimpan nilai yang nantinya akan digunakan pada program(rsw)
- Sesuatu yang pasti dimiliki oleh class
- Notasi Class/Object
with Atribut & method
- Class Member – Method
- Method / Behaviour adalah urutan instruksi yang mengakses data dari object (rsw)
- Kegiatan yang dapat dilakukan/dikerjakan oleh class.
- Method melakukan:
- Manipulasi data
- Perhitungan matematika
- Memonitor kejadian dari suatu event
- Jenis Method:
― Method tanpa return value
“nilai yang dihasilkan ketika menjalankan / mengakses method”
- Implementasi Method
- Konstruktor – Method
•Method yang identifier/namanya sama dengan nama Class
•Method yang pertama kali di panggil pada proses instansiasi/pembuatan object
- Refresh OOP Concept
Karakteristik Pemrograman Berorientasi Objek:
Encapsulation, Inheritance, Polymorphisme
- Enkapsulasi
•Mekanisme menyembunyikan suatu proses dan data dalam sistem untuk
menghindari interferensi, dan menyederhanakan penggunaan proses itu
sendiri (rsw)
•Pembungkusan attribut untuk menghindari akses illegal
- Implementasi Enkapsulasi
•Enkapsulasi data juga dapat dilakukan dengan cara:
1.mendeklarasikan instance variable sebagai private
2.mendeklarasikan method yang sifatnya public untuk mengakses variable tersebut
Public Class Kue {
Private String Rasa;
Public String getRasa(){
return Rasa;
}
Public void setRasa(String rasa){
Rasa=rasa;
}
}
Private String Rasa;
Public String getRasa(){
return Rasa;
}
Public void setRasa(String rasa){
Rasa=rasa;
}
}
- Inheritance (Pewarisan)
•Suatu class dapat mewariskan atribut dan method kepada class lain (subclass), serta membentuk class hierarchy
•Tujuan : Reusability, Perluasan Attitude
•Java Keyword: extends
- Polymorfisme
•Kemampuan untuk memperlakukan object yang memiliki perilaku (bentuk) yang berbeda
•Implementasi konsep polymorphism:
1.Overloading: Kemampuan untuk menggunakan nama yang sama untuk beberapa method yang berbeda parameter (tipe dan atau jumlah)
2.Overriding: Kemampuan subclass untuk menimpa method dari
superclass, yaitu dengan cara menggunakan nama dan parameter yang sama
pada method
**Contoh program :
1. Buatlah Class baru dengan nama “book”;
2. lalu buat sebuah class baru dengan nama “MainBook”;
3. Run Program diatas melalui program “MainBook” . Tekan Shift+F6 atau Klik Kanan > Run File.
maka akan muncul output seperti diatas.