0% menganggap dokumen ini bermanfaat (0 suara)
132 tayangan7 halaman

02 Basic Syntax Kotlin

Praktikum ini memperkenalkan sintaks dasar bahasa pemrograman Kotlin. Beberapa poin utama yang disinggung antara lain pengenalan variabel, fungsi, kelas, kondisi, dan penanganan null value. Kotlin memiliki fitur null safety yang mencegah terjadinya null pointer exception pada saat kompilasi.

Diunggah oleh

Na Na
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
132 tayangan7 halaman

02 Basic Syntax Kotlin

Praktikum ini memperkenalkan sintaks dasar bahasa pemrograman Kotlin. Beberapa poin utama yang disinggung antara lain pengenalan variabel, fungsi, kelas, kondisi, dan penanganan null value. Kotlin memiliki fitur null safety yang mencegah terjadinya null pointer exception pada saat kompilasi.

Diunggah oleh

Na Na
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 7

Praktikum Pemrograman Mobile | Erma Susanti

Pertemuan 2

Pengenalan Basic Syntax Kotlin

Silahkan mencoba belajar sintaks Kotlin tanpa instalasi dengan mengakses situs
https://play.kotlinlang.org/ .

Program entry point


fun main() {
println("Hello world!")
}

Print ke standar output

Apakah perbedaan antara print dan println?

print("Hello ")
print("world!")
println("Hello world!")
println(42)

Komentar
// This is an end-of-line comment

/* This is a block comment


on multiple lines. */

Blok komentar dalam Kotlin dapat dibuat bersarang.


/* The comment starts here
/* contains a nested comment *⁠/
and ends here. */

Variabel

Kotlin menggunakan dua kata kunci yang berbeda untuk mendeklarasikan


variabel: val dan var.

1
Praktikum Pemrograman Mobile | Erma Susanti

• Gunakan val untuk variabel yang nilainya tidak pernah berubah. Kita tidak dapat
menetapkan ulang nilai ke variabel yang dideklarasikan menggunakan val.
• Gunakan var untuk variabel yang nilainya dapat berubah.

Pada contoh di bawah, count adalah variabel dari jenis Int yang diberi nilai awal 10:

var count: Int = 10

Int adalah jenis yang merepresentasikan bilangan bulat, salah satu dari berbagai jenis
numerik yang dapat direpresentasikan di Kotlin. Serupa dengan bahasa lain, kita juga
dapat menggunakan Byte, Short, Long, Float, dan Double, bergantung pada data numerik
kita.

Kata kunci var berarti kita dapat menetapkan ulang nilai ke count sesuai kebutuhan.
Misalnya, kita dapat mengubah nilai count dari 10 menjadi 15:

var count: Int = 10


count = 15

Namun, beberapa nilai tidak dapat diubah. Pertimbangkan String yang


disebut languageName. Jika ingin memastikan bahwa languageName selalu memiliki nilai
"Kotlin", Kita dapat mendeklarasikan languageName menggunakan kata kunci val:

val languageName: String = "Kotlin"

val a: Int = 1 // immediate assignment


val b = 2 // `Int` type is inferred
val c: Int // Type required when no initializer is provided
c=3 // deferred assignment

Variabel dapat ditetapkan ulang menggunakan kata kunci var .


var x = 5 // `Int` type is inferred
x += 1

Kita dapat mendeklarasikan variabel pada top level.


val PI = 3.14

Contoh lain

val company : String = "Gojek"

2
Praktikum Pemrograman Mobile | Erma Susanti

dapat dipersingkat penulisannya dengan

val company = "Gojek"

Functions
Di dalam Kotlin function atau yang sering kita sebut sebagai method (dalam Java)
dideklarasikan dengan kata kunci fun. Contoh:
fun sum(a: Int, b: Int): Int {
return a + b
}

fun sum(a: Int, b: Int) = a + b

fun printSum(a: Int, b: Int): Unit {


println("sum of $a and $b is ${a + b}")
}

fun printSum(a: Int, b: Int) {


println("sum of $a and $b is ${a + b}")
}

Membuat class dan instances


class Car

class Shape

Properties dari sebuah class dapat daftarkan pada bagian deklarasi atau body.
class Rectangle(var height: Double, var length: Double) {
var perimeter = (height + length) * 2
}

Default constructor dengan parameters didaftarkan pada class declaration yang tersedia secara
otomatis.
val rectangle = Rectangle(5.0, 2.0)
println("The perimeter is ${rectangle.perimeter}")

3
Praktikum Pemrograman Mobile | Erma Susanti

Contoh lain
class Student {
var studentName: String = ""
}

val student = Student()


student.studentName = "Andi"
val name = student.studentName
println(name)

Inheritance diantara class dideklarasikan dengan tanda (:).


open class Shape

class Rectangle(var height: Double, var length: Double): Shape() {


var perimeter = (height + length) * 2
}

Ekspresi bersyarat (kondisi)


fun maxOf(a: Int, b: Int): Int {
if (a > b) {
return a
} else {
return b
}
}

Dalam Kotlin, if dapat digunakan sebagai ekspresi.


fun maxOf(a: Int, b: Int) = if (a > b) a else b

