Document

advertisement
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:
NO
ARRAY
LINKED LIST
Alokasi memori pada array bersifat
Penggunaan alokasi memori yang dinamis
1
statis dan terbatas
sehingga menghindari pemborosan memori
2 Tipe data fisik
Tipe data abstrak
3 Tidak dapat dibebaskan dari memory
Dapat dibebaskan dari memory
4 Menggunakan konsep indexing
Tidak menggunakan konsep indexing
4. Jelaskanlah konsep FIFO yang terdapat pada antrian dan berikan contohnya!
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:
12. Sebuah antrian selalu mempunyai 2 variabel yang berfungsi sebagai penunjuk.
Apakah variabel tersebut dan jelaskan fungsi dari masing-masing variabel tersebut!
Jawab:
13. Mengapakah pada algoritma matriks selalu digunakan struktur perulangan FOR?
Jelaskan!
Jawab:
Download