Soal text
Transkripsi dicocokkan dengan 3 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 Berorientasi Objek, genap 2024/2025. Tanggal pada header: Kamis, 10 April 2024. 08.00–09.40 WIB (100 menit). Buku terbuka.
Tuliskan NIM dan nama di bagian atas lembar jawab. Jawab dengan jelas dan mandiri. Segala kecurangan diberi nilai 0. Selama mengerjakan UTS, mahasiswa dilarang meninggalkan ruangan.
Kasus Lembaga Penyedia Kursus (untuk soal 1–6)
LPK menyediakan dua jenis pelatihan: reguler dan insidental. Semua pelatihan memiliki kode, nama, kuota, nama instruktur, harga, pajak.
Pelatihan reguler berlangsung 3 atau 6 bulan, memiliki level basic, intermediate, advance, serta metode kursus privat atau kelompok. Pelatihan insidental berlangsung pada tanggal tertentu dan dapat diselenggarakan online atau offline. Persentase pajak sama bagi semua pelatihan dan dapat diubah menyesuaikan aturan.
Peserta terdiri dari umum dan member. Semua mempunyai nomor KTP, nama, email. Member juga mempunyai nomor anggota dan tanggal mulai bergabung. Persentase diskon member sama untuk semua pelatihan dan dapat diubah sesuai kebijakan LPK. Peserta umum tidak mendapat diskon.
Harga akhir = harga − (diskon% × harga) + (pajak% × harga pelatihan). Setiap peserta dapat mendaftar maksimal tiga jenis pelatihan sekaligus. Registrasi mencatat tanggal registrasi, tanggal bayar, metode pembayaran (tunai/non-tunai).
Objek pelatihan harus menampilkan detail kode, nama, jenis reguler/insidental, kuota, harga, pajak, dan “harga akhir setelah dikurangi pajak” sebagaimana kalimat pada naskah, serta informasi tambahan sesuai jenis pelatihan. Objek peserta menampilkan seluruh detail peserta, seluruh pelatihan yang didaftar, serta pembayaran: harga awal, diskon, pajak, harga akhir, tanggal bayar, dan metode pembayaran.
Soal 1 — 10%
Desain class diagram yang tepat dengan menerapkan enkapsulasi, pewarisan, overloading, overriding. Diagram harus memuat semua kelas dan relasinya. Untuk mempermudah penggambaran, bagian kelas cukup dituliskan nama kelasnya.
Soal 2 — 10%
Jelaskan relasi antarkelas yang dibuat pada nomor 1.
Soal 3 — 30%
Lengkapi setiap kelas dengan atribut beserta tipe data, konstruktor, dan semua method relevan. Untuk konstruktor dan method, tuliskan signature lengkap.
Soal 4 — 10%
“Pada desain setiap kelas yang dibuat pada nomor 4”, adakah atribut kelas yang berupa atribut static? Jika ada, sebutkan atribut tersebut dan jelaskan alasannya.
Soal 5 — 30%
Implementasikan kelas peserta dan pelatihan beserta subkelasnya dalam Java agar dapat menampilkan detail pelatihan, data peserta, semua pelatihan yang didaftar, dan metode pembayaran.
Untuk mempersingkat, method yang perlu diimplementasikan adalah method selain konstruktor, getter, dan setter. Jika memerlukan pemanggilan konstruktor/getter/setter, gunakan nama sesuai class diagram yang oleh naskah dirujuk sebagai “nomor 2”.
Soal 6 — 10%
Jelaskan penerapan konsep enkapsulasi, overloading, dan overriding pada desain atau implementasi jawaban sebelumnya.
Header di halaman PDF 1; petunjuk, kasus, dan soal 1 di halaman PDF 2; soal 2–6 di halaman PDF 3.