Soal text
Transkripsi dicocokkan dengan 2 halaman naskah asli.
Redaksi dirapikan untuk dibaca. Data, pilihan jawaban, dan subsoal mengikuti naskah; diagram dijelaskan dalam teks atau tabel.
Lompat ke soal
UTS Dasar Pemrograman, gasal 2025/2026. Selasa, 14 Oktober 2025. 08.00–09.40 WIB (100 menit). Buku terbuka.
Tuliskan identitas NIM dan nama pada setiap lembar jawab. Jawablah soal pada lembar jawab, bila perlu disertai asumsi/gambar.
Soal 1 — 25%
Jika diketahui tipe Pecahan(x: integer, y: integer > 0) dan fungsi KaliPecah(P1, P2) adalah fungsi perkalian dari dua data bertipe pecahan dengan contoh aplikasi sebagai berikut:
BagiPecah((1, 5), (2, 3)) → (2, 15)
a. Tentukan domain dari fungsi KaliPecah. b. Tentukan range dari fungsi KaliPecah. c. Tentukan realisasi fungsi KaliPecah.
Soal 2 — 75%
Sebuah pengembang game sedang mengembangkan sistem untuk menentukan status kondisi mobil pemain selama perlombaan. Penentuan status mempertimbangkan kondisi mobil, jenis lintasan, dan cuaca saat balapan. Tujuan sistem adalah menentukan apakah mobil aman, waspada, berisiko tinggi, atau didiskualifikasi.
Data yang digunakan
- Data Mobil berisi pembalap, kecepatan kendaraan, serta persentase bahan bakar yang tersisa.
- Data Lintasan mencakup jenis lintasan (aspal, offroad, salju), panjang lintasan, dan kondisi cuaca (cerah, hujan, bersalju).
- Data Kondisi menggambarkan tingkat keausan ban (0–100, ketahanan ban), kondisi mesin (0–100), dan apakah mobil memiliki boost nitro.
Keluaran berupa status akhir mobil yang memuat nama pembalap dan status kendaraan: “Normal”, “Waspada”, “Bahaya”, atau “Didiskualifikasi”.
Aturan evaluasi, sesuai urutan pada naskah
a. Jika mesin ≤ 0 atau ban ≤ 0, mobil Didiskualifikasi dan tidak dapat melanjutkan balapan. b. Jika BBM ≤ 5, mobil Bahaya, karena bahan bakar hampir habis. c. Jika kecepatan > 200 dan cuaca = “Hujan” atau “Bersalju”, mobil Bahaya, karena risiko tergelincir tinggi. d. Jika jenis lintasan = “Offroad” dan ban < 30, mobil Waspada, karena traksi tidak optimal. e. Jika nitro = aktif dan mesin ≥ 50, status Normal, karena boost stabil dan mesin memadai. f. Jika mesin < 30, status Waspada, karena kemungkinan kehilangan tenaga. g. Kondisi lain dianggap Normal.
Yang diminta
a. Buat definisi dan spesifikasi tipe bentukan yang dibutuhkan. (25%) b. Buat definisi dan spesifikasi selector dan konstruktor untuk setiap tipe bentukan. (25%) c. Buat definisi, spesifikasi, dan realisasi fungsi Evaluasi_Kondisi yang menentukan status kondisi mobil berdasarkan ketentuan di atas. (25%)
Soal 1 berada pada halaman PDF 1; soal 2 pada halaman PDF 2.