5. Tipe Data (Tutorial KOTLIN - Bahasa Indonesia)
Kita semua tahu bahwa angka dan sepotong teks sangat berbeda. Bagaimana kita tahu ini? Nah, Anda dapat melakukan operasi aritmatika (seperti perkalian) pada angka tetapi tidak pada teks. Kotlin juga mengetahuinya. Itu sebabnya setiap variabel memiliki tipe yang menentukan kemungkinan operasi apa yang dapat Anda lakukan pada variabel ini dan nilai apa yang dapat Anda simpan di dalamnya.
Jenis Variabel
Tipe variabel diatur ketika variabel dideklarasikan:
val text = "Hello, I am studying Kotlin now."
val n = 1
Dalam hal ini, Kotlin mengetahui bahwa teks adalah string dan n adalah angka. Kotlin menentukan tipe data kedua variabel secara otomatis. Mekanisme ini disebut inferensi tipe.
Silakan, lihat potongan kode berikut. Inilah cara kami mendeklarasikan variabel dengan inferensi tipe:
val/var identifier = initialization
Anda juga dapat menentukan jenis variabel saat mendeklarasikannya:
val/var identifier: Type = initialization
Perhatikan, nama tipe data selalu dimulai dengan huruf besar.
Mari deklarasikan variabel yang sama seperti pada contoh sebelumnya dan tentukan tipenya:
val text: String = "Hello, I am studying Kotlin now."
val n: Int = 1
Tipe Int berarti bahwa variabel menyimpan bilangan bulat (0, 1, 2, ..., 100_000_000, ...). Tipe String berarti variabel menyimpan string ("Hello", "John Smith"). Nanti, Anda akan mempelajari lebih lanjut tentang ini dan tipe data lainnya.
Anda akan melihat bahwa orang-orang menggunakan kedua bentuk deklarasi variabel ini dalam praktiknya. Saat Anda menggunakan inferensi tipe, Anda membuat kode Anda lebih ringkas dan mudah dibaca, tetapi dalam beberapa kasus, mungkin lebih baik untuk menentukan tipenya. Misalnya, jika kita perlu mendeklarasikan variabel dan menginisialisasinya nanti, inferensi tipe tidak akan berfungsi sama sekali.
val greeting // error
greeting = "hello"
Contoh di atas salah karena Kotlin tidak dapat menyimpulkan tipe variabel ketika hanya dideklarasikan, sedangkan setiap variabel harus memiliki tipe. Sebaliknya, contoh di bawah ini berfungsi karena tipenya ditentukan oleh programmer:
val greeting: String // ok
greeting = "hello"
Ketidakcocokan Tipe Data
Salah satu fungsi terpenting dari tipe data adalah untuk melindungi Anda dari menetapkan nilai yang tidak sesuai ke variabel. Lihatlah contoh kode yang tidak berfungsi:
val n: Int = "abc" // Type mismatch: inferred type is String but Int was expected
Jadi, jika Anda melihat kesalahan ketidakcocokan Tipe Data, itu berarti Anda telah menetapkan sesuatu yang tidak cocok untuk suatu variabel. Masalah yang sama terjadi saat Anda mencoba menetapkan nilai yang tidak sesuai ke variabel yang dapat diubah yang dideklarasikan dengan inferensi tipe.
var age = 30 // the type is inferred as Int
age = "31 years old" // Type mismatch
Catatan, Anda tidak dapat mengubah tipe data variabel.
Nanti, kita akan belajar tentang tipe data lainnya dan beberapa masalah yang terkait dengannya. Mulai sekarang, ingat: setelah variabel dibuat, ia memiliki tipe, dan tipenya tidak dapat diubah nanti.