Simple Calculator with Kotlin in Android

Hallo guys, saat ini kotlin sudah diresmikan sebagai salah satu bahasa pemrograman untuk Android, tidak hanya android kotlin ini bisa kalian terapkan pada JavaScript. Google sudah meresmikan Kotlin ini sebagai salah satu tools untuk para developer Android pada saat Google i/o yang berlangsung pada tanggal 17 Mei 2017.

Oke guys pada kesempatan kali ini saya ingin berbagi sedikit tutorial atau basic tutorial dari kotlin. Kotlin sendiri salah satu anak dari JAVA, jadi Kotlin masih bisa berjalan bareng dengan JAVA, ketika temen-temen mendevelop sesuatu dengan Java kotlin ini dapat berjalan berbarengan dengan JAVA. Kotlin sendiri mempunya format .kt, sehingga ketika compiler membaca codingan anda, file anda akan tetap harus di rubah ke dalam .java -> .class sehingga kotlin masih bisa jalan bareng dengan java.

Pada tutorial ini saya ingin berbagi sedikit dan membuat tutorial Aritmatika yang saya terapkan pada Aplikasi Kalkulator, step pertama yang temen-temen harus lakukan adalah merubah / convert file temen-temen menjadi .kt , jika di mac temen-temen dapat menggunakan shortcut “command + shift + a “ lalu ketik “convert java file to kotlin”.

**dengan catatan temen-temen sudah install plugin Kotlin pada android studio temen-temen.


kemudian pada code temen-temen sudah ter-convert

lalu jika sudah temen-temen lakukan configure pada project temen-temen

setelah temen-temen melakukan konfigurasi, temen-temen dapat melihat file gradle app kalian akan berubah menjadi :

buildscript {
ext.kotlin_version = '1.1.2-4'
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.1'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"

// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}

allprojects {
repositories {
jcenter()
}
}

task clean(type: Delete) {
delete rootProject.buildDir
}

dan pada gradle module :

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'

android {
compileSdkVersion 25
buildToolsVersion "25.0.3"
defaultConfig {
applicationId "com.example.irwancannady.aritmatika"
minSdkVersion 15
targetSdkVersion 25
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
testCompile 'junit:junit:4.12'
compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
}
repositories {
mavenCentral()
}

Oke, jika temen-temen masih bingung, kalian bisa melihat untuk dokumentasi nya di : https://kotlinlang.org/docs/tutorials/kotlin-android.html

Oke selanjutnya…

Tambahkan code berikut pada activity_main :

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_margin="16dp"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:context="com.example.irwancannady.aritmatika.MainActivity">

<EditText
android:hint="0"
android:id="@+id/edt_satu"
android:layout_width="match_parent"
android:layout_height="wrap_content" />

<EditText
android:hint="0"
android:id="@+id/edt_dua"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/edt_satu"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">

<Button
android:id="@+id/btn_tambah"
android:layout_width="50dp"
android:layout_height="wrap_content"
android:layout_below="@+id/edt_dua"
android:text="+" />

<Button
android:id="@+id/btn_kurang"
android:layout_width="50dp"
android:layout_height="wrap_content"
android:text="-" />

<Button
android:id="@+id/btn_kali"
android:layout_width="50dp"
android:layout_height="wrap_content"
android:text="*" />

<Button
android:id="@+id/btn_bagi"
android:layout_width="50dp"
android:layout_height="wrap_content"
android:text="/" />
</LinearLayout>

<LinearLayout
android:layout_marginTop="10dp"
android:layout_width="match_parent"
android:layout_height="wrap_content">

<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hasilnya : " />

<TextView
android:id="@+id/tv_result"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0" />

</LinearLayout>


</LinearLayout>

lalu pada MainActivity.kt :

package com.example.irwancannady.aritmatika

import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.widget.Button
import android.widget.EditText
import android.widget.TextView
import android.widget.Toast

/**
* Created by Irwan Cannady on 5/19/17.
*/

class MainActivity : AppCompatActivity() {


override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)

val edt1 = findViewById(R.id.edt_satu) as EditText
val edt2 = findViewById(R.id.edt_dua) as EditText
val result = findViewById(R.id.tv_result) as TextView
val btnTambah = findViewById(R.id.btn_tambah) as Button
val btnKurang = findViewById(R.id.btn_kurang) as Button
val btnKali = findViewById(R.id.btn_kali) as Button
val btnBagi = findViewById(R.id.btn_bagi) as Button

btnTambah.setOnClickListener {

val a: String = edt1.text.toString()
val b: String = edt2.text.toString()

if(edt1.text.isEmpty() && edt2.text.isEmpty()){
Toast.makeText(applicationContext,"silahkan isi", Toast.LENGTH_SHORT).show()
} else {
val c = a.toInt()
val d = b.toInt()
val e = c + d
result.setText(e.toString())
}
}

btnKurang.setOnClickListener {
v -> kurang()
}

btnKali.setOnClickListener {
v -> result.setText(kali(edt1.text.toString().toInt(), edt2.text.toString().toInt()).toString())
}

btnBagi.setOnClickListener{
v -> result.text = (getEdt1() / getEdt2()).toString()
}
}

// ####################### //
// Aritmatik with fun //
// #######################//
fun kurang() {
val edt1 = findViewById(R.id.edt_satu) as EditText
val edt2 = findViewById(R.id.edt_dua) as EditText
val result = findViewById(R.id.tv_result) as TextView
if(edt1.text.isEmpty() || edt2.text.isEmpty()){
Toast.makeText(applicationContext,"silahkan isi", Toast.LENGTH_SHORT).show()
} else {
val a: Int = edt1.text.toString().toInt()
val b: Int = edt2.text.toString().toInt()
val c: Int = a - b
result.setText(c.toString())
}
}

// ####################### //
// Aritmatik with fun with return fun //
// ####################### //
fun kali(a: Int, b: Int): Int {
return a * b
}

// ####################### //
// Aritmatik with fun call edittext //
// ####################### //
fun getEdt1(): Int {
val edt1 = findViewById(R.id.edt_satu) as EditText
val a: String = edt1.text.toString()
return a.toInt()
}

fun getEdt2(): Int {
val edt2 = findViewById(R.id.edt_dua) as EditText
val b: String = edt2.text.toString()
return b.toInt()
}
}

oke sampai sini temen2 dapat melihat ada beberapa method / fun yang saya buat , pada tutorial ini saya mengenal kan bagaimana membuat method pada kotlin, mungkin diatas temen-temen melihat ada code yang Redundan, maksud dari tutorial ini adalah memanggil method pada listener yang temen-temen akan panggil.

oke, berikut adalah sedikit tutorial Simple Calculator yang bertujuan mengenalkan variable dan operator aritmatika. Mungkin dengan tutorial ini dapat membantu..untuk source Code dapat di lihat di Github : https://github.com/irwancannadytiket/Aritmatika

Thanks..salam Coding…