Belajar Kotlin: Cara Mengambil Input dan Menampilkan Output
Bukan program komputer namanya kalau tidak memiliki input dan output. Input dan output merupakan komponen wajib setiap program komputer.
Pada kesempatan ini, kita akan belajar cara mengambil input dan Menampilkan output untuk program berbasis teks.
Kotlin telah menyediakan beberapa fungsi untuk mengambil input dan menampilkan output,
diantaranya println()
, print()
, readLine()
, Scanner()
, dll.
Mari kita bahas semuanya…
Menampilkan Output dengan Fungsi println/print
Fungsi println()
dan print()
digunakan untuk menampilkan teks atau kalimat.
fun main(args: Array<String>){
println("Kalimat yang akan ditampilkan")
print("kata yang akan ditampilkan")
println("Hello World")
}
Teks yang ingin ditampilkan harus diapit dengan tanda petik ganda ("..."
)
atau tanda petik tunggal untuk satu karakter.
Kita juga bisa menggunakan tanda petik tiga:
print("""Contoh Kalimat""")
Apa bedanya print()
dengan println()
?
print()
untuk menampilkan teks apa adanya.println()
untuk menampilkan teks dalam satu baris.
Sebenarnya sama saja seperti fungsi System.out.print()
dan
System.out.println()
pada java.
Pada Kotlin, fungsi tersebut disederhanakan dan ditingkatkan kemampuannya.
String Template
String Template merupakan template untuk menampilkan teks.
Jika pada Java kita menggunakan tanda plus (+
) untuk menggabungkan String,
maka di Kotlin… selain menggunakan tanda plus, kita juga bisa menggunakan
String template dengan simbol dolar ($
).
Java:
System.out.println("Nama: " + nama);
System.out.println("Umur: " + umur + " tahun");
Kotlin:
println("Nama: $nama")
println("Umur: $umur tahun")
println("Umur saya " + nama + " tahun")
Mana yang lebih sederhana?
Tentunya kotlin.
Simbol dolar maksudnya untuk mengambil nilai dari variabel dan menampilkannya ke dalam teks.
Contoh:
fun main(args: Array<String>){
val nama = "Reza"
val usia = 13
val alamat = "Bandung"
val template = """
nama: $nama
usia: $usia tahun
alamat: $alamat
Reza 5 tahun lagi akan berusia ${usia + 5} tahun
"""
println(template)
}
Pada contoh di atas kita menggunakan ${...}
untuk melakukan operasi di dalam
template string.
Kita juga bisa memanggil fungsi di sana.
Hasil outputnya:
Hasil outputnya agak masuk ke dalam (indent).
Untuk mengatasi ini, kita bisa menggunakan method trimIndent()
.
val template = """
nama: $nama
usia: $usia tahun
alamat: $alamat
Reza 5 tahun lagi akan berusia ${usia + 5} tahun
""".trimIndent()
Lalu bagaimana kalau kita ingin menampilkan simbol dolar pada String template?
Gampang.
Kita harus menggunakan dua dolar.
Contoh:
val uangku = 48
println("uangku sebanyak $$uangku")
Hasilnya:
uangku sebanyak $48
Mengambil Input dari Keyboard
Pengguna komputer berinteraksi dengan program menggunakan keyboard dan perangkat masukan lainnya.
Melalui perantara keyboard, pengguna dapat memasukan data ke program. Kemudian program memperosesnya menjadi sebuah informasi.
Ada tiga cara mengambil input dari keyboard:
- Menggunakan fungsi
readLine()
- Menggunakan class
Scanner
- Menggunakan class
BufferedReader
Mari kita coba satu per satu…
Mengambil Input dengan Fungsi readLine()
Fungsi ini akan mengembalikan nilai String yang Nullable (String?
).
Artinya, nilai bisa String atau bisa null (kosong).
Hal ini untuk mengurangi terjadinya error NullPointerException
.
Contoh:
Mengambil input dan tidak menyimpannya ke dalam variabel.
fun main(args: Array<String>){
println("Tekan Enter untuk melanjutkan...")
readLine()
println("Terima kasih")
}
Hasil outputnya:
Mengambil input dan menyimpannya ke dalam variabel.
fun main(args: Array<String>){
// mengambil input
print("Inputkan nama: ")
val nama = readLine()
print("Inputkan umur: ")
val umur = readLine()
// menampilkan output
println("Namaku $nama saat ini berusia $umur tahun")
}
Hasil outputnya:
Jika kita ingin melakukan operasi terhadap data yang diinputkan, maka kita harus mengubah tipe datanya.
Misalkan, inputan umur
ingin kita tambahkan dengan 2
.
Kita bisa menggunakan fungsi Integer.valueOf()
atau method toInt()
.
// cara 1
var umurbaru = Integer.valueOf(umur) + 2
// cara 2
var umurbaru = umur!!.toInt() + 2
Tanda !!
artinya mengizinkan NullPointerException
jika variabel umur
bernilai null
.
Pembahasan lebih mendalam tentang ini,
bisa dibaca di “
Apa itu Null Safety?”.
Mengambil Input dengan Class Scanner
Class Scanner bisa juga kita gunakan pada Kotlin.
Pertama kita harus mengimpor dulu Class Scanner dari paket java.util
.
import java.util.Scanner;
Setelah itu baru kita bisa membuat objek Scanner.
Contohnya:
import java.util.Scanner;
fun main(args: Array<String>) {
// membuat objek scanner
val input = Scanner(System.`in`)
// mengambil input
print("Nama: ")
val nama = input.nextLine()
print("Umur: ")
val umur = input.nextInt()
// menampilkan isi variabel nama dan umur
println("Nama kamu adalah $nama dan usianya $umur tahun")
}
Hasil output:
Perlu diperhatikan: tanda petik yang digunakan pada System.`in`
merupakan
tanda petik terbalik (back quote), bukan tanda petik biasa.
Sumber: computerhope.com
Mengambil Input Class BufferedReader
Selain menggunakan Class Scanner, kita juga bisa mengambil input dengan
Class BufferedReader
.
Class BufferedReader
tidak bisa bekerja sendirian, dia juga butuh Class
InputStreamReader
.
Pertama kita harus mengimpor dua Class tersebut dari paket java.io
.
import java.io.InputStreamReader;
import java.io.BufferedReader;
Setelah itu, baru kita bisa menggunakannya.
Contoh:
import java.io.InputStreamReader;
import java.io.BufferedReader;
fun main(args: Array<String>) {
// membuat objek BufferedReader
val input = BufferedReader(InputStreamReader(System.`in`))
// mengambil input
print("input nama: ")
val namaku = input.readLine()
// menampilkan output
println("namaku adalah $namaku")
}
Hasil output:
Itulah tiga cara mengambil input dari keyboard.
Mudah bukan?
Apa Selanjutnya?
Kita sudah mempelajari berbagai cara mengambil input dan menampilkan input pada Kotlin.
Selanjutnya silahkan pelajari tentan:
- Variabel dan Tipe data pada Kotlin;
- Operator Pada Kotlin operator;
- Blok Percabangan pada Kotlin;
- Blok Perulangan pada Kotlin.
Ada pertanyaan?
Silahkan kirimkan melalui komentar.