Masukkan Password
21 The Complete Kotlin Course #20 - Breaking from loop- Kotlin Tutorials for Beginners
Di bagian ini kamu belajar konsep break, yaitu cara untuk menghentikan loop lebih awal, bahkan ketika kondisi loop sebenarnya masih true.
Ini sangat berkaitan dengan materi sebelumnya tentang while, terutama infinite loop.
1. Apa itu break?
break adalah keyword Kotlin yang digunakan untuk:
langsung keluar dari loop yang sedang dijalankan.
Contoh sederhana:
while (true) {
println("Hello")
break
}
Walaupun:
while (true)
selalu true, loop tetap berhenti karena ada:
break
Urutannya:
while (true)
↓
jalankan loop
↓
println("Hello")
↓
break
↓
KELUAR DARI LOOP
↓
lanjut ke kode setelah loop
Output:
Hello
2. Kenapa break dibutuhkan?
Ingat materi sebelumnya.
Kita bisa membuat:
while (true) {
println("Hello")
}
Masalahnya:
true
↓
jalankan
↓
true
↓
jalankan
↓
true
↓
jalankan
↓
...
Karena kondisinya selalu true, loop tidak punya alasan untuk berhenti.
Ini disebut:
infinite loop — loop yang tidak berhenti.
Nah, break bisa menjadi jalan keluar darurat:
while (true) {
// lakukan sesuatu
if (condition) {
break
}
}
Artinya:
“Loop ini memang selalu aktif, tetapi kalau kondisi tertentu terpenuhi, keluar dari loop.”
3. Bentuk umum break
Biasanya break digunakan bersama if:
while (true) {
// kode
if (condition) {
break
}
// kode lainnya
}
Pola pikirnya:
while (true)
↓
jalankan kode
↓
apakah kondisi berhenti terpenuhi?
↓
┌───┴───┐
yes no
↓ ↓
break lanjut
↓ ↓
keluar loop lagi
Ini sangat umum dalam pemrograman.
4. Contoh dari video
Video menggunakan pola seperti ini:
var x = 1
while (true) {
x = x + x + 1
println(x)
if (x >= 100) {
break
}
}
println("I am outside the loop")
Mari kita bedah satu per satu.
5. var x = 1
var x = 1
Kita mulai dengan:
x = 1
Kenapa var?
Karena nilai x akan berubah:
1 → 3 → 7 → 15 → ...
Seperti yang sudah kita pelajari sebelumnya.
6. while (true)
Kemudian:
while (true) {
Ini berarti:
Jalankan loop terus-menerus karena kondisinya selalu
true.
Tidak ada kemungkinan kondisi while sendiri menjadi false.
Jadi kalau hanya:
while (true) {
...
}
maka kita memerlukan sesuatu seperti break untuk keluar.
7. Perhitungan x
Di dalam loop:
x = x + x + 1
Ini adalah pola yang kita pelajari di video sebelumnya.
Awalnya:
x = 1
Maka:
1 + 1 + 1 = 3
Jadi:
x = 3
Kemudian iterasi berikutnya:
3 + 3 + 1 = 7
Kemudian:
7 + 7 + 1 = 15
Kemudian:
15 + 15 + 1 = 31
Kemudian:
31 + 31 + 1 = 63
Kemudian:
63 + 63 + 1 = 127
Sehingga:
1
↓
3
↓
7
↓
15
↓
31
↓
63
↓
127
8. Bagian penting: if (x >= 100)
Sekarang kita punya:
if (x >= 100) {
break
}
Ini sebenarnya menggabungkan dua materi yang sudah kita pelajari:
Comparison operator
x >= 100
menghasilkan:
true / false
if
if (x >= 100) {
...
}
menentukan apakah break akan dijalankan.
break
break
menghentikan loop.
Jadi rantainya:
x >= 100
↓
Boolean
↓
if
↓
true?
↓
break
↓
keluar dari loop
9. Mari kita jalankan satu per satu
Kode:
var x = 1
while (true) {
x = x + x + 1
println(x)
if (x >= 100) {
break
}
}
println("I am outside the loop")
Iterasi 1
Awalnya:
x = 1
Masuk while:
true
Hitung:
1 + 1 + 1 = 3
Sekarang:
x = 3
Print:
3
Cek:
3 >= 100
→ false
Jadi tidak break.
Iterasi 2
x = 3
Hitung:
3 + 3 + 1 = 7
Print:
7
Cek:
7 >= 100
→ false
Lanjut.
Iterasi 3
7 + 7 + 1 = 15
Print:
15
Cek:
15 >= 100
→ false
Iterasi berikutnya
15 → 31
31 → 63
63 → 127
Output sementara:
3
7
15
31
63
127
Ketika x menjadi 127, kita cek:
127 >= 100
Hasil:
true
Maka:
break
dijalankan.
10. Apa yang terjadi setelah break?
Ini penting.
Misalnya:
while (true) {
println("Inside")
break
}
println("Outside")
Ketika break dijalankan:
Inside
↓
break
↓
keluar dari while
↓
Outside
Output:
Inside
Outside
Jadi break tidak menghentikan seluruh program.
break hanya menghentikan loop tempat dia berada.
Setelah keluar dari loop, program melanjutkan kode berikutnya.
11. break bukan return
Ini perbedaan yang penting untuk nanti.
break
Keluar dari loop.
while (true) {
break
}
println("Program masih lanjut")
Setelah break, kode setelah loop masih dijalankan.
return
return digunakan untuk keluar dari fungsi.
Contohnya nanti kamu akan belajar:
fun test() {
return
}
return dapat menghentikan eksekusi fungsi tersebut.
Untuk sekarang cukup ingat:
break → keluar dari loop
return → keluar dari function
12. Kenapa tidak menggunakan kondisi while saja?
Pertanyaan bagus.
Daripada:
while (true) {
x = x + x + 1
if (x >= 100) {
break
}
}
kita mungkin bisa menulis:
while (x < 100) {
x = x + x + 1
}
Ini memang lebih sederhana untuk kasus tertentu.
Tetapi hasil akhirnya bisa sedikit berbeda tergantung kapan kondisi diperiksa dan apa yang ingin kita lakukan di dalam loop.
Misalnya:
while (x < 100) {
x = x + x + 1
println(x)
}
Ketika x = 63, kondisi:
63 < 100 → true
maka kita masuk.
Kemudian:
63 + 63 + 1 = 127
dan mencetak 127.
Jadi output tetap:
3
7
15
31
63
127
Ini menunjukkan bahwa ada beberapa cara untuk mencapai hasil yang sama.
13. Pesan penting dari video: satu masalah bisa punya banyak solusi
Instruktur mengatakan sesuatu yang sangat penting:
Dalam programming, sering kali ada banyak cara untuk mendapatkan hasil yang sama.
Misalnya:
Cara 1 — kondisi di while
while (x < 100) {
x = x + x + 1
println(x)
}
Cara 2 — while (true) + break
while (true) {
x = x + x + 1
println(x)
if (x >= 100) {
break
}
}
Keduanya bisa menghasilkan output yang sama.
Jadi pertanyaannya bukan hanya:
“Apakah kode ini bisa bekerja?”
Tetapi juga:
“Apakah kode ini mudah dibaca dan maksudnya mudah dipahami?”
14. Readability
Instruktur menyebut:
choose the method that’s easy to read and conveys your intent
Artinya:
Pilih cara yang mudah dibaca dan paling jelas menunjukkan maksud program.
Misalnya kita ingin:
“Selama
xmasih kurang dari 100, terus lakukan.”
Maka:
while (x < 100) {
...
}
sangat jelas.
Orang yang membaca langsung tahu:
“Oh, loop ini berlangsung selama
x < 100.”
Sedangkan:
while (true) {
...
if (x >= 100) {
break
}
}
memerlukan sedikit lebih banyak proses berpikir:
“Oh, loop-nya selalu true, tetapi ternyata ada kondisi internal yang menghentikannya.”
Bukan berarti cara kedua salah.
Hanya saja, gunakan cara yang paling jelas untuk konteksnya.
15. Kapan break sangat berguna?
Ada banyak situasi di mana break justru sangat berguna.
Contohnya kita mencari angka tertentu:
var number = 1
while (number <= 100) {
if (number == 50) {
break
}
println(number)
number++
}
Program akan berhenti ketika menemukan:
number == 50
Jadi tidak perlu melanjutkan sampai 100.
Konsepnya:
1
2
3
...
49
50 ditemukan
↓
break
↓
STOP
Ini contoh penggunaan break yang sangat masuk akal.
16. Contoh pencarian
Bayangkan kita mencari sebuah nama dalam daftar.
Konsep sederhananya:
while (masihAdaData) {
if (dataDitemukan) {
break
}
lanjutKeDataBerikutnya()
}
Begitu data ditemukan:
data ditemukan
↓
break
↓
tidak perlu mencari lagi
Jadi break berguna ketika:
kita sudah mendapatkan apa yang kita cari dan tidak perlu melanjutkan loop.
17. break bisa berada di dalam if
Ini pola yang sangat umum:
while (condition) {
if (stopCondition) {
break
}
}
Baca dengan bahasa manusia:
“Selama kondisi utama masih benar, lakukan loop. Tetapi kalau kondisi berhenti terpenuhi, keluar dari loop.”
Misalnya:
while (number <= 100) {
if (number == 50) {
break
}
number++
}
18. break dan infinite loop
Sekarang kita bisa memahami hubungan keduanya.
Infinite loop tanpa break
while (true) {
println("Hello")
}
true
↓
jalan
↓
true
↓
jalan
↓
true
↓
jalan
↓
...
Tidak ada jalan keluar.
Infinite loop dengan break
while (true) {
println("Hello")
if (someCondition) {
break
}
}
Sekarang:
true
↓
jalan
↓
cek kondisi
↓
false → ulang
↓
false → ulang
↓
true
↓
break
↓
STOP
Jadi:
while (true)tidak otomatis berarti kode salah.
Ia bisa digunakan dengan sengaja jika ada mekanisme keluar seperti break.
19. Jangan menganggap while(true) selalu buruk
Pemula kadang melihat:
while (true)
dan langsung berpikir:
“Ini pasti error.”
Tidak selalu.
Contohnya pola menu:
while (true) {
showMenu()
if (userWantsToExit) {
break
}
}
Ini bisa sangat masuk akal.
Program sengaja mengatakan:
“Terus jalankan menu sampai user memilih keluar.”
Namun tetap harus ada jalan keluar yang jelas.
20. Hubungan dengan materi sebelumnya
Sekarang kita sudah memiliki rangkaian konsep yang semakin lengkap.
Variable
var x = 1
↓
Comparison
x >= 100
↓
Boolean
true / false
↓
if
if (x >= 100) {
...
}
↓
break
break
↓
keluar dari loop
Jadi contoh video:
var x = 1
while (true) {
x = x + x + 1
println(x)
if (x >= 100) {
break
}
}
sebenarnya menggabungkan hampir semua materi sebelumnya.
21. Bedakan tiga konsep ini
Ini sangat penting untuk perjalanan belajar Kotlin kamu.
if
if (condition) {
...
}
Memilih apakah kode dijalankan.
Kalau kondisi benar → jalankan.
while
while (condition) {
...
}
Mengulang selama kondisi benar.
Selama kondisi benar → terus jalankan.
break
break
Menghentikan loop sekarang juga.
Tidak peduli kondisi loop masih
true, keluar dari loop.
22. Visualisasi lengkap
Bayangkan kode:
while (true) {
// kode A
if (condition) {
break
}
// kode B
}
Alurnya:
START
↓
while(true)
↓
kode A
↓
condition true?
↙ ↘
YES NO
↓ ↓
break kode B
↓ ↓
keluar │
loop │
↓ │
kode setelah │
loop │
│
└──→ kembali ke while
Perhatikan sesuatu yang menarik:
Kalau condition true, kode B tidak dijalankan, karena langsung break.
Ini yang dimaksud “break immediately stops the execution of the loop.”
23. Kesalahan pemahaman yang perlu dihindari
❌ Salah:
“
breakmembuat program berhenti.”
Lebih tepat:
breakmembuat loop berhenti.
Program masih bisa melanjutkan:
while (true) {
break
}
println("Program masih berjalan")
Output:
Program masih berjalan
❌ Salah:
“
while(true)pasti error.”
Tidak.
while(true) bisa digunakan dengan break.
❌ Salah:
“Kalau ada
break, semua kode setelahnya tidak dijalankan.”
Yang benar:
break keluar dari loop, kemudian kode setelah loop tetap dijalankan.
24. Yang perlu diluruskan dari subtitle
Ada beberapa bagian subtitle yang kurang tepat.
1. “memory leaks”
Video menyebut infinite loop mungkin menyebabkan “memory leaks”.
Ini perlu diluruskan.
Infinite loop tidak otomatis berarti memory leak.
Infinite loop berarti program terus melakukan perulangan tanpa berhenti.
Namun infinite loop bisa menyebabkan masalah seperti:
- CPU usage tinggi,
- program menjadi tidak responsif,
- baterai cepat habis,
- resource terus digunakan,
- dan dalam kondisi tertentu bisa berkontribusi pada masalah memory/resource jika setiap iterasi terus mengalokasikan sesuatu.
Tetapi infinite loop ≠ memory leak.
Memory leak adalah masalah berbeda: memory yang sudah tidak dibutuhkan tetapi masih tertahan sehingga tidak bisa digunakan kembali sebagaimana mestinya.
2. “break outside the loop”
Maksudnya bukan break berada di luar loop.
Justru:
while (true) {
if (condition) {
break
}
}
break berada di dalam loop, tetapi efeknya adalah keluar dari loop.
3. Pilihan while vs break
Tidak ada aturan:
“
breakselalu lebih baik daripada kondisiwhile.”
Tidak.
Pilih berdasarkan kejelasan maksud program.
Kalau kondisi berhenti memang sederhana:
while (x < 100) {
...
}
biasanya sangat jelas.
Kalau loop perlu terus berjalan dan ada kondisi tertentu yang membuat kita ingin keluar di tengah proses:
while (true) {
...
if (found) {
break
}
}
break bisa menjadi pilihan yang bagus.
25. Contoh latihan untuk memahami break
Coba baca kode ini tanpa menjalankannya:
var number = 1
while (true) {
println(number)
if (number == 5) {
break
}
number++
}
println("Selesai")
Apa outputnya?
Jawabannya:
1
2
3
4
5
Selesai
Kenapa 6 tidak muncul?
Karena ketika:
number == 5
menjadi true:
break
langsung dijalankan.
number++ bahkan tidak sempat dijalankan.
26. Inti pelajaran hari ini 🧠
Kalau hanya mengingat satu hal, ingat:
break= keluar dari loop sekarang juga.
Syntax:
break
Biasanya digunakan seperti:
while (true) {
// kode
if (condition) {
break
}
}
Mental model:
LOOP
↓
jalankan kode
↓
perlu berhenti?
├── NO → lanjut loop
└── YES → break
↓
keluar dari loop
↓
lanjut kode setelah loop
Dan hubungkan dengan materi sebelumnya:
var
↓
comparison
↓
Boolean
↓
if
↓
break
↓
keluar dari loop
Jadi sekarang kamu sudah punya tiga alat penting untuk mengontrol perulangan:
while
→ "selama kondisi true, ulangi"
do...while
→ "jalankan dulu, lalu cek apakah perlu mengulang"
break
→ "berhenti dari loop sekarang"
Ini adalah fondasi yang sangat penting sebelum nanti masuk ke konsep loop lainnya seperti for, range, dan kemungkinan continue.