Anda di halaman 1dari 79

OOP in Kotlin

Gold - Chapter 3 - Topic 5


Hai! Ini adalah sesi terakhir dari Chapter 3
online course Android Binar Academy!
Online Classroom Rules for Student

Join online class Make sure the internet network Always turn on Mute microphones when facilitator
in time 10 min before is stable the webcam during class explain, except Q&A

Recording class is prohibited Click the “raise hand” button Using earphones are highly Break time 15-20 min
when asking recommended for 1 Forum Discussion

Binar Academy & Programs Binar Academy


QUIZ

Metode selangkah demi selangkah untuk


menyelesaikan suatu masalah?

a Pseudocode

b Flowchart

c Algoritma
PEMBAHASAN QUIZ

c Algoritma

Yap betul!. Pilihan yang tepat adalah C. Algoritma.

Algoritma adalah metode selangkah demi selangkah untuk menyelesaikan suatu


masalah
QUIZ

Representasi visual dari control flow suatu


algoritma ...

a Pseudocode

b Flowchart

c Algoritma
PEMBAHASAN QUIZ

b Flowchart

Yap betul!. Pilihan yang tepat adalah B. Flowchart.

Flowchart adalah representasi visual dari control flow suatu algoritma.


QUIZ

Representasi tekstual dari suatu algoritma yang


tidak terikat oleh suatu bahasa pemrograman ...

a Pseudocode

b Flowchart

c Algoritma
PEMBAHASAN QUIZ

a Pseudocode

Yap betul!. Pilihan yang tepat adalah A. Pseudocode.

Pseudocode adalah representasi tekstual dari suatu algoritma yang tidak terikat oleh
suatu bahasa pemrograman.
Biasanya ditemukan pada karya tulis yang menjelaskan suatu algoritma.
QUIZ

a when, :

b Switch, case

c when , ->
PEMBAHASAN QUIZ

c When , ->

Yap betul!. Pilihan yang tepat adalah C.

Pada kotlin, kita menggunakan syntax when adalah syntax pengganti switch-case
pada Java.
QUIZ

Apa yang membedakan pengulangan


menggunakan Do While dengan While?

a Do While bisa menyebabkan unlimited loop

b Do while setidaknya menjalankan perintah sebanyak satu kali

c Do while sama saja seperti while


PEMBAHASAN QUIZ

c Do while setidaknya
menjalankan perintah
sebanyak satu kali

Yap betul!. Pilihan yang tepat adalah C.

Do while setidaknya menjalankan block code dalam pengulangan sebanyak satu


kali. Karena dengan syntax do while, ia akan melakukan dulu (do) baru cek kondisi
berlakunya pengulangan (while). Berbeda dengan while yang cek terlebih dahulu.
GIT

Di sesi ini, kita bakal belajar soal Object-oriented


Programming (OOP) yang menggunakan bahasa
pemrograman Kotlin.

Nantinya, kamu akan diajak untuk menerapkan


konsep OOP pada Kotlin sekaligus menjajal
beberapa penggunaan properti di Kotlin.
GAMBARAN UMUM MATERI

OOP
metodologi atau paradigma untuk merancang
program menggunakan class dan object.

Class Object
Sebuat blueprint / cetakan
untuk menciptakan object.
entitas yang memiliki status
dan behaviour (perilaku).
Secara umum, ini adalah hal-hal
yang akan kamu pelajari hari ini
Encapsulation Access Modifier

Abstraction Inheritance
Constructor Polymorphism

Overloading Overriding

Properties
Setter | Getter | Const | Val | Var | Lazy | Lateinit
OOP Kotlin

Kita kan sudah belajar OOP di Java.


Lalu, apa bedanya dengan
OOP di Kotlin?
OOP Kotlin

Pada dasarnya konsep OOP di semua bahasa


pemrograman sama saja, kok! Kita hanya
perlu penyesuaian aja~

Biar enak, kita flashback ke konsep OOP yang


dipelajari di Silver Class dulu, ya!
OOP Kotlin ~ OOP

Object Oriented Programming


Sederhananya, Object Oriented Programming (OOP) adalah metode
merancang program menggunakan Class dan Object.

Nah, OOP ini kan erat banget sama Class dan Object, ayo kita ulas
lagi tentang Class dan Object!
OOP Kotlin ~ Class

Ingat, Class adalah blueprint


(cetakan) yang bisa membuat
object atau instance.

Sedangkan, Object adalah hasil


dari class.

Dan, sebuah class bisa


