Showing posts with label Kotlin. Show all posts
Showing posts with label Kotlin. Show all posts

Saturday, 18 January 2020

Android : Belajar Kotlin Untuk Pemula Part-3


Ini adalah postingan pertama saya di tahun 2020, sudah lama tidak update tulisan di blog ini, pada postingan kali ini saya akan sharing tentang function didalam kotlin, langsung saja, pada activity main layout seperti berikut  


<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    tools:context=".MainActivity">

    <LinearLayout        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:orientation="vertical"        android:layout_centerInParent="true"        >

        <EditText            android:id="@+id/editText1"            android:hint="Input 1"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:inputType="number">

        </EditText>

        <EditText            android:id="@+id/editText2"            android:hint="Input 2"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:inputType="number">

        </EditText>

        <Button            android:id="@+id/btnSUM"            android:hint="+"            android:layout_width="match_parent"            android:layout_height="wrap_content">

        </Button>
    </LinearLayout>
</RelativeLayout>


Lalu pada MainActivity.kt seperti berikut  :


package com.ketik.toekang.kotlin_function

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Toast
import android.widget.Toast.*
import kotlinx.android.synthetic.main.activity_main.*

class MainActivity : AppCompatActivity() {
    
    // Deklarasi Function
    fun sumNumber(a: Int, b:Int):Int{
        return a + b
    }

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

        btnSUM.setOnClickListener {            Toast.makeText(this, ""+sumNumber(editText1.text.toString().toInt(),editText2.text.toString().toInt()),
                Toast.LENGTH_SHORT).show()
        }    }
}


Jika sudah silahkan dicoba jalankan aplikasinya, sekian sharing singkat ini semoga bermanfaat.

Thursday, 31 October 2019

Android : Belajar Kotlin Untuk Pemula Part#2


Postingan kali ini saya akan melanjutkan belajar kotlin untuk pemula, setelah pada postingan Sebelumnya sudah membahan sedikit tentang apa itu kotlin dan kali ini akan coba membuat aplikasi sederhana menggunakan kotlin yaitu aplikasi untuk menghitung volume, pastinya sudah tau kan rumus untuk menghitung volume? :D

rumusnya : Volume = Panjang * Lebar * Tinggi


Ok langsung saja, kita buka android studio dan buat project baru 







Setelah mebuat project baru selesai buat layout seperti berikut :


<?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"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"    android:padding="16dp"    tools:context=".MainActivity">

    <TextView        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="@string/panjang" />
    <EditText        android:id="@+id/edt_length"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:inputType="numberDecimal"        android:lines="1" />
    <TextView        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="@string/lebar" />
    <EditText        android:id="@+id/edt_width"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:inputType="numberDecimal"        android:lines="1" />
    <TextView        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="@string/tinggi" />
    <EditText        android:id="@+id/edt_height"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:inputType="numberDecimal"        android:lines="1" />
    <Button        android:id="@+id/btn_calculate"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="@string/hitung" />
    <TextView        android:id="@+id/tv_result"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:gravity="center"        android:text="@string/hasil"        android:textSize="24sp"        android:textStyle="bold" />

    <Button        android:id="@+id/btn_reset"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="@string/reset" />

</LinearLayout>


 Lalu di folder values/string.xml di isi seperti berikut :


<resources>
    <string name="app_name">Menghitung Volume</string>
    <string name="panjang">Panjang</string>
    <string name="lebar">Lebar</string>
    <string name="tinggi">Tinggi</string>
    <string name="hitung">Hitung</string>
    <string name="hasil">Hasil</string>
    <string name="reset">Reset</string>
</resources>


pada MainActivity.java kita deklarasikan variable seperti berikut didalam MainActivity class :

private lateinit var edtWidth: EditText
private lateinit var edtHeight: EditText
private lateinit var edtLength: EditText
private lateinit var btnCalculate: Button
private lateinit var btnReset: Button
private lateinit var tvResult: TextView

lalu didalam onCreate tambahkan seperti berikut :

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

    edtWidth = findViewById(R.id.edt_width)
    edtHeight = findViewById(R.id.edt_height)
    edtLength = findViewById(R.id.edt_length)
    btnCalculate = findViewById(R.id.btn_calculate)
    btnReset = findViewById(R.id.btn_reset)
    tvResult = findViewById(R.id.tv_result)

    btnCalculate.setOnClickListener(this)
    btnReset.setOnClickListener(this)
}

Jika ada error seperti berikut, klik pada icon error dan pilih implement interface



setelah itu, class MainActivity akan menjadi seperti berikut :



Lalu didalam onClick tambahkan source code berikut dan ganti parametr p0 menjadi v dan View? menjadi View :


val inputLength = edtLength.text.toString().trim()
val inputWidth = edtWidth.text.toString().trim()
val inputHeight = edtHeight.text.toString().trim()

if (v.id == R.id.btn_calculate) {
    var isEmptyFields = false    if (inputLength.isEmpty()) {
        isEmptyFields = true        edtLength.error = "Field ini tidak boleh kosong"    }
    if (inputWidth.isEmpty()) {
        isEmptyFields = true        edtWidth.error = "Field ini tidak boleh kosong"    }
    if (inputHeight.isEmpty()) {
        isEmptyFields = true        edtHeight.error = "Field ini tidak boleh kosong"    }
    if (!isEmptyFields) {
        val volume = inputLength.toDouble() * inputWidth.toDouble() * inputHeight.toDouble()
        tvResult.text = volume.toString()
    }
}

