Pemrograman Berorientasi Obyek:Enkapsulasi, Pewarisan dan polimorfisme: Difference between revisions
Created page with "== Konsep Dasar OOP == * Enkapsulasi (Encapsulation) * Pewarisan (Inheritance) * Polimorfisme (Polymorphism) == Enkapsulasi == Definisi enkapsulasi: Pembungkusan variabel dan method dalam sebuah obyek yang terlindungi serta menyediakan interface untuk mengakses variabel tersebut. Variabel dan method yang dipunyai suatu obyek, bisa ditentukan hak aksesnya. '''Contoh''': jam tangan * Penting sekali untuk mengetahui waktu. * Cara jam mencatat waktu dengan baik antar..." |
|||
| Line 27: | Line 27: | ||
Subclass bisa berlaku sebagai superclass bagi class lainya → multilevel inheritance. | Subclass bisa berlaku sebagai superclass bagi class lainya → multilevel inheritance. | ||
'''Contoh''': terdapat class sepeda dan sepeda gunung. | '''Contoh''': terdapat class sepeda dan sepeda gunung. | ||
| Line 35: | Line 34: | ||
* Sepeda gunung memiliki variabel dan method yang dimiliki oleh sepeda. | * Sepeda gunung memiliki variabel dan method yang dimiliki oleh sepeda. | ||
Prinsip : Persamaan-persamaan yang dimiliki oleh beberapa kelas dapat digabungkan dalam sebuah class induk sehingga setiap kelas yang diturunkannya memuat hal-hal yang spesifik untuk kelas yang bersangkutan. | |||
Prinsip: Persamaan-persamaan yang dimiliki oleh beberapa kelas dapat digabungkan dalam sebuah class induk sehingga setiap kelas yang diturunkannya memuat hal-hal yang spesifik untuk kelas yang bersangkutan. | |||
[[File:Enkapsulasi, Pewarisan dan polimorfisme 1.png|center|thumb]] | |||
=== Keuntungan pewarisan === | |||
* Subclass menyediakan state/behaviour yang spesifik yang membedakan dengan superclass → memungkinkan programmer untuk menggunakan ulang source code dari superclass yang telah ada. | |||
* Programmer dapat mendefinisikan superclass khusus yang bersifat generik, yang disebut abstract class, untuk mendefinisikan class dengan tingkah laku dan state secara umum. | |||
== Single dan multiple inheritance == | |||
=== C c multiple inheritance === | |||
Suatu class diperbolehkan untuk mempunyai lebih dari satu superclass. | |||
Variabel dan method yang diwariskan merupakan kombinasi dari superclass-nya. | |||
=== Java → single inheritance === | |||
Suatu class hanya boleh mempunyai satu superclass. | |||
== Multilevel inheritance == | |||
Suatu subclass bisa menjadi superclass bagi class yang lain. | |||
== Polimorfisme == | |||
Polimorfisme (bahasa inggris polymorphism) adalah sebuah prinsip dalam biologi di mana oraganisme atau spesias dapat memiliki banyak bentuk atau tahapan (stages) | |||
Polimorfisme dalam OOP adalah sebuah prinsip di mana class dapat memiliki banyak “bentuk” method yang berbeda-beda meskipun namanya sama. “Bentuk” di sini dapat kita artikan: isinya berbeda, parameternya berbeda, dan tipe datanya berbeda. | |||
=== Jenis Polimorfisme === | |||
==== 1. Static Polymorphism (Polimorfisme statis); ==== | |||
Polimorfisme statis menggunakan method overloading, Method overloading terjadi pada sebuah class yang memiliki nama method yang sama tapi memiliki parameter dan tipe data yang berbeda. | |||
Kata kunci yang perlu kamu ingat: | |||
* “Dalam satu class” | |||
* “Nama method sama” | |||
* “Tipe data dan parameter beda” | |||
'''Contoh''' | |||
Contohnya misalkan kita memiliki class Lingkaran.java. Pada class ini terdapat method <code>luas()</code>. | |||
Nah, si method <code>luas()</code> ini bisa saja memiliki parameter yang berbeda. | |||
Misalnya kita ingin menghitung luas berdasarkan jari-jari (radius) atau diameter. | |||
==== 2. Dynamic Polymorphism (Polimorfisme dinamis). ==== | |||