Lompat ke konten Lompat ke sidebar Lompat ke footer

Belajar Kotlin Lanjutan Variabel & Tipe Data - Part 5

 Variabel & Tipe Data Kotlin Modern 2025


Di Kotlin, ada dua cara mendeklarasikan variabel:

  • val (Immutable) → gak bisa diubah setelah dideklarasikan

  • var (Mutable) → bisa diubah kapan saja

kotlin

val nama = "Budi" // Tidak bisa diubah var umur = 25 // Bisa diubah umur = 26 // Boleh!

Kotlin bisa menebak tipe datanya sendiri, tapi kalau mau eksplisit juga bisa:

kotlin

val angka: Int = 10 val desimal: Double = 3.14 val huruf: Char = 'A' val isActive: Boolean = true

2. Function (Fungsi)

Fungsi di Kotlin bisa dibuat dengan fun:

kotlin

fun sapa(nama: String) { println("Halo, $nama!") } sapa("Andi") // Output: Halo, Andi!

Fungsi juga bisa mengembalikan nilai:

kotlin

fun tambah(a: Int, b: Int): Int { return a + b } val hasil = tambah(5, 3) println(hasil) // Output: 8

Atau dalam satu baris kode (lebih ringkas):

kotlin

fun kali(a: Int, b: Int) = a * b

3. Control Flow (Percabangan & Perulangan)

If-Else

kotlin

val umur = 20 if (umur >= 18) { println("Dewasa") } else { println("Anak-anak") }

Kotlin juga bisa return nilai langsung dari if-else:

kotlin

val status = if (umur >= 18) "Dewasa" else "Anak-anak" println(status) // Output: Dewasa

When (Seperti Switch-Case di Java)

kotlin

val hari = 3 val namaHari = when (hari) { 1 -> "Senin" 2 -> "Selasa" 3 -> "Rabu" else -> "Hari tidak diketahui" } println(namaHari) // Output: Rabu

For Loop

kotlin

for (i in 1..5) { println("Loop ke-$i") }

While Loop

kotlin

var x = 1 while (x <= 5) { println("Nilai x: $x") x++ }

4. Class & Object (OOP di Kotlin)

Di Kotlin, kita bisa membuat class seperti ini:

kotlin

class Mobil(val merk: String, val tahun: Int) { fun info() { println("$merk dibuat tahun $tahun") } } val mobilku = Mobil("Toyota", 2022) mobilku.info() // Output: Toyota dibuat tahun 2022

Kotlin juga mendukung data class (untuk model data):

kotlin

data class User(val nama: String, val umur: Int) val user1 = User("Andi", 25) println(user1.nama) // Output: Andi

5. Collections (List, Set, Map)

List (Array)

kotlin

val angka = listOf(1, 2, 3, 4, 5) // Tidak bisa diubah val angkaMutable = mutableListOf(1, 2, 3) // Bisa diubah angkaMutable.add(4) println(angkaMutable) // Output: [1, 2, 3, 4]

Set (Unik)

kotlin

val angkaSet = setOf(1, 2, 2, 3, 4) println(angkaSet) // Output: [1, 2, 3, 4] (tidak ada duplikat)

Map (Key-Value)

kotlin

val user = mapOf("nama" to "Andi", "umur" to 25) println(user["nama"]) // Output: Andi

6. Coroutines (Async di Kotlin)

Apa Itu Coroutines?

Coroutines adalah cara untuk menjalankan kode secara asynchronous di Kotlin tanpa harus menggunakan Thread secara manual. Ini berguna banget di Android untuk menghindari UI lag.

Cara Pakai Coroutines

Pertama, tambahkan dependency di build.gradle:

gradle

implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4")

Contoh Coroutine Sederhana

kotlin

import kotlinx.coroutines.* fun main() { GlobalScope.launch { delay(2000) // Menunda 2 detik println("Halo, ini dari Coroutine!") } println("Kode ini jalan duluan") Thread.sleep(3000) // Supaya program gak langsung selesai }

Output:

java

Kode ini jalan duluan (Halo, ini dari Coroutine! muncul setelah 2 detik)

Kenapa hasilnya begitu? Karena coroutine berjalan di background thread, jadi kode setelahnya tidak menunggu.


7. Coroutine di Android

Di Android, kita tidak boleh pakai GlobalScope, tapi pakai lifecycleScope (karena lifecycle harus dikelola dengan baik).

Contoh Coroutine di Android (ViewModel)

kotlin

import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import kotlinx.coroutines.* class MyViewModel : ViewModel() { fun fetchData() { viewModelScope.launch { val data = getDataFromNetwork() println(data) } } suspend fun getDataFromNetwork(): String { delay(2000) // Simulasi network delay return "Data berhasil diambil" } }

8. Extension Function (Menambah Fitur ke Kelas)

Kotlin bisa menambah fungsi ke class yang sudah ada tanpa harus mengedit class aslinya.

Contoh:

kotlin

fun String.reverseText(): String { return this.reversed() } val kata = "Kotlin" println(kata.reverseText()) // Output: niltoK

Kesimpulan

✅ Kotlin itu lebih simpel dibanding Java
✅ Mendukung fitur modern seperti coroutines, extension function, data class, dll
✅ Lebih aman dengan null safety
Cocok untuk Android development

Kalau ada bagian yang kurang jelas atau mau contoh yang lebih spesifik, tinggal tanya aja!

Posting Komentar untuk "Belajar Kotlin Lanjutan Variabel & Tipe Data - Part 5"