Python - Nested Loops (Indonesia)

Halo, pemrogram aspiran! Hari ini, kita akan memasuki dunia yang menarik dari loop bersarang di Python. Sebagai guru komputer ramah lingkunganmu, saya sangat senang untuk mengajarkan kamu pada perjalanan ini. Percayalah, pada akhir pelajaran ini, kamu akan melakukan looping seperti seorang profesional!

Python - Nested Loops

Apa itu Nested Loops?

Sebelum kita melompat ke ujung yang dalam, mari kita mulai dengan dasar-dasar. Bayangkan jika kamu sedang mengorganisir rak pakaianmu. Kamu melalui setiap rak (itu adalah satu loop), dan untuk setiap rak, kamu mengurutkan semua item di atasnya (itu adalah loop lain di dalam loop pertama). Itulah esensi dari apa itu loop bersarang dalam pemrograman – loop di dalam loop!

Python Nested for Loop

Mari kita mulai dengan for loop, yang seperti seorang teman lama yang dapat dipercaya di dunia Python.

Struktur Dasar

Inilah struktur umum dari loop bersarang for:

for outer_variable in outer_sequence:
# Badan loop luar
for inner_variable in inner_sequence:
# Badan loop dalam

Contoh Sederhana: Tabel Perkalian

Mari kita buat tabel perkalian sederhana untuk memahami ini lebih baik:

for i in range(1, 6):
for j in range(1, 6):
print(f"{i} x {j} = {i*j}", end="\t")
print()  # Pindah ke baris berikutnya setelah setiap baris

Kode ini akan menghasilkan:

1 x 1 = 1    1 x 2 = 2    1 x 3 = 3    1 x 4 = 4    1 x 5 = 5
2 x 1 = 2    2 x 2 = 4    2 x 3 = 6    2 x 4 = 8    2 x 5 = 10
3 x 1 = 3    3 x 2 = 6    3 x 3 = 9    3 x 4 = 12   3 x 5 = 15
4 x 1 = 4    4 x 2 = 8    4 x 3 = 12   4 x 4 = 16   4 x 5 = 20
5 x 1 = 5    5 x 2 = 10   5 x 3 = 15   5 x 4 = 20   5 x 5 = 25

Ayo kita pecahkan:

  1. Loop luar (for i in range(1, 6)) berjalan 5 kali, mewakili baris.
  2. Untuk setiap iterasi loop luar, loop dalam (for j in range(1, 6)) berjalan 5 kali, mewakili kolom.
  3. Kami mencetak setiap hasil perkalian, menggunakan end="\t" untuk menambahkan spasi tab bukannya baris baru.
  4. Setelah setiap baris (iterasi loop luar), kami mencetak baris kosong untuk pindah ke baris berikutnya.

Contoh Dunia Nyata: Susunan Kursi

Bayangkan jika kamu adalah seorang guru (seperti saya!) yang mengatur kursi untuk kelas. Mari kita buat peta kursi:

students = ["Alice", "Bob", "Charlie", "David", "Eve"]
rows = 3
seats_per_row = 2

seat_number = 0
for row in range(1, rows + 1):
print(f"Baris {row}:")
for seat in range(1, seats_per_row + 1):
if seat_number < len(students):
print(f"  Kursi {seat}: {students[seat_number]}")
seat_number += 1
else:
print(f"  Kursi {seat}: Kosong")
print()  # Baris kosong antara baris

Ini akan menghasilkan:

Baris 1:
Kursi 1: Alice
Kursi 2: Bob

Baris 2:
Kursi 1: Charlie
Kursi 2: David

Baris 3:
Kursi 1: Eve
Kursi 2: Kosong

Dalam contoh ini:

  1. Loop luar mengulangi setiap baris.
  2. Loop dalam menetapkan siswa ke kursi di setiap baris.
  3. Kami menggunakan variabel seat_number untuk melacak siswa yang akan kita tetapkan berikutnya.
  4. Jika kita kehabisan siswa, kita tandai kursi yang tersisa sebagai "Kosong".

Python Nested while Loop

Sekarang, mari kita kenal dengan sepupu while loop – loop bersarang while. Ini seperti pengawal yang pantas yang terus memeriksa kondisi.

Struktur Dasar

Inilah bagaimana loop bersarang while biasanya terlihat:

while outer_condition:
# Badan loop luar
while inner_condition:
# Badan loop dalam

