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 Pemrograman Lanjut 2024/2025
Selasa, 15 April 2025 · 13.00–14.40 WIB (100 menit) · Terbuka satu lembar A5. Tuliskan NIM/nama/kode kelas; sertakan asumsi/gambar bila perlu. Tidak bekerja sama, meminjam alat tulis, atau berkomunikasi.
1. Kompleksitas (20%)
Buat contoh algoritma C++ untuk setiap efisiensi: O(log n), O(n), O(n log n), O(n²), O(2ⁿ), O(n!).
2. Binary Search (20%)
Algoritma mencari waktu minimum memproses k pekerjaan dengan n mesin; setiap mesin pi mempunyai waktu berbeda untuk satu pekerjaan.
int x = -1;
for (int b = z; b >= 1; b /= 2) {
while (!valid(x+b)) x += b;
}
int k = x+1;
a. Buat fungsi valid() agar algoritma bekerja sesuai. b. Berapa iterasi untuk k=8,n=3,p1=2,p2=3,p3=7? Tunjukkan langkah sesuai Binary Search.
3. Representasi graf (20%)
Node adalah lokasi kampus, edge satuan jarak. Graf (a), dua arah:
Bunderan UNDIP — Widya Puraya: 3
Bunderan UNDIP — Jembatan Katak: 2
Bunderan UNDIP — Psikologi Baru: 8
Jembatan Katak — Psikologi Baru: 4
Widya Puraya — Psikologi Baru: 5
Widya Puraya — FSM: 5
Psikologi Baru — FSM: 1
Graf(b), satu arah (tanpa bobot tercetak):
Bunderan UNDIP → Widya Puraya
Bunderan UNDIP → Jembatan Katak
Jembatan Katak → Psikologi Baru
Widya Puraya → Psikologi Baru
Widya Puraya → FSM
Psikologi Baru → FSM
Buat representasi kedua graf sebagai Adjacency List, Adjacency Matrix, dan Edge List dalam C++.
4. Jalur terpendek (20%)
Buat algoritma C++ untuk jarak terpendek node awal ke semua node. Jelaskan langkah pada graf (a) soal 3.
5. Reachability (20%)
Berdasarkan graf (b), buat algoritma C++ menghitung jumlah lokasi yang dapat dikunjungi kendaraan dari titik tertentu, termasuk titik itu sendiri. Contoh input “Psikologi Baru”, output2, karena dapat mengunjungi Psikologi Baru dan FSM.