NullPointerException adalah error paling sering di ekosistem JVM. Kotlin menyelesaikan masalah ini lewat sistem tipe yang membedakan tipe nullable dan non-nullable sejak compile-time.

# Nullable vs Non-Nullable Types

Pelajari perbedaan tipe non-nullable (String) dan nullable (String?) di Kotlin, serta bagaimana kompilator mencegah NullPointerException sejak compile-time.

Buka →
# Nullable Variables

Pelajari cara mendeklarasikan variabel nullable dengan val dan var, mengubah isinya sepanjang program, serta galat compile-time yang muncul saat menetapkan null ke tipe non-nullable.

Buka →
# Safe Call Operator

Pelajari operator safe call ?. di Kotlin untuk memanggil method pada variabel nullable tanpa risiko NullPointerException, termasuk perantaian (chaining) beberapa safe call.

Buka →
# Elvis Operator

Pelajari operator Elvis ?: di Kotlin untuk memberi nilai default saat ekspresi nullable menghasilkan null, termasuk penggunaan return dan throw di sisi kanan.

Buka →
# Not-Null Assertion

Pelajari operator not-null assertion !! di Kotlin yang memaksa konversi tipe nullable menjadi non-nullable, serta risiko NullPointerException yang menyertainya.

Buka →
# Safe Cast

Pelajari operator safe cast as? di Kotlin yang mengembalikan null alih-alih melempar ClassCastException saat konversi tipe gagal.

Buka →
# Smart Casts

Pelajari smart cast Kotlin yang mengubah tipe statis secara otomatis setelah pengecekan is atau != null, tanpa memerlukan cast eksplisit.

Buka →
# Null Checking

Pelajari pola pengecekan null di Kotlin menggunakan == null dan != null, serta bagaimana smart cast mengubah tipe nullable menjadi non-nullable di dalam blok pengecekan.

Buka →
# let untuk Null Handling

Pelajari penggunaan scope function let untuk mengeksekusi blok kode hanya bila nilai nullable tidak null, dengan parameter it yang berisi nilai non-nullable di dalam blok.

Buka →
# Platform Types

Pelajari platform types Kotlin yang muncul saat memanggil kode Java, di mana nullability tidak diketahui kompilator dan dapat menyebabkan NullPointerException bila tidak ditangani dengan benar.

Buka →
# Null Safety Best Practices

Pelajari praktik terbaik menangani nullable di Kotlin: prefer val non-nullable, gunakan Elvis untuk default, hindari !!, manfaatkan lateinit, dan pakai requireNotNull untuk pre-condition.

Buka →