Statement Kontrol Loop
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.
Break, Continue, Pass, dan Else
Statement break digunakan untuk menghentikan perulangan sepenuhnya ketika kondisi tertentu terpenuhi. Bayangkan seperti tombol darurat yang langsung menghentikan mesin.
# Mencari angka yang dapat dibagi 15 dan 25x = 0while True: x += 1 if not (x % 15 or x % 25): breakprint(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 genapfor 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.
# Menggunakan pass untuk melewati angka tertentufor 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 pada perulangan akan dieksekusi ketika perulangan berakhir secara normal, bukan karena break. Ini berguna untuk memberikan aksi khusus ketika perulangan selesai tanpa interupsi.
# Mencari angka negatif dalam listnumbers = [0, 4, 2, 5]for i in numbers: if i < 0: breakelse: print('tidak ada angka negatif dalam list')# Output: tidak ada angka negatif dalam listFungsi Enumerate
Fungsi enumerate() sangat berguna ketika kamu membutuhkan indeks dan nilai dari setiap elemen dalam iterasi. Fungsi ini mengambil objek iterable dan mengembalikan tuple berisi pasangan (indeks, nilai).
# Menggunakan enumerate untuk mendapatkan indeks dan nilaifruits = ['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 0, tetapi kamu dapat mengatur nilai awal dengan parameter kedua.
# Mengatur indeks awal enumeratefruits = ['apple', 'banana', 'mango', 'melon']for i, fruit in enumerate(fruits, 5): print(i, ':', fruit)# Output:# 5 : apple# 6 : banana# 7 : mango# 8 : melonPenting untuk diingat bahwa setiap tuple (item, count) dalam perulangan for akan di-unpack secara otomatis menjadi variabel i dan fruit.
While Loop
Perulangan while mengeksekusi blok kode selama kondisi yang diberikan bernilai True. Berbeda dengan for loop yang iterasi jumlahnya sudah diketahui, while loop digunakan ketika jumlah iterasi tidak diketahui di awal.
# Contoh while loop dengan perhitungan matematikaz = 1while abs(z) < 100: z = z**2 + 1print(z)# Output: 677Perulangan while cocok digunakan ketika kamu perlu mengiterasi sampai kondisi tertentu terpenuhi dan tidak tahu berapa kali iterasi diperlukan.
Fungsi Zip
Fungsi zip() memungkinkan kamu mengiterasi beberapa iterable secara bersamaan. Bayangkan seperti resleting yang menggabungkan dua sisi menjadi satu.
Penggunaan Dasar Zip
# Menggabungkan dua list dengan zipp = [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 yang berisi tuple. Setiap tuple berisi elemen ke-i dari setiap iterable input. Iterator berhenti ketika iterable terpendek habis.
Mengonversi Hasil Zip
# Mengonversi hasil zip menjadi list atau tuplep = [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 baruzipped_new = zip(p, q)print(tuple(zipped_new)) # Mengonversi ke tuple# Output: ((1, 'a'), (2, 'b'), (3, 'c'), (4, 'd'))Unzipping dengan Operator *
Kamu dapat membalik proses zip dengan menggunakan operator unpacking (*).
# Memisahkan kembali data yang sudah di-zippairs = [(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.
Range dan For Loop
Fungsi range() menciptakan urutan angka yang dapat diiterasi. Ini sangat berguna untuk perulangan dengan indeks numerik.
Sintaks Range
# Berbagai cara menggunakan range# range(stop) - dari 0 sampai stop-1for i in range(4): print(i)# Output: 0, 1, 2, 3print()# range(start, stop) - dari start sampai stop-1 for i in range(2, 6): print(i)# Output: 2, 3, 4, 5print()# range(start, stop, step) - dengan langkah tertentufor 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 0 sampai n-1.
Efisiensi Range vs List
Range lebih efisien dibandingkan membuat list berisi semua angka karena range menghasilkan angka sesuai kebutuhan (on-demand), bukan menyimpan semuanya di memori.
# Perbandingan efisiensi range vs listn = 10000k = 10# Tidak efisien - membuat list lengkap di memoriindex = [0, 1, 2, ..., n] # Boros memorifor i in index: if i < k: print(i) else: break# Lebih efisien - menggunakan rangefor i in range(n): # Tidak menyimpan semua angka di memori if i < k: print(i) else: breakPernyataan Kondisional
Pernyataan kondisional memungkinkan program membuat keputusan berdasarkan kondisi tertentu. Python menggunakan indentasi (spasi atau tab) untuk menentukan blok kode yang termasuk dalam kondisi.
Sintaks If/Elif/Else
# Struktur lengkap if/elif/elseage = 20if 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 perlu dibungkus dalam tanda kurung, dan titik dua (:) setelah kondisi adalah wajib. Blok statement harus diindentasi dengan jumlah spasi yang sama.
Nested If Statement
# Menentukan kuadran dari koordinat titikx = (-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.
Sintaks For Loop
For loop dalam Python digunakan untuk mengiterasi elemen dalam objek iterable seperti list, tuple, string, atau range.
# Contoh iterasi listfruit_list = ['apple', 'banana', 'mango']for fruit in fruit_list: print(fruit)# Output:# apple# banana # mango# Contoh iterasi stringtext = 'hi'for char in text: print(char)# Output:# h# iObjek iterable adalah urutan item yang tersusun, dimana setiap item dapat diambil satu per satu. Operator in digunakan untuk tes keanggotaan, titik dua menandai awal blok statement, dan blok statement harus diindentasi dengan spasi.