Fungsi, For Loop, dan Kondisional di Python untuk Sains

Python untuk Sains


Setelah mengenal variabel dan tipe data, sebuah program masih terasa seperti kalkulator sekali pakai. Agar Python benar-benar menjadi alat kerja ilmiah, kita perlu empat kemampuan berikut: menyimpan banyak data, membungkus rumus menjadi fungsi, mengulang perhitungan, dan mengambil keputusan. Inilah inti pembahasan kita kali ini, lengkap dengan contoh dari fisika, kimia, dan ilmu material.

List: Menyimpan Banyak Nilai

Sebuah list menyimpan banyak nilai dalam satu wadah, ditulis dalam kurung siku dan dipisah koma. Kita mengakses elemennya lewat indeks yang dimulai dari 0.

puncak = [28.4, 32.2, 45.5, 56.6]   # posisi puncak grafik

print(peaks[0])    # 28.4  (elemen pertama, indeks 0)
print(peaks[-1])   # 56.6  (elemen terakhir)
print(peaks[1:3])  # [32.2, 45.5]  (slicing)

peaks[0] = 28.5    # list bisa diubah (mutable)

Beberapa hal penting: indeks negatif menghitung dari belakang (-1 = terakhir), slicing [start:end] mengambil sebagian list (nilai end tidak ikut), dan berbeda dari string, isi list dapat diubah setelah dibuat.

Meringkas Data dengan Fungsi Bawaan

Python menyediakan fungsi siap pakai untuk meringkas sekumpulan data — sangat berguna untuk mengolah hasil pengukuran.

massa = [2.0, 3.5, 1.8, 4.2]   # gram

print(len(massa))   # 4    jumlah data
print(sum(massa))   # 11.5 total
rata = sum(massa) / len(massa)
print(rata)         # 2.875
print(sorted(massa))  # [1.8, 2.0, 3.5, 4.2]

Dengan len, sum, max, min, dan sorted, kita bisa menghitung jumlah data, total, nilai ekstrem, rata-rata, dan mengurutkan data hanya dalam beberapa baris.

Membuat Fungsi Sendiri dengan def

Agar sebuah rumus bisa dipakai berulang, kita membungkusnya menjadi fungsi. Contoh: posisi partikel yang bergerak dengan kecepatan awal v0 dan percepatan a pada waktu t, yaitu y = v0·t + ½·a·t².

def posisi(v0, a, t):
    y = v0*t + 0.5*a*t**2
    return y

p = posisi(2, 1, 3)
print(p)    # 10.5

Kata kunci def menandai awal fungsi; v0, a, t adalah argumen (nilai yang dikirim saat fungsi dipanggil); dan return mengirim hasilnya kembali ke kode pemanggil.

Aturan indentasi & titik dua. Python menandai blok kode dengan indentasi (menjorok ke dalam), bukan kurung kurawal. Baris sebelum blok harus diakhiri titik dua ( : ), dan isi blok ditulis menjorok konsisten (biasanya 4 spasi). Lupa titik dua atau indentasi yang tidak seragam akan memunculkan IndentationError.

Fungsi singkat: lambda

Untuk rumus sederhana yang bergantung pada satu variabel, ada bentuk ringkas bernama lambda.

posisi = lambda t: 1*t + 0.5*2*t**2
print(posisi(3))   # 12.0

Mengulang dengan For Loop

Sering kali kita perlu menghitung sesuatu untuk banyak nilai sekaligus. Di sinilah for loop berperan: ia menjalankan blok kode berulang kali.

hasil = []                 # list kosong sebagai wadah
for t in range(4):         # t = 0, 1, 2, 3
    hasil.append(posisi(1, 2, t))
print(hasil)   # [0.0, 2.0, 6.0, 12.0]

range(4) menghasilkan barisan 0, 1, 2, 3. Pada tiap putaran, nilai posisi ditambahkan (append) ke ujung list. Hasilnya: posisi partikel pada empat waktu sekaligus.

Mengambil Keputusan: if / elif / else

Untuk menjalankan kode hanya bila kondisi tertentu terpenuhi, kita memakai if, elif, dan else. Contoh berikut menggolongkan material dari nilai band gap-nya.

