Pada dua pertemuan terakhir, kita telah membahas perulangan pada python. Baik yang menggunakan metode for maupun while.
Sekarang, untuk semakin menambahkan pemahaman dan penguasaan kita terhadap konsep perulangan, insyaallah kita akan mencoba beberapa contoh perulangan bertingkat atau yang sering dikatakan sebagai perulangan bersarang.
Apa itu Perulangan Bersarang/Bertingkat?
Perulangan bersarang atau perulangan bertingkat adalah sebuah perulangan yang berada atau terletak di dalam perulangan yang lain.
Contoh yang simpel adalah: hubungan antara bumi, bulan, dan matahari.
- Bulan mengelilingi bumi
- Bumi mengelilingi matahari
- Akhirnya bulan juga ikutan mengelilingi matahari karena bumi pun mengelilinginya.
Atau, contoh yang lebih simpel adalah Putaran jarum jam.
Ada tiga jarum:
- jarum detik
- jarum panjang / menit
- jarum pendek / jam
Alurnya:
- Dalam sehari, jarum jam akan berputar 360 derajat sebanyak 1 kali.
- Setiap jam, jarum menit akan berputar 360 derajat sebanyak 1 kali. Sehingga jarum panjang akan berputar sebanyak 60 kali dalam sehari.
- dan setiap menit, jarum detik akan berputar 360 derajat sebanyak 1 kali, sehingga dalam satu jam, ia akan berputar sebanyak 60 kali.
Intinya di dalam setiap satu putaran, di dalamnya masih ada putaran yang lainnya, dan ada putaran yang lainnya lagi.
Inilah yang dinamakan perulangan bersarang.
Oke, biar tidak makin bingung, mari kita seduh kopi dulu kemudian kita mulai contoh pengaplikasiannya dalam kode program python.
ββββ
Alur Dasar
Silakan buka tools kalian untuk ngoding python (just info, di seri tutorial ini saya menggunakan vscode –lebih tepatnya vscodium).
Langkah selanjutnya silakan buat file python baru.
Kemudian tulis dan perhatikan kode program berikut:
for i in range(3):
print('Perulangan luar [i] = ', i)
for j in range(5):
print(' Perulangan dalam [i, j] = ', str(i) + ', ' + str(j))
Jika dijalankan, kita akan mendapatkan output:
Perulangan luar [i] = 0
Perulangan dalam [i, j] = 0, 0
Perulangan dalam [i, j] = 0, 1
Perulangan dalam [i, j] = 0, 2
Perulangan dalam [i, j] = 0, 3
Perulangan dalam [i, j] = 0, 4
Perulangan luar [i] = 1
Perulangan dalam [i, j] = 1, 0
Perulangan dalam [i, j] = 1, 1
Perulangan dalam [i, j] = 1, 2
Perulangan dalam [i, j] = 1, 3
Perulangan dalam [i, j] = 1, 4
Perulangan luar [i] = 2
Perulangan dalam [i, j] = 2, 0
Perulangan dalam [i, j] = 2, 1
Perulangan dalam [i, j] = 2, 2
Perulangan dalam [i, j] = 2, 3
Perulangan dalam [i, j] = 2, 4
Di dalam kode program kita di atas, kita telah membuat 2 buah perulangan:
- Perulangan pertama sebanyak 3 kali.
- Dan perulangan kedua sebanyak 5 kali setiap satu kali perulangan pertama.
Sehingga, total iterasi seluruhnya adalah 3x5 yaitu 15.
Contoh lain:
for baris in range(5):
for kolom in range(7):
print('o', end = ' ')
else:
print('')
Output:
o o o o o o o
o o o o o o o
o o o o o o o
o o o o o o o
o o o o o o o
Menggunakan while
Kita juga bisa menggunakan while untuk membangun sebuah perulangan bersarang, perhatikan contoh berikut:
listKota = [
'Jakarta', 'Surabaya', 'Makassar'
]
for kota in listKota:
print(kota)
listTempat = [
'Taman', 'Lapangan', 'Mall'
]
while listTempat:
print('-->', listTempat.pop(0))
Jika dijalankan, program di atas akan menghasilkan output sebagai berikut:
Jakarta
--> Taman
--> Lapangan
--> Mall
Surabaya
--> Taman
--> Lapangan
--> Mall
Makassar
--> Taman
--> Lapangan
--> Mall
Kita juga bisa menambahkan perulangan lebih dari 2 tingkat, 3 tingkat, atau lebih sesuai kebutuhan.
Contoh tambahan perulangan bersarang menggunakan while:
max_baris = 7
max_kolom = 7
baris = 0
while baris < max_baris:
kolom = 0
while kolom < max_kolom:
print('o' if kolom <= baris else '+', end = ' ')
kolom += 1
else:
print('')
baris += 1
Output:
o + + + + + +
o o + + + + +
o o o + + + +
o o o o + + +
o o o o o + +
o o o o o o +
o o o o o o o
Bonus Contoh Program
Program di bawah ini mengilustrasikan bagaimana cara mengubah huruf vokal pada suatu kata dengan memanfaatkan perulangan bersarang sebagai struktur kontrolnya.
Silakan coba dan perhatikan dengan seksama meskipun ada beberapa kode program yang mungkin belum kalian pahami.
import re
listKota = [
'Solo', 'Surabaya', 'Bekasi', 'Jakarta'
]
listHurufVokal = [
'a', 'i', 'u', 'e', 'o'
]
for kota in listKota:
print('[' + kota + ']')
for vokal in listHurufVokal:
print('-->', re.sub('[aiueo]', vokal, kota))
Jika dijalankan, output program di atas terlihat seperti ini:
[Solo]
--> Sala
--> Sili
--> Sulu
--> Sele
--> Solo
[Surabaya]
--> Sarabaya
--> Siribiyi
--> Surubuyu
--> Serebeye
--> Soroboyo
[Bekasi]
--> Bakasa
--> Bikisi
--> Bukusu
--> Bekese
--> Bokoso
[Jakarta]
--> Jakarta
--> Jikirti
--> Jukurtu
--> Jekerte
--> Jokorto
Hehe π
Penjelasannya seperti apa?
Wah, insyaallah nanti akan kita bahas pada seri tutorial python yang lainnya. Untuk sementara ini, saya kira cukup dulu sampai di sini.
π
Kode program lengkap
Seperti biasa, untuk kode program lengkap bisa kalian dapatkan pada repository github python-dasar.
Jangan lupa kasih star ya!βπ
Pertemuan Selanjutnya
Insyaallah pada pertemuan berikutnya kita akan membahas tentang 2 tipe data yang belum kita bahas, yaitu set dan dictionary.
Terima kasih banyak!