C++ & Python

Looping Lanjutan

Break dan Continue

Memahami cara mengontrol alur perulangan dengan break dan continue dalam C++ dan Python

Break Continue Loop

Agenda

Daftar Materi

01

Review Perulangan

Sekilas for dan while

02

Break

Menghentikan loop secara paksa

03

Continue

Melompati iterasi tertentu

04

Break vs Continue

Perbandingan perilaku

05

Latihan & Tugas Kelompok

Soal literasi & numerasi C4–C6

01

Review Perulangan

Mengingat kembali struktur for dan while sebelum mempelajari break dan continue.

For Loop

Perulangan dengan jumlah iterasi tertentu. Digunakan saat kita tahu berapa kali loop harus berjalan.

for
// C++
for (int i = 1; i <= 5; i++) {
    cout << i << " ";
}

# Python
for i in range(1, 6):
    print(i, end=" ")

While Loop

Perulangan yang berjalan selama kondisi true. Digunakan saat jumlah iterasi tidak diketahui di awal.

while
// C++
int i = 1;
while (i <= 5) {
    cout << i << " ";
    i++;
}

# Python
i = 1
while i <= 5:
    print(i, end=" ")
    i += 1

Tip: Pada pertemuan sebelumnya kita belajar for dan while. Sekarang kita akan belajar cara mengontrol loop lebih detail dengan break dan continue.

02

Konsep Break

Menghentikan loop secara paksa dan segera

Apa itu Break?

Break menghentikan loop secara paksa dan segera, tanpa menunggu kondisi menjadi false. Program melanjutkan ke baris setelah loop.

┌─ loop {
│  ... kode ...
│  if (kondisi) break;
│  ... kode ini diabaikan ...
└─ }
→ keluar loop

Analogi: Ibarat sedang makan di rumah makan Padang — kamu pesan nasi kapau dan mengambil lauk satu per satu. Begitu kamu melihat rendang habis, kamu langsung berhenti mengambil lauk (break) dan pergi ke kasir.

C++
break_demo.cpp
for (int i = 1; i <= 10; i++) {
    if (i == 5) break;
    cout << i << " ";
}
// Output: 1 2 3 4
Python
break_demo.py
for i in range(1, 11):
    if i == 5:
        break
    print(i, end=" ")
# Output: 1 2 3 4
02

Break: Contoh Lanjutan

Pencarian & validasi — break sangat berguna di while loop

Contoh 1: Mencari bilangan pertama yang habis dibagi 7 (1–100)

find7.cpp
#include <iostream>
using namespace std;

int main() {
    for (int i = 1; i <= 100; i++) {
        if (i % 7 == 0) {
            cout << "Pertama: " << i;
            break;
        }
    }
    return 0;
}
// Output: Pertama: 7

Contoh 2: Program login — while + break

login.py
password_benar = "padang123"
percobaan = 0

while percobaan < 3:
    input_pw = input("Password: ")
    percobaan += 1
    if input_pw == password_benar:
        print("Login berhasil!")
        break
    else:
        print("Salah!")
else:
    print("3x salah. Akun dikunci.")

Break juga bekerja di while loop. Ketika break dieksekusi, program langsung keluar dari loop terdalam yang membungkusnya. Kode setelah loop akan dijalankan.

03

Konsep Continue

Melompati sisa kode dalam iterasi saat ini

Apa itu Continue?

Continue melompati sisa kode dalam iterasi saat ini dan langsung menuju iterasi berikutnya. Loop TIDAK berhenti, hanya iterasi ini yang di-skip.

┌─ loop {
│  ... kode ...
│  if (kondisi) continue;
│  ... kode ini di-skip ...
└─ } → lanjut iterasi berikutnya

Analogi: Ibarat guru sedang memeriksa PR siswa satu per satu. Jika PR siswa tidak dikumpulkan, guru skip (continue) siswa itu dan lanjut ke siswa berikutnya — pemeriksaan tidak berhenti total.

C++
continue_demo.cpp
for (int i = 1; i <= 10; i++) {
    if (i == 5) continue;
    cout << i << " ";
}
// Output: 1 2 3 4 6 7 8 9 10
Python
continue_demo.py
for i in range(1, 11):
    if i == 5:
        continue
    print(i, end=" ")
# Output: 1 2 3 4 6 7 8 9 10
03

Continue: Contoh Lanjutan

Menampilkan bilangan ganjil & skip data tidak valid

Contoh 1: Menampilkan hanya bilangan ganjil dari 1–20

ganjil.cpp
#include <iostream>
using namespace std;

int main() {
    for (int i = 1; i <= 20; i++) {
        if (i % 2 == 0) continue;
        cout << i << " ";
    }
    return 0;
}
// Output: 1 3 5 7 9 11 13 15 17 19

