Python - Nested Loops

Halo, pemrogram yang beraspirasi! Hari ini, kita akan menyelam ke dalam dunia yang menarik tentang nested loops di Python. Sebagai guru komputer yang ramah di sekitar anda, saya sangat gembira untuk menjawabikimu melalui perjalanan ini. percayalah, pada akhir pelajaran ini, kamu akan berputar seperti seorang pro!

Python - Nested Loops

Apa itu Nested Loops?

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

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 nested for loop:

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

Contoh Sederhana: Tabel Perkalian

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

for i di range(1, 6):
for j di range(1, 6):
cetak(f"{i} x {j} = {i*j}", end="\t")
cetak()  # 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

Mari kita pecahkan ini:

  1. Loop luar (for i di range(1, 6)) berjalan 5 kali, mewakili baris.
  2. Untuk setiap iterasi loop luar, loop dalam (for j di range(1, 6)) berjalan 5 kali, mewakili kolom.
  3. Kita mencetak setiap hasil perkalian, menggunakan end="\t" untuk menambah spasi tab bukannya baris baru.
  4. Setelah setiap baris (iterasi loop luar), kita 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 tempat duduk:

murid = ["Alice", "Bob", "Charlie", "David", "Eve"]
baris = 3
kursi_per_baris = 2

nomor_kursi = 0
for row di range(1, baris + 1):
cetak(f"Baris {row}:")
for kursi di range(1, kursi_per_baris + 1):
jika seat_number < len(murid):
cetak(f"  Kursi {kursi}: {murid[nomor_kursi]}")
nomor_kursi += 1
else:
cetak(f"  Kursi {kursi}: Kosong")
cetak()  # 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 murid ke kursi di setiap baris.
  3. Kita menggunakan variabel nomor_kursi untuk melacak murid mana yang akan kita tetapkan berikutnya.
  4. Jika kita kehabisan murid, kita tandai kursi yang tersisa sebagai "Kosong".

Python Nested while Loop

Sekarang, mari kita bertemu dengan sepupu while loop – nested while loop. Itu seperti penjaga yang pantang menyerah yang terus memeriksa kondisi.

Struktur Dasar

Inilah cara nested while loop biasanya terlihat:

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

Contoh: Piramid Angka

Mari kita buat piramid angka untuk melihat nested while loops dalam aksi:

baris = 1
while baris <= 5:
kolom = 1
while kolom <= baris:
cetak(kolom, end=" ")
kolom += 1
cetak()  # Pindah ke baris berikutnya
baris += 1

Ini akan menghasilkan:

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

Mari kita pecahkan ini:

  1. Loop while luar mengontrol jumlah baris (1 sampai 5).
  2. Untuk setiap baris, loop while dalam mencetak angka dari 1 sampai angka baris saat ini.
  3. Kita menambah kolom di dalam loop dalam dan baris 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 nested while loops:

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

hari = 1
while hari <= 3:  # Periksa selama 3 hari
cetak(f"Hari {hari} Pemeriksaan Inventori:")
for buah, kuantitas di inventori.items():
while kuantitas > 0:
cetak(f"Memeriksa {buah}...")
kuantitas -= 10  # Simulasikan menjual 10 unit setiap pemeriksaan
jika kuantitas <= 20:
cetak(f"Peringatan stok rendah untuk {buah}! Hanya {kuantitas} lagi.")
break  # Hentikan pemeriksaan buah ini jika stok rendah
inventori[buah] = kuantitas  # Update inventori
cetak(f" Inventori Akhir Hari {hari}: {inventori}\n")
hari += 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. Kita 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. Kita menggunakan break untuk berhenti memeriksa buah jika kuantitasnya turun ke 20 atau kurang.

Kesimpulan

Selamat! Kamu baru saja menguasai seni nested loops di Python. Ingat, nested loops adalah alat yang kuat, tetapi gunakan mereka 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 nested loop kamu sendiri – mungkin pengaturan papan catur, atau jadwal sekolah mingguan. Kemungkinan itu tak terbatas!

Teruskan coding, teruskan belajar, dan yang paling penting, nikmati itu! Sampai jumpa lagi, ini adalah guru komputer ramah di sekitar kamu yang memberhentikan. Selamat berputar!

Credits: Image by storyset