For AI agents: use /llms.txt for the Nakafa content index.
Python menyediakan beberapa statement khusus untuk mengendalikan alur eksekusi dalam perulangan. Statement ini memungkinkan kamu mengatur kapan perulangan harus berhenti, melanjutkan, atau melakukan tindakan tertentu.
Statement break langsung keluar dari perulangan terdekat ketika suatu kondisi terpenuhi. Eksekusi kemudian berlanjut ke statement pertama setelah perulangan tersebut.
# Mencari angka yang dapat dibagi 15 dan 25
x = 0
while True:
x += 1
if not (x % 15 or x % 25):
break
print(x, 'dapat dibagi 15 dan 25')
# Output: 75 dapat dibagi 15 dan 25Statement continue melewati sisa kode dalam iterasi saat ini dan melanjutkan ke iterasi berikutnya. Ini berbeda dengan break yang menghentikan seluruh perulangan.
# Mencetak hanya angka genap
for i in range(1, 11):
if i % 2:
continue
print(i, 'adalah genap.')
# Output:
# 2 adalah genap.
# 4 adalah genap.
# 6 adalah genap.
# 8 adalah genap.
# 10 adalah genap.Statement pass tidak melakukan apa-apa tetapi berguna sebagai placeholder untuk kode yang belum ditulis. Python membutuhkan setidaknya satu statement dalam setiap blok kode.
# pass adalah no-op; iterasi tidak dilewati
for i in range(1, 11):
if i == 6:
pass # Tidak melakukan apa-apa untuk angka 6
if not i % 3:
print(i, 'dapat dibagi 3')
# Output:
# 3 dapat dibagi 3
# 6 dapat dibagi 3
# 9 dapat dibagi 3Blok else berjalan jika perulangan selesai tanpa mengeksekusi break. Pola ini berguna untuk pencarian: tangani hasil yang ditemukan sebelum break, lalu tangani "tidak ditemukan" di dalam else.
# Mencari angka negatif dalam list
numbers = [0, 4, 2, 5]
for i in numbers:
if i < 0:
break
else:
print('tidak ada angka negatif dalam list')
# Output: tidak ada angka negatif dalam listGunakan enumerate() ketika iterasi membutuhkan pencacah sekaligus nilai setiap elemen. Fungsi ini mengembalikan iterator yang menghasilkan tuple (indeks, nilai).
# Menggunakan enumerate untuk mendapatkan indeks dan nilai
fruits = ['apple', 'banana', 'mango', 'melon']
for i, fruit in enumerate(fruits):
print(i, ':', fruit)
# Output:
# 0 : apple
# 1 : banana
# 2 : mango
# 3 : melonSecara default, enumerate() mulai menghitung dari , tetapi kamu dapat mengatur nilai awal dengan parameter kedua.
# Mengatur indeks awal enumerate
fruits = ['apple', 'banana', 'mango', 'melon']
for i, fruit in enumerate(fruits, 5):
print(i, ':', fruit)
# Output:
# 5 : apple
# 6 : banana
# 7 : mango
# 8 : melonPada for i, fruit in enumerate(fruits), tuple unpacking mengikat indeks ke i dan nilai yang bersesuaian ke fruit pada setiap iterasi.
Perulangan while mengeksekusi blok selama kondisinya truthy. Perulangan for mengonsumsi sebuah iterable, sedangkan while mengulang berdasarkan kondisi yang biasanya diperbarui oleh isi blok.
# Contoh while loop dengan perhitungan matematika
z = 1
while abs(z) < 100:
z = z**2 + 1
print(z)
# Output: 677Perulangan while cocok untuk pengulangan berbasis kondisi, tetapi isi bloknya harus pada akhirnya mengubah kondisi atau keluar secara eksplisit. Jika tidak, loop dapat berjalan selamanya.
Fungsi zip() memungkinkan kamu mengiterasi beberapa iterable secara bersamaan. Bayangkan seperti resleting yang menggabungkan dua sisi menjadi satu.
# Menggabungkan dua list dengan zip
p = [1, 2, 3, 4]
q = ['a', 'b', 'c', 'd']
for pair in zip(p, q):
print(pair)
# Output:
# (1, 'a')
# (2, 'b')
# (3, 'c')
# (4, 'd')Fungsi zip() mengembalikan iterator berisi tuple. Setiap tuple memuat elemen yang bersesuaian dari setiap input. Secara default iterator berhenti saat iterable terpendek habis, sehingga perbedaan panjang dapat tersembunyi; gunakan zip(..., strict=True) jika panjang yang berbeda harus dianggap error.
# Mengonversi hasil zip menjadi list atau tuple
p = [1, 2, 3, 4]
q = ['a', 'b', 'c', 'd']
zipped = zip(p, q)
print(list(zipped)) # Mengonversi ke list
# Output: [(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd')]
# Zip object sudah dikonsumsi, buat yang baru
zipped_new = zip(p, q)
print(tuple(zipped_new)) # Mengonversi ke tuple
# Output: ((1, 'a'), (2, 'b'), (3, 'c'), (4, 'd'))Operator unpacking * dapat memisahkan kembali kumpulan tuple hasil zip yang tidak kosong berdasarkan posisinya.
# Memisahkan kembali data yang sudah di-zip
pairs = [(1, 'a'), (2, 'b'), (3, 'd')]
numbers, letters = zip(*pairs)
print(numbers, letters)
# Output: (1, 2, 3) ('a', 'b', 'd')Proses ini disebut "unzipping" karena memisahkan kembali data yang telah digabungkan.
Fungsi range() menciptakan urutan angka yang dapat diiterasi. Ini sangat berguna untuk perulangan dengan indeks numerik.
# Berbagai cara menggunakan range
# range(stop) - dari 0 sampai stop-1
for i in range(4):
print(i)
# Output: 0, 1, 2, 3
print()
# range(start, stop) - dari start sampai stop-1
for i in range(2, 6):
print(i)
# Output: 2, 3, 4, 5
print()
# range(start, stop, step) - dengan langkah tertentu
for i in range(8, 4, -1):
print(i)
# Output: 8, 7, 6, 5Range mengikuti formula aritmatika dimana setiap elemen ke-i adalah start + i * step untuk semua i dari sampai n-1.
range menyimpan nilai start, stop, dan step secara ringkas tanpa membuat seluruh bilangan menjadi list. Nilai dihitung saat diminta, sehingga penggunaan memorinya tidak bertambah mengikuti banyaknya bilangan yang direpresentasikan.
# Perbandingan efisiensi range vs list
n = 10000
k = 10
# Membuat seluruh bilangan di memori
index = list(range(n))
for i in index:
if i < k:
print(i)
else:
break
# Lebih efisien - menggunakan range
for i in range(n): # Tidak menyimpan semua angka di memori
if i < k:
print(i)
else:
breakPernyataan kondisional membuat program memilih cabang berdasarkan kondisi yang dievaluasi. Indentasi adalah bagian dari sintaks Python; gunakan empat spasi per tingkat dan jangan mencampur tab dengan spasi dalam satu blok.
# Struktur lengkap if/elif/else
age = 20
if age <= 5:
print("masuk gratis")
elif age <= 14:
print("15.00 EUR")
elif age <= 65:
print("30.00 EUR")
else:
print("20.00 EUR")
# Output: 30.00 EURKondisi tidak memerlukan tanda kurung, sedangkan titik dua setelah setiap kepala cabang wajib ada. Setiap statement dalam satu blok harus memakai tingkat indentasi yang konsisten.
# Menentukan kuadran dari koordinat titik
x = (-1, -3)
if x[0] >= 0:
if x[1] >= 0:
print('kuadran pertama')
else:
print('kuadran keempat')
elif x[1] >= 0:
print('kuadran kedua')
else:
print('kuadran ketiga')
# Output: kuadran ketigaNested if berguna untuk membuat keputusan yang lebih kompleks dengan beberapa tingkat kondisi.
For loop dalam Python digunakan untuk mengiterasi elemen dalam objek iterable seperti list, tuple, string, atau range.
# Contoh iterasi list
fruit_list = ['apple', 'banana', 'mango']
for fruit in fruit_list:
print(fruit)
# Output:
# apple
# banana
# mango
# Contoh iterasi string
text = 'hi'
for char in text:
print(char)
# Output:
# h
# iIterable menyediakan nilai satu per satu, tetapi tidak selalu terurut, dapat diindeks, dapat digunakan ulang, atau berhingga. Perulangan for meminta nilai berikutnya dari iterator. Operator in melakukan uji keanggotaan sesuai tipe, sedangkan titik dua dan indentasi yang konsisten membentuk blok statement.