• Tidak ada hasil yang ditemukan

A. Bagian I. Studi Kasus [82]

N/A
N/A
Protected

Academic year: 2021

Membagikan "A. Bagian I. Studi Kasus [82]"

Copied!
13
0
0

Teks penuh

(1)

UJIAN TENGAH SEMESTER GANJIL 2009/2010

NIM:

Algoritma dan Struktur Data / CS2014

Nama :

HARI : Rabu, 28 Oktober 2009

Tanda tangan: WAKTU : 135 menit

DOSEN : TIM SIFAT : Tutup Buku Petunjuk:

• Periksalah kelengkapan halaman soal. Tidak ada toleransi penilaian bagi mahasiswa yang tidak lengkap halaman soalnya.

• Soal terdiri atas dua bagian dengan rincian: tiga soal studi kasus dan lima soal pilihan ganda, dan semua dikerjakan pada lembar soal ini.

A. Bagian I. Studi Kasus [82]

Studi Kasus 1 : Kelola Data Mahasiswa

Suatu sistem harus mengelola informasi mahasiswa, matakuliah, dan registrasi matakuliah

(matakuliah MK diambil oleh mahasiswa M). Aturan yang ada adalah mahasiswa

melakukan registrasi terhadap lebih dari satu MK dan satu MK dapat diambil oleh lebih dari

satu mahasiswa. Setelah mahasiswa mengambil MK-MK tersebut maka setiap mahasiswa

akan mendapatkan nilai untuk setiap MK. Berikut ini adalah tabel mahasiswa, matakuliah,

dan relasi antara mahasiswa dan matakuliah tersebut.

Mahasiswa

MID

Nama

11308001

Bart Simpson

11308002

Milly Jones

11308003

Lisa Loeb

Matakuliah

MKID

Nama MK

SKS

CS2014

Algoritma & Struktur Data

4

MA2713

Logika Matematika

3

MA2333

Matematika Diskrit

3

CS3243

Kecerdasan Mesin dan Artifisial

3

CS3113

Teori Komputasi

3

M_MK

MID

MKID

Nilai

11308001

CS2014

65

11308001

MA2713

70

11308002

MA2333

80

11308002

CS2014

50

11308003

MA2713

73

11308003

CS3113

78

11308003

CS2014

63

(2)

Jika informasi di atas direpresentasikan dengan struktur data internal akan terlihat seperti

gambar di bawah ini:

a.

Tuliskan kamus untuk representasi struktur data di atas !

Jawab:

kamus

type ElmtMhs: <MID: string; nama: string; nextMhs: adrMhs> type ElmtMK: <MKID: string; NmMK: string; SKS: integer; nextMK: adrMK> type ElmtMM: <Nilai: integer; mhs: adrMhs; mk: adrMK;

nextMM: adrRelasi> type adrMK: ^ElmtMK

type adrRelasi: ^ElmtMM type adrMhs: ^ElmtMhs

type ListMK: <FirstMK: adrMK> type ListMM: <FirstMM: adrRelasi> type ListM: <FirstM: adrMhs>

Catatan

: untuk penamaan

variabel

atau

user defined type

harus disesuaikan dengan

procedure

yang sudah didefinisikan di bawah ini.

b.

Tuliskan algoritma

procedure

untuk menampilkan MK yang diambil oleh setiap

mahasiswa!

(3)

{Menuliskan daftar matakuliah lengkap yang diambil oleh setiap mahasiswa I.S: List Mahasiswa & M_MK terdefinisi, mungkin kosong.

F.S: Menuliskan ID_mahasiswa beserta semua ID_MK yang diambil oleh mahasiswa tsb. Jika list mahasiswa kosong, tuliskan ”List mahasiswa kosong”.}

Kamus pMhs: adrMhs pRel: adrRelasi Algoritma pMhs firstM(Lm) if pMhs=nil then

output(”List mahasiswa kosong”) else repeat output (MID(pMhs)) pRel firstMM(Lmm) while (pRel<>nil) do if (mhs(pRel)=pMhs) then output(MKID(mk(pRel))) pRel nextMM(pRel) pMhs nextMhs(pMhs) until pMhs=nil

