Sesi 8: Ujian Tengah Semester (UTS)
Evaluasi Komprehensif: Menguji kemampuan dasar pemrograman terstruktur dari Sesi 1 hingga Sesi 7.
I. Ringkasan Konsep Kunci (Sesi 1 - 7)
UTS ini akan menguji kemampuan Anda dalam mengintegrasikan tiga pilar utama pemrograman:
- Data & I/O: Membaca input, memilih tipe data yang tepat (int, float, List, Tuple), dan memformat output (f-string).
- Logika Kontrol: Menerapkan kondisional (if-elif-else) untuk pengambilan keputusan dan perulangan (for, while) untuk kalkulasi iteratif.
- Struktur Data Dasar: Mengelola koleksi data saintifik menggunakan List (mutable) untuk data variabel dan Tuple (immutable) untuk koordinat atau konstanta.
- Ekspresi & String: Menerjemahkan rumus matematika ke sintaks Python, serta mem-parsing atau memformat data teks.
Fokus Utama Latihan Praktik:
UTS akan bersifat Praktikum Kode. Anda diharapkan mampu menulis kode Python yang efisien dan terstruktur untuk memecahkan masalah.
| Sesi | Keterampilan yang Diuji | Aplikasi Khas |
|---|---|---|
| 1-3 | Variabel, Operator, Modul math | Implementasi rumus fisika kompleks (ex: Gerak Lurus Berubah Beraturan). |
| 4 | Kondisional (if-elif-else) | Klasifikasi data (ex: Menentukan apakah fluida bersifat Laminar atau Turbulen). |
| 5 | Perulangan (for, while) | Kalkulasi deret (ex: Penjumlahan deret Taylor) atau iterasi numerik (ex: Metode Babylonian). |
| 6-7 | List, Tuple, String | Pembersihan data (menghilangkan outlier), parsing metadata dari teks, dan menyajikan laporan dengan presisi. |
II. Contoh Soal & Studi Kasus UTS
Kasus 1: Klasifikasi Data Eksperimen dengan Iterasi (Sesi 4, 5, 6)
Anda memiliki data suhu (T) dan tekanan (P) dari sebuah reaksi kimia. Buat program yang mengklasifikasikan setiap titik data.
- Definisikan DATA_SUHU dan DATA_TEKANAN sebagai dua List terpisah.
- Gunakan perulangan (for loop) untuk mengiterasi kedua List secara paralel (gunakan range(len(List))).
- Dalam perulangan, gunakan kondisional (if-elif-else) untuk menentukan status:
- Status Kritis: Jika T > 350 K DAN P > 10 atm.
- Status Normal: Jika T ≤ 350 K DAN P ≤ 10 atm.
- Status Peringatan: Sisanya.
- Cetak status untuk setiap pasangan data.
Kasus 2: Kalkulasi Error dan Pemformatan Laporan (Sesi 3, 7)
Hitung persentase error antara nilai teoretis dan eksperimen, kemudian format hasilnya.
Task:
python
# Nilai yang diberikan
nilai_teoritis = 9.80665 # Gravitasi standar (m/s^2)
nilai_eksperimen = 9.85123
# Formula Error Absolut: |Teoritis - Eksperimen|
# Formula Persentase Error: (Error Absolut / Teoritis) * 100
# 1. Hitung error absolut
error_absolut = abs(nilai_teoritis - nilai_eksperimen)
# 2. Hitung persentase error
persen_error = (error_absolut / nilai_teoritis) * 100
# 3. Format output menggunakan f-string
print(f"Nilai Eksperimen: {nilai_eksperimen:.5f} m/s^2")
print(f"Error Absolut: {error_absolut:.4f}")
print(f"Persentase Error: {persen_error:.2f}%")
Kasus 3: Kalkulasi Deret Iteratif (Sesi 5)
Hitung jumlah 10 suku pertama dari deret S = ∑n=110 1/n2.
Task:
python
# Inisialisasi variabel
total_sum = 0.0
# Perulangan dari n=1 hingga n=10
for n in range(1, 11):
# Hitung suku ke-n: 1 / n^2
suku = 1.0 / (n**2)
# Tambahkan ke total sum
total_sum += suku
# Cetak hasil dengan 6 angka desimal
print(f"Total 10 suku pertama: {total_sum:.6f}")
III. Tips Strategi Menghadapi UTS
- Analisis Masalah: Sebelum menulis kode, tuliskan alur logikanya (pseudocode). Tentukan dulu struktur kontrol apa yang akan digunakan (if atau for/while).
- Pilih Tipe Data: Selalu gunakan float() untuk input yang melibatkan perhitungan saintifik agar hasilnya akurat (hindari pembagian integer).
- Debugging: Uji kode Anda dengan nilai input sederhana yang Anda sudah tahu hasilnya secara manual. Gunakan print() di tengah kode untuk melacak nilai variabel.
- Efisiensi: Jika Anda bekerja dengan List, pastikan Anda menggunakan metode bawaan (sort(), append()) sebelum beralih ke perulangan manual.