DEV Community

Cover image for SOAL UJIAN TENGAH SEMESTER (UTS)
ahmadasroni38
ahmadasroni38

Posted on

SOAL UJIAN TENGAH SEMESTER (UTS)

MATA KULIAH: ALGORITMA DASAR


Soal Praktikum: Program Perhitungan Nilai Mahasiswa

Deskripsi:
Buatlah sebuah program Python sederhana untuk menghitung nilai akhir mahasiswa dan menentukan grade serta status kelulusan.

Spesifikasi Program:

  1. Input Data Mahasiswa:

    • Program meminta input jumlah mahasiswa (minimal 3 mahasiswa)
    • Untuk setiap mahasiswa, input:
      • Nama mahasiswa
      • Nilai Tugas (0-100)
      • Nilai UTS (0-100)
      • Nilai UAS (0-100)
  2. Validasi Input:

    • Semua nilai harus dalam range 0-100
    • Jika input tidak valid, tampilkan pesan error dan minta input ulang
    • Nama tidak boleh kosong
  3. Perhitungan:

    • Hitung nilai akhir dengan bobot:
      • Tugas: 30%
      • UTS: 30%
      • UAS: 40%
  • Tentukan grade berdasarkan nilai akhir:

    • A: >= 80
    • B: 70-79
    • C: 60-69
    • D: 50-59
    • E: < 50
  • Tentukan status:

    • LULUS jika nilai akhir >= 60
    • TIDAK LULUS jika nilai akhir < 60
  1. Output: Program harus menampilkan:
    • Tabel hasil untuk setiap mahasiswa (Nama, Tugas, UTS, UAS, Nilai Akhir, Grade, Status)
    • Nilai rata-rata kelas
    • Jumlah mahasiswa yang lulus dan tidak lulus

Ketentuan Teknis:

  1. Gunakan bahasa pemrograman Python
  2. Gunakan minimal 2 fungsi:
    • Fungsi untuk menghitung nilai akhir dan grade
    • Fungsi untuk menampilkan hasil
  3. Gunakan struktur perulangan (for/while) untuk input dan proses data
  4. Gunakan percabangan (if-elif-else) untuk menentukan grade dan status
  5. Kode harus rapi dengan komentar yang jelas

Contoh Output yang Diharapkan:

=== PROGRAM PERHITUNGAN NILAI MAHASISWA ===

Masukkan jumlah mahasiswa: 3

--- Input Mahasiswa ke-1 ---
Nama: Ahmad Fauzi
Nilai Tugas (0-100): 85
Nilai UTS (0-100): 80
Nilai UAS (0-100): 90

--- Input Mahasiswa ke-2 ---
Nama: Siti Nurhaliza
Nilai Tugas (0-100): 75
Nilai UTS (0-100): 70
Nilai UAS (0-100): 65

--- Input Mahasiswa ke-3 ---
Nama: Budi Santoso
Nilai Tugas (0-100): 50
Nilai UTS (0-100): 55
Nilai UAS (0-100): 45

=== HASIL PERHITUNGAN NILAI ===

--------------------------------------------------------------------
No | Nama              | Tugas | UTS | UAS | N.Akhir | Grade | Status
--------------------------------------------------------------------
1  | Ahmad Fauzi       | 85    | 80  | 90  | 85.50   | A     | LULUS
2  | Siti Nurhaliza    | 75    | 70  | 65  | 69.50   | C     | LULUS
3  | Budi Santoso      | 50    | 55  | 45  | 49.50   | E     | TIDAK LULUS
--------------------------------------------------------------------

=== RINGKASAN ===
Rata-rata Kelas  : 68.17
Jumlah Lulus     : 2 mahasiswa
Jumlah Tidak Lulus: 1 mahasiswa
Enter fullscreen mode Exit fullscreen mode

Yang Harus Diserahkan:

  1. Source code Python lengkap dengan komentar (.py)
  2. Screenshot hasil running program dengan minimal 3 data mahasiswa

Format Pengumpulan:

  • File dengan nama: NIM_Nama_UTS.py
  • Contoh: 2101234567_AhmadFauzi_UTS.py

Kriteria Penilaian:

  • Input dan validasi data (20%)
  • Perhitungan nilai akhir dan grade (30%)
  • Penggunaan fungsi (20%)
  • Penggunaan struktur perulangan dan percabangan (20%)
  • Output dan kerapian kode (10%)

Waktu Pengerjaan: 1 Minggu
Presentasi: Setiap mahasiswa akan mempresentasikan hasil kerjanya selama 10-15 menit


BAGIAN B: SOAL LISAN (10 Soal - Akan Ditanyakan 3 Secara Acak)

Soal Lisan 1: Karakteristik Algoritma

Pertanyaan:
Sebutkan dan jelaskan minimal 4 dari 5 karakteristik algoritma yang baik! Berikan contoh konkret untuk masing-masing karakteristik tersebut.

