Java vs Kotlin

Nanda Adisaputra
4 min readMay 21, 2019

--

Perbedaan Java dengan Kotlin

Selamat pagi teman-teman , berjumpa lagi dengan Saya sebagai Android Developer. Kali ini Saya akan sharing ilmu mengenai perbedaan source code Java dan Kotlin untuk membuat aplikasi android. Sejak dilirisnya IDE Android Studio 3.0 ( Oktober 2017 ) penasaran kan dengan bhs pemprograman kotlin atau mungkin ada yang mau migrasi dari Java ke Kotlin. Kebetulan sekali nih Kita akan membahas perbedaan Java dan Kotlin.

Sebagai android developer yang pernah menggunakan bahasa pemprograman Java pasti sudah sangat familiar dengan NullPointerException(NPE). Nah dengan Kotlin tak perlu khawatir lagi dengan masalah NPE, karena kotlin telah memiliki fitur Null Safety sebagai salah satu keunggulannya lho teman -teman. Kotlin mampu membedakan objek yang boleh dan tidak boleh null ketika objek Kita buat.

Lalu, apa saja yang membedakan kotlin tersebut dibandingkan dengan bahasa pemprograman java ? Mari kita bahas satu persatu teman-teman.

1.SEMICOLON

JAVA

//menggunakan semicolon (;)println("Hello World");

KOTLIN

//tidak menggunakan semicolon (;)println("Hello World")

2. DEKLARASI VARIABEL

JAVA

//variabel yang nilai nya tidak dapat diubah (immutable)final String name = "Nanda Adisaputra";//variabel yang nilai nya dapat diubah (mutable)String name = "Nanda Adisaputra";

KOTLIN

//variabel yang nilai nya dapat diubah (immutable)val name = "Nanda Adisaputra"//variabel yang nilainya dapat diubah(mutable)var name = "Nanda Adisaputra"
name = "Nanda"

3. INTENT

Perpindahan dari satu Activity ke Activity lainnya baik dengan ataupun tanpa data

JAVA

//Intent untuk pindah activity ke Activity keduaIntent Pindah = new Intent(Activity pertama.this,Activity Kedua.class);
startActivity(Pindah);
finish();

KOTLIN

 Ada 3 opsi yang dapat kalian pilih//tanpa menggunakan library anko commons val intent = Intent(this, ActivityKedua::class.java)
startActivity(intent)
//menggunakan library anko commonsstartActivity(intentFor<ActivityKedua>())//menggunakan library anko commonsstartActivity<ActivityKedua>()

4. LAMBDA

JAVA

//deklarasi id menggunakan library butterknife@BindView(R.id.btn_login)                           
Button btnLogin;
btnLogin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//tambahkan aksinya apa disini
}
});

KOTLIN

//menggunakan library anko dan Kotlin Extensionsbtn_login.onClick {  
//tambahkan aksinya apa disini

}

5. TOAST

Pesan atau peringatan yang ditampilkan dengan durasi beberapa detik.

JAVA

Toast.makeText(LoginActivity.this, "Gagal Terhubung ke Server", Toast.LENGTH_SHORT).show(); (durasi pendek)Toast.makeText(LoginActivity.this, "Gagal Terhubung ke Server", Toast.LENGTH_LONG).show();   (durasi panjang)

KOTLIN

//menggunakan library anko common
toast(
"Gagal Terhubung ke Server") (durasi pendek)
//menggunakan library anko common
longToast(
"Gagal Terhubung ke Server") (durasi panjang)

6. INHERITANCE ( Pewarisan )

JAVA

class WaterMelon() extend Fruits(){}

KOTLIN

class WaterMelon() : Fruits(){}

7. ABSTRACTION

JAVA

class WaterMelon() implements Fruits{}

KOTLIN

class WaterMelon(), Fruits{}

8. SETTER AND GETTER

JAVA

String name;

String getName(){
return ""
}

void setName(name: String){
this.name = name;
}

KOTLIN

var name : String
get() = ""
set(value) = value

9. Class Model

JAVA

class Person(){
String name;
Int age;
String address;

Person(String name, int age, String address){
This.name = name;
This.age = age;
This address = address;
}

//Setter Getter
.
.
.

}

KOTLIN

data class Person(
val name: String,
val age: Int,
var address: String
)

10. WHEN EXPRESSION

JAVA

switch(x){
case 1 :
//do something
break;
Default :
//do something
break;
}

KOTLIN

when{
1 -> //do something
2..5 -> //do something
6, 8, 10 -> //do something
is Int -> //do something
else -> // do something
}

11. DEKLARASI FUNGSI

JAVA

String run(int far){
return "So far";
}

KOTLIN

fun run(far: Int): String{
return "So far"
}

12. PERULANGAN

JAVA

for (int a=0; a<8; a++){
//do something
}

KOTLIN

for (a in 1..8){
//do something
}

NULL SAFETY dan NON NULL ASSERTED

Safe Calls (?) di Kotlin digunakan untuk mengatasi Null Pointer Exception (NPE), sehingga ketika ada error di aplikasi yang kita buat tidak akan langsung terjadi force close.

var dream : String? = null

var yourDream = dream ?: "Tidak punya Impian"
//jika dream bernilai null maka yourDream berisi "Tidak punya Impian"

!! (Operator ) sebagai non-null asserted, cara ini akan memaksa objek menjadi non-null dan akan berakibat Null Pointer Exception jika objeknya adalah null. Sehingga sangat tidak disarankan ya guys.

Di kotlin kita dapat langsung menampilkan nama, tanpa harus mendeklarasikan terlebih dahulu guys. Dengan menambahkan import yang ada di bawah ini, kita dapat langsung menggunakan semua id pada xml main setelah setContentView kita panggil.

import kotlinx.android.synthetic.main.activity_main.*

Untuk dapat memanggil id tanpa menggunakan findViewById seperti pada Java , Kita dapat menggunakan Kotlin Extensions dengan menambahkan kode sebagai berikut di bagian build.gradle ( Module: app ) setelah dependencies { }

androidExtensions {
experimental = true
}

Getter dan setter pada Kotlin. Kita cukup menambahkan “data” didepan class lho guys, kemudian tambahkan parameternya. Dengan begitu maka akan otomatis menambahkan getter dan setter serta constructor.

data class MainModel(val nama:String)

Kotlin Library

ANKO https://github.com/Kotlin/anko

// Anko Commonsimplementation "org.jetbrains.anko:anko-commons:$anko_version"

// Anko Layouts
implementation "org.jetbrains.anko:anko-sdk25:$anko_version" // sdk15, sdk19, sdk21, sdk23 are also available
implementation "org.jetbrains.anko:anko-appcompat-v7:$anko_version"

// Coroutine listeners for Anko Layouts
implementation "org.jetbrains.anko:anko-sdk25-coroutines:$anko_version"
implementation "org.jetbrains.anko:anko-appcompat-v7-coroutines:$anko_version"
// Anko SQLiteimplementation "org.jetbrains.anko:anko-sqlite:$anko_version"}

Nah sekarang sudah mengerti kan teman-teman mengenai perbedaan bahasa pemprograman Java dan Kotlin. Sekarang kembali ke teman-teman ingin migrasi ke Kotlin dengan aneka kelebihan nya atau masih ingin bertahan di Java ?

Semua kembali lagi ke tujuan awal Kita belajar programming , apapun bahasanya yang paling penting adalah dapat menyelesaikan masalah disekitar dengan karya yang Kita buat .

Sekian tutorial dari saya tentang perbedaan java dengan kotlin. Semoga tutorial ini bermanfaat bagi teman-teman. Selamat Belajar….

--

--

No responses yet