Basic Types – Kotlin

Perbedaan besar antara Kotlin dan Java adalah semua adalah object dalam Kotlin. Kalau di Java ada tipe data primitif yang khusus dan tidak bisa diperlakukan sebagai object, tidak bisa sebagai tipe generik, tidak ada function/method dan tidak bisa null . Contohnya tipe data boolean .

Untuk itu, Java menggunakan object wrapper untuk mengakomodasi perbedaan tipe data primitif tersebut.  java.lang.Boolean adalah wrapper untuk tipe data boolean . Nah, di Kotlin mempermudah itu semua dengan mengubah semua tipe data adalah object.

Sebisa mungkin, Kotlin compiler akan memetakan tipe data dasar ke tipe data JVM. Namun terkadang nilai variable harus dikonversi dari tipe primitif ke tipe object wrapper, misalkan nilai variable tersebut nullable atau nilainya generik.

Tipe data Numbers

TypeSize
Long64
Int32
Short16
Byte8
Double64
Float32

Untuk mendeklarasikan variable Numbers secara literal sebagai berikut:

Kotlin tidak support typecast secara otomatis, jadi kalu untuk mengkonversi tipe data ke tipe lai harus di-invoke secara explicit, untungnya karena tipe data dianggap object maka setiap tipe data terdapat function untuk konversi.

Sebaliknya untuk konversi float ke double menggunakan toDouble() . Beberapa fungsi konversi yang bisa digunakan toByte(), toShort() , toInt() , toFloat()  toChar() .

Untuk bitwise operator seperti left-shift, right-shift, logical or, XOR bisa juga digunakan dalam Kotlin, tapi tidak seperti di Java yang merupakan operator bawaan, melainkan fungsi yang bisa dipanggil layaknya operator.

Tipe data Boolean

Tipe data boolean tidak ada perbedaan yang signifikan, operasi negasi, konjungsi dan disjungsi juga bisa dilakukan. Konjungsi dan disjungsi lazy evaluated, artinya jika ekspresi sisi kiri sudah memenuhi klausa maka sisi kanan tidak dievaluasi.

Tipe data Chars

Chars bernilai satu karakter. Karakter literal menggunakan tanda petik satu(‘). Chars juga mendukung escape character : \t , \b , \n , \r , ' , " , \\ dan \$ . Semua karakter unicode bisa diwakili dengan nomor unicode, misal \u1234 . Bedanya char tidak diperlakukan sebagai number seperti di Java.

String

String literal dapat dibuat dengan menggunakan double quote atau triple quote. Kalau double quote maka string di-escape.

Kalau triple quote membuat raw string yaitu semua karakter bisa digunakan tanpa di-escape.

Array

Di Kotlin, membuat array dengan menggunakan fungsi library arrayOf()

Atau bisa juga dengan generate element-nya dari jumlah tertentu dan fungsi tertentu:

Tidak seperti di Java, array tidak diperlakukan secara khusus dan seperti collections. Collections menyediakan fungsi iterator seperti size , get dan set . Getter dan setternya juga bisa menggunakan seperti di bahasa C:

Biar tidak dikonvert ke tipe data primitif JVM, Kotlin menyediakan class khusus untuk setiap tipe data array, ByteArray , CharArray , ShortArray , IntArray , LongArray , BooleanArray , FloatArray  dan DoubleArray .

Baca juga artikel sebelumnya

 

abhiemanyu