Professional Documents
Culture Documents
Kotlin - Object Oriented Programming
Kotlin - Object Oriented Programming
Add a footer 4
Apa itu Object?
• Object adalah data yang berisi properties (fields atau attributes) dan functions
(methods atau behavior)
• Semua data di Kotlin adalah object, dari mulai Number, Boolean, Character, String,
dan yang lainnya
Add a footer 5
Apa itu Class?
• Class adalah blueprint, prototype atau cetakan untuk membuat Object
• Class berisikan deklarasi semua properties dan functions yang dimiliki oleh Object
• Setiap Object selalu dibuat dari Class
• Sebuah Class bias membuat Object tanpa batas
Add a footer 6
Class dan Object: Person
Add a footer 7
Latihan : Class dan Object
Add a footer 8
Class
Membuat Class
• Untuk membuat class di Kotlin, kita bias menggunakan kata kunci class
• Membuat class di Kotlin tidak ada aturan harus sama dengan nama file seperti di
Java
• Namun agar kodenya rapi dan mudah untuk dimengerti, disarankan untuk membuat
nama class dan nama file sama. Misal class Person di file Person.kt
Add a footer 10
Kode: Class
Add a footer 11
Latihan : Membuat Class
Add a footer 12
Object
Membuat Object
• Membuat Object di Kotlin sangat mudah, mirip seperti memanggil function, dengan
menggunakan nama class
• Di Kotlin, tidak butuh kata kunci khusus untuk membuat Object, missal jika di Java
kita butuh menggunakan kata kunci new untuk membuat Object
Add a footer 14
Kode : Object
Add a footer 15
Latihan : Membuat Object
Add a footer 16
Properties
Properties
• Properties / Fields / Attributes adalah data yang bisa kita sisipkan di dalam Object
• Namun sebelum kita bias memasukkan data di Properties, kita harus
mendeklarasikan data apa saja yang dimiliki object tersebut di dalam deklarasi class
• Membuat Properties sama seperti membuat variable, bias mutable atau immutable
Add a footer 18
Kode : Properties
Add a footer 19
Latihan : Membuat Properties
Add a footer 20
Manipulasi Properties
• Properties yang ada di object bisa kita manipulasi. Tergantung mutable atau
immutable
• Jika mutable, berarti kita bisa mengubah data propertiesnya, namun jika immutable,
kita hanya bisa mengambil data propertiesnya saja
• Untuk memanipulasi data properties, sama seperti cara pada variable
• Untuk mengakses properties, kita butuh kata kunci . (titik) setelah nama object dan
diikuti nama propertiesnya
Add a footer 21
Kode : Manipulasi Properties
Add a footer 22
Latihan : Manipulasi Properties
Add a footer 23
Constructors
Constructors
• Saat kita membuat Object, maka kita seperti memanggil sebuah function
• Di dalam class Kotlin, kita bias membuat Constructors, Constructors mirip seperti
function yang akan dipanggil saat pertama kali Object dibuat
• Mirip seperti Function, kita bias memberi parameter pada Constructors
Add a footer 25
Kode : Constructors
Add a footer 26
Kode : Menggunakan Constructor
Add a footer 27
Latihan : Membuat dan
Menggunakan Constructors
Add a footer 28
Initializer Block
Initializer Block
• Initializer Block adalah blok kode yang akan dieksekusi ketika constructor dipanggil
• Kita bias memasukkan kode program di dalam initializer block
Add a footer 30
Kode : Initializer Block
Add a footer 31
Latihan : Membuat Initializer Block
Add a footer 32
Secondary
Constructor
Secondary Constructor
• Kotlin mendukung pembuatan constructor lebih dari satu
• Constructor yang utama yang terdapat di Class disebut primary constructor,
constructor tambahan yang bias kita buat lagi adalah secondary constructor
• Saat membuat constructor, kita wajib memanggil primary constructor jika ada
primary constructor
Add a footer 34
Kode : Secondary Constructor
Add a footer 35
Kode : Memanggil Secondary
Constructor
Add a footer 36
Latihan : Membuat dan
Memanggil Secondary Constructor
Add a footer 37
Properties di
Constructor
Properties di Constructor
• Kotlin mendukung deklarasi properties langsung di primary constructor
• Ini sangat berguna untuk mempersingkat saat kita membuat properties dan mengisi
datanya lewat constructor
Add a footer 39
Kode : Properties di Constructor
Add a footer 40
Kode : Memanggil Properties di
Constructor
Add a footer 41
Latihan : Properties di Constructor
dan Memanggilnya
Add a footer 42
Function
Function
• Selain Parameters / Fields / Attributes di dalam Class, kita juga bisa mendeklarasikan
Function
• Function yang kita deklarasikan di dalam Class, secara otomatis menjadi behavior si
object yang dibuat dari class tersebut
Add a footer 44
Kode : Function
Add a footer 45
Kode : Mengakses Function
Add a footer 46
Latihan : Membuat dan Mengakses
Function
Add a footer 47
Function Overloading
Function Overloading
• Function Overloading adalah kemampuan membuat function dengan nama yang
sama di dalam class
• Untuk membuat function dengan nama yang sama, kita wajib menggunakan
parameter yang berbeda, tipe parameter yang berbeda atau jumlah parameter yang
berbeda
Add a footer 49
Kode : Function Overloading
Add a footer 50
Kode : Mengakses Function
Overloading
Add a footer 51
Latihan : Membuat dan Mengakses
Function Overloading
Add a footer 52
This Keyword
This Keyword
• this adalah keyworld yang bias digunakan untuk mereferensikan object saat ini
• this hanya bisa digunakan di dalam class itu sendiri
• Biasanya this digunakan untuk mengakses properties yang tertutup oleh parameter
dengan nama yang sama
Add a footer 54
Kode : Tanpa this Keyword
Add a footer 55
Kode : Dengan this Keyword
Add a footer 56
Latihan : this Keyword
Add a footer 57
Inheritance
Inheritance
• Inheritance atau pewarisan adalah kemampuan untuk menurunkan sebuah class ke
class lain
• Dalam artian, kita bias membuat class Parent dan class Child
• Di Kotlin, tiap class Child, hanya bias punya satu class Parent, namun satu class
Parent bias punya banyak class Child
• Secara Standar, di class yang dibuat di Kotlin adalah final (tidak bisa diwariskan),
agar bias diwariskan kita harus menggunakan kata kunci open
Add a footer 59
Kode : Inheritance
Add a footer 60
Kode : Mengakses Behaviour Parent
Add a footer 61
Latihan : Inheritance dan
Mengakses Behaviour Parent
Add a footer 62
Function Overriding
Function Overriding
• Function Overriding adalah kemampuan membuat ulang function yang sudah ada di
class Parent
• Secara standar, function di class adalah final, tidak bias dibuat ulang di class Child
• Agar function bisa dibuat ulang di class Child, kita harus menggunakan kata kunci
open
Add a footer 64
Kode : Function Overriding
Add a footer 65
Kode : Mengakses Function Overriding
Add a footer 66
Final Override Function
• Saat kita membuat ulang function di class Child, secara standar function tersebut
bersifat open, yang artinya bias dibuat ulang di class Child dibawahnya lagi
• Jika ingin membuat override function tidak bisa dibuat ulang oleh class Child di
bawahnya lagi, kita harus menggunakan kata kunci final
Add a footer 67
Kode : Final Override Function
Add a footer 68
Latihan : Function Overriding
Add a footer 69
Properties Overriding
Properties Overriding
• Selain membuat ulang function di class Child, di Kotlin juga kita bisa membuat ulang
properties
• Secara standar, properties di class bersifat final, tidak bisa dibuat ulang di class
Childnya, agar bisa dibuat ulang, kita harus menggunakan kata kunci open
Add a footer 71
Kode : Properties Overriding
Add a footer 72
Kode : Mengakses Properties
Overriding
Add a footer 73
Latihan : Membuat dan Mengakses
Properties Overriding
Add a footer 74
Super Keyword
Super Keyword
• Kadang kita ingin mangakses function atau properties milik class Parent yang sudah
dibuat ulang oleh class Child
• Untuk mengakses function atau properties milik class Parent, kita bisa
menggunakan kata kunci super
Add a footer 76
Kode : Super Keyword di
Properties
Add a footer 77
Kode : Mengakses Super Keyword
di Properties
Add a footer 78
Latihan : Membuat dan Mengakses
Super Keyword di Properties
Add a footer 79
Kode : Super Keyword di Function
Add a footer 80
Kode : Mengakses Super Keyword
di Function
Add a footer 81
Latihan : Membuat dan Mengakses
Super Keyword di Function
Add a footer 82
Super Constructor
Super Constructor
• Kata kunci super tidak hanya bisa digunakan untuk mengakses function atau
properties di class Parent
• Kata kunci super juga bisa digunakan untuk mengakses constructor class Parent
• Mengakses constructor class Parent hanya bisa dilakukan di dalam constructor Child
Add a footer 84
Kode : Super Constructor
Add a footer 85
Kode : Mengakses Super
Constructor
Add a footer 86
Latihan : Membuat dan Mengakses
Super Constructor
Add a footer 87