Contoh 2: Skip data tidak valid dalam input

validasi.py
data = [85, -1, 92, 0, 78, -5, 88]
total = 0
hitung = 0

for nilai in data:
    if nilai <= 0:
        print(f"Skip: {nilai} (tidak valid)")
        continue
    total += nilai
    hitung += 1

print(f"Rata-rata: {total/hitung:.1f}")
# Skip: -1 (tidak valid)
# Skip: 0 (tidak valid)
# Skip: -5 (tidak valid)
# Rata-rata: 85.8

Perhatikan posisi continue! Semua kode setelah continue dalam iterasi yang sama TIDAK akan dieksekusi. Pastikan update variabel loop (seperti i++ di while) diletakkan sebelum continue, agar tidak terjadi infinite loop.

04

Break vs Continue

Perbedaan mendasar antara dua keyword pengontrol loop

Break

Menghentikan loop SELURUHNYA. Program keluar dari loop. Digunakan saat sudah menemukan apa yang dicari atau kondisi khusus terpenuhi.

LOOP if(k) break; KELUAR!

❌ Loop berhenti total

❌ Iterasi berikutnya tidak jalan

✅ Program lanjut setelah loop

Continue

Melompati SATU iterasi saja. Loop tetap berjalan. Digunakan saat ingin melewatkan item tertentu tapi melanjutkan proses lainnya.

LOOP if(k) continue; SKIP

✅ Loop tetap berjalan

✅ Iterasi berikutnya tetap jalan

❌ Sisa kode iterasi ini di-skip

Key Insight: Break = "Sudah cukup, berhenti!" — Continue = "Ini saja yang diskip, lanjut!" Keduanya hanya memengaruhi loop terdalam jika ada nested loop.

05

Latihan Soal (C4–C6)

Konteks SMA Padang — Pengerjaan Kelompok

C4 — Menganalisis

Perhatikan kode berikut yang menampilkan menu kantin SMA Padang. Jika stok_mie = 0 dan pilihan = 2, apa output program? Gambarkan alur eksekusinya.

kantin.cpp
string menu[] = {"Nasi Padang", "Mie Goreng", "Es Teh"};
int stok[] = {5, 0, 10};
int pilihan = 2; // indeks ke-2 = Mie Goreng

for (int i = 0; i < 3; i++) {
    if (stok[i] == 0) {
        cout << menu[i] << " habis!" << endl;
        continue;
    }
    cout << menu[i] << " tersedia" << endl;
}
C5 — Mengevaluasi

Seorang siswa membuat program pencarian jurusan di Universitas Andalas menggunakan while loop dan break. Kode berjalan tapi selalu berhenti di iterasi pertama. Identifikasi bug dan jelaskan perbaikannya.

bug_search.py
jurusan = ["Kedokteran", "Teknik", "Hukum", "FMIPA"]
cari = "Teknik"
i = 0

while i < len(jurusan):
    if jurusan[i] == cari:
        print(f"Ditemukan: {cari}")
        break
    print(f"Mengecek {jurusan[i]}...")
    # BUG: i tidak pernah bertambah!
C6 — Mencipta

Buatlah simulasi antrian di Bank Nagari Padang menggunakan while loop. Fitur:

  • (a) Tampilkan nomor antrian
  • (b) Jika nasabah tidak hadir, gunakan continue untuk skip
  • (c) Jika antrian habis, gunakan break

Implementasikan dalam C++ DAN Python dengan flowchart.

Tugas

Tugas Kelompok

Buat flowchart & implementasi kode dengan break dan continue

Ketentuan Umum

≤ 3

Orang per kelompok

2

Bahasa (C++ & Python)

1

Flowchart (gambar)

Wajib break & continue

Pilih Satu Skenario (atau buat sendiri)

A

Simulasi antrian di KFC Padang — Tampilkan menu, skip item habis (continue), berhenti pesan jika uang habis (break)

B

Pencarian nilai tertinggi di kelas — Input nilai siswa satu per satu, skip nilai tidak valid (continue), berhenti jika input -999 (break)

C

Program peminjaman buku perpustakaan SMA — Tampilkan buku, skip yang dipinjam (continue), berhenti jika buku yang dicari ditemukan (break)

D

Buat skenario sendiri! — Syarat: relevan dengan kehidupan SMA Padang, wajib pakai break DAN continue

Yang Dikumpulkan

Flowchart

Gambar di kertas / digital

Kode C++

Sesuai flowchart

Kode Python

Sesuai flowchart

Tips: Buat flowchart terlebih dahulu sebelum menulis kode. Pastikan break dan continue masing-masing digunakan minimal sekali. Test kode dengan minimal 3 kombinasi input berbeda untuk membuktikan logika benar.