unisbadri.com » Python Java Golang Typescript Kotlin Ruby Rust Dart PHP
Kelas

Kelas #

Dalam Kotlin, kelas (class) adalah blok kode yang digunakan untuk mendefinisikan tipe data baru dan mendesain struktur data dengan atribut dan perilaku tertentu. Kelas memungkinkan Anda untuk mengelompokkan data dan fungsi yang terkait dalam satu unit, membuat kode Anda lebih modular dan terorganisir.

Definisi dan Struktur #

Kelas dalam Kotlin dapat didefinisikan dengan kata kunci class, diikuti oleh nama kelas, dan dapat memiliki konstruktor, properti, metode, dan inisialisasi.

Contoh Dasar #

class Person(val name: String, var age: Int) {
    fun greet() {
        println("Hello, my name is $name and I am $age years old.")
    }
}

Penjelasan:

  • class Person(val name: String, var age: Int): Mendefinisikan kelas Person dengan dua parameter konstruktor. name adalah properti read-only (val) dan age adalah properti yang dapat diubah (var).
  • fun greet(): Mendefinisikan metode greet yang mencetak pesan ke konsol.

Instansiasi Kelas #

Untuk membuat objek dari kelas, Anda menggunakan konstruktor kelas.

val person = Person("Alice", 30)
person.greet() // Output: Hello, my name is Alice and I am 30 years old.

Konstruktor #

Kotlin mendukung dua jenis konstruktor:

  1. Konstruktor Primer (Primary Constructor): Didefinisikan di dalam deklarasi kelas dan langsung setelah nama kelas.

    class Person(val name: String, var age: Int) {
        // Additional initialization can be done here
    }
    
  2. Konstruktor Sekunder (Secondary Constructor): Didefinisikan menggunakan kata kunci constructor dan dapat digunakan untuk menyediakan lebih dari satu cara untuk menginisialisasi kelas.

    class Person(val name: String) {
        var age: Int = 0
    
        constructor(name: String, age: Int) : this(name) {
            this.age = age
        }
    }
    

Properti #

Kelas dapat memiliki properti yang menyimpan data. Properti dapat memiliki getter dan setter khusus.

class Rectangle(val width: Int, val height: Int) {
    val area: Int
        get() = width * height // Getter untuk menghitung area
}

Metode #

Kelas dapat memiliki metode yang menyediakan fungsionalitas untuk objek.

class Circle(val radius: Double) {
    fun calculateArea(): Double {
        return Math.PI * radius * radius
    }
}

Inheritance (Pewarisan) #

Kotlin mendukung pewarisan kelas dengan kata kunci open pada kelas yang dapat diwariskan dan : ClassName() pada kelas turunan.

open class Animal(val name: String) {
    open fun makeSound() {
        println("Some sound")
    }
}

class Dog(name: String) : Animal(name) {
    override fun makeSound() {
        println("Woof")
    }
}

Penjelasan:

  • open class Animal: Kelas Animal bisa diwariskan karena dideklarasikan dengan open.
  • open fun makeSound(): Metode makeSound bisa di-override oleh kelas turunan.
  • class Dog(name: String) : Animal(name): Kelas Dog mewarisi Animal dan meng-override metode makeSound.

Kelas Abstrak #

Kelas abstrak adalah kelas yang tidak bisa diinstansiasi secara langsung dan biasanya memiliki metode yang perlu diimplementasikan oleh kelas turunan.

abstract class Shape {
    abstract fun draw()
}

class Rectangle : Shape() {
    override fun draw() {
        println("Drawing a rectangle")
    }
}

Interface #

Interface mendefinisikan kontrak yang harus diimplementasikan oleh kelas. Dalam Kotlin, interface dapat memiliki metode abstrak serta metode dengan implementasi.

interface Drawable {
    fun draw() // Metode abstrak
    fun clear() {
        println("Clearing")
    } // Metode dengan implementasi
}

class Circle : Drawable {
    override fun draw() {
        println("Drawing a circle")
    }
}

Data Class #

Data class digunakan untuk menyimpan data. Kotlin secara otomatis menyediakan metode toString(), equals(), hashCode(), dan copy().

data class User(val name: String, val age: Int)

Contoh Penggunaan Data Class:

val user1 = User("Alice", 30)
val user2 = user1.copy(age = 31)
println(user1) // Output: User(name=Alice, age=30)
println(user2) // Output: User(name=Alice, age=31)

Companion Object #

Companion object adalah objek yang terkait dengan kelas dan dapat berfungsi seperti metode statis dalam bahasa lain.

class MyClass {
    companion object {
        fun create(): MyClass {
            return MyClass()
        }
    }
}

Penggunaan:

val instance = MyClass.create()

Kesimpulan #

Kelas di Kotlin adalah fondasi utama untuk membangun struktur data dan fungsionalitas dalam aplikasi. Dengan memahami cara mendefinisikan dan menggunakan kelas, konstruktor, properti, metode, pewarisan, dan fitur lainnya, Anda dapat membangun kode yang modular, terstruktur, dan mudah dikelola. Kotlin juga menawarkan berbagai fitur tambahan seperti data class, interface, dan companion object yang memudahkan pengembangan aplikasi.

« Fungsi
Interface »