Belajar Kotlin: #3 Operator dan 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.

· 4 menit untuk membaca
Belajar Kotlin: #3 Operator dan Type Casting

Di artikel sebelumnya, kita membahas tentang Tipe Data, Variabel, dan Inisiasi dari suatu variabel.

Belajar Kotlin: #2 Tipe Data, Variabel, dan Inisialisasi
Kita akan membahas tentang Tipe Data, Variabel, dan Inisialisasi.

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 left
  • shr - Signed shift right
  • ushr - Unsigned shift right
  • and - Bitwise and
  • or - Bitwise or
  • xor - Bitwise xor
  • inv - 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