Uts Asd 2012 Fixed

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 :