c.

Tuliskan algoritma

procedure

untuk menghitung IPK setiap mahasiswa berdasarkan nilai

setiap MK yang diperoleh mahasiswa !

=

SKS

NILAI

SKS

IPK

(

*

)

Procedure HitungIPK(input Lm: ListM, input Lmm: ListMM)

{Menghitung IPK setiap mhs berdasarkan nilai & sks yang diambil I.S: List Mahasiswa & M_MK terdefinisi, mungkin kosong

F.S: Menuliskan IPK ke layar. Jika list mahasiswa kosong, tuliskan ”List mahasiswa kosong”.}

Kamus

pMhs: adrMhs pRel: adrRelasi ipk: real

totnilai, totsks: integer Algoritma

pMhs firstM(Lm) if (pMhs=nil) then

output(”List mahasiswa kosong”) else repeat output(MID(pMhs)) pRel firstMM(Lmm) totsks 0; totnilai 0 while (pRel<>nil) do

(4)

if (mhs(pRel)=pMhs) then

totsks totsks + sks(mk(pRel))

totnilai totnilai + (nilai(pRel)*sks(mk(pRel))) pRel nextMM(pRel) {hitung ipk} Ipk totnilai/totsks Output(ipk) pMhs nextMhs(pMhs) until pMhs=nil

Studi Kasus 2 : Olimpiade

Pada sebuah olimpiade dilombakan berbagai cabang olah raga. Tiap negara dapat

mengirimkan lebih dari satu atlet untuk satu cabang olah raga, dan tiap negara dapat

mengikuti lebih dari satu cabang olah raga. Seorang atlet dapat mengikuti lebih dari satu

cabang olah raga, namun seorang atlet hanya dapat mewakili satu negara.

Pada pertandingan tersebut, ada 3 medali yang diperebutkan untuk tiap cabang, yaitu Emas

(M), Perak (P) dan Perunggu (R).

Diketahui informasi yang harus dikelola adalah :

-

Negara : KodeNegara dan Nama Negara

-

Cabang Olah Raga : Nama cabang

-

Atlet : Nama Atlet dan Gender (L/P)

(5)

a.

Buatlah Deklarasi Struktur Data untuk Representasi tersebut (Representasi Berkait Pointer,

Notasi Algoritma)

Type ElmtNegara : <KdNegara : string; NamaNegara : string; FirstAtlet : adrAtlet; NextNegara : adrNegara > Type ElmtAtlet : <NamaAtlet : string;

Gender : char;

NextAtlet : adrAtlet> Type ElmtCabangOR : <NamaCabOR : string; NextCabOR : adrCabOR> Type Relasi : <CabOR:adrCabOR;

Medali:char; Atlet:adrAtlet;

NextRelasi:adrRelasi> Type adrCabOR : pointer to ElmtCabangOR; Type adrNegara : pointer to ElmtNegara; Type adrAtlet : pointer to ElmtAtlet;; Type adrRelasi : pointer to Relasi;

Type ListNegara : <FirstNegara : adrNegara > Type ListCabangOR : <FirstCabangOR : adrCabOR> Type ListRelasi : <FirstRelasi : adrRelasi>

b.

Berdasarkan dekarasi di atas, buatlah Primitif untuk menampilkan Perolehan Medali Emas (Dari

Cabang OR mana dan nama Atlet yang mendapatkannya)

Procedure Tampil_Perolehan_Emas (input LR : ListRelasi; LN : ListNegara; LC :

ListCabangOR) {IS. Terdefinisi LR, LN dan LC}

{FS. Menampilkan Hasil Perolehan Medali Emas serta nama atlet dan nama Cabang Olah Raganya} Kamus R : adrRelasi Algoritma R LR.First While (R≠Nil) do If (R

.Medali=‘M’)then Output(

R

↑.CabOR↑.NamaCabOR

)

Output(

R

↑.Atlet↑.NamaAtlet

)

R R

.NextRelasi {R=Nil}

(6)

Studi Kasus 3 : Level User Name

Perhatikan Ilustrasi Multi-List Berikut ini

