Masukkan Password
24 The Complete Kotlin Course #23- For Loop - Kotlin Tutorials for Beginners
Lesson ini adalah kelanjutan langsung dari range yang baru saja kita pelajari. Sekarang range tersebut dipakai bersama for loop.
Kalau sebelumnya kita belajar:
if→ memilih berdasarkan kondisiwhile→ mengulang selama kondisitruedo...while→ menjalankan minimal sekali lalu mengecek kondisibreak→ keluar dari looprange→ membuat urutan angka
Sekarang:
forloop digunakan untuk mengunjungi/mengulang setiap nilai yang ada dalam suatu range atau koleksi.
1. Apa itu for loop?
Bentuk umum yang diperkenalkan di video:
for (constant in range) {
// loop code
}
Contoh:
for (i in 1..10) {
println(i)
}
Bacanya:
“Untuk setiap
idi dalam range 1 sampai 10, jalankan kode di dalam{}.”
Hasil:
1
2
3
4
5
6
7
8
9
10
2. Bedah syntax for
Mari kita lihat:
for (i in 1..10) {
println(i)
}
Ada beberapa bagian.
for
for
Ini adalah keyword yang memberitahu Kotlin:
“Saya ingin melakukan loop.”
i
for (i in 1..10)
↑
i adalah variabel loop.
Video menyebutnya sebagai “constant”, tetapi secara konsep beginner lebih baik kita sebut:
variabel iterasi / loop variable
Nilai i akan berubah setiap kali loop melakukan iterasi:
i = 1
i = 2
i = 3
...
i = 10
Kamu tidak perlu mendeklarasikan i dengan val atau var.
Kotlin membuat variabel loop tersebut untuk setiap iterasi.
in
for (i in 1..10)
↑
in berarti kita ingin mengambil nilai dari suatu range/koleksi.
Secara sederhana:
“i ada di dalam range ini.”
1..10
for (i in 1..10)
↑
Ini adalah range.
Karena menggunakan .., angka 1 sampai 10 semuanya termasuk:
1 2 3 4 5 6 7 8 9 10
{}
{
println(i)
}
Ini adalah body loop, yaitu kode yang dijalankan pada setiap iterasi.
3. Hubungan range dengan for
Ini sebenarnya inti lesson.
Kita sudah belajar:
0..5
menghasilkan urutan:
0 1 2 3 4 5
Kemudian for mengambil nilai tersebut satu per satu.
for (i in 0..5) {
println(i)
}
Secara mental:
range: 0..5
0 → i → jalankan body
1 → i → jalankan body
2 → i → jalankan body
3 → i → jalankan body
4 → i → jalankan body
5 → i → jalankan body
Jadi:
Range menentukan “nilai apa saja”.
formenentukan “lakukan sesuatu untuk setiap nilai tersebut”.
Ini konsep yang sangat penting.
4. Contoh paling sederhana
for (i in 1..5) {
println(i)
}
Mari kita jalankan secara manual.
Iterasi 1
i = 1
Jalankan:
println(i)
Output:
1
Iterasi 2
i = 2
Output:
2
Iterasi 3
i = 3
Output:
3
Iterasi 4
i = 4
Output:
4
Iterasi 5
i = 5
Output:
5
Selesai.
5. Berapa kali loop dijalankan?
Ini juga penting.
Kalau:
for (i in 1..10) {
println(i)
}
range-nya:
1, 2, 3, 4, 5, 6, 7, 8, 9, 10
Ada 10 nilai.
Maka body:
println(i)
dijalankan 10 kali.
Jadi:
range memiliki 10 nilai
↓
for mengambil 10 nilai
↓
body dijalankan 10 kali
6. Sekarang masuk ke contoh sum
Ini bagian utama dari latihan video.
Kita ingin menghitung:
1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10
Secara matematika hasilnya:
55
Bagaimana caranya dengan for?
Kode:
var sum = 0
for (i in 1..10) {
sum = sum + i
}
Ini sangat penting untuk dipahami.
7. Kenapa sum harus var?
Kita menulis:
var sum = 0
bukan:
val sum = 0
Karena nilai sum akan terus berubah.
Awalnya:
sum = 0
Kemudian:
sum = 1
Kemudian:
sum = 3
Kemudian:
sum = 6
dan seterusnya.
Karena nilainya di-update, kita membutuhkan var.
8. Bagaimana proses sum = sum + i?
Ini bagian yang paling penting dari contoh.
Kode:
sum = sum + i
artinya:
Ambil nilai
sumyang lama, tambahkani, kemudian simpan hasilnya kembali kesum.
Misalnya:
sum = 10
i = 4
Maka:
sum = sum + i
= 10 + 4
= 14
Setelah itu:
sum = 14
Jadi sum berfungsi seperti wadah yang terus menyimpan hasil sementara.
9. Mari jalankan loop satu per satu
Kode:
var sum = 0
for (i in 1..10) {
sum = sum + i
println(sum)
}
Sekarang kita lihat tabelnya.
| Iterasi | i | sum sebelumnya | Perhitungan | sum baru |
|---|---|---|---|---|
| 1 | 1 | 0 | 0 + 1 | 1 |
| 2 | 2 | 1 | 1 + 2 | 3 |
| 3 | 3 | 3 | 3 + 3 | 6 |
| 4 | 4 | 6 | 6 + 4 | 10 |
| 5 | 5 | 10 | 10 + 5 | 15 |
| 6 | 6 | 15 | 15 + 6 | 21 |
| 7 | 7 | 21 | 21 + 7 | 28 |
| 8 | 8 | 28 | 28 + 8 | 36 |
| 9 | 9 | 36 | 36 + 9 | 45 |
| 10 | 10 | 45 | 45 + 10 | 55 |
Maka output:
1
3
6
10
15
21
28
36
45
55
10. Kenapa hasilnya bukan langsung 55?
Ini sering membingungkan ketika pertama belajar.
Program tidak langsung menghitung:
1 + 2 + 3 + ... + 10
sekaligus.
Program melakukannya bertahap.
Awalnya:
sum = 0
Putaran pertama
i = 1
sum = 0 + 1
sum = 1
Putaran kedua
i = 2
sum = 1 + 2
sum = 3
Putaran ketiga
i = 3
sum = 3 + 3
sum = 6
Putaran keempat
i = 4
sum = 6 + 4
sum = 10
Dan seterusnya.
Jadi sum selalu membawa hasil dari putaran sebelumnya.
11. Visualisasi sum
Bayangkan sum seperti sebuah celengan.
Awalnya:
Celengan = 0
Masukkan angka 1:
0 + 1 = 1
Celengan sekarang:
1
Masukkan angka 2:
1 + 2 = 3
Celengan:
3
Masukkan angka 3:
3 + 3 = 6
Celengan:
6
Masukkan angka 4:
6 + 4 = 10
Dan terus begitu sampai:
45 + 10 = 55
Jadi:
sumadalah accumulator — variabel yang mengumpulkan hasil sedikit demi sedikit.
Istilah accumulator ini akan sering kamu temui dalam pemrograman.
12. i tidak perlu dibuat sebelumnya
Perhatikan kode:
for (i in 1..10) {
sum = sum + i
}
Kita tidak menulis:
var i = 1
Kotlin otomatis membuat i sebagai variabel loop.
Jadi i akan mendapatkan:
1
2
3
4
5
6
7
8
9
10
satu per satu.
Ini salah satu perbedaan besar dibanding pola while yang sebelumnya kita pelajari.
13. Bandingkan dengan while
Untuk mendapatkan angka 1 sampai 10 dengan while:
var i = 1
while (i <= 10) {
println(i)
i++
}
Kita harus mengurus sendiri:
i = 1
kemudian:
i <= 10
kemudian:
i++
Dengan for:
for (i in 1..10) {
println(i)
}
lebih ringkas.
Kita cukup menentukan:
i berada dalam 1..10
14. Perbedaan konsep while dan for
while
Lebih fokus pada:
“Selama kondisi ini benar, terus lakukan.”
Contoh:
while (balance > 0) {
// lakukan sesuatu
}
Kita mungkin tidak tahu dengan pasti berapa kali loop akan berjalan.
for
Lebih fokus pada:
“Untuk setiap nilai dalam kumpulan/range ini, lakukan sesuatu.”
Contoh:
for (i in 1..10) {
println(i)
}
Kita sudah tahu range yang akan dilewati.
15. for dengan range yang berbeda
Karena for menggunakan range, semua yang kita pelajari sebelumnya bisa digunakan.
Closed range
for (i in 1..5) {
println(i)
}
Hasil:
1
2
3
4
5
Half-open range
for (i in 1 until 5) {
println(i)
}
Hasil:
1
2
3
4
Angka 5 tidak termasuk.
Decreasing range
for (i in 5 downTo 1) {
println(i)
}
Hasil:
5
4
3
2
1
Jadi materi range sebelumnya memang langsung dipakai di for.
16. += sebagai versi singkat
Di akhir video ada bagian penting:
sum = sum + i
bisa ditulis:
sum += i
Keduanya memiliki efek yang sama.
Bentuk panjang
sum = sum + i
Bentuk singkat
sum += i
Cara membacanya:
“Tambahkan
ikesum.”
Contoh:
sum = 10
i = 5
sum += i
hasilnya:
sum = 15
17. Operator assignment seperti +=
Selain +=, nanti kamu akan sering melihat:
x += 5
x -= 5
x *= 5
x /= 5
Misalnya:
x += 5
sama dengan:
x = x + 5
Dan:
x -= 5
sama dengan:
x = x - 5
Untuk lesson ini, yang paling penting adalah:
sum += i
18. Versi program yang lebih rapi
Program lengkapnya bisa kita tulis:
fun main() {
var sum = 0
for (i in 1..10) {
sum += i
println(sum)
}
}
Output:
1
3
6
10
15
21
28
36
45
55
Kalau kita hanya ingin menampilkan hasil akhirnya, jangan println() di dalam loop:
fun main() {
var sum = 0
for (i in 1..10) {
sum += i
}
println(sum)
}
Output:
55
Perbedaannya:
println di dalam loop
for (...) {
sum += i
println(sum)
}
→ melihat perkembangan sum pada setiap iterasi.
println setelah loop
for (...) {
sum += i
}
println(sum)
→ hanya melihat hasil final.
19. Satu hal yang perlu diluruskan dari subtitle
Video beberapa kali menyebut i sebagai constant.
Untuk pemahaman yang lebih tepat, sebaiknya jangan menganggapnya seperti:
val i = ...
yang kita deklarasikan sendiri.
i adalah loop variable yang nilainya tersedia pada setiap iterasi.
Contoh:
for (i in 1..5) {
println(i)
}
Kita tidak perlu menulis:
val i = 1
dan tidak perlu:
var i = 1
for yang mengatur proses iterasinya.
20. Ada juga sedikit ketidakkonsistenan di subtitle
Video mengatakan:
“sum of numbers from 0 to 10”
Tetapi kode yang dibuat adalah:
for (i in 1..10)
Jadi sebenarnya program tersebut menghitung:
1 + 2 + 3 + ... + 10
bukan:
0 + 1 + 2 + ... + 10
Namun hasilnya tetap 55, karena:
0 + 1 + 2 + ... + 10 = 55
dan:
1 + 2 + ... + 10 = 55
Menambahkan 0 tidak mengubah hasil.
21. Cara membaca for dengan bahasa manusia
Setiap kali melihat:
for (i in 1..10) {
// code
}
jangan membacanya sebagai simbol-simbol aneh.
Baca saja:
“Untuk setiap
idari 1 sampai 10, jalankan code.”
Misalnya:
for (i in 1..5) {
println("Hello $i")
}
Artinya:
Untuk setiap angka 1 sampai 5, cetak Hello dan angka tersebut.
Output:
Hello 1
Hello 2
Hello 3
Hello 4
Hello 5
22. Hubungkan dengan semua materi sebelumnya
Sekarang konsep yang sudah kamu pelajari mulai saling tersambung:
Range
↓
1..10
↓
for
↓
i = 1
↓
jalankan body
↓
i = 2
↓
jalankan body
↓
i = 3
↓
...
↓
i = 10
↓
selesai
Sedangkan pada contoh sum:
i = 1
sum = 0
↓
sum += 1
↓
sum = 1
i = 2
↓
sum += 2
↓
sum = 3
i = 3
↓
sum += 3
↓
sum = 6
...
↓
i = 10
↓
sum = 55
Jadi ada dua konsep berbeda:
i
↓
nilai yang sedang diproses
dan:
sum
↓
hasil yang dikumpulkan dari iterasi sebelumnya
23. Mental model paling penting
Bayangkan for seperti seseorang yang berjalan melewati deretan angka:
1 → 2 → 3 → 4 → 5
Kamu berkata:
“Untuk setiap angka yang kamu temui, lakukan ini.”
for (i in 1..5) {
println(i)
}
Orang tersebut berjalan:
i = 1 → println
i = 2 → println
i = 3 → println
i = 4 → println
i = 5 → println
Setelah angka terakhir:
5
↓
selesai
24. Ringkasan lesson
Yang perlu benar-benar kamu pahami dari lesson ini:
1. for digunakan untuk melakukan loop
for (...) {
// code
}
2. Pola utamanya
for (i in range) {
// code
}
Artinya:
Untuk setiap
idalamrange, jalankan code.
3. Range bisa digunakan langsung
1..10
1 until 10
10 downTo 1
4. Loop variable dibuat oleh for
for (i in 1..10)
i akan menjadi:
1 → 2 → 3 → ... → 10
5. sum adalah accumulator
var sum = 0
for (i in 1..10) {
sum += i
}
Hasil akhir:
55
6. += adalah bentuk singkat
sum += i
sama dengan:
sum = sum + i
🔑 Inti paling penting
Kalau while sebelumnya kamu pahami sebagai:
“Selama kondisi benar, ulangi.”
Maka for sekarang pahami sebagai:
“Untuk setiap nilai yang ada di dalam range/kumpulan, lakukan sesuatu.”
Contoh paling dasar:
for (i in 1..5) {
println(i)
}
Mental modelnya:
1 → lakukan
2 → lakukan
3 → lakukan
4 → lakukan
5 → lakukan
↓
selesai
Dan contoh sum mengajarkan pola yang sangat penting dalam programming:
nilai saat ini
↓
diproses
↓
hasil dikumpulkan ke accumulator
↓
nilai berikutnya
↓
diproses lagi
↓
hasil diperbarui
Pola loop + accumulator seperti sum += i akan sering sekali muncul ketika nanti kamu mengolah data, menghitung total, mencari nilai tertentu, menghitung jumlah item, dan sebagainya.