View
14
Download
2
Category
Preview:
DESCRIPTION
latihan soal algoritma struktur data
Citation preview
Page 1 of 7
Nama : NIM : Kelas : Ruang :
UTS Sem. I 2012/2013 CSG2A3 (Desain Algoritma dan Struktur Data) Senin 5 November 2012 Pk. 13.00 - 15.00 (120 menit)
ADE, EAR, SRV, FSV, UNW, RVI, DQU
= Dilarang keras bekerja sama. Jika dilakukan, maka dianggap pelanggaran =
Kerjakan soal langsung pada kertas ujian ini.
Nama Mahasiswa:
...............
NIM:
.......
Kls:
Ruang:
....
Nilai (Diisi Dosen):
Salinlah pernyataan berikut: Saya mengerjakan ujian ini dengan jujur dan mandiri. Jika saya melakukan pelanggaran, maka saya bersedia menerima sanksi.
Tanda Tangan Mahasiswa:
......................................................
....................................................................................................
....................................................................................................
....................................................................................................
Total POINT keseluruhan soal = 135. Anda bebas memilih prioritas pengerjaan soal, dahulukan mengerjakan soal yang paling dikuasasi. Soal Bagian I: Isian Singkat
1. Perhatikan ilustrasi list T sebagai berikut :
Lengkapi kolom Hasil Eksekusi sesuai dengan kode algoritma di kolom Pernyataan (Total Point
= 10)
No Pernyataan Hasil Eksekusi
1 K.info
2 W.next.info
3 P.info + K.next.info
4
If (P.next.next.info < -4) then K.info
Page 2 of 7
Nama : NIM : Kelas : Ruang :
Soal Bagian II : ESSAY BEBAS
A. ADT (TOTAL POIN = 20) Terdapat data 100 pelamar kerja pada PT ANGIN RIBUT. Untuk menyimpan data tersebut, akan
didefinisikan type data PELAMAR. Berikut ilustrasi type data PELAMAR :
PELAMAR
Nama Fulan Fulanah
No Tes 12345
Pendidikan S1
IPK 3.15
Nilai Tes
Nilai Tes Pengetahuan 90
Nilai Tes Skill 86
Nilai Tes Wawancara 78
Nilai Rata-rata 84,67 a. Buatlah definisi struktur data type PELAMAR (POIN = 5)
Jawab :
b. Buatlah function atau procedure (definisi serta implementasi) dengan spesifikasi sebagai berikut
:
i) Function untuk membentuk Data Pelamar dari komponen-komponen (5 Point) Input : Nama, No Tes, Pendidikan, IPK, Nilai Tes Pengetahuan, Nilai Tes Skill, Nilai
Tes Wawancara.
Output : sebuah variabel bertipe PELAMAR
Jawab :
ii) Procedure untuk melakukan penghitungan nilai rata-rata tes pelamar. (5 point) Input : sebuah variabel bertipe PELAMAR dengan data Nilai Rata-Rata masih kosong.
Output : sebuah variabel bertipe PELAMAR dengan Data Nilai Rata-rata telah terisi.
Nilai Rata-rata =(Nilai Tes Pengetahuan + Nilai Tes Skill + Nilai Tes Wawancara) / 3
Jawab :
Page 3 of 7
Nama : NIM : Kelas : Ruang :
iii) Buat sebuah program utama yang di dalamnya terdapat pemanggilan terhadap function dan procedure yang telah didefinisikan (5 point).
Jawab :
Soal Bagian II : ESSAY
B. LIST LINIER (TOTAL POIN = 40) Untuk menyimpan data pemain sepakbola sebuah kesebelasan, digunakan struktur data List Linier.
Informasi yang disimpan untuk setiap pemain adalah :
Nomor punggung, nama lengkap, tinggi badan
Data pemain dalam List TIDAK TERURUT berdasar kriteria tertentu.
a. Buat definisi type untuk kasus tersebut (POIN = 5). Jawab :
b. Buat procedure untuk menambahkan data seorang pemain (POIN = 5) Jawab :
Procedure InsertPlayer (..) {I.S : List Pemain mungkin kosong, data pemain : nomor punggung,nama,tinggi terdefinisi}
{F.S : Pemain Baru akan ditambahkan ke dalam list, sebagai elemen pertama / Insert First}
Page 4 of 7
Nama : NIM : Kelas : Ruang :
c. Buat procedure untuk menghapus data seorang pemain, berdasarkan informasi nomor punggung (POIN = 20)
Jawab :
Procedure DelPlayer () {I.S : list TIDAK kosong}
{F.S : pemain dengan nomor punggung sesuai input akan dihapus dari list dan didealokasi}
d. Buat function untuk mencari pemain yang paling tinggi badannya. Output berupa nomor punggung pemain yang paling tinggi. Asumsi List TIDAK kosong. (POIN = 10)
Jawab :
Function SearchMaxTinggi()-> ..
Page 5 of 7
Nama : NIM : Kelas : Ruang :
Soal Bagian II : ESSAY
C. VARIASI LIST LINIER (TOTAL POIN = 30) Akan dibuat sebuah list untuk menyimpan data berupa nilai integer, yang disimpan dengan terurut
secara MEMBESAR. Perhatikan ilustrasi double-linked dan circular list sebagai berikut :
Double-linked list
Circular list
a. Buat struktur data (type) untuk kasus tersebut, jika List yang akan digunakan adalah Double-Linked-List (point = 5)
Jawab :
b. Buat struktur data (type) untuk kasus tersebut, jika List yang akan digunakan adalah Circular-List (point = 5)
Jawab :
c. Buat procedure untuk menyisipkan sebuah data baru, dengan tetap menjaga keterurutan elemen list. Anda boleh memilih menggunakan representasi double-linked atau circular, beri keterangan !
(point = 20)
Jawab :
Page 6 of 7
Nama : NIM : Kelas : Ruang :
D. MULTI LIST (TOTAL POINT = 35) Diketahui definisi type multilist dan ilustrasinya sebagai berikut :
type ElmPeg :
type ElmAnak :
type adrPeg : pointer to ElmPeg
type adrAnak : pointer to ElmAnak
Buatlah implementasi primitif berikut : a. procedure InsertAnak(input/output L:adrPeg;input NIPPeg:string,
NamaAnak:string) (poin = 20)
{mendaftar anak yg baru lahir, insert selalu di awal list}
{I.S. List pegawai terdefinisi
F.S. Jika pegawai dg NIP=NIPPeg ada, alokasi anak (gunakan fungsi alokasiAnak
yang tersedia), insert anak sebagai elemen pertama list anak dari pegawai yang
bersesuaian.
function alokasiAnak (nmAnak: String) P: adrAnak {fungsi ini melakukan alokasi memori untuk nmAnak dalam bentuk adrAnak}
}
Jawab :
B A C
First
x
p
z
u
y
List Pegawai
Anak-anak
Page 7 of 7
Nama : NIM : Kelas : Ruang :
b. procedure HitungAnak(input L: adrPeg) (poin=15)
{menampilkan jumlah anak setiap pegawai}
{I.S. List pegawai terdefinisi, tidak kosong.
F.S. NIP dan Nama Pegawai beserta jumlah anak yang dimiliki dituliskan ke layar.
Jika pegawai tidak punya anak, tulis jumlah anak = 0}.
Jawab :
Recommended