OOP pada Kotlin memadukan kejelasan class Java dengan banyak penyederhanaan: primary constructor, data class, sealed class, dan object declaration.

# Konsep OOP

Pelajari empat pilar object-oriented programming — encapsulation, inheritance, polymorphism, dan abstraction — serta pergeseran pola pikir dari gaya prosedural ke gaya berorientasi object.

Buka →
# Class dan Object

Pelajari cara mendeklarasikan class, membuat object, dan menyusun anggota class seperti property, method, serta constructor pada Kotlin.

Buka →
# Properties

Pelajari cara mendeklarasikan property var dan val, menulis custom getter/setter dengan backing field, serta menggunakan lateinit untuk property non-null yang diinisialisasi nanti.

Buka →
# Primary Constructor

Pelajari primary constructor Kotlin, cara mendeklarasikan property langsung di daftar parameter, dan mengeksekusi inisialisasi melalui property initializer serta init block.

Buka →
# Secondary Constructors

Pelajari cara mendeklarasikan secondary constructor dengan keyword constructor, mendelegasikan ke primary constructor, dan menyediakan beberapa jalur pembuatan object.

Buka →
# init Blocks

Pelajari cara kerja init block Kotlin, urutan eksekusi terhadap property initializer, multiple init block, dan penggunaannya untuk validasi constructor.

Buka →
# Property Accessors

Pelajari cara menulis custom getter dan setter pada property Kotlin, mendefinisikan computed property tanpa backing field, serta menggabungkan keduanya untuk kontrol akses yang fleksibel.

Buka →
# Backing Fields

Pelajari backing field pada property Kotlin, keyword `field` yang hanya tersedia di custom accessor, serta cara menghindari setter rekursif.

Buka →
# Visibility Modifiers

Pelajari empat visibility modifier Kotlin — public, private, protected, internal — beserta perbedaannya pada anggota class dan deklarasi top-level.

Buka →
# Encapsulation

Pelajari encapsulation Kotlin — menyembunyikan data internal dengan private, menyajikan akses melalui method publik tervalidasi, dan memakai property sebagai alat bantu encapsulation.

Buka →
# Inheritance

Pelajari cara membuat subclass dengan tanda titik dua, menandai superclass dengan open, menulis ulang method dengan override, dan memanfaatkan polymorphism melalui referensi superclass.

Buka →
# open Classes dan Methods

Pelajari mengapa class dan method Kotlin bersifat final secara default, cara membukanya dengan open, dan kapan menggunakan final override untuk menghentikan rantai override lebih lanjut.

Buka →
# Overriding Properties dan Methods

Pelajari cara meng-override property dan method pada subclass Kotlin, aturan val menjadi var, serta bagaimana property override ikut polymorphism.

Buka →
# Abstract Classes

Pelajari cara mendeklarasikan abstract class Kotlin, abstract property dan method, dan kontrak yang memaksa subclass menyediakan implementasi tertentu.

Buka →
# Interfaces

Pelajari cara mendeklarasikan interface Kotlin, method default, property abstrak, dan implementasi multiple interface sekaligus dalam satu class.

Buka →
# Interface Delegation

Mendelegasikan implementasi interface ke object lain dengan keyword `by` agar class dapat menggunakan ulang kode tanpa inheritance.

Buka →
# Nested Classes

Mendeklarasikan class di dalam class lain tanpa keyword `inner` — class bersarang statis yang tidak mengakses instance outer class.

Buka →
# Inner Classes

Mendeklarasikan inner class dengan keyword `inner` yang membawa referensi ke instance outer class dan dapat mengakses anggotanya.

Buka →
# object Declarations

Mendeklarasikan singleton dengan keyword `object` — instance tunggal yang diinisialisasi secara lazy saat akses pertama.

Buka →
# companion Objects

Mendeklarasikan companion object di dalam class untuk menyediakan anggota statis, konstanta, factory method, dan pola desain berbasis class.

Buka →
# Anonymous Objects

Membuat instance object tanpa nama dengan `object : Type { ... }` — implementasi ad-hoc dari interface atau abstract class.

Buka →
# data class

Mendeklarasikan data class Kotlin yang otomatis menghasilkan method equals, hashCode, toString, copy, dan componentN untuk destrukturisasi.

Buka →
# enum class

Mendeklarasikan enum class Kotlin dengan konstanta, property, constructor, method, dan implementasi interface untuk merepresentasikan nilai konstan bertipe aman.

Buka →
# sealed class

Mendeklarasikan sealed class Kotlin — hierarki terbatas yang membuat kompilator mengetahui seluruh subtype dan memaksa when yang exhaustive.

Buka →
# sealed interface

Mendeklarasikan sealed interface Kotlin — interface dengan daftar implementor terbatas yang dapat dikombinasikan dengan sealed class untuk hierarki bertingkat.

Buka →
# value class

Mendeklarasikan @JvmInline value class Kotlin — wrapper yang diinline pada saat kompilasi sehingga tidak menambah overhead alokasi memori.

Buka →
# Delegation

Pola delegation di Kotlin — composition over inheritance — baik secara manual maupun via keyword `by` untuk meneruskan pemanggilan method ke object lain.

Buka →
# Equality dan Identity

Membedakan operator `==` (structural equals) dan `===` (referential identity) di Kotlin serta cara mengoverride method `equals` dan `hashCode`.

Buka →
# copy dan component Functions

Memakai method copy dan componentN yang dihasilkan otomatis oleh data class untuk membuat salinan dan destrukturisasi instance.

Buka →
# OOP Design Principles

Panduan desain berorientasi object di Kotlin — SOLID, composition over inheritance, program to interface, dan idiom Kotlin seperti data class, sealed, dan value class.

Buka →