Belajar Dasar Kotlin: Variabel dan Tipe Data Dasar

Dalam membuat program kita akan menginginkan untuk menyimpan suatu data. Untuk melakukan itu kalian akan membutuhkan suatu Variabel.

Variabel

Variabel dalam pemrograman adalah lokasi memori yang digunakan untuk menyimpan data (nilai). Kotlin merupakan bahasa pemrograman statically typed, sehingga suatu variabel hanya bisa menyimpan satu jenis data saja.

Keyword val dan var merupakan keyword yang digunakan untuk mendeklarasikan variabel. Contohnya seperti berikut:

val bulan: Int = 11
var tahun: Int = 2021

Tipe data kedua variabel di atas adalah Int. Penjelasan lebih lanjut tentang Int akan ada di bawah.

Identifier/nama dari variabel pertama adalah bulan dan nama dari variabel kedua adalah tahun. Pada Kotlin nama variabel case sensitive. Nama variabel di Kotlin di sarankan menggunakan camelCase.

Nilai awal dari variabel pertama adalah 11 dan nilai awal variabel kedua adalah 2021. Nilai awal dari sebuah variabel harus merupakan ekspresi. Ekspresi adalah kode apa pun yang dapat menghasilkan nilai.

Perbedaan variabel yang di deklarasikan dengan val dan var adalah seperti di bawah ini.

  • Variabel yang dibuat dengan val adalah immutable variable atau variabel yang nilainya tidak dapat diubah setelah nilainya ditentukan.
  • Variabel yang dibuat dengan var adalah mutable variable atau variabel yang nilainya dapat di ubah-ubah.

Saat suatu variabel dideklarasikan tanpa ditentukan tipe datanya, maka tipe data variabel akan ditentukan berdasarkan tipe data dari nilai awal (type inference). Jadi, dalam kasus ini nilai awal harus ditentukan.

val bulan = 11 // Tipe data Int
var tahun = 2021 // Tipe data Int

Saat suatu variabel dideklarasikan tanpa ditentukan nilai awal, maka nilai dari variabel harus ditentukan sebelum digunakan. Dalam kasus ini, tipe data harus ditentukan.

var bulan: Int

Nama variabel dapat digunakan untuk mengakses nilai dari variabel tersebut.

println(tahun)

Kode di atas mencetak nilai yang disimpan variabel umur.

Nama variabel juga dapat digunakan untuk mengubah/menentukan nilai dari variabel.

tinggi = 170

Ingat, variabel val nilainya tidak dapat diubah setelah ditentukan nilainya. Kode seperti berikut pasti akan menghasilkan error val cannot be reassigned.

val bulan = 11
bulan = 9

Namun, kode seperti berikut tidak akan menghasilkan error, karena variabel val di bawah belum ditentukan nilanya, sehingga nilainya masih dapat ditentukan.

val bulan: Int
bulan = 9

Tipe Data Dasar

Berikut ini merupakan tipe data dasar pada bahasa Kotlin yang sering digunakan.

Angka

Pada Kotlin ada beberapa jenis tipe data bilangan bulat berdasarkan jumlah bitnya, yaitu:

  • Byte (8 bit)
  • Short (16 bit)
  • Int (32 bit)
  • Long (64 bit)

Tipe data Int merupakan tipe data bilangan bulat yang paling sering digunakan. Bilangan bulat yang berakhiran L akan bertipe data Long. Jika tipe data bilangan bulat tidak ditentukan, maka tipe datanya Int.

val byte: Byte = 2
val short: Short = 150
val int: Int = 24
val int2 = 110
val long: Long = 110
val long2 = 110L

Bilangan desimal (floating point) mempunyai 2 jenis tipe data, yaitu:

  • Float (32 bit)
  • Double (64 bit)

Bilangan desimal (yang mempunyai titik) akan mempunyai tipe data Double. Bilangan bertipe data Float dapat dibuat dengan menambahkan akhiran F atau f ke angka.

