String dan String Template Kotlin

Muhammad Fajri
Monday, 12 April 2021

Bismillahirrahmanirrahim.

Penggunaan kode Java dapat digunakan di dalam Kotlin termasuk mengenai string. Cara termudah membuat string yaitu menggunakan escape string literal, escape string ini sebenarnya contoh string yang kita kenal dari bahasa Java. String-string tersebut dapat memuat escape character seperti \n, \t, \b, dan yang lainnya. Misalnya:

var str: String = "Hello World\n"

Kotlin sendiri memiliki cara untuk membuat string yang disebut raw string. Raw string ini dibuat dengan pembatas tiga tanda petik ganda (""" ... """).

var rawStr = """Amy Pond, there's something you'd
better understand about me 'cause it's important,
and one day your life may depend on it:
I am definitely a mad man with a box!
"""

Ada sejumlah hal yang perlu diketahui mengenai string pada Kotlin yaitu:

  1. Memiliki iterator, kita dapat menelusuri tiap karakternya menggunakan for loop:
    var str = "The quick brown fox"
    for (i in str) println(i)
    
  2. Elemennya dapat diakses menggunakan operator indeks (str[elem]), lebih seperti Array.
    println(str[2]) // hasilnya 'e'
    
  3. Kita tidak dapat lagi mengonversi bilangan ke string dengan mudahnya menambahkan String literal kosong:
    var strNum = 10 + "" // tidak berfungsi
    var strNum = 10.toString() // kita harus mengonversinya secara langsung
    

Menggunakan String.format dan printf

Kita masih dapat menggunakan String.format dan System.out.printf di kotlin. Seperti potongan kode berikut.

var nama = "Ahmad"
var email = "ahmad@gmail.com"
var telepon = "081234567890"

var gabung = String.format("Nama: %s | Email: %s | Telepon: %s", nama, email, telepon)
println(gabung)

Output:

Nama: Ahmad | Email: ahmad@gmail.com | Telepon: 081234567890

Cara yang disarankan untuk pembuatan string yaitu dengan menggunakan string template seperti:

var gabung = "Nama: %nama | Email: %email | Telepon: %telepon"
println(gabung)

Output:

Nama: Ahmad | Email: ahmad@gmail.com | Telepon: 081234567890

Menggunakan Template Expressions

String di Kotlin dapat memuat template expressions. Template expressions dimulai dengan simbol dollar ($) dan diikuti oleh expression –nama variabel atau yang lainnya.

fun main(args: Array<String>) {
    var nama = "Ahmad"

    println("Halo $nama")
    println("Nama '$nama' panjangnya ${name.length} karakter")
    println("Halo ${foo()}")
}

fun foo(): String {
    return "Boo"
}

Dari tiga output yang dibuat di atas, berikut penjelasannya.

  1. println("Halo $nama") menunjukkan penggunaan dasar dari template string. Template dibuat dengan menggunakan simbol $ dan langsung diikuti oleh identifier. Nilai dari identifier akan dievaluasi, diputuskan, dan pada akhirnya akan dimasukkan pada body string dimana template expressions dideklarasikan.
  2. println("Nama '$nama' panjangnya ${name.length} karakter"). Pada contoh ini nama.length dibuat di dalam kurung kurawal. Ini karena simbol $ akan langsung diasosiasikan dengan apa yang ada di sebelah kanannya. Ini tidak akan berfungsi seperti yang diinginkan, karena kita tidak ingin langsung mengevaluasi nama variabelnya tetapi nilai dari nama.length. Karena itu, perlu dibuat di dalam kurung kurawal.
  3. println("Halo ${foo()}"). Tidak dibatasi pada variabel yang sederhana, kita bahkan dapat menyisipkan sebuah fungsi di dalam template expressions.

Referensi

  1. Modul Pemrograman Mobile (Mobile Programming).
  2. Hagos, Ted. 2018. Learn Android Studio 3 with Kotlin: Efficient Android App Development. Apress: Manila.