Materi mobile Application menggunakan Kotlin. Materi kali ini yaitu polymorphism dalam OOP di kotlin. Polymorphism adalah bab paling penting dalam OOP, sehingga mahasiswa wajib menguasainya.
3. Kasus
Jika ingin memiliki fungsi test()
untuk banyak binatang, maka
harus didefinisikan banyak fungsi
test. Bagaimana agar cukup satu
fungsi untuk semuanya?
4. IS-A
● Buatlah class yang memiliki sifat umum (generic) yang mewakili
kelas-kelas lainnya, lalu jadikan supeclass bagi sub-subclass
● Karena tiap subclass IS-A superclass
6. Polymorphism
POLY = banyak
MORPHISM = bentuk
● Object bisa berubah-ubah bentuk
● RTTI = Run Time Type Identification = tipe
data diidentifikasi ketika program running
● LATE BINDING = sebuah object akan
di-bind ke sebuah method ketika runtime
(bukan ketika compile)
7. Polymorphism
● Deklarasi val namaobject: Superclass = SubClass() lebih sering
diimplementasikan.
● Hal tersebut memudahkan dalam melakukan koleksi object
subclass
superclass
Koleksi (listOf merupakan
turunan dari arrayOf)
8. Casting Object
Error, karena object g hanya mengakses field
dan method dari Binatang
Object g dicasting sehingga dapat mengakses
semua atribut dan method dari gajah
9. Abstract
● Abstract class merupakan class yang hanya mendeklarasikan methodnya,
tanpa implementasi isi
● Abstract class minimal memiliki satu abstract method
● Baik class maupun method harus ditambahkan keyword abstract
● Konsekuensi abstract class, tidak dapat dicreate objectnya, tapi yang
mengimplementasikannya bisa
● Keuntungannya lebih simpel, dan hemat memori (tidak dibuatkan
objectnya oleh jvm)
12. Abstract Class
● Jika subclass dari class abstract tidak mengimplementasikan method
abstract, maka subclass wajib menjadi kelas abstract juga, sehingga tidak
bisa dibuat objectnya
Tidak implement method
makan(), maka wajib menjadi
abstract class
Abstract class
Kerbau tidak dapat
dibuat objectnya
13. Interface
● Cara menghasilkan efek polymorphisme
1. Extends dari class biasa
2. Extend dari abstract class
3. Implement sebuah interface
● Interface:
1. Mirip seperti abstract class, tapi semua method HARUS abstract
2. Class yang mengimplement interface, dalam kotlin menggunakan titik dua (:)
3. Class yang mengimplement HARUS mengimplement SEMUA method yang
dideklarasikan dalam interface
4. Sebuah class BISA mengimplement lebih dari satu interface
14. Interface, seluruh method
akan bersifat abstract, baik
ditulis maupun tidak
Class yang ingin memiliki sifat
interface, harus implement (:) dan
semua method harus “override”
15. Extends + Implements
Class ManusiaSakti
meng-extends class
Manusia dan
meng-implements
interface Dosen dan
sniper
Budi sebagai object dari
class ManusiaSakti,
dapat mewakili Dosen,
Sniper dan Manusia
16. Program to Interface
Program to Interface merupakan pendekatan dimana program dengan konsep OOP
lebih fokus pada interface, bukan pada implementasi (hidden implementation)
Mysql implement
database
IbmDb2 implement
database
Mengubah dari
Mysql ke IbmDb2