Sample Soal UTS PDL (IF4040)
Soal contoh UTS dari dosen (2 halaman). Disalin apa adanya dari _Materi/PDL/ppt-baru/1791441166170_IF4040_UTS_sample.pdf. Belum ada jawaban di file ini.
Deskripsi Soal Studi Kasus
Deskripsi berikut digunakan untuk semua soal di bawahnya.
Diketahui bagian dari model ER basis data sebuah aplikasi sosial media sebagai berikut. Nama-nama diasumsikan dapat dipahami dengan mudah.

Isi diagram (untuk memudahkan pencarian teks):
| Entity set | Atribut |
|---|---|
| User | email (kunci), phone_number, name, gender, date_of_birth, city, country, address, job, { hobbies } (multivalued) |
| Posting | posting_id (kunci), posting_type, ts_posting (komposit: date, time), IP, text_message |
| Media | id_media (kunci), media_type, file_size, created_at |
| Image (ISA dari Media) | resolution, dimension, color_space, camera_info |
| Video (ISA dari Media) | resolution, frame_rate, codec, duration |
| PDF_File (ISA dari Media) | title, author |
| Relationship | Menghubungkan | Catatan di diagram |
|---|---|---|
| post | User dan Posting | Posting berpartisipasi total (garis ganda); panah ke User |
| own | User dan Media | Media berpartisipasi total (garis ganda); panah ke User |
| follow | User (followee) dan User (follower) | Punya atribut ts_follow |
| reply | Posting (replyee) dan Posting (replier) | Relasi rekursif |
| contain | Posting dan Media | - |
| ISA (disjoint) | Media menjadi Image, Video, PDF_File | Spesialisasi disjoint |
Beberapa informasi tambahan:
- Alamat (address), hobi, dan pekerjaan (job) pengguna (user) boleh tidak diisi (fleksibel). Atribut lain terkait pengguna wajib diisi.
- Atribut
media_typedi entity set Media bernilai: image, video, pdf file, dll. (dimungkinkan ada jenis lain). - Atribut
posting_typeadalah: normal dan reply (posting yang merupakan reply/tanggapan dari posting lain). Tidak diketahui ada jenis posting yang lain.
Beberapa informasi penting terkait query yang sering terjadi di aplikasi ini:
- Atribut user berikut sering diambil bersama-sama: email, name, phone_number, gender, date_of_birth, dan daftar followers dari user (email, nama). Data lain tidak sering ditampilkan bersamaan.
- Seluruh data dari berbagai jenis media sering ditampilkan bersama-sama, walaupun terdapat perbedaan atribut pada jenis media tertentu.
- Posting tertentu dari seorang pengguna ditampilkan bersama dengan semua media terkait (atribut standar: id_media, media_type, file_size, created_at) berikut semua posting_id dari reply terhadap posting tersebut.
Soal
Soal 1. Buatlah model basis data relasional (murni, bukan objek relasional) untuk persoalan di atas dan berikan penjelasan ringkas tentang reasoning desain Anda. Anda boleh (tidak harus) mengajukan model yang dioptimasi jika diperlukan, tetapi sertai dengan penjelasan dan asumsi yang lengkap.
Soal 2. Untuk setiap teknologi basis data NoSQL pada soal 2.a. s.d. 2.c. berikut: buatlah desain lojikal dari basis data untuk persoalan di atas dan berikan penjelasan ringkas tentang reasoning desain Anda. Tuliskan tambahan asumsi jika ada.
- a) Model berbasis dokumen. Tambahkan penjelasan penggunaan strategi embedding dan/atau referencing.
- b) Model berbasis column-family. Jika tidak memberikan keterangan apa pun, diasumsikan Anda menggunakan pendekatan Big-Table-like seperti materi kuliah. Jika Anda ingin menggunakan pendekatan lain (misalnya Cassandra-like atau columnar murni), berikan penjelasan selengkapnya.
- c) Model berbasis graf.
Soal 3. Berikan 1 (satu) contoh use case penggunaan basis data key-value berdasarkan persoalan di atas.
Soal 4. Anda diminta untuk melakukan transfer data hasil dari query no. 3 dalam bentuk XML.
- a) Buatlah desain XML Schema atau DTD (pilih salah satu saja) untuk keperluan tersebut.
- b) Berdasarkan desain XML 4.a, tuliskan XQuery untuk mendapatkan data posting dari pengguna dengan email fazat@informatika.org.
Materi yang Diuji (Peta ke Catatan)
| Soal | Topik | Catatan terkait |
|---|---|---|
| 1 | ER ke relasional (termasuk ISA, multivalued, relasi rekursif) | 13_ER_Modeling, 14_Relational_Data_Model |
| 2a | Desain document database: embedding vs referencing | 17_Document_Database |
| 2b | Desain column family (Big-Table-like) | 18_Column_Family_Database |
| 2c | Desain graph database | 19_Graph_Database |
| 3 | Use case key-value | 16_Key_Value_Database, 21_Choosing_a_Database |
| 4a | XML Schema / DTD | 20_XML_Database |
| 4b | XQuery (FLWOR) | 20_XML_Database |