Minggu, 15 Mei 2022

Mengenal Range di Kotlin


Seperti yang disampaikan sebelumnya, Range merupakan salah satu tipe yang unik pada kotlin. Kita dapat menentukan nilai awal dan nilai akhir pada Renge. Range direpresentasikan dengan operator .. atau dengan fungsi rangeTo() dan downTo().

Terdapat beberapa cara untuk membuat Range di Kotlin. Pertama, seperti berikut:

  1. val rangeInt = 1..10


Kode diatas menggunakan operator .. untuk membuat Range. Variabel rangeInt di atas mencakup nilai 1, 2, 3, 4, 5, 6, 7, 8, 9, 10. Jarak antara dua nilai yang dicakup, ditentukan oleh step. Secara default, step bernilai 1. Untuk mendapatkan step kita bisa menggunakan properti step seperti contoh berikut:

  1. fun main() {

  2.     val rangeInt = 1..10

  3.     print(rangeInt.step)

  4. }

  5.  

  6. /*

  7.    output: 1

  8. */


Dan untuk mengubah nilai dari step bisa dilakukan ketika kita menginisialisasi nilai yang dicakup Range itu sendiri:

  1. fun main() {

  2.     val rangeInt = 1..10 step 2

  3.     rangeInt.forEach {

  4.         print("$it ")

  5.     }

  6.     println(rangeInt.step)

  7. }

  8.  

  9. /*

  10.    output: 1 3 5 7 9 2

  11. */


Pada kode di atas kita menentukan nilai step adalah 2, maka nilai yang dicakup variabel rangeInt adalah 1, 3, 5, 7, 9.
Selanjutnya adalah menggunakan fungsi rangeTo():

  1. val rangeInt = 1.rangeTo(10)


Kode di atas, operator .. digantikan dengan fungsi rangeTo() untuk membuat Range . Nilai yang dicakup pada kode di atas sama seperti kode sebelumnya ketika menggunakan operator ...
Kita juga bisa menentukan nilai yang dicakup pada Range dengan urutan terbalik seperti berikut:

  1. val downInt = 10.downTo(1)


Kode di atas menggunakan fungsi downTo() untuk menentukan nilai dengan urutan terbalik. Variabel downInt di atas mencakup nilai 10, 9, 8, 7, 6, 5, 4, 3, 2, 1.
Kita juga bisa memeriksa apakah suatu nilai ada pada cakupan nilai Range.

  1. fun main() {

  2.     val tenToOne = 10.downTo(1)

  3.     if (7 in tenToOne) {

  4.         println("Value 7 available")

  5.     }

  6. }

  7. /*

  8.    output: Value 7 available

  9. */


Pada kode di atas kita menggunakan kata kunci in untuk memeriksa apakah 7 berada diantara kisaran 1 sampai 10Expression yang dievaluasi pada if di atas sama seperti ketika menggunakan expression berikut:

  1. fun main() {

  2.     if (1 <= 7 && 7 <= 10){

  3.         println("Value 7 available")

  4.     }

  5. }

  6. /*

  7.    output: Value 7 available

  8. */


Nah,  di atas kita telah memeriksa apakah suatu nilai ada pada nilai cakupan Range. Sebaliknya, kita juga bisa memeriksa apakah suatu nilai tidak ada pada nilai cakupan Range tersebut. Kita bisa menggunakan kata kunci !in seperti ini:

  1. fun main() {

  2.     val tenToOne = 10.downTo(1)

  3.     if (11 !in tenToOne) {

  4.         println("No value 11 in Range ")

  5.     }

  6. }

  7. /*

  8.    output: No value 11 in Range

  9. */


Range pada Kotlin mendukung beberapa tipe integral seperti IntRangeLongRange dan CharRange. Sehingga selain nilai numerik, kita juga bisa menentukan tipe Character sebagai nilai yang dicakup oleh Range:

  1. val rangeChar = 'A'.rangeTo('F')


Nilai pada variable rangeChar di atas mencakup A, B, C, D, E, F

Posting Komentar