Kotlin memiliki beberapa mekanisme untuk menerapkan logika bersyarat. Yang paling
umum adalah pernyataan if-else. Jika ekspresi yang digabungkan dalam tanda kurung di
samping kata kunci if mengevaluasi ke true, kode dalam cabang tersebut (yaitu, kode
yang langsung diikuti dan digabungkan dengan tanda kurung kurawal) akan dieksekusi.
Jika tidak, kode dalam cabang else yang akan dijalankan.

if (count == 42) {
println("I have the answer.")
} else {

4
Praktikum Pemrograman Mobile | Erma Susanti

println("The answer eludes me.")


}

Kita dapat merepresentasikan beberapa kondisi menggunakan else if. Hal ini
memungkinkan Kita merepresentasikan logika yang lebih terperinci dan kompleks dalam
pernyataan bersyarat tunggal, seperti yang ditunjukkan dalam contoh berikut:

if (count == 42) {
println("I have the answer.")
} else if (count > 35) {
println("The answer is close.")
} else {
println("The answer eludes me.")
}

Pernyataan bersyarat berguna untuk merepresentasikan logika berstatus, tetapi Kita


mungkin mendapati bahwa Kita melakukan pengulangan sendiri saat menulisnya. Pada
contoh di atas, Kita cukup mencetak String di setiap cabang. Untuk menghindari
pengulangan ini, Kotlin menawarkan ekspresi bersyarat. Contoh terakhir dapat ditulis
ulang sebagai berikut:

val answerString: String = if (count == 42) {


"I have the answer."
} else if (count > 35) {
"The answer is close."
} else {
"The answer eludes me."
}
println(answerString)

Secara implisit, setiap cabang bersyarat menampilkan hasil ekspresi pada baris
terakhirnya, sehingga Kita tidak perlu menggunakan kata kunci return. Karena hasil dari
ketiga cabang berjenis String, hasil dari ekspresi if-else juga berjenis String. Dalam
contoh ini, answerString diberi nilai awal dari hasil ekspresi if-else. Inferensi jenis dapat
digunakan untuk menghapus deklarasi jenis eksplisit untuk answerString, tetapi sering
kali sebaiknya disertakan untuk kejelasan.

Dengan semakin kompleksnya pernyataan bersyarat, Kita dapat mempertimbangkan


untuk mengganti ekspresi if-else dengan ekspresi when, seperti yang ditunjukkan dalam
contoh berikut:

5
Praktikum Pemrograman Mobile | Erma Susanti

val answerString = when {


count == 42 -> "I have the answer."
count > 35 -> "The answer is close."
else -> "The answer eludes me."
}
println(answerString)

Setiap cabang dalam ekspresi when direpresentasikan oleh suatu kondisi, tanda panah
(->), dan hasilnya. Jika kondisi di sisi kiri tanda panah mengevaluasi ke true, maka hasil
ekspresi di sisi kanan akan ditampilkan. Perhatikan bahwa eksekusi tidak jatuh dari satu
cabang ke cabang berikutnya. Kode dalam contoh ekspresi when secara fungsional
setara dengan contoh ekspresi dalam contoh sebelumnya, tetapi boleh dibilang lebih
mudah dibaca.

Ekspesi when
fun describe(obj: Any): String =
when (obj) {
1 -> "One"
"Hello" -> "Greeting"
is Long -> "Long"
!is String -> "Not a string"
else -> "Unknown"
}

Perulangan for
val items = listOf("apple", "banana", "kiwifruit")
for (item in items) {
println(item)
}

atau
val items = listOf("apple", "banana", "kiwifruit")
for (index in items.indices) {
println("item at $index is ${items[index]}")
}

Perulangan while
val items = listOf("apple", "banana", "kiwifruit")

6
Praktikum Pemrograman Mobile | Erma Susanti

var index = 0
while (index < items.size) {
println("item at $index is ${items[index]}")
index++
}

Null Safety
Sebagai seorang programmer, terutama yang sering menggunakan bahasa
pemrograman Java, pasti familiar dengan “NullPointerException (NPE)” atau yang sering
disebut dengan “The Billion Dollar Mistake”. NPE kerap mengharuskan kita untuk selalu
mengecek apakah pada suatu objek terdapat potensi null atau tidak.

Pada Kotlin, Anda tidak perlu berurusan lagi dengan masalah NPE ini. Kotlin memiliki
fitur Null Safety sebagai salah satu keunggulannya. Kotlin akan menempatkan Null
Exception pada saat kompilasi dan secara otomatis menangani semua NPE yang biasa
terjadi. Kotlin juga mampu membedakan antara objek yang boleh null atau tidak
boleh null pada saat objek itu dibuat. Dengan demikian bisa dipastikan bahwa Kotlin
aman dari NPE.

Dalam beberapa bahasa, variabel jenis referensi dapat dideklarasikan tanpa memberikan
nilai eksplisit awal. Dalam kasus ini, variabel biasanya berisi nilai null. Secara default,
variabel Kotlin tidak dapat memiliki nilai null. Artinya, contoh berikut tidak valid:

// Fails to compile
val languageName: String = null

Untuk variabel yang memiliki nilai null, jenisnya harus nullable. Kita dapat menentukan
variabel sebagai nullable dengan menambahkan akhiran jenisnya dengan ?, seperti yang
ditunjukkan dalam contoh berikut:

val languageName: String? = null

Sumber Pustaka:

https://kotlinlang.org/docs/basic-syntax.html
https://developer.android.com/kotlin/androidbasics

Anda mungkin juga menyukai