Materi: Bab 1 - Pengenalan Algoritma


Soal Lisan 2: Tipe Data dan Operator Logika

Pertanyaan:
Jelaskan perbedaan antara operator logika AND dan OR! Berikan contoh kasus penggunaan dalam kehidupan sehari-hari dan dalam pemrograman. Serta apa hasil dari ekspresi berikut? Jelaskan!

  • True and False
  • True or False
  • not True

Materi: Bab 3 - Struktur Runtunan


Soal Lisan 3: Perbedaan Jenis Loop

Pertanyaan:
Jelaskan perbedaan mendasar antara while loop dan do-while loop (dalam Python menggunakan while True dengan break)! Berikan contoh kode Python untuk masing-masing dan jelaskan kapan lebih tepat menggunakannya.

Materi: Bab 5 - Struktur Perulangan


Soal Lisan 4: Simbol Flowchart dan Fungsinya

Pertanyaan:
Sebutkan dan gambarkan minimal 5 simbol flowchart standar (ISO 5807) beserta fungsinya masing-masing! Berikan contoh penggunaan konkret untuk setiap simbol.

Materi: Bab 2 - Notasi dan Representasi Algoritma


Soal Lisan 5: Operator dan Prioritas

Pertanyaan:
Hitung hasil ekspresi berikut dengan urutan prioritas operator yang benar:

hasil = 10 + 3 * 2**2 - 8 / 4
Enter fullscreen mode Exit fullscreen mode

Jelaskan langkah-langkah perhitungan Anda sesuai urutan prioritas operator!

Materi: Bab 3 - Struktur Runtunan


Soal Lisan 6: Nested Loop - Analisis Kompleksitas

Pertanyaan:
Perhatikan kode Python berikut:

n = 3
for i in range(1, n+1):
    for j in range(1, n+1):
        print(i * j, end=" ")
    print()
Enter fullscreen mode Exit fullscreen mode

a) Jika n = 3, berapa kali statement print(i * j) akan dieksekusi?
b) Berapa kompleksitas waktu (time complexity) dari algoritma ini?
c) Jelaskan mengapa nested loop bisa menjadi masalah untuk performa jika n sangat besar!

Materi: Bab 5 - Struktur Perulangan


Soal Lisan 7: Struktur Perulangan FOR

Pertanyaan:
a) Jelaskan kapan kita sebaiknya menggunakan FOR loop dibandingkan WHILE loop! Berikan 1 contoh kasus yang lebih tepat menggunakan FOR loop!

Materi: Bab 5 - Struktur Perulangan


Soal Lisan 8: Break vs Continue

Pertanyaan:
Jelaskan perbedaan antara statement break dan continue dalam perulangan! Berikan contoh kode Python untuk masing-masing yang menunjukkan output berbeda.

Materi: Bab 5 - Struktur Perulangan


Soal Lisan 9: Multiple IF vs Nested IF

Pertanyaan:
Jelaskan perbedaan antara struktur Multiple IF-ELIF dengan Nested IF dalam Python! Kapan lebih tepat menggunakan IF-ELIF dan kapan menggunakan Nested IF? Berikan contoh kode untuk masing-masing!

Materi: Bab 4 - Struktur Percabangan


Soal Lisan 10: Algoritma vs Program

Pertanyaan:
Jelaskan perbedaan fundamental antara algoritma dan program komputer! Mengapa kita perlu mempelajari algoritma terlebih dahulu sebelum langsung coding? Berikan contoh konkret!

Materi: Bab 1 - Pengenalan Algoritma


PETUNJUK PELAKSANAAN UJIAN LISAN

Untuk Mahasiswa:

  1. Setiap mahasiswa akan dipanggil secara acak
  2. Akan diberikan 3 soal lisan dari 10 soal yang tersedia (dipilih secara acak)
  3. Waktu menjawab: maksimal 1 menit per soal
  4. Boleh menggunakan kertas untuk menggambar/menulis saat menjelaskan
  5. Nilai berdasarkan:
    • Ketepatan jawaban (50%)
    • Kemampuan menjelaskan (30%)
    • Contoh yang diberikan (20%)

BOBOT PENILAIAN UTS

  • Soal Praktikum: 50%
  • Soal Lisan: 50%

Nilai Akhir UTS = (Nilai Praktikum × 50%) + (Nilai Lisan × 50%)


CATATAN PENTING

  1. Kejujuran Akademik: Segala bentuk plagiarisme atau kecurangan akan mendapat sanksi tegas
  2. Presentasi: Mahasiswa harus bisa menjelaskan setiap baris kode yang ditulisnya
  3. Bantuan: Boleh menggunakan dokumentasi Python resmi atau AI, tidak boleh copy-paste kode dari internet

Selamat mengerjakan dan semoga sukses!

Mata Kuliah: Algoritma Dasar

Top comments (0)