IN1037 . CODE INITIATION

Sesi 4: Struktur Kontrol Kondisional

Logika Pemrograman: Membuat keputusan dalam kode menggunakan if, elif, dan else.

I. Ulasan: Gerbang Logika dan Percabangan

Struktur kondisional adalah inti dari pemecahan masalah. Dalam ilmu komputasi, ini menentukan jalur yang harus diambil program berdasarkan hasil evaluasi Boolean (True atau False). Tanpa kondisional, program hanya akan menjalankan serangkaian instruksi linier.

Operator Perbandingan Kunci:

Operator Fungsi Contoh Aljabar Contoh Python
== Sama dengan $a = b$ a == b
!= Tidak sama dengan $a \ne b$ a != b
> < Lebih dari/Kurang dari $a > b$ a > b
>= <= Lebih dari atau sama dengan $a \ge b$ a >= b

Logika Boolean (AND, OR, NOT)

Untuk menguji beberapa kondisi secara simultan, kita menggunakan operator logika: and (semua True), or (salah satu True), dan not (membalikkan nilai True/False). Ini sangat penting dalam klasifikasi data dan pengecekan batas fisik.

II. Contoh Manual: Menentukan Status Fasa Air

Kita ingin menentukan fasa air (padat, cair, gas) pada tekanan normal berdasarkan suhu T (°C).

2.1. Aturan Logika Fasa Air

KONDISI 1 (PADAT)
Jika Suhu (T) lebih kecil dari 0

KONDISI 2 (GAS)
Jika Suhu (T) lebih besar dari 100

KONDISI 3 (CAIR)
Jika TIDAK KONDISI 1 DAN TIDAK KONDISI 2 (yaitu, T di antara 0 dan 100)

2.2. Implementasi Kondisional

if T < 0:
    print("Padat")
elif T > 100:
    print("Gas")
else:
    print("Cair")

III. Kode Praktik (Google Colab)

3.1. Kode Sederhana: Menentukan Kualifikasi Eksperimen

Sebuah pengukuran dianggap valid jika deviasi kurang dari ambang batas 0.05.

In [1]: python
DEV_TOLERANSI = 0.05
deviasi_terukur = 0.048  # Hasil dari eksperimen

if deviasi_terukur < DEV_TOLERANSI:
    print("STATUS: Eksperimen VALID. Deviasi di bawah ambang batas.")
    print("Aksi: Lanjutkan ke analisis data.")
else:
    print("STATUS: Eksperimen TIDAK VALID. Deviasi melebihi toleransi.")
    print("Aksi: Lakukan kalibrasi ulang.")
Out [1]:
STATUS: Eksperimen VALID. Deviasi di bawah ambang batas.
Aksi: Lanjutkan ke analisis data.

3.2. Kode Kompleks (Terarah AI/Matematika): Menentukan Jenis Akar Persamaan Kuadrat

Persamaan Kuadrat $Ax2 + Bx + C = 0$. Jenis akar ditentukan oleh Diskriminan $D = B2 - 4AC$.

In [2]: python
import math

# Koefisien Persamaan (Contoh: x^2 - 4x + 4 = 0, di mana D=0)
A, B, C = 1.0, -4.0, 4.0 

# Menghitung Diskriminan (D)
D = (B ** 2) - (4 * A * C)

print(f"Diskriminan D: {D:.2f}")

# Percabangan Kondisional
if D > 0:
    print("Jenis Akar: Dua akar riil dan berbeda.")
    # Menghitung akarnya (kompleksitas tambahan)
    x1 = (-B + math.sqrt(D)) / (2 * A)
    x2 = (-B - math.sqrt(D)) / (2 * A)
    print(f"Akar-akar: x1={x1:.2f}, x2={x2:.2f}")

elif D == 0:
    print("Jenis Akar: Satu akar riil kembar.")
    x = -B / (2 * A)
    print(f"Akar kembar: x = {x:.2f}")

else:
    # D < 0
    print("Jenis Akar: Dua akar kompleks/imajiner.")
    # Akar kompleks tidak dapat dihitung dengan math.sqrt(D) biasa, perlu modul cmath.
    bagian_riil = -B / (2 * A)
    bagian_imajiner = math.sqrt(abs(D)) / (2 * A)
    print(f"Akar: {bagian_riil:.2f} + {bagian_imajiner:.2f}i dan {bagian_riil:.2f} - {bagian_imajiner:.2f}i")
Out [2] (D=0):
Diskriminan D: 0.00
Jenis Akar: Satu akar riil kembar.
Akar kembar: x = 2.00

3.3. Kode Kompleks: Klasifikasi Status Partikel (Logika Ganda)

Dalam Fisika Partikel/AI, sering kali kita perlu mengklasifikasikan data berdasarkan ambang batas ganda. Partikel diklasifikasikan sebagai 'High Energy' jika momentumnya ($P$) di atas 5.0 DAN massanya ($M$) di atas 1.0.

In [3]: python
# Data Partikel
Momentum_P = 6.2 # Misalnya, Gev/c
Massa_M = 0.8  # Misalnya, Gev/c^2

# Ambang Batas
AMBANG_MOMENTUM = 5.0
AMBANG_MASSA = 1.0

# Pengujian Logika Ganda (AND dan OR)
if Momentum_P > AMBANG_MOMENTUM and Massa_M > AMBANG_MASSA:
    print("KLASIFIKASI: PARTIKEL ENERGI TINGGI (Cocok untuk studi materi gelap).")
elif Momentum_P > AMBANG_MOMENTUM or Massa_M > AMBANG_MASSA:
    print("KLASIFIKASI: PARTIKEL AMBANG (Membutuhkan analisis lebih lanjut).")
else:
    print("KLASIFIKASI: PARTIKEL LAMA (Kecepatan dan Massa di bawah batas deteksi sensitif).")
Out [3] (P=6.2, M=0.8):
KLASIFIKASI: PARTIKEL AMBANG (Membutuhkan analisis lebih lanjut).

IV. Penugasan / PR Sesi 4: Klasifikasi Benda Langit

Buat program untuk mengklasifikasikan objek astronomi berdasarkan dua kriteria:

  1. Input: Definisikan variabel Massa (kg) dan Jarak_Matahari (AU).
  2. Aturan Klasifikasi: Gunakan logika kondisional berlapis (if, elif, else):
    • Jika Massa > 1.989×1030 (Massa Matahari) dan Jarak_Matahari > 100 AU: Cetak "OBJEK EKSO-SOLAR ENERGI TINGGI".
    • Jika Massa > 5.972×1024 (Massa Bumi) dan Jarak_Matahari < 1.0 AU: Cetak "PLANET BATU (Zona Huni)".
    • Selain itu: Cetak "OBJEK MINOR ATAU DEBU KOSMIK".
  3. Praktek: Uji program Anda dengan data Massa = 7.0×1024 dan Jarak_Matahari = 0.8.