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
a Pseudocode
b Flowchart
c Algoritma
PEMBAHASAN QUIZ
c Algoritma
a Pseudocode
b Flowchart
c Algoritma
PEMBAHASAN QUIZ
b Flowchart
a Pseudocode
b Flowchart
c Algoritma
PEMBAHASAN QUIZ
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 , ->
Pada kotlin, kita menggunakan syntax when adalah syntax pengganti switch-case
pada Java.
QUIZ
c Do while setidaknya
menjalankan perintah
sebanyak satu kali
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
Nah, OOP ini kan erat banget sama Class dan Object, ayo kita ulas
lagi tentang Class dan Object!
OOP Kotlin ~ Class
Berbeda dengan Java, kita tidak membutuhkan syntax new untuk menginstansiasi suatu
Object di Kotlin. Ini contohnya:
OOP Kotlin
Constructor di Kotlin
Primary Constructor
Secondary Constructor
Encapsulation
Sama seperti konsep OOP pada umumnya, encapsulation
adalah cara membungkus data kita.
Access Modifier
Seperti ini lah access modifier pada Kotlin
Access Modifier
Seperti :
OOP Kotlin ~ Access Modifier
Access Modifier
Berikut adalah Access Modifier yang berlaku di Kotlin :
Keterangan:
• Subclass artinya class anak
• World artinya bisa diakses dari mana saja dalam satu project
OOP Kotlin
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
Method Overriding
Method Overloading
Overloading method adalah nama method-nya sama
namun parameternya beda.
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 😄
Dynamic Polymorphism
Dynamic polymorphism juga menggunakan method
overriding, biasanya terjadi saat kita menggunakan
pewarisan (inheritance) dan implementasi interface.
Dynamic Polymorphism
Dynamic Polymorphism
Dynamic Polymorphism
OOP Kotlin ~ Abstraction
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.
Contoh Abstraction
OOP Kotlin ~ Properties
Properties
Properti merupakan elemen paling penting dalam bahasa
pemrograman apapun. Hal itu sangat diperlukan dalam
codebase manapun.
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
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).
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).
Abstraction Inheritance
Constructor Polymorphism
Overloading Overriding
Properties
Setter | Getter | Const | Val | Var | Lazy | Lateinit
QUIZ
Public ✔ ✔ ✔ ✔
Private ✔ ❌ ❌ ❌
Protected ✔ ✔ ❌ ❌
Internal ✔ ✔ ✔ ❌
b Local
c Inside
PEMBAHASAN QUIZ
Public ✔ ✔ ✔ ✔
Private ✔ ❌ ❌ ❌
Protected ✔ ✔ ❌ ❌
Internal ✔ ✔ ✔ ❌
a Internal
a Titik Dua ( : )
Pada java, kita menggunakan syntax extends untuk mewarisi dari suatu class.
Nah, pada kotlin kita cukup dengan titik dua saja ( : )
QUIZ
b Manusia()
c Manusia::class.java
PEMBAHASAN QUIZ
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
a Var bisa diisi nilainya di beda baris, sedangkan lateinit var tidak bisa.
c Var tidak bisa diisi nilainya pada beda baris, sedangkan lateinit var bisa.
PEMBAHASAN QUIZ
Yap, benar banget!. Jawabannya C, var tidak bisa diisi nilainya pada beda baris,
sedangkan lateinit var bisa.
a Data Class
b Interface Class
c Abstract Class
PEMBAHASAN QUIZ
c Abstract Class
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