IN1037 . CODE INITIATION

Sesi 5: Struktur Kontrol Perulangan

Dasar dari Simulasi dan Metode Numerik: Menjalankan instruksi berulang kali dengan for dan while.

I. Ulasan: Iterasi Definit dan Indefinit

Perulangan (Loop) adalah tulang punggung dari semua komputasi saintifik dan algoritma AI. Ini memungkinkan kita melakukan kalkulasi berulang-ulang tanpa menulis kode yang sama. Kita mengenal dua jenis utama:

Jenis Perulangan:

Jenis Sintaks Kunci Kapan Digunakan Contoh Aplikasi Saintifik
for (Definit) for i in range(N): Ketika jumlah iterasi sudah diketahui (N kali). Menghitung total deret (misalnya, Deret Fourier), Integrasi Numerik.
while (Indefinit) while kondisi_true: Ketika perulangan harus berhenti berdasarkan kondisi (konvergensi). Mencari akar persamaan (Metode Newton), Kriteria Konvergensi AI.

Kontrol Aliran Loop: break dan continue

break: Menghentikan perulangan secara paksa, bahkan jika batasnya belum tercapai. Digunakan saat kriteria tertentu sudah terpenuhi (misalnya, menemukan solusi akar).
continue: Melompati sisa blok kode dalam iterasi saat ini dan melanjutkan ke iterasi berikutnya. Digunakan untuk melewati kasus-kasus data yang tidak valid.

II. Contoh Manual: Kalkulasi Integral Numerik Sederhana

Kita ingin menghitung perkiraan area di bawah kurva $f(x) = x^{2}$ dari $x=0$ sampai $x=4$ menggunakan 4 segmen (n=4). Lebar setiap segmen (h) adalah $4/4 = 1$. Metode Kotak.

2.1. Alur Logika Perulangan (for)

Variabel Awal:
Area_Total = 0.0
h = 1.0
Batas_atas = 4

ITERASI (i=0 hingga i=3):
1. i=0: x = 0. Area = 0 + h * f(0) = 0 + 1 * 02 = 0. Area_Total = 0
2. i=1: x = 1. Area = 0 + h * f(1) = 0 + 1 * 12 = 1. Area_Total = 1
3. i=2: x = 2. Area = 0 + h * f(2) = 0 + 1 * 22 = 4. Area_Total = 5
4. i=3: x = 3. Area = 0 + h * f(3) = 0 + 1 * 32 = 9. Area_Total = 14

Hasil Akhir: 14 (Perkiraan)

Pola ini menunjukkan betapa pentingnya for loop untuk kalkulasi kumulatif (penjumlahan) dalam metode numerik.

III. Kode Praktik (Google Colab)

3.1. Kode Sederhana: Kalkulasi Total Deret

Menghitung total deret aritmetika dari 1 hingga $N$.

In [1]: python
# for loop (Iterasi Definit)
N = 10 
total_sum = 0 

# range(1, N+1) berarti dari 1 sampai 10
for i in range(1, N + 1):
    total_sum += i  # total_sum = total_sum + i

print(f"Total deret 1 hingga {N}: {total_sum}")

# Penggunaan break (Contoh mencari elemen)
for i in range(1, 100):
    if total_sum == 55:
        print(f"Target 55 ditemukan pada i={i} (Berhenti).")
        break
Out [1]:
Total deret 1 hingga 10: 55
Target 55 ditemukan pada i=1 (Berhenti).

3.2. Kode Kompleks (Terarah AI/Math): Metode Numerik Integrasi Trapesium

Perkiraan Integral: Area ≈ $\sum \frac{h}{2} (f(xi) + f(xi+1))$. for loop adalah alat yang ideal untuk summation ini.

In [2]: python
import math

def f(x):
    # Fungsi yang akan diintegralkan: f(x) = sin(x)
    return math.sin(x)

# Parameter Integrasi
a = 0.0     # Batas bawah
b = math.pi # Batas atas (sampai 3.14159...)
N = 100     # Jumlah segmen (semakin besar N, semakin akurat)

# Lebar Segmen (h)
h = (b - a) / N

integral_sum = 0.0

# Iterasi for loop dari segmen pertama hingga terakhir (N-1)
for i in range(N):
    x_i = a + i * h
    x_i_plus_1 = a + (i + 1) * h
    
    # Formula Trapesium: (h/2) * (f(xi) + f(xi+1))
    luas_trapesium = (h / 2) * (f(x_i) + f(x_i_plus_1))
    
    integral_sum += luas_trapesium

print(f"Integral sin(x) dari 0 hingga π (N={N}): {integral_sum:.6f}")
print("Nilai Integral Sebenarnya: 2.000000")
Out [2]:
Integral sin(x) dari 0 hingga π (N=100): 1.999836
Nilai Integral Sebenarnya: 2.000000

3.3. Kode Kompleks (Terarah AI): Metode Iterasi Konvergen (Babylonian)

Perulangan while digunakan untuk mencari akar kuadrat ($S$) secara iteratif hingga konvergen (perubahan sangat kecil). Formula Babylonian: xn+1 = (1 / 2) * (xn + (S / xn)).

In [3]: python
# while loop (Iterasi Indefinit)
S = 25.0 # Angka yang dicari akar kuadratnya
epsilon = 0.0001 # Kriteria Konvergensi (Epsilon/Toleransi Error)

x_n = S / 2.0 # Tebakan awal (x0)
iterasi = 0

# Kondisi: Lanjutkan selama error lebih besar dari epsilon
while True:
    iterasi += 1
    
    # Formula Iterasi
    x_next = 0.5 * (x_n + (S / x_n))
    
    # Uji Konvergensi: abs(x_next - x_n) < epsilon
    if abs(x_next - x_n) < epsilon:
        # Kriteria terpenuhi, hentikan loop
        break 
    
    x_n = x_next # Perbarui tebakan untuk iterasi berikutnya

print(f"Akar Kuadrat dari {S} adalah: {x_next:.4f}")
print(f"Konvergensi dicapai dalam {iterasi} iterasi.")
Out [3]:
Akar Kuadrat dari 25.0 adalah: 5.0000
Konvergensi dicapai dalam 4 iterasi.

IV. Penugasan / PR Sesi 5: Simulasi Peluruhan Radioaktif

Tugas ini menggabungkan while loop (simulasi waktu) dan for loop (pencatatan data) untuk memodelkan peluruhan:

  1. Variabel: Tentukan N_awal (jumlah partikel awal = 1000) dan Laju_Peluruhan (0.1, atau 10% per satuan waktu).
  2. Loop Indefinit (while): Gunakan while loop. Lanjutkan simulasi selama N_partikel > 100.
  3. Simulasi: Di setiap iterasi, hitung jumlah partikel baru: Nbaru = Nsekarang × (1 − Laju_Peluruhan). Tambahkan satu ke variabel waktu.
  4. Output: Cetak hasil akhir: "Waktu yang dibutuhkan untuk mencapai ambang batas 100 partikel adalah X satuan waktu."