Contoh: Piramida Angka

Mari kita buat piramida angka untuk melihat loop bersarang while dalam aksi:

row = 1
while row <= 5:
col = 1
while col <= row:
print(col, end=" ")
col += 1
print()  # Pindah ke baris berikutnya
row += 1

Ini akan menghasilkan:

1
1 2
1 2 3
1 2 3 4
1 2 3 4 5

Ayo kita pecahkan:

  1. Loop while luar mengontrol jumlah baris (1 sampai 5).
  2. Untuk setiap baris, loop while dalam mencetak angka dari 1 sampai nomor baris saat ini.
  3. Kami menambahkan col di dalam loop dalam dan row di dalam loop luar.

Contoh Dunia Nyata: Pemeriksaan Inventori

Bayangkan jika kamu adalah seorang manajer toko kecil. Kamu perlu memeriksa inventori kamu secara teratur. Mari kita simulasi ini dengan loop bersarang while:

inventory = {
"apel": 50,
"pisang": 30,
"jeruk": 40
}

days = 1
while days <= 3:  # Pemeriksaan selama 3 hari
print(f"Hari {days} Pemeriksaan Inventori:")
for fruit, quantity in inventory.items():
while quantity > 0:
print(f"Memeriksa {fruit}...")
quantity -= 10  # Simulasikan menjual 10 unit setiap pemeriksaan
if quantity <= 20:
print(f"Peringatan stok rendah untuk {fruit}! Hanya {quantity} lagi.")
break  # Hentikan pemeriksaan buah ini jika stok rendah
inventory[fruit] = quantity  # Perbarui inventori
print(f"Inventori Akhir Hari {days}: {inventory}\n")
days += 1

Ini akan menghasilkan sesuatu seperti:

Hari 1 Pemeriksaan Inventori:
Memeriksa apel...
Memeriksa apel...
Memeriksa apel...
Peringatan stok rendah untuk apel! Hanya 20 lagi.
Memeriksa pisang...
Peringatan stok rendah untuk pisang! Hanya 20 lagi.
Memeriksa jeruk...
Memeriksa jeruk...
Peringatan stok rendah untuk jeruk! Hanya 20 lagi.
Inventori Akhir Hari 1: {'apel': 20, 'pisang': 20, 'jeruk': 20}

Hari 2 Pemeriksaan Inventori:
Memeriksa apel...
Peringatan stok rendah untuk apel! Hanya 10 lagi.
Memeriksa pisang...
Peringatan stok rendah untuk pisang! Hanya 10 lagi.
Memeriksa jeruk...
Peringatan stok rendah untuk jeruk! Hanya 10 lagi.
Inventori Akhir Hari 2: {'apel': 10, 'pisang': 10, 'jeruk': 10}

Hari 3 Pemeriksaan Inventori:
Memeriksa apel...
Peringatan stok rendah untuk apel! Hanya 0 lagi.
Memeriksa pisang...
Peringatan stok rendah untuk pisang! Hanya 0 lagi.
Memeriksa jeruk...
Peringatan stok rendah untuk jeruk! Hanya 0 lagi.
Inventori Akhir Hari 3: {'apel': 0, 'pisang': 0, 'jeruk': 0}

Dalam contoh ini:

  1. Loop while luar simulasi pemeriksaan inventori selama 3 hari.
  2. Kami menggunakan loop for untuk mengulangi setiap buah di inventori.
  3. Loop while dalam simulasi pemeriksaan dan menjual setiap buah sampai stok rendah atau habis.
  4. Kami menggunakan break untuk berhenti memeriksa buah jika jumlahnya turun ke 20 atau kurang.

Kesimpulan

Selamat! Kamu baru saja menguasai seni loop bersarang di Python. Ingat, loop bersarang adalah alat yang kuat, tapi gunakanlah dengan bijak. Mereka dapat membuat kode kamu berjalan lebih lambat jika tidak digunakan secara efisien.

Seperti semua konsep pemrograman, praktek membuat perfect. Cobalah membuat skenario loop bersarang kamu sendiri – mungkin setup papan catur, atau jadwal sekolah mingguan. Kemungkinan itu tak terbatas!

Teruskan coding, teruskan belajar, dan yang paling penting, nikmati prosesnya! Sampai jumpa lagi, ini adalah guru komputer ramah lingkunganmu yang menandatangani off. Selamat looping!

Credits: Image by storyset