Memulai Pengembangan Aplikasi Android Dengan Kotlin

Ardiansyah Putra 24 Februari 2017

Memulai Pengembangan Aplikasi Android Dengan Kotlin

Kotlin merupakan bahasa pemrograman baru yang dibuat oleh JetBrains; yang mengusung pemrograman pragmatis untuk JVM seperti yang telah dibahas oleh mas Yana Permana pada artikel Rilis Kotlin 1.0, Bahasa Pemrograman yang Pragmatis.

Keistimewaan Kotlin

Saat mengeksplorasi bahasa pemrograman baru tentunya hal yang pertama kali menjadi sorotan adalah fitur-fitur keren apa saja yang ditawarkan, namun kita akan membahasnya nanti; karena fitur pemrograman hanya memiliki impact kecil dibandingkan dengan permasalahan ekosistem.

Daya tarik terkuat yang dimiliki Kotlin adalah hasil kompilasinya dalam bentuk bytecode JVM atau Javascript. Selain itu Kotlin ini dibuat oleh praktisi industri, bukan dari pihak akademis, sehingga lebih memahami kebutuhan yang diperlukan. Misalnya permasalahan umum seperti *Null Pointer Exception *yang sudah ditambahkan pada bahasa pemrograman ini. Dan pertimbangan terakhir yaitu, Kotlin tidak memerlukan cost untuk diadopsi, dengan dukungan mumpuni dari JetBrains, semua kode Java dapat langsung dikonversi ke dalam kode Kotlin hanya dengan satu klik, ditambah lagi 100% interoperable dengan pustaka pihak ketiga Java yang sangat kaya.

Mempelajari bahasa Kotlin tidak memerlukan learning curve yang lama, cukup beberapa jam saja untuk memahami dialek bahasa yg digunakan; karena memang adanya Kotlin sangat sederhana, bisa dikatakan Kotlin merupakan Swift-nya Android.

Fitur Unggulan Kotlin

Bahasa pemrograman yang relatif baru ini mengedepankan produktifitas, oleh sebab itu Kotlin hadir dengan fitur-fitur yang memudahkan dalam pembuatan kode program. Berikut ini fitur-fitur manis tersebut:

  • Aman dari Null, seperti yang sudah disebutkan diatas, tidak perlu lagi menghawatirkan kemungkinan timbulnya Null Pointer Exception. Compiler secara sistematis akan menandai pointer yang berpotensi null.
  • Pemrograman Fungsional, mendukung lambda dan kemampuan mapping, folding, pada Collection Java.
  • Anotasi Data yang otomatis dibuat untuk mengurangi boilerplate; seperti equals, hashCode, toString.
  • Syntax Ramping, yang menawarkan penulisan syntax secara cepat. Membuat fungsi one-liner, membuat Java Beans hanya dengan satu baris, *method setter *dan getter otomatis.
  • **Ekstensi Fungsi yang memungkinkan untuk menambahkan method pada class tanpa harus mengubah source code-nya.
  • **Interpolasi String ** yang memungkinkan untuk memasukkan variabel ke dalam String tanpa penyambungan seperti pada EcmaScript.
  • Masih banyak lagi, penamaan argumen, parameter opsional, default value untuk parameter.

Persiapan Pengembang

Kebutuhan yang perlu disiapkan untuk pengembangan aplikasi Android dengan Kotlin adalah sebagai berikut:

  • Android Studio 2.2+
  • Gradle 2.2+
  • Plugin Kotlin 1.0.6+

Buatlah projek Android baru seperti biasa, kemudian atur konfigurasi Gradle. Tambahkan kode di bawah ini untuk project level build.gradle:

