SELAMAT DATANG DI WWW.POKOKNYAENAK.BLOGSPOT.COM

Kami Hadir dengan Berbagai Info yang Pastinya Menarik....

Cari sesuatu? Di Mbah Google saja...ketikkan kata kunci di kotak di bawah ini

Custom Search

Wednesday, December 2, 2009

Tugas Latihan Soal Struktur Data (Bahan dari soal UTS)

1. Jelaskan pengertian dari struktur data! Berikan contohnya!
Jawab: Struktur data adalah model logika/ matematika yang secara khusus mengorganisasi data. Sebuah model harus dapat mencerminkan keterhubungan data dengan dunia nyata dan bentuknya sederhana/efektif (dapat memproses data sesuai kebutuhan).
Contoh struktur data: Array, Set, Record, Senarai, Tumpukan/Stack, Antrian, Pohon, Graf.

2. Elemen linked list hanya dapat diakses secara sekuensial. Mengapa?
Jawab: Linked list atau senatai berantai adalah kunpulan liniar sejumlah data, atau kumpulan komponen yang disusun secara berurutan pointer. Masing-masing komponen dinamakan dengan simpul (node). Simpul dalam suatu Linked list terbagi menjadi dua bagian yaitu medan informasi yang berisi informasi yang akan disimpan dan diolah, dan medan penyambung (Link field) yang berisi simpul berikutnya. Jadi untuk mengakses linked list haruslah secara berurutan (sequential) juga, sesuai dengan susunan komponennya.

3. Buatlah perbandingan antara array dengan linked list! Berikan contohnya!
Jawab:
Array:
- Alokasi memori pada array bersifat statis dan terbatas
- Tipe data fisik
- Tidak dapat dibebaskan dari memory
- Menggunakan konsep indexing

Linked List:
- Penggunaan alokasi memori yang dinamis sehingga menghindari pemborosan memori
- Tipe data abstrak
- Dapat dibebaskan dari memory
- Tidak menggunakan konsep indexing

4. Jelaskanlah konsep FIFO yang terdapat pada antrian dan berikan contohnya!
Jawab: FIFO (First In First Out) artinya elemen yang pertama masuk itu yang akan pertama dikeluarkan dari antrian. Contohnya:
- Penjualan karcis kereta Api, bioskop, dll.
- Penjadualan percetakan (spooling system), misal print manager.
- Penjadualan pemakaian CPU pada client server.
- Pemakaian jalur I/O (input/output), pada system computer. Dll.

5. Buatlah algoritma untuk menentukan elemen terbesar pada sebuah array A dengan 10 elemen!
Jawab:
For i <- 2 to 10 do
If (data[i] > max) then
Max:= data[i]
Endif
End for

6. Apakah keuntungan dari Circular Linked list dibandingkan dengan Non Circular linked list?
Jawab: Keuntungan menggunakan senarai ini adalah setiap node (elemen) dari senarai dapat dicapai dari sembarang node (elemen) yang lain.

7. Buatlah algoritma untuk menambahkan data pada sebuah STACK!
Jawab:
Algoritma PUSH:
1. [Periksa kandungan tumpukan, apakah penuh?]
Jika TOP = MAKSTUM; Cetakkan ’OVERFLOW’
2. [Tambahkan TOP dengan 1]
TOP:= TOP+1
3. [Masukkan ELEMEN ke dalam lokasi TOP yang baru]
S[TOP]:= ELEMEN
4. Return

8. Buatlah algoritma untuk menjumlahkan dua buah matriks dengan orde m x n!
Jawab:
Deklarasi:
Const:M=2 {jumlah baris pada matriks}
Const:N=3 {jumlah kolom pada matriks}
Baris, kolom :integer
A,B,C :array[1..M, 1..N] of integer

ALGORITMA:
For baris <- 1 to M do
For kolom <- 1 to N do
C[baris, kolom] <- A[baris, kolom] + B[baris, Kolom]
End for
End for

9. Buatlah algoritma untuk menghapus elemen pertama pada sebuah circular linked list!
Jawab:
Procedure hapus awal(input/output S:senarai, output H:address)
Kamus
Akhir=address
Algoritma:
If awal(S)=Nil then {kasus 0 elemen)
Output(‘senarai kosong’)
Else {kasus tidak kosong}
Hçawal(S)
If Next(awal(S))=Awal(S) then {kasus 1 elemen}
Awal(S) <- Nil
Else
Awal(S) <- Next(awal(S))
Akhirçawal(S)
While Next(akhir) ≠ awal(S) do
Akhir <- Next(akhir)
Endwhile
Next(akhir) <- awal(S)
Endif
Endif

10. Sebuah cell/node pada sebuah single linked list memiliki elemen NEXT yang bertipe data pointer. Apakah yang dimaksud dengan pointer? Jelaskan!
Jawab: Pointer adalah variable yang menunjuk lokasi memori tertentu. Pendeklarasiannya harus menambahkan tanda ^ di depan tipe pointer. Contoh:
Var
P1: ^integer;
P2: ^double;

11. Bagaimanakah kita dapat mengetahui jika sebuah tumpukan dalam keadaan kosong?
Jawab: Kita dapat mengetahui suatu tumpukkan dalam keadaan kosong dengan cara membuat suatu function seperti berikut:
Function empty: Boolean;
Begin
Empty:=false;
If TOP=0 then Empty:=True;
End;

12. Sebuah antrian selalu mempunyai 2 variabel yang berfungsi sebagai penunjuk. Apakah variabel tersebut dan jelaskan fungsi dari masing-masing variabel tersebut!
Jawab:
Variabel :
DEPAN (FRONT) fungsinya untuk menentukan bagian yang akan dilakukan penghapusan.
BELAKANG (REAR/TAIL) fungsinya untuk menentukan bagian mana yang akan dilakukan penambahan.

13. Mengapakah pada algoritma matriks selalu digunakan struktur perulangan FOR? Jelaskan!
Jawab:
Pada matriks, elemen-elemennya sudah diketahui jumlahnya atau dapat dikatakan, ordo suatu matrik menjelaskan jumlah elemen baris dan kolom tertentu. Dengan demikian, kita sudah dapat menentukan iterasi atau jumlah perulangan yang akan terjadi. Jadi, pernyataan perulangan yang paling tepat untuk menjelaskan matriks dalam algoritma adalah dengan menggunakan pernyataan FOR.

Daftar Menu

What is your Opinion about this blog?

Counter Strike

Powered By Blogger