Kotlin Null Safety adalah fitur di Kotlin yang dirancang untuk menghindari kesalahan yang sering terjadi di banyak bahasa pemrograman lain, seperti Java, yang dikenal sebagai
NullPointerException (NPE). NullPointerException terjadi ketika kode mencoba mengakses atau memanipulasi objek yang sebenarnya bernilai `null`.
Kotlin mengatasi masalah ini dengan memperkenalkan konsep
null safety, di mana tipe data dalam Kotlin secara eksplisit dibedakan antara yang bisa mengandung nilai `null` dan yang tidak.
Bagaimana Kotlin Null Safety Bekerja:1. Non-Nullable Types: Secara default, tipe data di Kotlin tidak bisa mengandung `null`. Misalnya, variabel yang dideklarasikan sebagai `String` tidak dapat memiliki nilai `null`.
var name: String = "Kotlin"
name = null // Ini akan menyebabkan error pada saat kompilasi
2. Nullable Types: Untuk mengizinkan suatu variabel memiliki nilai `null`, kita bisa menggunakan operator `?`. Ini membuat tipe data menjadi *nullable*.
var name: String? = "Kotlin"
name = null // Ini diperbolehkan karena name bertipe String?
3. Safe Calls (`?.`): Untuk mengakses properti atau metode dari objek yang mungkin `null`, Kotlin menyediakan safe call operator `?.`. Ini akan mengembalikan `null` jika objeknya `null`, tanpa melemparkan NullPointerException.
val length = name?.length // Jika name == null, maka length akan null
4. Elvis Operator (`?:`): *Elvis operator* digunakan untuk menyediakan nilai default jika ekspresi yang dievaluasi adalah `null`.
val length = name?.length ?: 0 // Jika name == null, length akan diisi dengan 0
5. Not-Null Assertion (`!!`): Jika programmer yakin bahwa suatu variabel yang nullable tidak akan pernah `null` pada runtime, mereka bisa menggunakan not-null assertion operator `!!` untuk memaksa Kotlin memperlakukan variabel tersebut seolah-olah non-null. Namun, jika variabel tersebut ternyata `null`, maka *NullPointerException* akan dilempar.
val length = name!!.length // Jika name == null, maka akan menyebabkan NullPointerException
Keuntungan Kotlin Null Safety:- Mengurangi risiko NullPointerException: Kotlin membantu menghindari kesalahan runtime yang umum terjadi di Java dengan memberikan perlindungan saat kompilasi.
- Kode lebih bersih dan aman: Penggunaan null safety di Kotlin memaksa developer untuk secara eksplisit menangani kemungkinan nilai `null`, yang meningkatkan kejelasan dan keamanan kode.
Dengan Kotlin, manajemen `null` menjadi bagian dari sistem tipe bahasa, sehingga membuat kode lebih aman dan meminimalisir bug yang disebabkan oleh `null`.