Kembali bertemu dengan saya eldi, dalam tulisan kali ini saya akan menjelaskan tentang kotlin OOP sebelum masuk materi kalian bisa mengunjungi profil saya di beberapa link berikut hehe :
Github : https://github.com/L007
Linkedin : https://www.linkedin.com/in/eldi-anto/
Facebook : https://web.facebook.com/Ldi.NS
Instagram : https://www.instagram.com/eldi_32/
Jadi fokus pembahasan kita pada tulisan kali ini adalah tentang penerapan OOP (Object Oriented Programming) di kotlin, meliputi
- Membuat Kelas (Class) pada Kotlin
- Kotlin data Classes
- Object pada Kotlin
- Pewarisan (Inheritance) pada Kotlin
- Type Casting pada Kotlin
- Abstract Class pada Kotlin
- Interface pada Kotlin
- Lambda Expression pada Kotlin
Membuat class pada kotlin
untuk membuat class di kotlin cukup mudah, sama seperti java
class User { //class tanpa constructor}class User(val username: String, val password: String) {
//class dengan constructor utama}
jika tidak menuliskan access modifiernya maka by default akan menjadi public, jadi syntaxnya untuk membuat kelas :
accessModifier class NamaClass
untuk membuat sebuah object kita dapat membuatnya dengan
fun main(args: Array<String>) {
val user1 = User() // obeject user1 sudah terbuat
}
tidak perlu lagi menggunakan keyword new seperti di java lagi, lebih ringkas
Data Classes
data classes ini yang unik, jika kita sudah mengenal class POJO (Plain Old Java Object) di Java maka untuk membuat sebuah class yang memilik setter getter di kotlin sangatlah muda, kita cukup menambahkan keyword data sebelum class
data class Mahasiswa(var nama:String,val nim:String)
cukup 1 bari code saja, sangat simpel hehehe
Object pada kotlin
object di kotlin ini jika di java sama seperti class statis, kita dimungkinkan untuk mengakses attribute sebuah class tanpa membuat object terlebih dahulu, atau lebih dikenal dengan sebutan singleton
object Orang{
val nama = "eldi"
}
fun main(args: Array<String>) {
println(Orang.nama)
}
kita dapat mengakases attribute nama, tanpa perlu membuat object Orang terlebih dahulu
Inheritence
ini yang unik juga, jia di java kita mengenal keyword extends dan implements ucapkan selamat tinggal untuk kedua keyword tersebut, karena di kotlin cukup menggunakan tanda titik dua ( : ) saja, misal
subClass : superClass
sangat simpel, dan untuk dapat di inherit kan, superClass harus memberikan keyword open sebelum nama class, dan function yang dapat di override juga harus diberikan keyword open
Abstract class
untuk membuat sebuah abstract class, kita cukup memberikan keyword abstract di depan sebelum class, dan untuk abstract method juga sama, dengan menambahkan keyword abstract sebelum fun
Interface
untuk kelas interface sama seperti kelas abstract, cukup memberikan keyword interface dan untuk mengimplementnya cukup menggunakan tanda titik dua (:)
Casting
Casting di java dan di kotlin ada sedikit perbedaan
Casting Java
int angka = 20;
double angka2 = (double) angka;
Casting Kotlin
val angka = 20
val angka2 = angka.toDouble()
val angka3 = angka as Double
casting di kotlin dapat menggunakan .toTipe() atau dengan keyword as cukup mudah bukan?
Lambda Expression
ini adalah sebuah fitur kotlin yang sangat bagus, namun sangat sulit untuk dijelaskan hehe
lambda expression adalah cara untuk membuat anonymous function tanpa keyword fun () dapat langsung di pass ke variabel
cara menulis nya
val lambdaName : Type = { argumentList -> codeBody }
variabel = {tasknya apa}
variabel = {param -> tasknya}
variabel = {param1,param2,dst ->tasknya}
cara call nya, variabel(param)
ini contoh untuk lambda expressionnya
Mungkin sekian dulu tulisan saya tentang Kotlin Lanjutan, semoga tulisan ini bermanfaat bagi teman-teman, kurang lebihnya saya mohon maaf, karena saya masih akan terus belajar, Tetap semangat dalam mencari ilmu, tulisan ini akan berlanjut di beberapa link dibawah ini hehe :v
Index tulisan ini
1. Say “Hello” to Kotlin
2. Belajar Kotlin Basic
3. Belajar Kotlin Lanjutan (OOP)
4. Build Your First Android with Kotlin
jangan lupa kunjungi beberapa link berikut hehe :
Github : https://github.com/L007
Linkedin : https://www.linkedin.com/in/eldi-anto/
Facebook : https://web.facebook.com/Ldi.NS
Instagram : https://www.instagram.com/eldi_32/