membuat banyak object ya!
OOP Kotlin ~ Class

Seperti pada gambar, kita


punya blueprint mobil. Dari
blueprint itu, kita tahu mobil itu
ada 4 Roda, Ada pintunya, dll.
Nah perwujudan dari blueprint
mobil, bisa banyak.. Ada yang
jadi mobil van, mobil Audi,
ataupun mobil sport.
OOP Kotlin ~ Class

Seperti pada gambar, kita


punya blueprint mobil. Dari
blueprint itu, kita tahu mobil itu
ada 4 Roda, Ada pintunya, dll.
Nah perwujudan dari blueprint
mobil, bisa banyak.. Ada yang
jadi mobil van, mobil Audi,
ataupun mobil sport.
OOP Kotlin ~ Pembuatan Class

Pembuatan Class di Kotlin


Nggak afdol rasanya kalau belum pakai contoh penerapan.Gambar di bawah ini
adalah contoh pembuatan Class di Kotlin.
OOP Kotlin ~ Pembuatan Object

Pembuatan Object di Kotlin

Berbeda dengan Java, kita tidak membutuhkan syntax new untuk menginstansiasi suatu
Object di Kotlin. Ini contohnya:
OOP Kotlin

Nah, sudah mulai terbayang kan cara


buat Class dan Object di Kotlin?

Sekarang, saatnya kita belajar tentang


Constructor pada Kotlin!
OOP Kotlin ~ Constructor

Constructor di Kotlin

Tujuan utama dari Constructor adalah menginisialisasi


properti pada Class. Perintah ini bisa dipanggil ketika
kita membuat Object. Constructor
Di Kotlin, ada dua jenis constructor yang bisa
dimanfaatkan, yaitu Primary Constructor dan
Secondary Constructor.
Primary Secondary
Kita akan mempelajari keduanya dengan contoh. Plus,
Constructor Constructor
kita juga bakal belajar tentang blok penginisialisasi.
OOP Kotlin ~ Constructor

Primary Constructor

Primary Constructor adalah cara termudah untuk


menginisialisasi sebuah class. Hal tersebut
dinyatakan sebagai bagian dari header class.

Pada contoh di samping, kita akan coba


mendeklarasikan sebuah constructor sebagai
bagian dari header class.

Ini adalah contoh dari primary constructor yang


kita buat untuk menginisialisasi properti nama
dan umur (anggota data) pada class Murid.
OOP Kotlin ~ Constructor

Primary Constructor - Default Value

Kita juga dapat menentukan nilai default pada


constructor.

Pada contoh, kita telah menetapkan nilai


default nama murid sebagai "Farid", dan nilai
default usia adalah "24".

Kita telah membuat tiga object dari class


tersebut. Yang satu dengan nama dan usia,
kedua adalah nama tanpa usia, dan terakhir
adalah tanpa nama dan usia.

Di bagian output, bisa dilihat bahwa nilai


default akan ditimpa oleh nilai yang diteruskan
saat membuat sebuah object dalam class.
OOP Kotlin ~ Constructor

Primary Constructor - Init Block

Selanjutnya kita akan belajar mengenai


inisialisasi tambahan pada kode.

Dalam contoh berikut, kita memiliki blok


penginisialisasi yang telah kita nyatakan di
dalam constructor menggunakan init.

Dalam blok ini, kita dapat memiliki logika


inisialisasi tambahan sesuai yang kita
kehendaki.
OOP Kotlin ~ Constructor

Secondary Constructor

Secondary constructor pada Kotlin dapat


dibuat dengan menggunakan keyword
constructor.

Mereka yang memainkan peran utama dalam


pewarisan (inheritance) sehingga child class
bisa mengakses constructor yang ada pada
parent class sesuai kebutuhannya.
OOP Kotlin ~ Constructor

Berikut merupakan contoh sederhana dari


deklarasi secondary constructor di dalam
sebuah class:
OOP Kotlin ~ Constructor

Memanggil Satu Secondary


Constructor dari Constructor Lain

Sebelumnya kita telah mempelajari mengenai


pemanggilan secondary constructor
menggunakan satu parameter.

Lantas bagaimana cara memanggil secondary


constructor dari constructor lain? Ini dia
contohnya:
OOP Kotlin ~ Constructor

Secondary Constructor dengan


Parent dan Child Class

Dalam contoh berikut, kita akan membuat dua


class Sekolah yang merupakan parent class
dari child class Murid.

Nah, child class dari secondary constructor


