Sesi 16: Ujian Akhir Semester (UAS) & Presentasi Proyek
Finalisasi Kode: Evaluasi komprehensif atas kemampuan merancang, mengimplementasikan, dan menyajikan solusi komputasi saintifik dari Sesi 1 hingga 15.
I. Ringkasan Semester (Sesi 1-15)
Mata kuliah ini telah bertransformasi dari pengantar sintaks dasar menjadi kursus Komputasi Saintifik. UAS dan presentasi proyek akan menguji integrasi dari empat pilar utama:
Empat Pilar Evaluasi:
- Pilar 1: Fondasi Logika (Sesi 1-7): Penguasaan Kondisional, Perulangan, List, dan String.
- Pilar 2: Struktur Kode (Sesi 9-10): Kemampuan menerapkan Fungsi yang *reusable* dan memahami konsep Rekursi.
- Pilar 3: Komputasi Saintifik (Sesi 11-13): Kemampuan menggunakan NumPy, Matplotlib, dan mengelola Data I/O (File Handling).
- Pilar 4: Kualitas & Keandalan (Sesi 14-15): Penerapan Error Handling (try-except) dan Prinsip *Clean Code*.
Bobot Penilaian UAS:
UAS akan dibagi menjadi dua bagian dengan bobot yang sama:
- **Presentasi Proyek (20% Bobot Akhir):** Demonstrasi program yang berfungsi dan menjawab studi kasus (Sesi 15).
- **Ujian Praktik Komprehensif (20% Bobot Akhir):** Soal praktik tertutup yang menguji integrasi materi Sesi 1 hingga 14.
II. Kisi-Kisi Soal Praktik Komprehensif (UAS)
UAS akan terdiri dari 3 Studi Kasus Utama yang harus diselesaikan dalam kode Python. Fokus pada penggunaan pustaka saintifik dan struktur program yang baik.
Studi Kasus 1: Kalkulator Numerik Aman (Sesi 4, 5, 9, 14)
// Instruksi Kode UAS:
Buatlah fungsi hitung_integral_aman(a, b, N) untuk menghitung integral numerik menggunakan **Metode Trapesium** (Sesi 5).
- Fungsi wajib menggunakan **perulangan** (for atau while).
- Wajib menyertakan try-except untuk menangani ValueError pada input pengguna.
- Gunakan if-else untuk memastikan $a < b$ (batas bawah harus lebih kecil dari batas atas).
Studi Kasus 2: Analisis Data Eksperimen dengan NumPy & Matplotlib (Sesi 11, 12, 13)
// Instruksi Kode UAS:
Simulasikan pembacaan berkas data eksperimen (Suhu dan Tekanan). Kemudian lakukan analisis dan visualisasi.
- Gunakan File Handling (simulasi membaca data dari string/list).
- Konversi data string ke **NumPy array** (Sesi 11).
- Hitung korelasi antara Suhu dan Tekanan menggunakan fungsi NumPy.
- Buat **plot sebar** (*scatter plot*) dari data tersebut menggunakan Matplotlib (Sesi 12).
Studi Kasus 3: Penyelesaian Sistem Matriks (Sesi 11)
// Instruksi Kode UAS:
Selesaikan sistem persamaan linear berikut menggunakan NumPy:
3x + 2y - z = 10
x - y + 2z = 5
-2x + y + 3z = 1
- Definisikan matriks koefisien (A) dan vektor hasil (b) menggunakan np.array().
- Gunakan np.linalg.solve() untuk mendapatkan nilai (x, y, z).
III. Kriteria Presentasi Proyek Akhir
Presentasi Proyek (maksimal 8 menit per kelompok/individu) harus mencakup:
- Latar Belakang (10%): Apa masalah saintifik yang dipecahkan dan mengapa Python adalah alat yang tepat?
- Struktur Kode (40%): Tunjukkan arsitektur fungsi dan modularitas. Jelaskan mengapa Anda menggunakan NumPy atau Matplotlib pada bagian tertentu.
- Demonstrasi (30%): Tunjukkan program berjalan (live demo) dengan data input dan hasil output (termasuk visualisasi). Demonstrasikan juga penanganan error jika diberi input yang salah.
- Kesimpulan & Clean Code (20%): Jelaskan tantangan terbesar dan bagaimana Anda memastikan kode Anda reusable dan mudah dipelihara (referensi docstrings, penamaan, dan PEP 8).