Belajar Dasar Kotlin: Perulangan
Dalam membuat program, kita mungkin akan menginginkan untuk mengulangi suatu proses berkali-kali. Dalam pemrograman terdapat Perulangan atau Looping yang bisa digunakan untuk menyelesaikan masalah tadi.
for Looping
Perulangan for
merupakan perulangan yang paling sederhana. Sintak if seperti berikut:
for (item in ekspresi) {
kode dalam perulangan
}
ekspresi
ini dapat berupa ekspresi atau variabel. Kode dalam perulangan merupakan kode yang akan
dijalankan berkali-kali. item
merupakan variabel yang dapat diakses di kode dalam perulangan.
Perulangan for
dapat digunakan untuk mengulangi suatu proses/kode berdasarkan item-item pada suatu
array, seperti berikut:
val array = arrayOf("Kotlin", "Java", "C++", "Rust", "Go")
for (item in array) {
println(item)
}
// Output:
// Kotlin
// Java
// C++
// Rust
// Go
Kode dalam perulangan akan dijalankan pertama kali dengan variabel item
merupakan item ke-1 dari
array
yaitu Kotlin
, kemudian di jalankan kembali dengan item
merupakan item ke-2 dari array
yaitu Java
, kemudian di jalankan kembali dengan item
merupakan item ke-3 dari array
yaitu
C++
dan seterusnya sampai dengan item
merupakan item terakhir dari array
yaitu Go
.
Perulangan for
juga dapat digunakan dengan Range seperti berikut:
for (angka in 1..10) {
println(angka)
}
// Output:
// 1
// 2
// 3
// 4
// 5
// 6
// 7
// 8
// 9
// 10
Kode dalam perulangan akan dijalankan pertama kali dengan variabel angka
berisi 1, kemudian
dijalankan lagi dengan angka
berisi 2, kemudian dijalankan lagi dengan angka
berisi 3 dan
seterusnya sampai dengan angka
berisi 10.
while Looping
Perulangan ini dapat digunakan untuk mengulangi suatu proses berdasarkan suatu kondisi. Sintaknya seperti di bawah ini:
while (kondisi) {
kode dalam perulangan
}
Kondisi harus berupa ekspresi/variabel yang bertipe data Boolean.
Contoh:
var i = 1
while (i <= 10) {
println(i)
i++
}
// Output:
// 1
// 2
// 3
// 4
// 5
// 6
// 7
// 8
// 9
// 10
Perulangan akan di awali dengan pengecekan kondisi i <= 10
, karena i = 1
, maka kondisi bernilai
True
sehingga kode dalam perulangan di jalankan. Kemudian pengecekan kondisi dijalankan lagi,
karena i = 2
, maka kondisi bernilai True
dan kode dijalankan lagi. Kemudian pengecekan kondisi
dijalankan lagi, karena i = 3
, maka kondisi bernilai True
dan kode dijalankan lagi. Dan
seterusnya, sampai pada saat i = 11
, maka kode tidak dijalankan karena kondisi tidak terpenuhi
(bernilai False
) dan perulangan selesai.
Setiap kali kode dijalankan variabel
i
bertambah satu karena ada kodei++
.
Secara lebih umum, kode dalam perulangan akan terus di jalankan jika kondisi bernilai True
dan
akan berhenti jika kondisi bernilai False
.
do while Looping
Sama seperti perulangan while
, perulangan ini dapat digunakan untuk mengulangi suatu proses
berdasarkan suatu kondisi. Sintaknya seperti di bawah ini:
do {
kode dalam perulangan
} while (kondisi)
Kondisi harus berupa ekspresi/variabel yang bertipe data Boolean.
Contoh:
var i = 1
do {
println(i)
i++
} while (i <= 10)
// Output:
// 1
// 2
// 3
// 4
// 5
// 6
// 7
// 8
// 9
// 10
Perulangan akan di awali dengan menjalankan kode dalam perulangan. Kemudian dilakukan pengecekan
kondisi i <= 0
, karena i = 1
, maka kode di jalankan kembali. Kemudian dilakukan pengecekan
kondisi lagi, karena i = 2
, maka kode di jalankan kembali. Kemudian dilakukan pengecekan kondisi
lagi, karena i = 3
, maka kode di jalankan kembali. Dan seterusnya, sampai saat i = 11
, maka kode
tidak dijalankan kembali karena kondisi tidak terpenuhi dan perulangan selesai.
Setiap kali kode dijalankan variabel
i
bertambah satu karena ada kodei++
.
Secara lebih umum, perulangan ini hampir mirip dengan perulangan while
. Lalu, Apa perbedaan
perulangan while
dan do while
?. Perbedaannya cukup sederhana, yaitu:
- Pada perulangan
while
, pengecekan kondisi dilakukan dahulu baru kemudian kode dalam perulangan dijalankan. Sehingga kode dalam perulangan bisa tidak dijalankan sama sekali. - Pada perulangan
do while
, kode dalam perulangan dijalankan dahulu baru pengecekan kondisi. Sehingga kode dalam perulangan jelas dijalankan minimal 1 kali.
break
Keyword break
dapat digunakan untuk menghentikan perulangan saat di dalam perulangan.
Misalkan kita ingin mencari angka yang dapat dibagi 5 dari 1 sampai 10. Kita bisa melakukan perulangan dari 1 sampai 10, kemudian mencetak apakah angka saat perulangan bisa dibagi dengan 5.
for (i in 1..10) {
if (i % 5 == 0) {
println("$i dapat dibagi 5")
} else {
println("$i tidak dapat dibagi 5")
}
}
// Output:
// 1 tidak dapat dibagi 5
// 2 tidak dapat dibagi 5
// 3 tidak dapat dibagi 5
// 4 tidak dapat dibagi 5
// 5 dapat dibagi 5
// 6 tidak dapat dibagi 5
// 7 tidak dapat dibagi 5
// 8 tidak dapat dibagi 5
// 9 tidak dapat dibagi 5
// 10 dapat dibagi 5
Kode berjalan sesuai keinginan. Misalkan jika kita hanya ingin mencari angka pertama yang bisa
dibagi dengan 5 dan setelah menemukannya kita ingin menghentikan perulangan, maka kita bisa
menggunakan break
setelah menemukannya agar perulangan langsung berhenti.
for (i in 1..10) {
if (i % 5 == 0) {
println("$i dapat dibagi 5")
break
} else {
println("$i tidak dapat dibagi 5")
}
}
// Output:
// 1 tidak dapat dibagi 5
// 2 tidak dapat dibagi 5
// 3 tidak dapat dibagi 5
// 4 tidak dapat dibagi 5
// 5 dapat dibagi 5
break
dapat digunakan pada while
dan do while
juga.
Semua kode setelah
break
akan diloncati.
continue
Keyword continue
akan meloncati semua kode setelah itu, namun tetap melanjutkan perulangan.
Misalkan kita ingin melakukan operasi pada angka antara 1 sampai 10 yang bisa dibagi oleh 5.
for (i in 1..10) {
if (i % 5 == 0) {
println("Operasi pada $i")
}
}
// Output:
// Operasi pada 5
// Operasi pada 10
Kode berjalan sesuai harapan, namun jika operasi membutuhkan banyak kode, maka kode akan menjadi
kurang rapi. Agar lebih rapi, kita menjalankan continue
jika angka tidak bisa dibagi 5 agar kode
setelah continue
diloncati dan perulangan dilanjutkan.
for (i in 1..10) {
if (i % 5 != 0)
continue
println("Operasi pada $i")
}
// Output:
// Operasi pada 5
// Operasi pada 10