Dari ilustrasi Multilist tersebut diatas, diketahui :

F1 dan F2 adalah First address dari List Username dan List LevelUser

L1 dan L2 adalah Last address dari List Username dan List LevelUser

Info Element List UserName berisikan: Agus, Budi, Chandra, Dudi, Endang

Info Element List Level User berisikan: Administrator, Supervisor, User, Guest

a.

Tuliskan kamus dari representasi struktur data di atas !

Jawab:

Kamus

Type adrUser : pointer to ElmtUser Type adrRelasi : pointer to ElmtRelasi Type adrLevel : pointer to ElmtLevel Type ElmtUser : < userName: string;

namaLevel: adrRelasi; nextUser: adrUser > Type ElmtRelasi : < kodeLevel: adrLevel;

nextRelasi: adrRelasi > Type ElmtLevel : < namaLevel: string;

nextLevel: adrLevel > Type ListUser : < firstUser : adrUser;

lastUser : adrUser > Type ListLevel : < firstLevel : adrLevel;

lastLevel : adrLevel >

b.

Tuliskan algoritma untuk menuliskan informasi seluruh Level User yang ada berikut

Usernamenya.

Procedure

ListFullLevelUser(input LLevel : ListLevel; input LUser : ListUser)

I.S.: List terdefinisi dan mungkin Kosong,

(7)

tersebut.

Kamus

pLev : adrLevel; pRel : adrRelasi; pUsr : adrUser;

Algoritma

pLev LLevel.First if pLev = NIL then

output (“List Level User Masih Kosong…!”) else

repeat

output (pLev^.namaLevel) pUsr LUser.First while pUsr <> NIL

pRel PUsr^.namaLevel while pRel<>NIL

if pRel = pLev then

output (pUsr^.userName) pRel pRel^.Next {end while} pUsr pUsr^.Next {end while} until pLev=NIL {end if}

(8)

B. Bagian II. Pilihan Ganda [18]

Berilah tanda silang (X) pada jawaban yang tepat. Poin setiap soal adalah 3

[1] Diketahui definisi kamus dan gambar sebagai berikut:

Kamus :

{List direpresentasi dg pointer}

Type Address : ^ElmtList {pointer to ElmList juga boleh} type InfoType : ………{terdefinisi}

type ElmtList : <Info: InfoType, Next: address> type List : address

first : List

Dibawah ini adalah potongan algoritma yang benar agar P menunjuk elemen terakhir dari

list adalah :

A.

Procedure NunjukAkhir (input L : list , output P:address )

{IS : Terdefinisi L

FS : P menunjuk elemen terakhir dari List, elemen list tidak

berubah}

Kamus :

Algoritma :

P

L.First

while P <> nil do

P

P^.next

B.

Procedure NunjukAkhir (input L : list, output P:address )

{IS : Terdefinisi L

FS : P menunjuk elemen terakhir dari List, elemen list tidak

berubah}

Kamus :

Algoritma :

P

L.First

while P ^.next<> nil do

P

P^.next

C.

Procedure NunjukAkhir (input L : list, output P:address )

{IS : Terdefinisi L

FS : P menunjuk elemen terakhir dari List, elemen list tidak

berubah}

Kamus :

(9)

P

First

while P <> nil do

P

P^.next

D.

Procedure NunjukAkhir (input L : list, output P:address )

{IS : Terdefinisi L

FS : P menunjuk elemen terakhir dari List, elemen list tidak

berubah}

Kamus :

Algoritma :

P

First

while P^.next <> nil do

P

P^.next

E.

Procedure NunjukAkhir (input L : list, output P:address )

{IS : Terdefinisi L

FS : P menunjuk elemen terakhir dari List, elemen list tidak

berubah}

Kamus :

Algoritma :

while P^.next <> nil do

L.First

L.First^.next

P

L.First

[2] Perhatikan Ilustrasi List dengan diketahui First dan Last berikut ini

Dari ilustrasi tersebut, algoritma untuk melakukan proses

InsertLast()

yang paling tepat

adalah :

A.

Next(New)

Last

Last

New

B.

Next(Last)

New

