Command Palette

Search for a command to run...

Pemrograman AI

Control Flow

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.

Pythonbreak_example.py
# 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 25

Statement continue melewati sisa kode dalam iterasi saat ini dan melanjutkan ke iterasi berikutnya. Ini berbeda dengan break yang menghentikan seluruh perulangan.

Pythoncontinue_example.py
# 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.

Pythonpass_example.py
# 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 3

Blok else pada perulangan akan dieksekusi ketika perulangan berakhir secara normal, bukan karena break. Ini berguna untuk memberikan aksi khusus ketika perulangan selesai tanpa interupsi.

Pythonloop_else_example.py
# 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 list

Fungsi 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).

Pythonenumerate_basic.py
# 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 : melon

Secara default, enumerate() mulai menghitung dari 0, tetapi kamu dapat mengatur nilai awal dengan parameter kedua.

Pythonenumerate_custom_start.py
# 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 : melon

Penting 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.

Pythonwhile_loop_example.py
# Contoh while loop dengan perhitungan matematikaz = 1while abs(z) < 100:  z = z**2 + 1print(z)# Output: 677

Perulangan while cocok digunakan ketika kamu perlu mengiterasi sampai kondisi tertentu terpenuhi dan tidak tahu berapa kali iterasi diperlukan.

Mermaidmermaid
Loading

Fungsi Zip

Fungsi zip() memungkinkan kamu mengiterasi beberapa iterable secara bersamaan. Bayangkan seperti resleting yang menggabungkan dua sisi menjadi satu.

Penggunaan Dasar Zip

Pythonzip_basic.py
# 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

Pythonzip_conversion.py
# 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 (*).

Pythonzip_unpacking.py
# 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

Pythonrange_syntax.py
# 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, 5

Range 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.

Pythonrange_efficiency.py
# 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:      break

Pernyataan 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

Pythonconditional_syntax.py
# 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 EUR

Kondisi 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

Pythonnested_if.py
# 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 ketiga

Nested 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.

Pythonfor_loop_syntax.py
# 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# i

Objek 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.