Belajar Dasar Kotlin: Operator Dasar
Pada saat membuat program kita mungkin akan menginginkan untuk memanipulasi sebuah data. Untuk memanipulasi data kita bisa menggunakan Operator. Operator merupakan simbol yang melambangkan sebuah operasi. Operator membutuhkan data yang disebut dengan operan.
Arithmetic Operators
Untuk melakukan operasi aritmetika kita bisa menggunakan Operator Aritmetika. Operatornya adalah +
(tambah), -
(kurang), *
(kali) /
(bagi) dan %
(modulus/sisa bagi).
Operator ini akan menghasilkan angka bertipe data Int
. Namun, jika operannya ada yang bertipe data
Float
atau Double
, angka yang dihasilkan adalah bilangan desimal. Untuk pembagian antara
bilangan bulat (Int
) hasilnya akan dibulatkan. Semua operator tadi bisa digunakan dengan semua
tipe data angka.
println(5 + 7) // 12
val a = 50
val b = 7
println(a + b) // 57
println(a - b) // 43
println(a * b) // 350
println(a / b) // 7
println(a % b) // 1
println(50.0 / 7) // 7.142857142857143, Double
println(50 / 7.0) // 7.142857142857143, Double
println(50.0f / 7) // 3.3333333, Float
// operasi campuran
println((a + b) * a + 50 - 3) // 2897
Terdapat juga operator augmented assignment operator, yang merupakan penggabungan dari operator
aritmetika dan assignment operator. Operator tersebut adalah +=
, -=
, *=
, /=
dan %=
.
var a = 50
a += 7
// ekuivalen dengan a = a + 7
println(a) // 57
a -= 17
// ekuivalen dengan a = a - 17
println(a) // 40
a *= 20
// ekuivalen dengan a = a * 20
println(a) // 800
a /= 5
// ekuivalen dengan a = a / 5
println(a) // 160
a %= 16
// ekuivalen dengan a = a % 16
println(a) // 0
Tipe data Char
dapat digunakan dengan operator +
dan -
. Namun, operan kedua harus berupa
Int
.
val char = 'j'
println(char - 2) // 'h'
println(char - 1) // 'i'
println(char) // 'j'
println(char + 1) // 'k'
println(char + 2) // 'l'
Tipe data String
dapat digunakan sebagai operan operator +
dan +=
.
val name = "Rizal"
println("Saya bernama " + name) // Saya bernama Rizal
println("5 + 4 = " + (5 + 4)) // 5 + 4 = 9
Sangat disarankan menggunakan String Template daripada menggunakan operator +
.
Increment dan Decrement Operators
Terdapat juga operator increment/tambah 1 (++
) dan decrement/kurangi 1 (--
).
var a = 50
a++
// Sama dengan a += 1
println(a) // 51
a--
// Sama dengan a -= 1
println(a) // 50
Equality Operators
Equality Operators merupakan operator yang digunakan untuk mengecek kesamaan dua data/nilai.
Operatornya adalah ==
(sama dengan) atau !=
(tidak sama dengan). Operator ini akan menghasilkan
nilai Boolean dan bisa digunakan pada variabel bertipe data apa pun.
println(7 == 7) // true
println(7 == 6) // false
println(7 != 6) // true
println(7 != 7) // false
val nama1 = "Rizal"
val nama2 = "Asri"
val nama3 = "Rizal"
println(nama1 == nama2) // false
println(nama1 == nama3) // true
Comparison Operators
Terdapat juga operator untuk membandingkan dua angka yaitu: <
(kurang dari), <=
(kurang dari
atau sama dengan), >
(lebih dari), dan >=
(lebih dari atau sama dengan). Operator tadi disebut
dengan Comparison operator.
Operator tersebut akan menghasilkan Boolean dan bernilaitrue
jika kondisi terpenuhi. Operator ini
bisa digunakan dengan semua tipe data angka dan tipe data Char
.
val a = 10
val b = 3
println(a < b) // false
println(b < a) // true
println(2 < 2) // false
println(2 <= 2) // true
println(5 > 9) // false
println(10 > 5) // true
val myChar = 'e'
println(myChar > 'a') // true
Logical Operators
Terdapat juga 3 operator digunakan dengan nilai Boolean. Operator !
akan membalik nilai Boolean
(true
menjadi false
dan sebaliknya).
println(!true) // false
println(!false) // true
Operator &&
hanya akan menghasilkan nilai true
jika nilai kiri dan kanan bernilai true
.
println(true && true) // true
println(true && false) // false
println(false && false) // false
Operator ||
akan menghasilkan true
jika salah satu dari nilai kiri dan kanan bernilai true
.
println(true || true) // true
println(true || false) // true
println(false || false) // false
Operator &&
dan ||
akan mengecek nilai dari kiri baru ke kanan. Ketiga operator tersebut
dinamakan Logical Operators.
Operator tersebut juga dapat digabungkan membentuk operasi kompleks.
// Kedua kode berikut sebenarnya sama.
println(true && false || !false) // true
println(true && (false || !false)) // true
Indexing Operators
Indexing operators bisa digunakan untuk mendapatkan suatu item dari array. Operator ini berupa
[]
yang diisi oleh index dari item. Index dimulai dari 0. Tipe data kembalian dari operator
ini sama seperti tipe data dari item Array.
val arrays = arrayOf(10, 15, 17)
println(arrays[0]) // 10
println(arrays[1]) // 15
println(arrays[2]) // 17
Operator ini juga dapat digunakan untuk mengubah nilai pada Array.
val arrays = arrayOf(10, 15, 17)
println(arrays[0]) // 10
arrays[0] = 13
println(arrays[0]) // 13
println(arrays[1]) // 15
arrays[1] = 16
println(arrays[1]) // 16
Operator ini juga bisa digunakan dengan tipe data String. Dalam kasus ini, kembaliannya bertipe data
Char
. Namun, operator ini tidak dapat digunakan untuk mengubah karakter pada String.
val contohString = "Riya"
println(contohString[0]) // R
println(contohString[contohString.length - 1]) // a
In Operators
Operator in
bisa digunakan untuk mengecek apakah suatu item terdapat pada Arrays. Operator ini
mengembalikan nilai Boolean.
val arrays = arrayOf(1, 5, 7)
println(1 in arrays) // true
println(7 in arrays) // true
println(8 in arrays) // false
Operator ini juga bisa mengecek apakah suatu angka berada pada rentang (range) tertentu.
println(1 in 1..10) // true
// Sama dengan 1 >= 1 && 1 <= 10
println(1 in 5..10) // false
// Sama dengan 1 >= 5 && 1 <= 10
println(6 in 5..10) // true
// Sama dengan 6 >= 5 && 6 <= 10