akan memanggil parent class secondary
constructor jika kita menggunakan keyword
super.
OOP Kotlin

Oke, kita sudah tahu gimana caranya


membuat Constructor di Kotlin.

Sekarang, giliran kita belajar tentang


Encapsulation.
OOP Kotlin ~ Encapsulation

Encapsulation
Sama seperti konsep OOP pada umumnya, encapsulation
adalah cara membungkus data kita.

Sebagai gambaran, Class memiliki attribute dan method


yang disebut member. Biasanya, akan ada tingkatan akses
yang disebut access modifier. Nah, tingkatan inilah yang
menentukan dari mana saja member tersebut dapat diakses.

Itulah yang disebut dengan konsep encapsulation.


Singkatnya, encapsulation adalah sebuah konsep yang
memberikan akses terhadap member dan class.
OOP Kotlin ~ Access Modifier

Access Modifier
Seperti ini lah access modifier pada Kotlin

Secara default modifier pada member


attribute & method adalah public.

Jika sebuah member tidak memiliki


modifier, member tersebut secara otomatis
dihitung ke dalam modifier public.
OOP Kotlin ~ Access Modifier

Access Modifier

Penulisan Access Modifier di Kotlin sama kok kayak di Java, yaitu


<Access Modifier> <val/var> <nama variable>:<tipe data>

Seperti :
OOP Kotlin ~ Access Modifier

Access Modifier
Berikut adalah Access Modifier yang berlaku di Kotlin :

Modifier Class Subclass Module World


Public ✔ ✔ ✔ ✔
Private ✔ ❌ ❌ ❌
Protected ✔ ✔ ❌ ❌
Internal ✔ ✔ ✔ ❌

Keterangan:
• Subclass artinya class anak
• World artinya bisa diakses dari mana saja dalam satu project
OOP Kotlin

Ternyata encapsulation dan access


modifier yang berlaku di Kotlin sedikit
berbeda dengan di Java ya..

Sekarang kita pelajari tentang


Inheritance.
OOP Kotlin ~ Inheritance

Inheritance (Pewarisan) adalah sebuah konsep yang


diterapkan dalam pemrograman OOP. Cara kerjanya
mirip dengan DNA yang diwariskan dari orang tua ke
anak-anaknya.
OOP Kotlin ~ Inheritance

Perkenalkan, ini keluarga Sulistyo


Sulistyo sebagai suami atau ayah
Sukinem sebagai istri atau ibu
Basuki sebagai anak laki-laki
Darsini sebagai anak perempuan

Sebagai keluarga, mereka memiliki banyak ciri-ciri


yang serupa. Tetapi, ada juga ciri-ciri yang muncul
karena keunikan masing-masing.

Sebagai contoh:
Sulistyo Sukinem Basuki Darsini
Ciri Basuki dan Darsini yang dicetak dengan warna
- Kulit coklat - Kulit putih - Kulit putih - Kulit putih tulisan orange adalah ciri yang diwariskan dari Sulistyo
- Mata bulat - Mata bulat - Mata bulat - Mata bulat dan Sukinem sebagai orang tua mereka.
- Suka dengan - Suka dengan rok - Suka dengan - Suka dengan baju
celana berwarna abu celana berwarna pink
Tetapi ada ciri Basuki dan Darsini yang tidak dimiliki
berwarna coklat - Suka dengan baju berwarna coklat - Rambut warna oleh Sulistyo dan Sukinem.
- Suka dengan baju berwarna pink - Rambut warna coklat tua
berwarna hijau - Rambut warna coklat muda - Suka dengan
- Rambut warna coklat muda - Suka dengan rambut yang dikucir
Coklat tua sepatu warna
tosca
OOP Kotlin ~ Inheritance

Kamu perlu tahu beberapa terminologi yang ada


di Inheritance:
1. Super class atau Parent class
Class yang semua fiturnya diwariskan kepada class turunannya.
2. Sub-class atau Child class
Class turunan yang mewarisi semua fitur dari class lain. Sub-class
dapat menambah field dan method-nya sendiri yang berbeda dengan
parent class.
3. Reusability
Ketika kita ingin membuat class baru, kita bisa menurunkan atau
menggunakan kembali field dan method dari class yang sudah ada.
OOP Kotlin ~ Inheritance

Terus, gimana penerapan


Inheritance dalam
pemrograman Kotlin?
OOP Kotlin ~ Inheritance

Perhatikan ilustrasi berikut ini :

Seorang Anak pasti memiliki


