Di artikel sebelumnya, kita membahas tentang Tipe Data, Variabel, dan Inisiasi dari suatu variabel.
Sekarang kita akan belajar bagaimana cara memanipulasi nilai variabel dengan menggunakan operator, dan juga mengubah tipe suatu variabel menjadi tipe data lainnya dengan menggunakan type casting.
Operator adalah sebuah elemen yang berfungsi untuk mengubah atau mengevaluasi suatu variabel. Type casting adalah mengubah suatu variabel dari satu tipe data ke tipe data lainnya. Pertama, kita akan membahas dulu tentang operator.
Operator
Operator di dalam bahasa Kotlin dibagi menjadi beberapa tipe yaitu sebagai berikut.
Operator Aritmatika
Operator aritmatika adalah operator yang melakukan operasi terhadap perhitungan, seperti penjumlahan, pengurangan, perkalian, pembagian, dan juga hasil bagi.
Operator | Fungsi |
---|---|
+ |
Penjumlahan |
- |
Pengurangan |
* |
Perkalian |
/ |
Pembagian |
% |
Modulus (Hasil Bagi) |
Contohnya
Code di atas menghasilkan output:
30.0 + 2.0 = 32.0
30.0 - 2.0 = 28.0
30.0 * 2.0 = 60.0
30.0 / 2.0 = 15.0
30.0 % 2.0 = 0.0
Selain untuk aritmatika, operator +
juga bisa digunakan untuk menyambung String
. Contohnya:
val awal = "Bicara itu mudah. "
val tengah = "Perlihatkan kodenya. "
val akhir = "- Linus Torvalds"
val hasil = awal + tengah + hasil
println(result)
Ketika dijalankan, kode tersebut akan menghasilkan output:
Bicara itu mudah. Perlihatkan kodenya. - Linus Torvalds
Bagaimana Cara Kerjanya?
Misalkan kamu menggunakan operator +
untuk menjumlahkan a + b
.
Di belakang layar, operator tersebut memanggil a.plus(b)
. Function plus()
tersebut juga di overloading untuk bisa berjalan pada String
.
// Tipe dasar operator +
operator fun plus(other: Byte): Int
operator fun plus(other: Short): Int
operator fun plus(other: Int): Int
operator fun plus(other: Long): Long
operator fun plus(other: Float): Float
operator fun plus(other: Double): Double
// Untuk menyambung String
operator fun String?.plus(other: Any?): String
Kamu juga bisa menggunakan operator +
untuk objek lainnya dengan melakukan overloading terhadap method plus()
.
Tabel berikut berisi tentang operator aritmatika dan function yang dijalankannya.
Ekspresi | Nama function | Menjadi |
---|---|---|
a + b |
plus |
a.plus(b) |
a - b |
minus |
a.minus(b) |
a * b |
times |
a.times(b) |
a / b |
div |
a.div(b) |
a % b |
mod |
a.mod(b) |
Operator Penugasan
Operator penugasan adalah operator yang digunakan untuk memberikan suatu nilai kepada variabel. Kita sudah pernah menggunakan salah satu operator penugasan =
.
val umur = 18
Pada contoh di atas, nilai 18
diberikan kepada variabel umur
oleh =
.
Berikut operator penugasan lainnya.
Ekspresi | Sama dengan | Menjadi |
---|---|---|
a += b |
a = a + b |
a.plusAssign(b) |
a -= b |
a = a - b |
a.minusAssign(b) |
a *= b |
a = a * b |
a.timesAssign(b) |
a /= b |
a = a / b |
a.divAssign(b) |
a %= b |
a = a % b |
a.modAssign(b) |
Contoh
Output dari kode di atas adalah:
20.0 += 5 hasilnya 25.0
20.0 -= 5 hasilnya 15.0
20.0 *= 5 hasilnya 100.0
20.0 /= 5 hasilnya 4.0
20.0 %= 5 hasilnya 0.0
Operator Unary, Increment, dan Decrement
Berikut adalah tabel untuk operator unary, increment, dan decrement.
Operator | Arti | Ekspresi | Menjadi |
---|---|---|---|
+ |
Positif | +a |
a.unaryPlus |
- |
Negatif | -a |
a.unaryMinus() |
! |
Negasi | !a |
a.not() |
++ |
Kenaikan | a++ atau ++a |
a.inc() |
-- |
Penurunan | a-- atau --a |
a.dec() |
Contoh
Code di atas akan menghasilkan output:
+(-1) = -1
-(-1) = 1
!true = false
0
1
Operator Perbandingan dan Kesetaraan
Operator ini berguna untuk membandingkan apakah suatu variabel lebih besar, lebih kecil atau sama dengan objek lainnya.
Berikut lebih detailnya.
Operator | Arti | Ekspresi | Menjadi |
---|---|---|---|
> |
Lebih dari | a > b |
a.compareTo(b)>0 |
< |
Kurang dari | a < b |
a.compareTo(b)<0 |
>= |
Lebih dari atau sama dengan | a >= b |
a.compareTo(b)>=0 |
<= |
Kurang dari atau sama dengan | a <= b |
a.compareTo(b)<=0 |
== |
Sama dengan (nilai) | a == b |
a?.equals(b)?:(b===null) |
!= |
Tidak sama dengan (nilai) | a != b |
!(a?.equals(b)?:(b===null)) |
Operator perbandingan ini digunakan untuk pengontrol alur seperti if
, when
, dan juga perulangan.
Contoh
Kode di atas menghasilkan output:
25 > 12 = true
25 < 12 = false
25 >= 12 = true
25 <= 12 = false
25 == 12 = false
25 != 12 = false
Operator Logika
Operator logika di bahasa Kotlin hanya ada dua, yaitu &&
dan ||
atau and
dan or
.
Operator | Deskripsi | Ekspresi | Menjadi |
---|---|---|---|
` | ` | Bernilai true jika salah satu kondisi true |
|
&& |
Bernilai true jika semua kondisi true |
(a>b) && (a<c) (a>b) and (a<c) |
Perlu diketahui bahwa or dan and merupakan operator yang mendukung infix notation.
Contoh
Hasil dari program di atas adalah:
(10 > 9) and (10 > -1) = true
(10 < 9) or (10 > -1) = true
Operator in
Operator ini digunakan untuk mengecek apakah suatu obyek merupakan bagian dari suatu collection
.
Operator | Ekspresi | Menjadi |
---|---|---|
in |
a in b |
b.contains(a) |
!in |
a !in b |
!b.contains(a) |
Contoh
Hasil dari program di atas adalah:
15 ada di dalam bilangan
Operator Pengaksesan indeks
Operator ini berguna jika kita akan mengakses elemen dari suatu Array
atau Collection
.
Ekspresi | Menjadi |
---|---|
a[i] |
a.get(i) |
a[i] = b |
a.set(i, b) |
Contoh
Output untuk program di atas adalah:
Elemen di indeks 2 adalah 36
Elemen di indeks 0 adalah 0
Operator Invoke
Operator invoke adalah operator yang digunakan untuk memanggil method
atau function
.
Operator ini pada kotlin adalah ()
. Kalau dicontohkan jadinya
bagiDua() // bagiDua.invoke()
Operator Bitwise
Pada kotlin, tidak terdapat infix operator untuk operasi bitwise tetapi tersedia function yang serupa.
shl
- Signed shift leftshr
- Signed shift rightushr
- Unsigned shift rightand
- Bitwise andor
- Bitwise orxor
- Bitwise xorinv
- Bitwise inversion
Type Casting
Pada kotlin, perubahan tipe data angka tidak terjadi secara otomatis seperti di Java, melainkan harus disebutkan secara eksplisit. Contohnya:
val number1: Int = 55
val number2: Long = number1.toLong()
Berikut beberapa method perubahan pada kotlin.
- toByte()
- toShort()
- toInt()
- toLong()
- toFloat()
- toDouble()
- toChar()
Selain itu terdapat katakunci as
untuk melakukan perubahan Tipe lainnya.
val x: String? = y as String?
Oke sekian dulu artikel kali ini, jika ada pertanyaan silahkan tinggalkan komentar di bawah ya.
Featured Image Background : Background vector created by Harryarts - www.freepik.com