buildscript {
    ext.kotlin_version = '1.0.6'
    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.3'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

Kemudian tambahkan juga kode berikut untuk module level build.gradle:

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
///
dependencies {
    compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
}

Menulis Program Android Pertama

Setelah konfigurasi diatas telah dibuat dan Gradle sudah selesai disinkronisasi, ubahlah layout pada resource folder yang telah dibuat oleh IDE menjadi seperti di bawah ini:

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.bibitnomic.codepolitan.MainActivity" android:orientation="vertical"> <TextView android:text="Ketik nama anda " android:layout_width="match_parent" android:layout_height="wrap_content" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="textPersonName" android:text="Nama" android:ems="10" android:id="@+id/field_nama" /> <Button android:text="Sapa Saya!" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/tombol_sapa" /> </LinearLayout>

Untuk MainActivity yang juga sudah dibuat otomatis, akan tampak seperti kode di bawah ini:

package com.bibitnomic.codepolitan; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(com.putraxor.codepolitan.R.layout.activity_main); } }

Untuk mengubahnya ke dalam kode Kotlin, silahkan pilih menu:

[Code > Convert Java To Kotlin]  atau tekan  [Ctrl+Alt+Shift+K]

Kemudian setelah kode tersebut diubah ke dalam bahasa pemrograman Kotlin, lakukan modifikasi seperti di bawah ini:

package com.putraxor.codepolitan

import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import android.view.View
import android.widget.Toast
import kotlinx.android.synthetic.main.activity_main.*

class MainActivity : AppCompatActivity(), View.OnClickListener {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(com.putraxor.codepolitan.R.layout.activity_main)
        tombol_sapa.setOnClickListener(this)
    }

    override fun onClick(v: View) {
        if (v.id == R.id.tombol_sapa) {
            var nama = field_nama.text.toString()
            Toast.makeText(this, "Halo $nama, selamat belajar Kotlin", Toast.LENGTH_SHORT)
        }
    }
}

Penjelasan Kode

Pada baris import kotlinx.android.synthetic.main.activity_main.* menggunakan fitur Android Extension. Fungsinya untuk menginjeksi otomatis semua elemen kontrol yang ada pada layout main_activity.xml; menggantikan findViewById() yang selama ini kita tau sulit untuk dibaca dan berpotensi menimbulkan bugs.

Selanjutnya variabel tombol_sapa dan field_nama yang merupakan ekstensi property untuk MainActivity yang diambil dari main_activity.xml, keduanya memiliki tipe yang sama seperti yang dideklarasikan pada layout.

Sedangkan pada String "Halo $nama, selamat belajar Kotlin" merupakan fitur interpolasi String, dimana variable nama dapat langsung dimasukkan pada string tersebut tanpa concatenation seperti yang sering dilakukan pada Java. Untuk interpolasi cukup menambahkan tanda $ pada awal variabel, atau tambahkan mustache ${nama.toString()} jika ingin menambahkan pemanggilan fungsi ataupun operasi lebih kompleks.

Penutup

Terimakasih telah membaca artikel ini, pada kesempatan berikutnya kita akan membahas implementasi fitur-fitur yang telah dijabarkan diatas.

CodePolitan Developer School

Saat ini CodePolitan mengadakan program pelatihan belajar coding intensif merupakan Solusi belajar pemrograman Basic Android yang berorientasi pada kebutuhan industri selama satu minggu secara tatap muka dengan bimbingan mentor berpengalaman yang dilengkapi dengan fasilitas asrama selama belajar.

Benefit apa yang bisa kamu dapatkan dari CodePolitan Developer School?

  • Belajar Intensif selama seminggu dan dibimbing mentor berpengalaman
  • Program Karantina untuk mendapatkan hasil yang maksimal
  • Kurikulum belajar disusun sesuai dengan kebutuhan industri
  • Modul belajar dari Google Android Developer Fundamentals
  • Konsultasi Belajar dengan mentor setelah program
  • Mendapatkan kemampuan basic sebagai pondasi menjadi Android Developer

Yuk gabung dengan CodePolitan Developer School buat aplikasi Androidmu dalam 1 minggu dan mulai karirmu sebagai Android Developer dengan mendapatkan semua manfaat di atas :)

Baca juga artikel Android menarik lainnya coder :