kemiripan sifat dari ayahnya. Maka,
class Anak juga memiliki method &
attribute milik Ayah.

Jadi, child class bisa menggunakan


method yang ada pada Parentnya
dengan menggunakan cara
Overriding.

Eits, tapi jangan lupa untuk


menambahkan syntax open pada
method yang akan di override ya!
OOP Kotlin

Setelah memahami Inheritance,


kurang afdol kalau kita nggak
mempelajari Method Overriding
dan Overloading
OOP Kotlin ~ Method Overriding

Method Overriding

Method overriding, dari kata override yang


artinya mengesampingkan atau
mengabaikan.

Dapat dilihat di contoh, bahwa class Anak


bisa overriding method dari class Bapak.

Dengan begitu, jika kita memanggil


method ngantukan dari class Anak, akan
terpanggil method dari class Anak. Bukan
dari class Bapak.

Karena method ngantukan dari class


Bapak sudah di-override oleh method
ngantukan dari class Anak.
OOP Kotlin ~ Method Overloading

Method Overloading
Overloading method adalah nama method-nya sama
namun parameternya beda.

Pada contoh di samping, dalam class Lingkaran terdapat


dua method bernama luas.

“Kok bisa ya? Padahal kan nama method dalam satu


kelas kan tidak boleh ada yang sama persis?”
Tentu bisa dengan Overloading!

Coba perhatikan lagi, method luas yang pertama


memiliki parameter tipe data Float. Sedangkan method
luas yang kedua memiliki parameter Double.
OOP Kotlin

Kita sudah memahami tentang Overriding dan


Overloading method.

Sekarang, kita sudah siap mempelajari


Polymorphism!
OOP Kotlin ~ Polymorphism

Apa itu Polymorphism?


Secara harfiah, Poly artinya banyak, morfisme artinya
bentuk.

Jadi Polymorphism adalah sebuah prinsip dalam biologi


dimana organisme atau spesies dapat memiliki banyak
bentuk atau tahapan (stages).

Atau bisa diartikan 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.
OOP Kotlin ~ Polymorphism

Jika diterjemahkan ada sebuah class Animal yang


memiliki 3 method dengan nama yang sama, yaitu
“sound()”. Tetapi, masing-masing memiliki fungsi yang
berbeda-beda.

Method yang pertama akan memproses suara anjing,


method kedua akan memproses suara kucing, dan method
ketiga akan memproses suara bebek.
OOP Kotlin ~ Polymorphism

Terus, gimana penerapan


Polymorphism dalam
pemrograman Kotlin?
OOP Kotlin ~ Polymorphism

Polymorphism
Sebelum itu kita harus tau
bahwa Polymorphism terbagi
menjadi 2 macam :

Static Dynamic
Polymorphism Polymorphism
OOP Kotlin ~ Polymorphism

Static Polymorphism
Static Polymorphism menggunakan method overloading.
Ayo, ingat-ingat lagi pembahasan sebelumnya 😄

Method overloading terjadi pada sebuah class yang


memiliki nama method yang sama tapi memiliki
parameter dan tipe data yang berbeda.
OOP Kotlin ~ Polymorphism

Dynamic Polymorphism
Dynamic polymorphism juga menggunakan method
overriding, biasanya terjadi saat kita menggunakan
pewarisan (inheritance) dan implementasi interface.

Pada pewarisan, kita bisa mewariskan method & attribute


dari class ayah ke class anak.

Class anak akan memiliki nama method yang sama dengan


class ayah, begitu juga dengan anak-anak yang lainnya.
OOP Kotlin ~ Polymorphism

Dynamic Polymorphism

Jika diterjemahkan ada 3 buah class yaitu class Persegi,


Lingkaran, dan Segitiga. Ketiga class tersebut
melakukan pewarisan ke class BangunDatar yang
memiliki 2 method yaitu luas() dan keliling(), sehingga
ketiga class tersebut Persegi, Lingkaran dan Segitiga
mewarisi 2 method tersebut.

Tetapi pada kedua method yang diwarisi tersebut


memiliki fungsi yang berbeda beda.
OOP Kotlin ~ Polymorphism

Dynamic Polymorphism

Sebagai contoh, terdapat


beberapa class berikut :
OOP Kotlin ~ Polymorphism

Dynamic Polymorphism
OOP Kotlin ~ Abstraction

Selanjutnya, kita pelajari konsep yang


erat banget kaitannya dengan OOP, yaitu
Abstraction!
OOP Kotlin ~ Abstraction