Next(New)

Last

C.

Next(Last)

New

Last

New

D.

Next(New)

Nil

Next(Last)

Last

E.

Last

New

Next(Last)

New

[3]

Jika terdapat definisi kamus sebagai berikut:

Kamus

Type adrRelasi: pointer to ElmtRelasi Type adrPeg: pointer to ElmtPeg

(10)

Type infopeg: < idPeg: string; tglLahir: date;

namaPeg: string; >

Type infoproj: < id_Proj: string; Deskripsi: string;

Tarif: integer; >

Type ElmtRelasi: < waktu: integer; Pegawai: adrPeg; Proyek: adrProj; nextRelasi: adrRelasi > Type ElmtPeg: < infoP: infopeg; nextPeg: adrPeg > Type ElmtProj: < infoPr: infoproj; nextProj: adrProj > Type ListPProj: adrRelasi Type ListPeg: adrPeg Type ListProj: adrProj

Manakah representasi struktur data internal berikut ini yang tepat berdasarkan kamus

di atas ?

(11)

B.

C

.

(12)

E.

[4] Pernyataan manakah yang salah dari sejumlah pernyataan tentang struktur data list dibawah

ini :

A.

List merupakan struktur data yang bersifat dinamis

B.

Elemen-elemen list memiliki tipe yang sama

C.

Pada deklarasi list secara kontigu, alamat elemen berikutnya (Next) tidak perlu

disimpan secara eksplisit

D.

Sebuah deklarasi tabel untuk representasi list secara kontigu dapat berisi lebih dari

satu list

E.

Sebuah deklarasi tabel untuk representasi list berkait kontigu dapat berisi lebih dari

satu list

[5]

Bentuk list dengan bagian Next dari elemen terakhir menunjuk ke alamat elemen

pertama dikenal dengan istilah :

A.

Circular Linked List

B.

Double Linked List

C.

Linear Linked List

D.

Double Circular Linked List

E.

Jawaban A dan D benar

[6]

Diketahui penggalan algoritma berikut ini :

Procedure Tebak(input/output L : List, output P : address) {IS. Terdefinisi List L dan address P}

{FS. ………..} Kamus

(13)

Q : address Algoritma

PFirst(L); Q First(L) While (Next(Q)≠ First(L))do Q Next(Q))

Next(Q) Next(First(L)) First(L) Next(First(L)

Algoritma di atas melakukan proses :

A.

Delete last pada linear list

B.

Delete first pada linear list

C.

Delete first pada circular list

D.

Delete last pada circular list

E.

Insert first pada circular list

Referensi

Dokumen terkait

ANALISIS KINERJA KEUANGAN PERUSAHAAN PERTAMBANGAN BATUBARA YANG TERDAFTAR.. DI BURSA EFEK

Perlakuan dengan hanya menggunakan sinar UV saja sudah memberikan hasil penurunan konsentrasi Pb(II), hal ini terjadi karena pada limbah tersebut terdapat fenol

2.2.1 Angka kelimpahan nisbi, kekerapan tertangkap dan angka dominasi spesies nyarnuk yang tertangkap dengan umpan orang di dalam rumah Hasil penangkapan nyamuk dengan

Salah satu jenis antrian jaringan yang menarik dikaji adalah Antrian Jaringan Jackson dimana setiap workstasion mempunyai pelayanan tunggal dengan konsumen dapat

Karena selama ini pembelajaran yang dilakukan adalah siswa hanya duduk mendengarkan ceramah dari guru, menulis dan mengerjakan apa yang diberikan

Syarat sebagai konstituen qualifier dalam bahasa Jepang adalah konstituen tersebut menyatu dengan konstituen inti dalam slot predikat membentuk frasa predikat, dan karena

Kodisi laba per lembar saham juga menurun dari tahun ke tahun, dari hasil perhitungan tersebut di atas terlihat bahwa kesejahteraan pemegang saham menurun, penurunan ini

Dalam kasus yang peneliti angkat, terdapat banyak pelajar yang belum memiliki SIM tetapi sudah mengendarai kendaraan bermotor ke sekolah sendiri. Apa yang