Perbedaan Syntax Kotlin Vs Java_ Tipe Data

Perbedaan Syntax Kotlin Vs Java : Variabel & Tipe Data

Bagaimana kabarnya kawan? Semoga sehat selalu, ya! Setelah sekian lama, akhirnya saya bisa menulis lagi untuk blog Dicoding. Untuk itu, saya ingin menyapa kawan-kawan yang sudah mampir di blog ini. Jika saya boleh menebak, kamu pasti developer yang pernah belajar Java dan ingin hijrah untuk belajar Kotlin, bukan? Jika jawabannya adalah iya, kamu datang ke tempat yang tepat! Hal ini karena kita akan membahas secara lebih detail terkait perbedaan syntax (penulisan kode) pada bahasa pemrograman Kotlin dan Java. Mulai dari cara penulisan tipe data, konstanta, dan global variable. Semuanya akan dibahas pada blog kali ini. 

Namun, sebelum lanjut lebih dalam, saya ingin memberikan satu fakta yang bisa membuat kamu termotivasi untuk belajar bahasa Kotlin. Faktanya adalah sejak tahun 2019, Google mengumumkan “Kotlin First” untuk pengembangan Android pada acara Google I/O. Apa artinya? Artinya bahasa utama yang digunakan, informasi dokumentasi, dan pengembangan library yang didahulukan adalah bahasa Kotlin.

kotlin first google io 2018 - data type

💻 Mulai Belajar Pemrograman

Belajar pemrograman di Dicoding Academy dan mulai perjalanan Anda sebagai developer profesional.

Daftar Sekarang

Tak ayal, sampai saat tulisan ini dibuat, 87% dari 1000 aplikasi top di Google PlayStore sudah menggunakan Kotlin. Kamu tentu semakin penasaran kan, mengapa banyak developer yang berbondong-bondong memakai Kotlin? Yuk, kita bahas dari sisi penulisan sintaksisnya satu per satu!

Deklarasi Variabel

Pada bahasa Java, ketika ingin mendeklarasikan variabel, biasanya kamu perlu menuliskan tipe data secara eksplisit seperti ini.

Java Kotlin
String nama = “Dico”; //jangan lupa semicolon-nya ya 😀
Int usia = 8;
val nama: String = “Dico” //Kode : String bisa dihapus
var usia = 8

Untuk Kotlin, penulisan diawali dengan val dan var.

  • Val digunakan untuk variabel yang tidak pernah berubah (read-only)
  • Var digunakan untuk variabel yang bisa diubah (mutable)

Berbeda dengan Java, kamu tidak perlu menuliskannya secara eksplisit. Hal ini bisa dilakukan karena Kotlin menggunakan konsep type inference. Artinya, tipe data baru akan diketahui ketika compile time dengan melihat value yang diberikan. Misal, ketika menggunakan tanda “petik dua” berarti ia  String, ketika menggunakan tanda ‘petik satu’ berarti ia Char, dan ketika berisi true atau false berarti ia boolean. Berikut ini gambarannya.

Tipe Data

Secara sekilas tipe data pada bahasa Kotlin dan Java cukup mirip, tetapi sebenarnya ada yang berbeda, lho! Ketahuilah bahwa pada bahasa Kotlin, semuanya adalah object, termasuk tipe data. Oleh karena itu, kamu bisa memanggil fungsi yang sudah disediakan di dalam suatu tipe data seperti berikut.

Java Kotlin
StringUtils.upperCase(nama);

usia + 2;
Double.valueOf(berat);

nama.uppercase()

usia.plus(2)
berat.toDouble()

Konstanta

Lalu, bagaimana penulisan untuk konstanta? Mari kita lihat contoh berikut.

Java  Kotlin
public static final double PI = 3.14; companion object {

    const val PI = 3.14

}  

Kotlin tidak mengenal keyword static seperti Java. Sebagai gantinya, kamu bisa menuliskan kode di top level declaration. Jika ingin di dalam suatu class, ia harus terletak di dalam companion object supaya konstanta bisa diakses dari kelas lain.

Nullable Data type

Terakhir, hal yang menarik yang ada di Kotlin adalah kamu bisa membuat Tipe Data yang bersifat Non Nullable maupun Nullable. Tipe data nullable ini ditandai dengan menggunakan tanda tanya seperti berikut.

Java Kotlin
String text = null 

String textLength = text.length()

// error Null Pointer Exception

val text: String? = null 

val textLength = text?.length

//textLength = null (not error)

String text = null
String textLength;
If (text != null) {   textLength = text.length();} else {   textLength = 0;
}
val text: String? = null 

val textLength = text?.length ?: 0

Dengan adanya jenis tipe data Non Nullable ini, aplikasi tidak akan mengalami error sejuta umat, yaitu Null Pointer Exception (NPE) yang sering terjadi di Java.
Nullable type sendiri lebih dikhususkan untuk penanganan nilai null di mana pada Java pananganannya diserahkan semuanya ke client. Selain itu, ada juga elvis operator (?:) yang berfungsi sebagai value pengganti apabila data null.

Global Variable

Beranjak ke bagian selanjutnya, yaitu perbedaan sintaksis penulisan global variable pada bahasa Java dan Kotlin. Global variable biasanya dibutuhkan ketika variabel digunakan di banyak fungsi. Mari kita lihat dari yang paling dasar dulu.

Java Kotlin
Int result;


result = 88;

var result: Int? = null


result = 88

Pada Kotlin, kamu bisa memberikan nilai null dengan nullable data type terlebih dahulu. Lalu, bagaimana jika kamu ingin variabel tersebut tidak nullable? 

Pertama, kamu bisa memberikan nilai default seperti var result: Int = 88. Lalu yang kedua — dan menarik karena tidak ada di Java – adalah dengan menggunakan Lazy Initialization. Caranya yaitu menggunakan property delegation by lazy bersama dengan keyword val seperti berikut.

Java Kotlin
Int result;


result = 88;

val result: Int by lazy { 88 }

Cara yang lain jika ingin menginisialisasi nanti pada baris kode tertentu, kamu bisa menggunakan Lateinit Initialization. Caranya yaitu gunakan keyword lateinit bersama dengan keyword var seperti berikut.

Java Kotlin
Int result;


result = 88;

lateinit var result: Int


result = 88

Menarik, bukan? Dari sini kamu bisa melihat dan menyimpulkan bahwa penulisan Kotlin sangatlah simpel dan tidak ribet. Jadi, bagaimana menurutmu? Sudah mulai mantap hijrah ke Kotlin? Ini baru penulisan tipe data saja, masih ada penulisan syntax lain yang masih belum kita bahas, yakni penulisan function dan juga class. Doakan saya bisa menuliskan artikel selanjutnya, ya!

Oh, ya! Supaya menarik, ada sedikit kuis buat kalian nih!
Apakah tipe data dari kode berikut ini. 


Silakan jawab di kolom komentar, ya! Sampai jumpa.


Belajar Pemrograman Gratis
Belajar pemrograman di Dicoding Academy dan mulai perjalanan Anda sebagai developer profesional.