Apa itu Abstraction

Abstraction adalah salah satu konsep inti dari OOP.

Ia bisa digunakan saat kita tahu fungsi apa yang harus dimiliki class
tetapi tidak tahu bagaimana fungsi tersebut harus diimplementasikan.
Kamu juga bisa menggunakan ini jika fungsionalitas dapat
diimplementasikan dalam beberapa cara.

Nah, ketika suatu class melakukan extends ke class abstract, class


tersebut dapat mengimplementasikan method abstract yang ada dalam
class abstract tadi.
OOP Kotlin ~ Abstraction

Contoh Abstraction
OOP Kotlin ~ Properties

Terakhir, kita pelajari


tentang Properties yang
berlaku di Kotlin!
OOP Kotlin ~ Properties

Properties
Properti merupakan elemen paling penting dalam bahasa
pemrograman apapun. Hal itu sangat diperlukan dalam
codebase manapun.

Dalam Kotlin, setiap class juga memiliki sebuah


properti. Masing-masing class memiliki properti yang
berbeda.

Setiap deklarasi properti pada Kotlin dimulai dengan


keyword var atau val. val digunakan ketika variabel
tidak berubah-ubah yang berarti hanya read-only. Kita
hanya dapat mengatur nilainya sekali.

Mari kita lihat bagaimana definisi mereka di Kotlin dan


apa yang membuatnya lebih spesial dari Java.
OOP Kotlin ~ Properties

Properties - Setter dan Getter


Saat ini, ada beberapa varian getter dan setter pada
Kotlin.

Pada contoh, urutan deklarasi get() dan set() tidak terlalu


berpengaruh. Kita dapat mendeklarasikan fungsi get()
tanpa harus mendefinisikan fungsi set(), begitu pula
sebaliknya.

Pada class Murid{ }, kita mendeklarasikan sebuah


variabel nama bertipe String dengan nilai "Abika".
Selanjutnya, untuk fungsi get() kita perlu mengembalikan
nilai sesuai tipe data dari propertinya.

Atau, kita dapat mengembalikan nilai dari properti itu


sendiri dengan menggunakan keyword field. Sedangkan
pada fungsi set() kita memerlukan sebuah parameter.
OOP Kotlin ~ Properties

Properties - Const VS Val


Const sama halnya seperti Val, kecuali mereka dideklarasikan sebagai konstanta sewaktu kompilasi.
Const hanya diperbolehkan sebagai top-level atau member dari sebuah object. Berikut merupakan
contoh penerapannya:
OOP Kotlin ~ Properties

Properties - Lazy VS Lateinit

Keyword lazy berfungsi untuk menginisialisasi fungsi lazy pada Kotlin. Property val
tidak akan diinisialisasi hingga kita menggunakannya untuk pertama kali dalam kode.

Untuk selanjutnya, nilai yang sama akan digunakan. Nilai tersebut hadir dalam fungsi
lazy yang mengambil nilai dalam bentuk lambda.
OOP Kotlin ~ Properties

Properties - Lazy VS Lateinit

Deklarasi lateinit modifier digunakan untuk menginisialisasi


properti var pada tahap selanjutnya. Biasanya, compiler Kotlin
mengharuskan kita untuk menentukan nilai ke properti selama
inisialisasi. Dengan menggunakanan lateinit kita dapat
menunda hal tersebut.

Untuk kita ketahui bersama, ada beberapa hal yang harus


diperhatikan ketika menggunakan lateinit pada code:

1. lateinit tidak dapat digunakan pada val.


2. lateinit tidak dapat digunakan dengan tipe data primitif.
3. lateinit var dapat diinisialisasi dari mana saja dimana
object dibuat.
TUGAS

Buatlah program sederhana pada Kotlin yang


mengimplementasikan :
● Class dan Object
● Access Modifier
● Inheritance
● Polymorphism
● Method Overloading dan Overriding

Pengumpulan tugas diserahkan kepada mentor.

Kita akan membahas bersama-sama di pertemuan


berikutnya.
RANGKUMAN

OOP
Metodologi atau paradigma untuk merancang program menggunakan class dan object.

Class
Sebuat blueprint / cetakan untuk menciptakan object.

Object
Entitas yang dibuat dari class yang memiliki status dan behaviour (perilaku).

Encapsulation & Access Modifier


Encapsulation adalah car

Android Virtual Device (AVD)


Emulator yang membuat komputer kita bisa memberikan tampilan layaknya smartphone.
Penting buat evaluasi aplikasi.

