Soal Uts 2011
Soal Uts 2011
2. (Greedy) Misalkan terdapat 7 mata kuliah yang dijadwalkan ujiannya sebagai berikut: 1) Kalkulus (jam 7.00
– 9.00), Fisika Dasar (13.00 – 15.00), Kimia Dasar (9.00 – 11.00), Bahasa Inggris (8.00 – 10.00), Bahasa
Indonesia (13.00-16.00), Kewirausahaan (10.00-12.00), dan Agama (13.00 -15.00). Bagaimana cara
menjadwalkan semua ujian tersebut sehingga menggunakan ruangan kelas sesedikit mungkin? Dalam
menjawab soal ini tuliskan strategi greedy yang dipakai, kemudian perkirakan kompleksitas waktu
algoritmanya jika terdapat n mata kuliah. (15)
3. (Divide and Conquer) Misalkan anda mempunyai array A[1..n] yang telah berisi n elemen integer. Elemen
mayoritas di dalam A adalah elemen yang terdapat pada lebih dari n/2 posisi (jadi, jika n = 6 atau n = 7,
elemen mayoritas terdapat pada paling sedikit 4 posisi). Rancanglah algoritma divide and conquer (tidak
dalam bentuk pseudo-code, tapi dalam bentuk uraian deskriptif) untuk menemukan elemen mayoritas di
dalam A (atau menentukan tidak terdapat elemen mayoritas). Jelaskan algoritma anda dengan contoh sebuah
array berukuran 8 elemen. Selanjutnya, perkirakan kompleksitas algoritmanya dalam hubungan rekursif
(misalnya T(n) = bT(n/p) + h(n)), lalu selesaikan T(n) tersebut. (20)
4. (Soal BFS) Buatlah pohon penelusuran untuk pencarian situs dengan crawling yang menggunakan
algoritma BFS yang menerima masukan berupa URL Seed (URL awal), kedalaman pencarian serta kata
kunci yang diharapkan. Untuk setiap URL yang dikunjungi, sistem akan menelusuri setiap OUTLINK yang
ada pada URL tersebut. Jika sebuah OUTLINK sudah pernah ada pada pohon yang dibangkitkan, maka
OUTLINK tersebut tidak akan ditelusuri. Namun jika belum ada, maka OUTLINK akan diambil untuk
dilihat apakah sudah memenuhi kedalaman yang diinginkan user. Jika nilai kedalaman masih lebih kecil,
maka URL yang sedang dilihat akan ditelusuri lagi OUTLINKnya. Selain masukannya berupa URL Seed dan
kedalaman pencarian, user juga memasukkan daftar kata kunci untuk melihat apakah URL yang sedang
ditelusuri sesuai dengan situs yang diinginkan user. Sebagai contoh, jika user memasukkan kata kunci
berupa “beasiswa” dan URL yang diperiksa memiliki kata kunci “beasiswa” maka URL akan dimasukkan
sebagai dokumen yang dicari user. Pohon penelusuran akan berhenti ketika semua URL yang ada pada queue
sudah semuanya diperiksa. (25)
1
Asumsi yang digunakan adalah sebagai berikut:
- Input:
o URL Seed: www.itb.ac.id
o Kedalaman: 3
o kata kunci: beasiswa kuliah
- Data
5. (Soal DFS) Buatlah sebuah pohon penelusuran (hingga mendapatkan 1 solusi) untuk menyelesaikan
masalah penjadwalan kelas menggunakan DFS backtracking dengan asumsi sebagai berikut:
- Jumlah ruangan ada 2 (R1 dan R2)
- Waktu yang dapat digunakan adalah jam 5 sampai jam 9 malam (jam 5-7 dan jam 7-9)
- Hari yang dapat digunakan adalah hari Sabtu dan Minggu
- Jumlah mata kuliah adalah 2 mata kuliah 4 sks (MK1, MK2) dan 4 mata kuliah 2 sks (MK3, MK4, MK5, MK6). MK1,
MK3 dan MK4 adalah untuk mahasiswa tingkat 1. MK2, MK5 dan MK6 adalah untuk mahasiswa tingkat 2.
Dalam menetapkan jadwal kuliah, perlu diperhatikan bahwa kuliah 4 sks tidak dapat dilaksanakan pada hari
yang sama, harus dibagi 2 jam per hari. Selain itu, mata kuliah utk angkatan yang sama tidak boleh
dilaksanakan dalam waktu yang sama sebagai contoh MK1 dan MK3 tidak boleh dilakukan pada hari dan
jam yang sama. (20)