Loop adalah pola pemrograman umum di Python. Dengan satu putaran, Anda dapat mengulangi kode tanpa upaya manual. Misalnya, Anda dapat menggunakan loop untuk mengulangi daftar nama dan mengurutkannya. Terkadang, Anda mungkin perlu menempatkan satu lingkaran di dalam lingkaran lain. Ini disebut loop bersarang dalam pemrograman
Meskipun tidak ada yang istimewa tentang loop bersarang, sebagai pemula, mereka mungkin tampak sedikit menakutkan atau bertele-tele
Ini adalah panduan komprehensif untuk loop bersarang di Python. Anda akan belajar cara membuat loop bersarang, keluar darinya, melompat di antara loop, dan banyak lagi. Semua teori didukung dengan contoh ilustratif yang bagus
Apa itu Nested Loop di Python?
Istilah "bersarang" umumnya digunakan dalam pemrograman
Menurut definisi, kata "bersarang" berarti memiliki objek yang ditempatkan di dalam objek lain yang sejenis
Di Python, Anda dapat menempatkan kode apa pun yang valid di dalam sebuah loop. Bahkan bisa menjadi loop lain
Sebuah loop yang hidup di dalam sebuah loop disebut loop bersarang. Perhatikan bahwa nested loop bukan hanya konsep Python. Loop bersarang ada di semua bahasa pemrograman lain, jadi istilah ini bagus untuk dipelajari
Bagaimana Cara Kerja Nested Loop di Python?
Tidak ada batasan berapa banyak loop yang dapat Anda tempatkan di dalam satu loop
Untuk mendemonstrasikan cara kerja loop bersarang, mari kita gambarkan loop bersarang dari dua loop. Loop luar dan loop dalam
Inilah yang terlihat seperti sintaks umum dari perulangan for bersarang
for element in sequence1: for element in sequence2: # inner loop body here # outer loop body hereSetiap iterasi dari loop luar menyebabkan loop dalam menjalankan semua iterasinya. Loop luar tidak berjalan sebelum loop dalam dihentikan
Untuk memperjelas. Loop bersarang bukan hanya untuk loop. Anda dapat menempatkan while loop di dalam while loop, while loop di dalam for loop, dan lainnya. Nested loop adalah loop yang memiliki setidaknya satu loop di dalamnya
Skenario tipikal untuk menggunakan loop bersarang adalah saat bekerja dengan data multidimensi, seperti daftar daftar atau semacamnya
Mari kita lihat beberapa contoh sederhana dari loop bersarang
Contoh 1. Bersarang Untuk Loop
Mari gunakan perulangan for bersarang untuk mencetak tabel perkalian dari 10 angka pertama
for i in range(1, 11): for j in range(1, 11): print(i * j, end=" ") print()_Keluaran
1 2 3 4 5 6 7 8 9 10 2 4 6 8 10 12 14 16 18 20 3 6 9 12 15 18 21 24 27 30 4 8 12 16 20 24 28 32 36 40 5 10 15 20 25 30 35 40 45 50 6 12 18 24 30 36 42 48 54 60 7 14 21 28 35 42 49 56 63 70 8 16 24 32 40 48 56 64 72 80 9 18 27 36 45 54 63 72 81 90 10 20 30 40 50 60 70 80 90 100Mari kita lihat lebih dekat bagaimana program ini bekerja
- Loop luar mengulangi angka dari 1 hingga 10 dan menyimpan angka saat ini dalam variabel sementara i. Jadi pada iterasi pertama, i = 1, pada iterasi kedua, i = 2, dan seterusnya
- Lingkaran dalam juga mengulangi angka dari 1 hingga 10. Loop bagian dalam menyimpan nomor iterasi saat ini dalam variabel j
- Untuk setiap satu iterasi loop luar, loop dalam akan berjalan seluruhnya, yaitu 10 kali
- Jadi misalnya, selama iterasi pertama dari loop luar, i = 1 sementara j berubah dari 1 menjadi 10. Selama iterasi kedua, i = 2, dan j berubah dari 1 menjadi 10 lagi, dan seterusnya
- Hasilnya adalah tabel perkalian di mana setiap angka 1…10 dikalikan dengan 1…10
Omong-omong, jika Anda ingin memformat perkalian dengan baik agar angkanya sejajar di setiap kolom, Anda dapat mengonversi hasil perkalian menjadi string dan menggunakan metode untuk memaksa lebar menjadi sama.
Begini tampilannya dalam kode
for i in range(1, 11): for j in range(1, 11): print(f"{i * j}".ljust(3), end=" ") print()Keluaran
1 2 3 4 5 6 7 8 9 10 2 4 6 8 10 12 14 16 18 20 3 6 9 12 15 18 21 24 27 30 4 8 12 16 20 24 28 32 36 40 5 10 15 20 25 30 35 40 45 50 6 12 18 24 30 36 42 48 54 60 7 14 21 28 35 42 49 56 63 70 8 16 24 32 40 48 56 64 72 80 9 18 27 36 45 54 63 72 81 90 10 20 30 40 50 60 70 80 90 100 _Contoh 2. Loop While Bersarang
Demi kelengkapan, mari ulangi contoh di atas dengan menggunakan perulangan while bersarang. Inti dari contoh ini adalah untuk menunjukkan bahwa Anda juga dapat menempatkan while loop di dalam yang lain
Ini kodenya
i = 1 j = 1 while i <= 10: while j <= 10: print(i * j, end = " ") j += 1 j = 1 print() i += 1Keluaran
1 2 3 4 5 6 7 8 9 10 2 4 6 8 10 12 14 16 18 20 3 6 9 12 15 18 21 24 27 30 4 8 12 16 20 24 28 32 36 40 5 10 15 20 25 30 35 40 45 50 6 12 18 24 30 36 42 48 54 60 7 14 21 28 35 42 49 56 63 70 8 16 24 32 40 48 56 64 72 80 9 18 27 36 45 54 63 72 81 90 10 20 30 40 50 60 70 80 90 100 _Berikut ilustrasi bagian-bagian dari while loop bersarang di atas
Bagaimana Cara Mengontrol Aliran dari Nested Loop?
Di Python, Anda dapat mengontrol aliran atau loop. Dua pernyataan alur kontrol utama dalam Python adalah
- merusak. Pernyataan break keluar dari loop
- melanjutkan. Pernyataan continue menghentikan iterasi saat ini dari loop dan melompat ke loop berikutnya
Mari kita lihat lebih dekat bagaimana pernyataan ini bekerja dengan loop bersarang di Python
Bagaimana Cara Memutuskan Nested Loop?
Di Python, Anda bisa menggunakan pernyataan break untuk keluar dari loop. Ini berguna jika tidak ada alasan untuk melanjutkan perulangan. Misalnya, jika Anda menggunakan loop untuk menemukan nilai target, setelah target ditemukan, loop akan berhenti
Mari kita lihat contoh sederhana dari pernyataan break dalam aksi
Keluaran
0 1 2 3_Di sini perulangan berakhir ketika angka iterasi adalah 3, yang merupakan angka target
Dalam loop bersarang, pernyataan break keluar dari loop dalam tetapi terus menjalankan loop luar. Jadi jika Anda memanggil pernyataan break di loop dalam dari konstruksi loop bersarang, itu tidak menghentikan seluruh loop tetapi hanya loop dalam
Misalnya, mari kita cetak setengah piramida tanda bintang sehingga jumlah tanda bintang adalah nomor baris dalam bentuk yang dibaca dari atas ke bawah
for i in range(1, 11): for j in range(1, 11): if j - i > 0: break print("*", end=" ") print()_Keluaran
for i in range(1, 11): for j in range(1, 11): print(i * j, end=" ") print()_0Dalam loop bersarang seperti ini, Anda dapat menganggap i sebagai nomor baris dan j sebagai nomor kolom
Di sini pernyataan break keluar dari loop dalam jika j – i kurang dari 0. Dengan kata lain, Anda berhenti menjalankan loop dalam jika jumlah bintang (*) lebih besar dari nomor baris
Baca lebih lanjut tentang mengontrol aliran loop menggunakan
Bagaimana Cara Melanjutkan Nested Loop?
Dalam Python, pernyataan continue memungkinkan Anda melewatkan "sisa" dari iterasi sebuah loop dan memulai iterasi berikutnya
Pernyataan ini tidak mengakhiri seluruh loop tetapi hanya iterasi saat ini. Pernyataan continue berguna jika tidak ada alasan untuk melanjutkan iterasi loop saat ini. Misalnya, jika Anda hanya ingin melakukan tindakan berdasarkan kondisi, Anda dapat menggunakan pernyataan lanjutkan untuk melewati tindakan tersebut
Anda dapat menggunakan pernyataan continue dalam loop bersarang seperti Anda akan menggunakannya pada satu loop
- Jika Anda memanggil pernyataan lanjutkan di loop dalam, iterasi saat ini berhenti, dan iterasi berikutnya dari loop dalam dimulai
- Jika Anda memanggil pernyataan continue sebelum loop dalam di badan loop luar, maka iterasi loop luar melompat ke iterasi berikutnya dengan melewatkan loop dalam
Sebagai contoh, mari kita cetak tanda bintang setengah piramida terbalik sehingga jumlah tanda bintang adalah nomor baris dalam bentuk yang dibaca dari bawah ke atas
for i in range(1, 11): for j in range(1, 11): print(i * j, end=" ") print()_1Keluaran
for i in range(1, 11): for j in range(1, 11): print(i * j, end=" ") print()_2Di sini pernyataan continue melompati loop dalam ke iterasi berikutnya jika i + j lebih dari 11. Dengan kata lain, loop dalam melewatkan pencetakan tanda bintang (*) jika nomor baris ditambah nomor kolom lebih dari 11
Pokoknya, intinya adalah untuk menunjukkan bagaimana pernyataan lanjutan bekerja dalam loop bersarang daripada berfokus pada detail bentuk. Jangan ragu untuk bermain dengan contoh di editor kode Anda
Loop Bersarang Satu Liner dengan Pemahaman Daftar
Di Python, Anda dapat membuat for loop lebih ringkas dengan menggunakan. Hal ini memungkinkan untuk ekspresi satu baris yang rapi daripada membuat loop diperluas pada beberapa baris kode
Mirip dengan bagaimana Anda bisa membuat loop for bersarang, Anda bisa membuat pemahaman daftar bersarang
Masih diperdebatkan apakah masuk akal untuk mengompres for loop menggunakan pemahaman. Beberapa berpendapat itu membuat kode lebih kompak dan lebih mudah dibaca. Yang lain mengatakan itu hanya membuat kode lebih kompleks. Jika Anda membuat pemahaman daftar bersarang, berhati-hatilah. Kualitas kode mungkin menurun karena ekspresi yang bertele-tele dan tidak dapat dibaca. Pastikan untuk hanya melakukan pemahaman daftar jika itu meningkatkan kualitas kode
for i in range(1, 11): for j in range(1, 11): print(i * j, end=" ") print()_3Keluaran
for i in range(1, 11): for j in range(1, 11): print(i * j, end=" ") print()_4Bagaimana Mengubah Nested For Loop menjadi Pemahaman Daftar?
Di bagian sebelumnya, Anda melihat contoh membuat pemahaman daftar bersarang dari perulangan for bersarang. Namun dari contoh di atas, tidak jelas bagaimana sebenarnya Anda melakukannya
Inilah cetak biru untuk membuat pemahaman daftar bersarang dari loop for bersarang
for i in range(1, 11): for j in range(1, 11): print(i * j, end=" ") print()_5Urutan pemahaman mungkin membingungkan Anda karena loop luar terjadi di "bagian dalam" dari pemahaman dan loop dalam ada di "bagian luar". Selain itu, tidak banyak yang terjadi dalam konversi
Namun, jika Anda tidak terbiasa dengan pemahaman daftar, Anda harus membaca artikel terpisah tentang topik tersebut
Sebagai contoh, inilah ilustrasi yang mengonversi perulangan for bersarang menjadi pemahaman daftar bersarang
Ringkasan
Hari ini Anda belajar bagaimana loop bersarang bekerja di Python
Untuk dibawa pulang, loop bersarang mengacu pada loop di dalam loop. Bisa ada banyak loop dalam satu loop yang Anda inginkan
Perulangan bersarang biasanya praktis saat bekerja dengan data multidimensi, seperti daftar daftar, atau tabel data
Sebagai singkatan, Anda dapat mengompresi loop for bersarang ke pemahaman daftar bersarang. Berhati-hatilah saat melakukan ini agar kode tidak sulit dibaca