Part 2 — Kotlin Data Types and Null Reference Handling

Muhammad Hafidz
4 min readMar 5, 2024

--

Kotlin Series

Variable Declaration

Kotlin menggunakan type inference yaitu dimana ketika dia mendeklarasikan variabel tanpa mendefinisikan tipe datanya, compiler akan secara otomatis mendefinisikan tipe datanya berdasarkan value yang di assign. Dan proses ini dilakukan saat compile time dan bukan runtime. Kotlin sendiri mendefinisikan tipe data secara statis (Statically typed). Ada 2 cara dalam mendeklarasikan variabel yaitu :

// deklarasi immutable variabel
val number = 10
// deklarasi mutable variabel
var number = 10

Ada 2 cara dalam mendeklarasikan tipe data variabel yaitu :

// deklarasi variabel dengan mengassign value
val number = 10
// deklarasi varaibel dengan mendefinisikan tipe data
val number: Int

Di kotlin variabel sebisa mungkin di buat val, jika dibutuhkan untuk di ubah baru diganti menjadi var.

Type Alias

Kotlin support type alias atau membuat alias dari tipe data yang sudah ada.

class Employee(var name: String, val id : Int)
typealias EmployeeSet = Set<Employee>

fun main(args : Array<String>){
val employees: EmployeeSet
}

Dari code di atas bisa dilihat deklarasi dan penggunaanEmployeeSet yang merupakan alias dari Set of Employee.

Equality

Kotlin support equality untuk membandingkan 2 variable, diantaranya adalah reference equality, value equality dan not equality.

val employeeOne = Employee("Mary", 1)
val employeeTwo = Employee("John", 2)
val employeeThree = Employee("John", 2)

// reference equality
println(employeeOne === employeeTwo)
println(employeeTwo === employeeThree)

// value equality
println(employeeOne == employeeTwo)
println(employeeTwo == employeeThree)

// not equality
println(employeeTwo != employeeThree)
println(employeeTwo !== employeeThree)

Bits Operator / Operator Gerbang Logika

Kotlin support operasi gerbang logika, diantaranya adalah or, and dan xor.

val a = true
val b = false

println(a or b)
println(a and b)
println(a xor b)

Smart Casting

Jika suatu variable bertipe data tertentu di pass ke variable dengan tipe Any, kita bisa secara langsung mengubah tipe datanya dengan menggunakan as tanpa harus melakukan pengecekan tipe data.

// deklarasi something sebagai any, dimana value nya berasal dari 
// employee yang bertipe data employee
var something: Any = employeeThree
if (something is Employee) { //pengecekan tipe data something
val newEmployee = something as Employee // smart casting employee
something = employeeOne
println(something.name)
}

String Template

Untuk menulis variabel pada string bisa menggunakan tag $

val change = 4.22
println("Your change is $change")

Kita bisa juga melakukan perhitungan aritmatik saat melakukan print string

val numerator = 10.99
val denominator = 20.00
println("The value of $numerator divided by $denominator is ${numerator/denominator}")

Untuk mengakses variabel dari sebuah object bisa menggunakan ${}

println("The employee's id is ${employee1.id}")

Triple Quoted String

Secara default ketika mendefinisikan string symbol seperti \ akan diproses kedalam fungsi tertentu seperti new line (\n) dll. Untuk menghindari hal tersebut kita bisa menggunakan triple quoted string

val nurseryRhyme = """
$eggName Dumpty sat on the wall
|$eggName Dumpty had a great fall
|All the king's horses and all the king's men
|Couldn't put $eggName together again.
""".trimMargin()

Kotlin REPL (Read Eval Print Loop)

Kotlin REPL adalah console yang dapat menjalankan kode kode kotlin, cara kerjanya sama dengan kotlin playground.

Array

Array di kotlin dapat dideklarasikan sebagai berikut

// deklarasi array
val names = arrayOf("John", "Jane", "Jill", "Joe")
val longs1 = arrayOf(1L, 2L, 3L)
val longs3 = arrayOf(1, 2, 3, 4)

Kesimpulan

  1. Variable: Kotlin menggunakan type inference untuk mendeklarasikan variabel, yang memungkinkan compiler secara otomatis menentukan tipe data berdasarkan nilai yang diberikan. Ada dua cara untuk mendeklarasikan variabel, yaitu dengan menggunakan val untuk variabel yang tidak dapat diubah (immutable) dan var untuk variabel yang dapat diubah (mutable). Kotlin juga mendukung deklarasi tipe data eksplisit untuk variabel.
  2. Type Alias: Kotlin mendukung type alias, yang memungkinkan pembuatan alias dari tipe data yang sudah ada, sehingga memudahkan dalam penggunaannya.
  3. Equality: Kotlin mendukung beberapa jenis perbandingan antara dua variabel, termasuk reference equality, value equality, dan not equality, yang memudahkan dalam pembandingan variabel.
  4. Bits Operator / Operator Gerbang Logika: Kotlin mendukung operasi gerbang logika seperti OR, AND, dan XOR, yang berguna dalam operasi logika.
  5. Smart Casting: Kotlin memiliki fitur smart casting, yang memungkinkan konversi tipe data secara langsung ketika sebuah variabel bertipe Any di-pass ke variabel dengan tipe data tertentu.
  6. String Template: Kotlin mendukung string template, yang memungkinkan penulisan variabel dalam string dengan menggunakan tag $, serta melakukan perhitungan aritmatik saat print string.
  7. Triple Quoted String: Kotlin mendukung triple quoted string, yang memungkinkan penulisan string tanpa harus menghindari karakter khusus seperti \.
  8. Kotlin REPL (Read Eval Print Loop): Kotlin memiliki REPL yang memungkinkan pengguna untuk menjalankan kode Kotlin secara interaktif, mirip dengan Kotlin Playground.
  9. Array: Array di Kotlin dapat dideklarasikan dengan berbagai cara sesuai kebutuhan, yang memungkinkan pembuatan array dengan elemen-elemen yang berbeda.

🔔 Jika anda menyukai artikel ini, silahkan subscribe agar anda bisa mendapatkan notifikasi jika ada artikel baru atau anda bisa melihat artikel yang telah dipublikasikan disini. 🚀

📝 Jika ada pertanyaan atau saran, anda bisa menulisnya di kolom komentar atau mengirim pesan lewat Medium.

Thank you for your support! 🌟

--

--