Git
Version Control System yang cukup terkenal. Digunakan untuk berkolaborasi dalam
membangun aplikasi.
RANGKUMAN

OOP
metodologi atau paradigma untuk merancang
program menggunakan class dan object.

Class Object
Sebuat blueprint / cetakan entitas yang memiliki status
untuk menciptakan object. dan behaviour (perilaku).

Encapsulation Access Modifier

Abstraction Inheritance
Constructor Polymorphism

Overloading Overriding

Properties
Setter | Getter | Const | Val | Var | Lazy | Lateinit
QUIZ

Modifier Class Subclass Module World

Public ✔ ✔ ✔ ✔

Private ✔ ❌ ❌ ❌

Protected ✔ ✔ ❌ ❌

Internal ✔ ✔ ✔ ❌

Perhatikan Tabel Access Modifier di Kotlin berikut. Modifier yang


ditutupi adalah :
a Internal

b Local

c Inside
PEMBAHASAN QUIZ

Modifier Class Subclass Module World

Public ✔ ✔ ✔ ✔

Private ✔ ❌ ❌ ❌

Protected ✔ ✔ ❌ ❌

Internal ✔ ✔ ✔ ❌

a Internal

Yap betul!. Pilihan yang tepat adalah A. Internal.

Access modifier internal adalah access modifier baru di Kotlin.


Pada java tidak ada yaa...
QUIZ

Simbol untuk menyatakan turunan dari suatu


class pada Kotlin ...

a Titik Dua (:)

b Titik Koma (;)

c Titik Dua Bintang (:*)


PEMBAHASAN QUIZ

a Titik Dua ( : )

Yap betul!. Pilihan yang tepat adalah A. Titik Dua.

Pada java, kita menggunakan syntax extends untuk mewarisi dari suatu class.
Nah, pada kotlin kita cukup dengan titik dua saja ( : )
QUIZ

class Sabrina : Manusia() {


fun sebutNama() {
print("Nama saya ${super.nama}")
}
}

Class sabrina mewarisi dari class Manusia.


Apa Code yang ditutupi agar tidak error?
a Manusia

b Manusia()

c Manusia::class.java
PEMBAHASAN QUIZ

b Manusia()

Yap betul!. Pilihan yang tepat adalah B. Manusia().

Karena pada Kotlin, mengharuskan class untuk mengextend pada suatu constructor
class yang ingin diturunkan.
Sehingga biasanya diikuti oleh simbol kurung buka dan kurung tutup.
QUIZ

Apa perbedaan deklarasi property var dengan


lateinit var ...

a Var bisa diisi nilainya di beda baris, sedangkan lateinit var tidak bisa.

b Var bisa diubah-ubah nilainya, sedangkan lateinit var tidak bisa.

c Var tidak bisa diisi nilainya pada beda baris, sedangkan lateinit var bisa.
PEMBAHASAN QUIZ

c Var tidak bisa diisi nilainya


pada beda baris, sedangkan
lateinit var bisa.

Yap, benar banget!. Jawabannya C, var tidak bisa diisi nilainya pada beda baris,
sedangkan lateinit var bisa.

Sesuai namanya, lateinit, sehingga nilainya bisa diinisialisasi dengan ‘Terlambat’.


Sehingga inisialisasi dimungkinkan pada baris yang berbeda.
QUIZ

Saat kita tahu fungsi apa yang harus dimiliki


class tetapi tidak tahu bagaimana fungsi tersebut
harus diimplementasikan, kita bisa membuat
class ...

a Data Class

b Interface Class

c Abstract Class
PEMBAHASAN QUIZ

c Abstract Class

Yap, benar banget!. Jawabannya C. Method ataupun class Abstract perlu


diimplementasikan oleh class lain melalui inheritance.

Lalu class yang mewarisi abstract class tersebut bisa melakukan override method
maupun property abstract yang ada.
REFERENSI

Referensi
a. https://www.petanikode.com/java-oop-polimorfisme/
b. https://kotlinlang.org/docs/reference/classes.html
c. https://medium.com/@antoeldi/belajar-kotlin-lanjutan-oop-3f8d17eab6f6
d. https://beginnersbook.com/2019/03/kotlin-class-and-objects-oop/
e. https://www.programiz.com/kotlin-programming/class-objects
f. https://medium.com/@napperley/kotlin-tutorial-12-encapsulation-and-
polymorphism-6e5a150f25e1

Anda mungkin juga menyukai