Data Types and Null Reference Handling

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
Kotlin
Copy
// deklarasi immutable variabel val number = 10 // deklarasi mutable variabel var number = 10
Ada 2 cara dalam mendeklarasikan tipe data variabel yaitu
Kotlin
Copy
// 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
Copy
class Employee(var name: String, val id : Int) typealias EmployeeSet = Set<Employee> fun main(args : Array<String>){ val employees: EmployeeSet }

Equality

Kotlin
Copy
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
Copy
val a = true val b = false println(a or b) println(a and b) println(a xor b)

Smart Casting

Kotlin
Copy
// 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 $
Kotlin
Copy
val change = 4.22 println("Your change is \$$change")
Kita bisa juga melakukan perhitungan aritmatik saat melakukan print string
Kotlin
Copy
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 ${}
Kotlin
Copy
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 menhindari hal tersebut kita bisa menggunakan triple quoted string
Kotlin
Copy
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)

Dia kayak console yang ada di browser. Kita bisa eksekusi code kotlin di REPL ini.

Array

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