OOP
VS Modular
OOP adalah sebuah konsep pemrograman yang memandang program
bukan lagi cara tetapi merupakan objek yang saling berinteraksi satu sama lain.
Pemrograman berorientasi objek atau
object-oriented programming (OOP) merupakan paradigma pemrograman yang
berorientasikan kepada objek. Semua data dan fungsi di dalam paradigma ini
dibungkus dalam kelas-kelas atau objek-objek. Bandingkan dengan logika
pemrograman terstruktur. Setiap objek dapat menerima pesan, memproses data, dan
mengirim pesan ke objek lainnya, Sedangkan untuk Structural Programming adalah
kebalikan dari object oriented programming yaitu sebuah cara pemrosesan data
yang terstruktur dalam analisa, cara dan penulisan pemrograman. Dikarenakan
harus terstruktur sehingga dalam pembuatannya antara satu line pemrograman
dengan yang lainnya berhubungan. Konsep utama dari Pemrograman Berbasis Objek
terletak pada kondisi kode/line pemrogramanannya dimana merupakan sebuah
kesatuan modular.
Untuk program yang simpel/sederhana
biasanya menggunakan pemrograman terstruktur karena masih mudah dan tidak
banyak dilakukan perubahan yang berarti, sedangkan untuk line lebih dari 100
atau bisa dikatakan rumit, maka digunakan pemrograman berorientasi objek.
Pemrograman Terstruktur terdiri dari
pemecahan masalah yang besar menjadi masalah yang lebih kecil dan seterusnya,
sedangkan untuk pemrograman berorientasi objek terdiri dari pengkelompokan kode
dengan data yang mana setiap objek berfungsi secara independen sehingga untuk
setiap perubahan kode tidak tergantung pada kode yang lainnya, atau lebih
dikenal dengan modular.
Untuk programming terstruktur
bersifat task-centric dan berorientasi objek bersifat data-centric. Terdapat
juga perbedaan secara spesifik antara objek oriented dengan non-oop, yaitu pada
kelas dan objek. Pada Pemrograman Terstruktur tidak terdapat kelas dan
objek.
Sifat-sifat dari pemrograman
terstruktur dapat diuraikan sebagai berikut :
a. Memuat teknik pemecahan masalah
yang logis dan sistematis
b. Memuat algoritma yang efisien, efektif dan sederhana
c. Program disusun dengan logika yang mudah dipahami
d. Tidak menggunakan perintah GOTO
e. Biaya pengujian program relatif rendah
f. Memiliki dokumentasi yang baik
g. Biaya perawatan dan dokumentasi yang dbuthkan relatif rendah
b. Memuat algoritma yang efisien, efektif dan sederhana
c. Program disusun dengan logika yang mudah dipahami
d. Tidak menggunakan perintah GOTO
e. Biaya pengujian program relatif rendah
f. Memiliki dokumentasi yang baik
g. Biaya perawatan dan dokumentasi yang dbuthkan relatif rendah
Berbeda dengan OOP. Suatu program
disebut dengan pemrograman berbasis obyek (OOP) karena terdapat :
– Encapsulation (pembungkusan)
Encapsulation adalah mekanisme pemrograman yang membungkus kode dan data yang
dimanipulasi dan menjaganya supaya terhindar dari interferensi dan penggunaan
yang tidak perlu. Salah satu caranya dengan membentuk objek.
– Inheritance (pewarisan)
Inheritance memungkinkan programer meletakkan member yang sama dalam satu class
dan class-class lain dapat mewarisi member tersebut. Class yang mengandung
member yang sama dari beberapa class lain dinamakan superclass atau parent
class. Class yang mewarisi dinamakan subclass atau child class. Inheritance
menghasilkan class hierarchy.
– Polymorphism (polimorfisme
–perbedaan bentuk) Polymorphisme artinya mempunyai banyak bentuk. Dua objek
atau lebih dikatakan sebagai polymorphic, bila objek-objek itu mempunyai antar
muka yang identik namun mempunyai perilaku-perilaku yang berbeda
Bisa dikatakan pada pemrograman
berorientasi objek, dapat dilakukan sebuah programming terhadap code yang lebih
baik daripada pemrograman terstruktur, itu juga untuk kaliber atau skala rumit
atau besar, sedangkan untuk coding yang skala kecil lebih mudah menggunakan
pemrograman terstruktur dikarenakan lebih singkat dan mudah tanpa banyak
perubahan yang penting.
Perbedaan antara Object-oriented
Programming dan Structural Programming
Object –
oriented programming (OOP)
|
Structural
Programming
|
Biasa digunakan
untuk program untuk line lebih dari 100 / rumit
|
Biasa
digunakan untuk program yang simpel/sederhana.
|
Bersifat
modular (pengkelompokan kode dengan data yang mana setiap objek berfungsi
secara independen sehingga untuk setiap perubahan kode tidak tergantung pada
kode yang lainnya, atau lebih).
|
Pemecahan
masalah dari besar menjadi maslah yang lebih kecil.
|
Data-centric
|
Task-centric
|
Terdapat
kelas dan objek
|
tidak
terdapat kelas dan objek
|
Kesimpulan Perbedaan antara
prosedural dan OOP
• Prosedural : Fokus pada bagaimana cara komputer menangani masalah
• OOP : Fokus pada masalah yang ditangani dengan menggunakan komputer.
Dengan OOP, kita dapat mengimplementasikan objekt data yang tidak hanya memiliki ciri khas (attribut), melainkan juga memiliki metode untuk memanipulasi attribut tersebut. Singkatnya, OOP memiliki keunggulan dari konsep pemrograman terstruktur, selain itu juga memiliki kemampuan untuk mengimplementasikan objek dalam kehidupan nyata.
• Prosedural : Fokus pada bagaimana cara komputer menangani masalah
• OOP : Fokus pada masalah yang ditangani dengan menggunakan komputer.
Dengan OOP, kita dapat mengimplementasikan objekt data yang tidak hanya memiliki ciri khas (attribut), melainkan juga memiliki metode untuk memanipulasi attribut tersebut. Singkatnya, OOP memiliki keunggulan dari konsep pemrograman terstruktur, selain itu juga memiliki kemampuan untuk mengimplementasikan objek dalam kehidupan nyata.
KARAKTERISTIK PEMROGRAMAN
BERORIENTASI OBJEK (OOP)
Pemrograman berorientasi Objek
mempunyai karakterisitik sebagai berikut:
A. Abstraksi
(abstraction).
Kemampuan sebuah program untuk
melewati aspek informasi yang diproses olehnya, yaitu
kemampuan untuk memfokus pada inti. Setiap objek dalam sistem melayani sebagai model dari "pelaku" abstrak yang dapat melakukan kerja, laporan dan perubahan keadaannya, dan berkomunikasi dengan objek lainnya dalam sistem, tanpa mengungkapkan bagaimana kelebihan ini diterapkan.
kemampuan untuk memfokus pada inti. Setiap objek dalam sistem melayani sebagai model dari "pelaku" abstrak yang dapat melakukan kerja, laporan dan perubahan keadaannya, dan berkomunikasi dengan objek lainnya dalam sistem, tanpa mengungkapkan bagaimana kelebihan ini diterapkan.
Abstraksi adalah pengabstrakan atau
penyembunyian kerumitan suatu proses.
Abstraksi menjelaskan definisi dari
objek pada class dalam suatu fungsi (method) atau
fungsi khusus (constructor). Sebuah
kelas dapat dideklarasikan sebagai kelas abstrak.
Tujuan membuat kelas abstrak adalah
agar satu kelas lain dapat memperluasnya (extend)
dengan jalan menjadi subclass
darinya.
B. Pembungkusan (encapsulation).
Memastikan pengguna sebuah objek
tidak dapat mengganti keadaan dalam dari sebuah objek dengan cara yang tidak
layak; hanya metode dalam objek tersebut yang diberi ijin untuk mengakses
keadaannya.
Selain dengan menggunakan metoda
abstraksi dalam menyembunyikan method
pada super class, maka juga dapat
dilakukan dengan proses pembungkusan suatu fungsi.
Dengan kata lain, sebenarnya proses
pembungkusan itu sendiri merupakan salah satu
metoda atau mekanisme untuk
melakukan abstraksi.
Dalam pemrograman tradisional,
proses semacam ini sering juga disebut dengan
penyembunyian informasi (information
hiding).
Dalam melakukan pembungkusan kode
dan data dalam java terdapat tiga tingkatan
akses data yang perlu
diketahui yaitu:
Engkapsulasi berhubungan class
control yang diberlakukan terhadap class member yang
ada di dalamnya
1. Tingkat akses Private.
2. Tingkat akses Protected.
3. Tingkat akses Public.
1. Tingkat Akses Privtae (
Encapsulation- Private)
Akses Private berarti
bahwa method yang digunakan hanya dapat diakses oleh
kelas yang memilikinya.
Dengan mendeklarasikan data
dan method menggunakan akses private, ini berarti
data dan method tersebut tidak boleh
diakses atau dignakan oleh kelas-kelas lain
yang terdapat di dalam
program.
Sebuah variabel atau method
yang dideklarasikan private hanya dapat diakses
oleh method yang merupakan member
dari kelas tersebut. Ia tidak dapat diakses
oleh kelas lain yang berada di dalam
package yang sama ataupun di lain package.
Untuk mendeklarasikan suatu
data atau method dengan tingkat akses private,
digunakan kata kunci private.
2. Tingkat Akses Privtae (
Encapsulation- Protected)
Suatu data maupun method yang
dideklarasikan dengan tingkat akses protected
dapat diakses oleh kelas yang
memilikinya dan juga oleh kelas-kelas yang masih
memiliki hubungan turunan.
Access control protected
berarti member dapat diakses oleh kelas yang berada
dalam package yang sama dan subclass
yang berada di dalam package yang
berbeda.
Untuk mendeklarasikan tipe
data atau method protected digunakan kata kunci
protected.
3. Tingkat Akses Public
(Encapsulation-Public)
Tingkat akses publik merupakan
kebalikan dari tingkat akses private.
Data dan method yang bersifat
public dapat diakses oleh semua bagian dalam
program.
Dengan kata lain, data-data
maupun method-method yang dideklarasikan dengan
tingkat akses publik akan dikenali
dan diakses oleh semua kelas yang ada di
dalam program, baik yang merupakan
kelas turunan maupun kelas yang tidak
memiliki hubungan sama sekali.
C. Pewarisan (inheritance).
Mengatur polimorfisme dan enkapsulasi dengan mengijinkan objek didefinisikan
dan diciptakan dengan jenis khusus dari objek yang sudah ada - objek-objek ini
dapat membagi (dan memperluas) perilaku mereka tanpa harus mengimplementasi ulang perilaku
tersebut. Model
Pemrograman berorientasi objek juga menerapkan konsep pewarisan.
Dalam sebuah program, suatu
kelas dapat diturunkan menjadi kelas-kelas baru
lainnya yang akan mewarisi beberapa
sifat atau perilaku dari kelas induknya.
Semua class dalam Java,
termasuk class yang membangun Java API, merupakan
subclass dari superclass Object.
Pewarisan ( inheritance) terdiri
dari :
1. Superclass Adalah class yang letaknya di
atas class tertentu di dalam hierarki.
2. Subclass Adalah class yang letaknya di bawah
class tertentu di dalam hierarki.
Untuk mengambil sebuah class,
gunakan keyword extends.
Keuntungan penggunaan Inheritance
dalam OOP adalah : Reusability.
Reusability maksudnya yaitu:
1. Ketika behavior(method)
dideklarasikan dalam superclass, behavior tersebut
otomatis diwariskan ke seluruh
subclass.
2. Jadi, Anda dapat
meng-enkode method hanya sekali dan method tersebut dapat
digunakan oleh seluruh subclass
3. Sebuah subclass hanya perlu
mengimplementasikan perbedaan antara dirinya
sendiri dan parent-nya.
D. Polimorfisme – banyakrupa
(polymorphism).
Melalui
pengiriman pesan. Tidak bergantung kepada pemanggilan subrutin, bahasa
orientasi objek dapat mengirim pesan; metode tertentu yang berhubungan dengan
sebuah pengiriman pesan tergantung kepada objek tertentu di mana pesa tersebut
dikirimPolymorphism membuat objek-objek yang berasal dari subclass yang
berbeda,
diperlakukan sebagai objek-objek
dari satu superclass. Hal ini terjadi ketika memilih
method yang sesuai untuk
diimplementasikan ke objek tertentu berdasarkan pada
subclass yang memiliki method
bersangkutan.
Pada contoh ini, kita diberikan
parent class yaitu Person dan subclassnya adalah Student,
sekarang kita tambahkan subclass
lainnya dari Person yaitu Employee.
Ciri Dasar OOP
• Semua Bahasa Pemrograman yang mendukung
OOP haruslah mempunyai kemampuan untuk dilakukan abstraksi, pembungkusan,
pewarisan sifat, dan polimorfisme.
• Karena alasan itu, item-item di
atas kemudian dijadikan sebagai ciri dari bahasa yang mendukung OOP.
• Abstraksi (Abstraction)
• Adalah Proses pengabstrakan atau
penyembunyian detail program yang sangat rumit sehingga kita tidak perlu untuk
mempermasalahkan pembuatannya.
• Kita hanya perlu objek tersebut dapat
kita gunakan sesuai fungsinya.
• Contoh, objek mobil. Pembuat mobil
tidak perlu mendefinisikan cara pembuatannya, disini berarti dia telah
mengabstraksikan proses yang didalamnya.
• Yang penting bagi kita adalah mobil
tersebut dapat kita gunakan sebagaimana mestinya.
• Hal ini tidaklah berbeda dengan
pengabstrakan suatu fungsi yang terdapat pada sebuah kelas di dalam program.
• Abstraksi (Abstraction)
• Abstraksi data adalah mengabstrakkan atau menyamarkan
data-data yang ada.
• Contoh : jam tangan
• Orang tidak perlu tahu bagaimana cara jam mengatur dan
merubah detik kemenit, atau menit ke jam.
• Orang tidak perlu tahu siapa yang bertanggung jawab
menggerakkan jarum jam.
• Pembungkusan (Encapsulation)
• Merupakan sebuah proses penggabungan
antara data-data dan fungsi-fungsi yang berkaitan ke dalam sebuah objek.
• Dengan demikian, kita dapat membuat
program yang terintegrasi, tanpa harus mendeklarasikan variabel-variabel yang
bersifat eksternal.
• Istilah yang digunakan, untuk menyebut
data-data yang terdapat dalam suatu objek adalah data members,
sedangkan fungsi-fungsi yang terdapat di dalamnya dikenal dengan istilah member
functions.
• Pembungkusan (Encapsulation)
• Variabel dan method yang dipunyai suatu
obyek, bisa ditentukan hak aksesnya.
• Definisi enkapsulasi: Pembungkusan
variabel dan method dalam sebuah obyek yang terlindungi.
• Definisi enkapsulasi: menyembunyikan
cara kerja dan sistem.
• Contoh: jam tangan
• Penting sekali untuk mengetahui waktu.
• Cara jam mencatat waktu dengan baik
antara jam bertenaga baterai atau bertenaga gerak tidaklah penting kita
ketahui.
• Pewarisan (Inheritance)
• Dalam OOP, kita dapat menciptakan objek
baru yang diturunkan dari objek lain.
• Objek baru ini, sering disebut dengan
objek turunan (derived object) sedangkan objek induknya disebut dengan ancestor
(base class).
• Sifat yang terkandung pada objek
turunan adalah sifat hasil pewarisan dari sifat-sifat yang terdapat pada objek
induk. Proses seperti ini dikenal dengan istilah pewarisan (inheritance).
• Dengan fitur seperti ini, kita dapat
membuat objek baru yang memiliki kemampuan lebih dibanding objek induknya,
yaitu dengan cara menambahkan sifat-sifat baru ke dalam objek tersebut.
• Polimorfisme (Polymorphism)
• Adalah proses kebanyakrupaan, artinya
kita dapat mengimplementasikan sesuatu hal yang berbeda melalui satu cara yang
sama.
• Untuk mengerti hal yang ini, coba kita
perhatikan suatu objek, misalnya penyanyi. Sebagai contoh, terdapat 5 orang
penyanyi (dalam program dianggap sebagai 5 buah objek), kemudian kelimanya kita
perintahkan untuk bernyanyi, maka hasil atau implementasinya tentu akan berbeda
sesuai dengan karakteristik suara dari masing-masing penyanyi tersebut.
• PEWARISAN (Inheritance)
• Pengantar
• Salah satu ciri dari OOP yakni
kemampuan suatu objek atau kelas untuk mewariskan sifat-sifat yang terdapat di
dalamnya ke kelas turunannya.
• Hal yang paling utama ditekankan dalam
proses penurunan sebuah kelas adalah pemberian hak akses terhadap kelas-kelas
turunan.
• Kelas Dasar & Kelas Turunan
• Kelas dasar yang dimaksud disini adalah
sebuah kelas yang akan dijadikan sebagai induk dari kelas lain.
• Kelas dasar ini masih lebih dikenal
dengan istilah dalam bahasa asing, yaitu base class.
• Kelas baru yang merupakan hasil dari
proses penurunan tersebut disebut dengan kelas turunan, atau sering disebut
dengan derived class.
• Kelas Dasar & Kelas Turunan
• Dalam mempelajari materi ini,
sebenarnya samap seperti mempelajari ilmu biologi yang membahas tentang
klasifikasi sebuah tumbuhan.
• Dalam ilmu biologi, suatu tumbuhan
berasal dari suatu kelas (tipe) tertentu sehingga tumbuhan tersebut akan
mewarisi sifat-sifat yang terdapat pada kelas pendahulunya.
• Kelas Dasar & Kelas Turunan
• Begitupun dalam program, suatu kelas
dapat dijadikan sebagai kelas dasar (induk) untuk kemudian diturunkan menjadi
kelas-kelas selanjutnya.
• Misalnya, terdapat kelas A yang
diturunkan menjadi kelas B, selanjutnya kelas B diturunkan lagi menjadi kelas
C, begitu seterusnya.
• Di sini, kelas B dan C tentu akan
memiliki sifat-sifat yang terdapat pada kelas A.
• Begitu juga kelas C, pasti akan
mewarisi sifat-sifat yang terdapat pada kelas B.
Tidak ada komentar:
Posting Komentar