UJIAN AKHIR SEMESTER GENAP 2006/2007 SUSULAN | DUA JAM Jawablah setiap pertanyaan di bawah ini pada lembar jawaban terpisah yang telah disediakan. Jangan menuliskan jawaban di kertas jawaban baliknya. Beri identitas Anda pada setiap lembar jawaban. 1. Diinginkan suatu obyek yang dapat digunakan sebagai ADT bernama Pecahan untuk menyimpan suatu nilai bilangan dengan nilai pecahan dimana a, b, dan c adalah bilangan bulat (integer), dengan ketentuan sebagai berikut: a. Nilai default Pecahan adalah 1. b. Dapat diinisialisasi menggunakan tiga nilai integer secara terpisah. c. Dapat diinisialisasi menggunakan sebuah array yang berisi tiga nilai integer. d. Nilai Pecahan adalah sesederhana mungkin. Sebagai contoh, nilai akan disimpan dalam obyek ini dengan nilai 1 . e. Dapat dilakukan operasi assignment (=), penjumlahan diri sendiri (+=), dan pengurangan diri sendiri (-=). f. Dapat dicetak dengan menggunakan fungsi print() dengan bentuk a:b/c. Contoh penggunaan: int a[3]={1, 2, 3}; Pecahan p1, p2, p3, p4; Pecahan p2(2,10,6); // p1, p2, p3, dan p4 masing-masing bernilai 1. // p2 bernilai 2 disederhanakan menjadi 3 Pecahan p3(a); p1 = p3; p2 += p3; p1.print(); p2.print(); p4.print(); // p3 bernilai 1 // assignment // p2 = p2 + 3 // mencetak 1 2/3 // mencetak 5 1/3 // mencetak 1 2. Perhatikan “silsilah” kelas sebagai berikut: A B D Masing-masing kelas memiliki anggota data dan prosedur seperti pada tabel berikut: Kelas A B D Anggota Data int a, b float c int a, x, y float c (nilai a dan c diturunkan dari kelas A) int a, x, y float c (semuanya diturunkan dari kelas B) Prosedur A(a,b,c) F1() F2() B(a,x,y,c) F1(float p) F2() int F3() D(a,x,y,c) int F3() Keterangan Prosedur Nilai default semua variabel adalah 0. Mencetak nilai a, b, dan c dipisahkan spasi Menukar (swap) nilai a dan b Nilai default semua variabel adalah 0. Memberikan nilai p ke dalam variabel c Mencetak nilai a Menjumlahkan nilai x dan y Nilai default semua variabel adalah 0. Diturunkan dari kelas B Buat definisi dan implementasi setiap kelas, data, dan fungsi secara lengkap sesuai dengan “silsilah” tersebut dan tabel yang ada.