Skip to main content

Kotlin | kotlin.String steroid untuk java.lang.String

Sama seperti String di Java, Kotlin String adalah obyek immutable yang berarti sekali diinisialisasi, valuenya tidak akan bisa diubah. Jika dilakukan assignment value baru, yang sebenarnya terjadi adalah JVM akan membuat obyek String baru dengan value yang diassign.

String kode = "Sebenarnya hubungan kita ini apa sih?";
// misalkan object di memory adalah ABC
kode = "Oke, besok aku datang ke Ayah kamu";
// object yang ada di memory saat ini adalah XYZ

Seperti halnya dengan Java, String literal di Kotlin juga dimulai dengan tanda petik ganda (").
Hanya saja class String di Kotlin memeliki beberapa kelebihan dibanding String di Java.
Diantaranya:
  1. Setiap element character dari string bisa diakses dengan array syntax
    eg: kode[index], sedangkan di Java kode.charAt(index)

    Untuk iterasi tiap element

    Java
    for (char c : kode.toCharArray()) {
        System.out.println(c);
    }

    Kotlin
    for (c in kode) {
        println(c)
    }
    
    
  2. String template, yakni dalam string literal bisa disisipkan kode untuk dievaluasi nilainya.
    Di Scala ada fitur yang serupa bernama String interpolation.

    Jika di Java kita biasa menulis seperti ini
    System.out.println(
            String.format("Panjang karakter dari (%s) adalah %d",
                    kode, kode.length()));


    Di Kotlin kita bisa menulis seperti ini
    println("Panjang karakter dari ($kode) adalah ${kode.length}")
    
    
  3. Multiline String literal,
    Bagi kita yang biasa menulis string panjang seperti query mungkin agak kurang nyaman
    dengan tidak adanya fitur multiline string di Java, padahal sudah banyak request masuk untuk menyediakan fitur ini.

    Java
    System.out.println("SELECT '" + kode + "', '" + kode.length() + "'" +
            " FROM tablename" +
            " WHERE blabla");

    Kotlin
    println("""SELECT '$kode', '${kode.length}' 
    FROM tablename 
    WHERE blabla""")

Comments

Popular posts from this blog

PostgreSQL | Membuat Nomor Urut dengan Window Function ROW_NUMBER()

Pengguna Oracle Database mungkin sudah sangat familiar dengan clausa ROWNUM. Bagi yang belum tahu apa itu ROWNUM,  ROWNUM  adalah  pseudo column  (kolom bayangan) yang berisi nomor urut dari hasil eksekusi query. Sayangnya fitur ini belum tersedia pada PostgreSQL . Namun ada kabar gembira bagi kita pengguna  PostgreSQL , dimana sejak versi 8.4, PostgreSQL telah menyediakan 1 window function  yang mengakomodasi masalah ROWNUM, yakni ROW_NUMBER() . Sesuai dengan dokumentasi yang disediakan, cara menggunakan fungsi ini adalah dengan menggabungkannya dengan clausa OVER  yang didalamnya berisi clausa ORDER BY . Supaya lebih jelas dan lebih mudah dipahami, lebih baik langsung kita praktekkan saja. Saya membuat sebuah table dengan struktur sebagai berikut CREATE TABLE name ( code CHAR(1) ); yang kemudian saya isi kolom code dengan alfabet mulai dari a s/d z  dan angka 0 (nol). Sebelumnya kita lakukan query ke table name tanpa clausa O...

Java | Menambahkan Dialog Konfirmasi Sebelum Keluar dari Aplikasi

Kali ini saya ingin berbagi cara sederhana untuk menampilkan dialog konfirmasi sebelum keluar dari aplikasi. Dengan syarat aplikasi yang kita buat harus menggunakan JFrame sebagai frame utama. Langkah-langkah yang harus kita lakukan adalah sebagai berikut: 1. Ganti property default close operation dari JFrame menjadi DO_NOTHING_ON_CLOSE, value ini dimaksudkan agar ketika button close dari JFrame diklik tidak akan terjadi apa-apa. Sebaliknya jika valuenya adalah EXIT_ON_CLOSE, maka ketika button close dari JFrame diklik maka program akan tertutup. setDefaultCloseOperation(DO_NOTHING_ON_CLOSE); 2. Yang kedua adalah kita harus menambahkan WindowListener pada JFrame. Interface WindowListener memiliki beberapa method terkait event terhadap window (yakni JFrame), namun yang harus kita override hanyalah method windowClosing, method ini akan dipanggil ketika button close diklik.   Sebagai informasi, apabila kita menambahkan WindowListener secara langsung ...

Hardware | Banyak Bersyukur dengan SSD

Seperti yang sudah saya sampaikan pada post sebelumnya, kali ini saya mau membahas upgrade laptop saya ke SSD sebagai "main" hard drive . Saya sudah cukup banyak mendengar mengenai hebatnya kecepatan yang ditawarkan SSD, namun belum mempunyai keinginan untuk upgrade karena ketidaktahuan saya bahwa ada cara untuk memasang SSD ke laptop secara mandiri (*Saya beralih dari PC ke laptop karena adik saya membutuhkan PC saya). Beruntung saya mengikuti feed dari blog Mas Vatih dan menemukan satu artikel menarik mengenai cara memasang SSD di Macbook miliknya. Berbekal info dari post tersebut dan uang tabungan yang cukup, saya memutuskan untuk mencobanya. Saya membeli SSD Crucial MX200 250GB dan HDD Caddy SATA 12.7mm dari JakartaNotebook.com *bukan iklan. Bagi yang belum tahu, HDD Caddy adalah suatu alat yang digunakan untuk memasang hard drive pada slot DVD ROM. Berikut penampakan HDD Caddy HDD Caddy 12.7mm *mirip DVD ROM kan ^^ Perlu diketahui juga bahwa HDD Caddy ...