val float = 1.4F
val double = 20.4

Setiap tipe data di atas memiliki nilai minimal dan maksimal yang berbeda-beda. Setiap tipe data di atas memiliki properti MIN_VALUE yang berisi nilai minimal dan properti MAX_VALUE yang berisi nilai maksimal.

println(Long.MIN_VALUE)
println(Long.MAX_VALUE)

Kita bisa menggunakan garis bawah di antara angka, agar angka lebih mudah dibaca. Compiler akan mengabaikan garis bawah di antara angka.

val nominalUang = 1_000_000_000_000
val panjang = 20_000f

Boolean

Tipe data Boolean merupakan tipe data yang hanya bisa bernilai true atau false. Boolean biasanya digunakan untuk kondisional/percabangan.

val boolean1: Boolean = false
val boolean2 = true

Char

Tipe data Char merepresentasikan karakter dan dapat dibuat dengan tanda petik tunggal (''). Karakter special dapat dimasukkan ke Char dengan mengescapenya menggunakan tanda \, contohnya: \n untuk baris baru dan \' untuk tanda petik tunggal.

val char: Char = 'a'
val charEscaped = '\''

String

String merupakan tipe data yang mewakilkan kumpulan karakter atau teks. String dapat dibuat dengan menggunakan tanda petik (""). Karakter special dapat dimasukkan ke String dengan mengescapenya menggunakan tanda \.

val string: String = "Rizal"
val escapedString = "Saya bernama \"Rizal\" \n Umur saya 12"
println(escapedString)
/*
Output:
Saya bernama "Rizal"
 Umur saya 12
*/

Pada kondisi tertentu kita akan menambahkan banyak karakter spesial, pada kondisi tersebut menggunakan Raw String akan cukup membantu. Karakter spesial dapat dimasukkan ke Raw String tanpa perlu diescape menggunakan tanda \. Raw String dapat dibuat dengan menggunakan petik 3 ("""""").

val rawString = """ Saya bernama
	"Rizal"
	Umur saya 12
""".trimIndent()
println(rawString)
/*
Output:
Saya bernama
"Rizal"
Umur saya 12
*/

Fungsi trimIndent digunakan untuk menghapus indentasi/tab pada String.

Property length pada String digunakan untuk mendapatkan jumlah karakter.

val string = "Rizal"
println(string.length) // 5

Suatu saat kita akan butuh memasukkan nilai variabel ke String, dalam kasus ini String Template akan cukup membantu. String template memungkinkan kita memasukkan nilai ekspresi atau variabel ke dalam String. Untuk memasukkan variabel ke String, gunakan $ kemudian diikuti nama variabel. Untuk memasukkan nilai expression gunakan ${} dan masukkan ekspresi ke {}.

val name = "Rizal"
println("Saya bernama $name") // Saya bernama Rizal
println("Nama saya berjumlah ${name.length} karakter") // Nama saya berjumlah 5 karakter

Array

Array merupakan tipe data yang digunakan untuk menampung kumpulan data. Array dibuat dengan arrayOf.

val bahasa: Array<String> = arrayOf("Kotlin", "Swift", "Dart")
val angka: Array<Int> = arrayOf(1, 2, 3)
val provinsi = arrayOf("Jawa Timur", "Jawa Tengah", "Jawa Barat")

Tipe data Array<String> maksudnya adalah array yang menampung data bertipe String. Array<Int> berarti array yang menampung data bertipe Int.

Konversi Tipe Data

Suatu nilai dengan tipe data tertentu dapat diubah menjadi tipe data lainnya.

  • toByte(): Byte
  • toShort(): Short
  • toInt(): Int
  • toLong(): Long
  • toFloat(): Float
  • toDouble(): Double
  • toChar(): Char
  • toString(): String

String tidak mendukung toChar().

val numberStr = "245"// Bertipe data String
val number = numberStr.toInt() // 245, Bertipe data Int
val numberShort = number.toShort() // 245, Bertipe data Short