Eg = 1.1     # band gap (eV) — silikon

if Eg == 0:
    jenis = "konduktor"
elif Eg < 3:
    jenis = "semikonduktor"
else:
    jenis = "isolator"
print(jenis)   # semikonduktor

if menguji sebuah kondisi; bila benar, bloknya dijalankan. elif menguji kondisi lain bila yang pertama salah, dan else menangani sisanya. Perhatikan: == berarti "sama dengan", sedangkan < berarti "kurang dari".

Menggabung for loop dan if

Kita bisa meletakkan if di dalam for untuk menyaring nilai — misalnya, hanya menyimpan posisi yang kurang dari 7.

hasil = []
for t in range(4):
    y = 1*t + 0.5*2*t**2
    if y < 7:              # saring: simpan hanya jika < 7
        hasil.append(y)
print(hasil)   # [0.0, 2.0, 6.0]

Perhatikan indentasi bertingkat: isi if menjorok lebih dalam lagi. Nilai pada t = 3 adalah 12 (≥ 7), sehingga tidak ikut tersimpan.

Argumen Default

Sebuah fungsi bisa memiliki argumen dengan nilai default. Jika argumen itu tidak diisi saat memanggil, nilai default yang dipakai.

def posisi(v0, t, a=2):    # a default = 2
    return v0*t + 0.5*a*t**2

print(posisi(1, 3))      # 12.0  (pakai a=2)
print(posisi(1, 3, 3))   # 16.5  (a diganti 3)

Argumen tanpa default harus ditulis lebih dulu dan wajib diisi; argumen ber-default boleh dihilangkan saat memanggil.

Latihan Lintas-Disiplin

Gabungkan semuanya dalam tiga latihan singkat yang relevan dengan bidang fisika, kimia, dan material.

1. Fisika — energi kinetik untuk beberapa kecepatan

def energi_kinetik(m, v):
    return 0.5 * m * v**2

for v in [5, 10, 15]:
    print(v, energi_kinetik(2.0, v))
# 5 25.0
# 10 100.0
# 15 225.0

2. Kimia — mengencerkan & merata-rata konsentrasi

konsentrasi = [0.10, 0.25, 0.40, 0.55]   # mol/L
encer = [c/2 for c in konsentrasi]        # diencerkan 2x
print(encer)   # [0.05, 0.125, 0.2, 0.275]
rata = sum(konsentrasi) / len(konsentrasi)
print(rata)    # 0.325

3. Ilmu Material — menggolongkan beberapa bahan

bahan = [("Cu", 0.0), ("Si", 1.1), ("SiO2", 9.0)]
for nama, Eg in bahan:
    if Eg == 0:
        jenis = "konduktor"
    elif Eg < 3:
        jenis = "semikonduktor"
    else:
        jenis = "isolator"
    print(nama, "->", jenis)
# Cu -> konduktor
# Si -> semikonduktor
# SiO2 -> isolator

Perhatikan bahwa tiap bahan disimpan sebagai tuple (nama, band_gap), dan for nama, Eg in bahan membongkar (unpack) tiap tuple sekaligus.

Penutup

Dengan list, fungsi bawaan, fungsi buatan sendiri (def dan lambda), for loop, dan kondisional, kita sudah bisa menulis program sains yang nyata — bukan sekadar hitungan sekali jalan. Empat konsep ini adalah tulang punggung hampir semua kode ilmiah.

Setelah bisa menghitung banyak data, pertanyaan berikutnya: bagaimana menampilkannya secara rapi? Itu kita bahas di artikel lanjutan: Menyajikan Data dengan Rapi: zip, f-string, dan tabulate. Belum membaca dasarnya? Mulai dari Mengenal Variabel dan Tipe Data di Python untuk Sains.

Catatan: seluruh contoh kode ditulis untuk Python 3 dan bisa langsung dijalankan di Spyder atau Jupyter Notebook (lewat Anaconda) maupun di interpreter Python biasa.

Ditulis untuk InspiraSains — belajar sains dan pemrograman secara gratis dan terbuka.

File Download: --File Download PDF--

Posting Komentar

Lebih baru Lebih lama

Formulir Kontak