if(v.id == R.id.btn_reset){
    edtLength.run { setText("") }    edtHeight.setText("")
    edtWidth.setText("")
    tvResult.text = ""}

full source code  class MainActivity.kt seperti berikut :


package com.ketik.toekang.belajarkotlin1

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.widget.Button
import android.widget.EditText
import android.widget.TextView

class MainActivity : AppCompatActivity(), View.OnClickListener {

    private lateinit var edtWidth: EditText
    private lateinit var edtHeight: EditText
    private lateinit var edtLength: EditText
    private lateinit var btnCalculate: Button
    private lateinit var btnReset: Button
    private lateinit var tvResult: TextView

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

        edtWidth = findViewById(R.id.edt_width)
        edtHeight = findViewById(R.id.edt_height)
        edtLength = findViewById(R.id.edt_length)
        btnCalculate = findViewById(R.id.btn_calculate)
        btnReset = findViewById(R.id.btn_reset)
        tvResult = findViewById(R.id.tv_result)

        btnCalculate.setOnClickListener(this)
        btnReset.setOnClickListener(this)
    }

    override fun onClick(v: View) {
        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.        val inputLength = edtLength.text.toString().trim()
        val inputWidth = edtWidth.text.toString().trim()
        val inputHeight = edtHeight.text.toString().trim()

        if (v.id == R.id.btn_calculate) {
            var isEmptyFields = false            if (inputLength.isEmpty()) {
                isEmptyFields = true                edtLength.error = "Field ini tidak boleh kosong"            }
            if (inputWidth.isEmpty()) {
                isEmptyFields = true                edtWidth.error = "Field ini tidak boleh kosong"            }
            if (inputHeight.isEmpty()) {
                isEmptyFields = true                edtHeight.error = "Field ini tidak boleh kosong"            }
            if (!isEmptyFields) {
                val volume = inputLength.toDouble() * inputWidth.toDouble() * inputHeight.toDouble()
                tvResult.text = volume.toString()
            }
        }

        if(v.id == R.id.btn_reset){
            edtLength.run { setText("") }            edtHeight.setText("")
            edtWidth.setText("")
            tvResult.text = ""        }
    }
}

jika sudah coba jalankan aplikasinya :D



Sekian belajar kotlin kali ini semoga bermanfaat, selanjutnya akan coba belajar membuat CRUD dengan kotlin SQlite.

Terimakasih :D

Wednesday, 30 October 2019

Android : Belajar Kotlin Untuk Pemula Part#1




Postingan kali ini akan membahas tentang android programming menggunakan kotlin.

Kotlin merupakan bahasa pemrograman yang digunakan untuk membuat aplikasi android dengan IDE Android Studio, selain menggunakan Java. Kotlin dikembangkan oleh JetBrains perusahaan dibalik IntelliJ IDEA, setelah melalui banyak perkembangan JetBrains merilis kotlin secara open source dan Google mendukung penuh kotlin untuk pengembangan aplikasi android. Untuk kompilasi dari kotlin ini berupa bytecode JVM atau JavaScript.


Beberapa fitur dari kotlin

Berikut adalah fitur-fitur yang disediakan oleh kotlin untuk memudahkan penulisan kode program :

Null Pointer Exception : dengan adanya fitur ini compiler secara otomatis akan menandai pointer yang berpotensi null.

Pemrograman Fungsional : memiliki kemampuan melakukan mapping, folding pada collection java dan mendukung lambda.

Anotasi Data : anotasi data dibuat otomatis untuk mengurangi boilerplate, seperti equals, hashCode, toString.

Penulisan Syntax Lebih Simple : kotlin menawarkan penulisan syntax yang lebih simple, membuat fungsi one-liner dan membuat JavaBeans hanya dengan satu baris, serta method setter dan getter secara otomatis.

Interpolasi String : interpolasi string memungkinkan untuk memasukkan variable kedalam string tanpa penyambung seperti pada EcmaScript.

Mendukung Pembuatan aplikasi IOS : Selain android kotlin juga bisa digunakan untuk membuat aplikasi IOS dengan kotlin native dan bisa juga digunakan untuk menulis pemrograman JavaScript melalui Kotlin JS.

itulah sedikit dari beberapa fitur baru yang dihadirkan oleh kotlin sebenarnya masih banyak lagi fitur lain yang bisa kita explore, dan satu lagi di kotlin tidak perlu lagi titik koma ( ; ).



Untuk pengembangan aplikasi android dengan kotlin mulai support dari android studio versi 2.2+, gradle 2.2+ serta plugin kotlin 1.0.6+.



sekian sekilas tentang kotlin, selanjutnya membuat project baru dengan kotlin.
:D

ABAP CDS View Part 10 : Authorization & DCL untuk ABAP CDS

Authorization & DCL di ABAP CDS | Panduan Lengkap (PFCG, @AccessControl, DCL) Authorization & DCL untuk ABAP CDS — Pandua...