Anda di halaman 1dari 5

KEMENTERIAN PENDIDIKAN DAN KEBUDAYAAN

UNIVERSITAS BRAWIJAYA
PROGRAM TEKNOLOGI INFORMASI DAN ILMU KOMPUTER

UJIAN TENGAH SEMESTER GENAP TAHUN AKADEMIK 2013 / 2014


MataKuliah : Algoritma dan Struktur Data Hari, tanggal : Senin, 7 April 2014
Dosen : 1. Muhammad Tanzil Furqon, S.Kom, Waktu : 90 Menit
MCompSc.
2. Drs. Achmad Ridok, M.Kom
3. Indriati, ST., M.Kom Sifat ujian : Tutup Buku
4. Issa Arwani, S.Kom, M.Sc Jumlah Soal : 40
5. Lailil Muflikhah, S.Kom, M.Sc Kode Soal :
6. Mahendra Data, S.Kom A.121
7. Suprapto, ST., MT.
8. Drs. Marji, MT.
9. Ari Kusyanti, S.T., M.Sc.

Soal:
1. Himpunan langkah-langkah instruksi untuk melaksanakan suatu pekerjaan tertentu disebut
a. Data c. Prosedur
b. Algoritma d. Program
2. Suatu kelompok data yang dapat dikarakteristikan oleh organisasi serta operasi yang didefinisikan terhadapnya
disebut
a. Prosedur c. Struktur data
b. Algoritma d. Data
3. Dibawah ini adalah kriteria algoritma, kecuali
a. Efektif dan efisien c. Jumlah langkahnya tak berhingga
b. Terstruktur d. Ada hasil
4. Karakteristik Array, kecuali
a. Bersifat statis c. Type data sama
b. Dapat diakses secara acak d. Type data heterogen
5. Pada tiap kali deklarasi tipe data Array, baik secara eksplisit maupun implisit, tidak memerlukan:
a. Nama variabel Array c. Data pertama yang akan disimpan dalam Array
b. Tipe data variabel Array d. Ukuran variabel Array
6. Terdapat deklarasi Array : int A = new int[5][4]; maka jumlah elemen Array tersebut adalah ……
a. 25 c. 9
b. 35 d. 20
7. Implementasi stack dapat dilakukan dengan, kecuali
a. array c. double linked list
b. single linked list d. circular linked list
8. Prinsip/sifat dari Stack adalah
a. FIFO c. LIFO
b. FOFI d. FILO
9. Operator POP yang digunakan pada operasi stack adalah
a. Perintah untuk pemasukan dan perintah untuk penghapusan elemen
b. Perintah untuk pembuatan stack
c. Perintah untuk penghapusan stack
d. Perintah untuk penghapusan elemen
10. Diketahui infix, ((A+B)*C/D+E^F)/G maka nilai posfixnya
a. +*/+^/ABCDEFG c. +AB*/CD^+EFG/

Halaman 1 dari 5
b. AB+C*D/EF^+G/ d. ABCDEFG+*/+^/
11. Ekspresi postfix dari (a+b)*(c-d) adalah
a. a b + c d -* c. a b + c d * -
b. a b + - * d. a b + - c d *
12. Jika urutan dari operasi adalah push(1), push(2), pop, push(1), push(2), pop, pop, pop, push(2), pop yang akan
dilakukan untuk membentuk stack, maka urutan nilai yang dihasilkan ketika pop adalah
a. 2, 2, 1, 1, 2 c. 2, 1, 2, 2, 1
b. 2, 2, 1, 2, 2 d. 2, 1, 2, 2, 2
13. Manakah yang bukan merupakan sifat Linked list
a. dinamis
b. penambahan linked list tidak terbatas
c. random access
d. penghapusan linked list mudah
14. Perbandingan Array dengan Linked list dibawah ini benar, kecuali
a. Array bersifat statis
b. Array menyimpan data pada ruang memori secara berurutan
c. Array menyimpan data pada ruang memori yang saling berjauhan
d. Array menyimpan data dengan jumlah terbatas
15. Bagaimanakah ekspresi Boolean apabila ada dua node yaitu P dan Q yang mempunyai data bertipe integer yang
sama
a. P==Q c. P.pointer==Q.pointer
b. P.data==Q.data d. Semua salah
16. Apakah struktur data yang tepat untuk mencari data sesuai dengan posisi ke n
a. Single linked list c. Circular single linked list
b. Double linked list d. Array
17. Struktur data manakah yang membolehkan penghapusan data dari depan dan penambahan data dari belakang:
a. Stack c. Dequeue
b. Queue d. Pop
18. Kondisi didalam Linked List dimana HEAD=null:
a. Linked List penuh c. Linked list tidak valid
b. Linked List kosong d. Semua jawaban benar
19. Pernyataan manakah yang SALAH dalam Circular Double Linked List:
a. Node paling depan (HEAD) pointer NEXT nya menunjuk ke node setelahnya
b. Node paling belakang (TAIL) pointer NEXT nya menunjuk ke node paling depan (HEAD)
c. Node paling depan (HEAD) pointer PREVIOUS nya menunjuk ke node paling belakang (TAIL)
d. Node paling belakang (TAIL) pointer PREVIOUS nya menunjuk ke node paling depan (HEAD)
20. Pernyataan manakah yang SALAH dalam Double Linked List:
a. Dalam kondisi kosong, node paling depan (HEAD) dan node paling belakang (TAIL) bernilai null
b. Node paling belakang (TAIL) pointer NEXT nya menunjuk ke node paling depan (HEAD)
c. Node paling depan (HEAD) pointer PREVIOUS nya bernilai null
d. Node paling belakang (TAIL) pointer PREVIOUS nya menunjuk ke node sebelumnya
21. Pernyataan manakah yang SALAH dalam Single Linked List:
a. Node paling depan (HEAD) pointer NEXT nya menunjuk ke node setelahnya
b. Node paling belakang (TAIL) pointer NEXT nya bernilai null
c. Node paling depan (HEAD) pointer PREVIOUS nya menunjuk ke node paling belakang (TAIL)
d. Data dalam Linked List diakses dalam satu arah dari HEAD sampai TAIL
22. Manakah pernyataan yang benar untuk Circular Double Linked List :
a. Pointer NEXT pada node TAIL menunjuk ke TAIL
b. Pointer PREV pada node HEAD menunjuk ke HEAD
c. Pointer NEXT pada node HEAD menunjuk ke TAIL
d. Pointer PREV pada node HEAD menunjuk ke TAIL
Halaman 2 dari 5
23. Stuktur data Linked list lebih tepat digunakan daripada menggunakan Array ketika data yang akan diolah
jumlahnya ...
a. tidak pasti c. terbatas
b. sudah pasti d. banyak
24. Type data dibawah ini, yang tidak termasuk dalam type data primitive, adalah :
a. String c. int
b. char d. float
25. Jika terdapat deretan perintah dalam pseudo code berikut:
while (x > y) {
x = x - 10;
y = y + 2;
}
dengan harga mula-mula x = 70 dan y = 5, berapakah harga y setelah deretan keluar dari loop while?
a. 11 c. 17
b. 15 d. 21

Untuk soal nomor 26 sampai 27 perhatikan array (larik) berikut. Array tsb adalah array integer bernama X yang
berdimensi satu dan berisikan 15 elemen array dengan indeks dari 0, 1, … 14. Isi dari masing-masing elemen array
itu berturut-turut adalah: 19,17,89,45,12,78,27,42,33,87,30,33,23,49,43. Selain itu, terdapat suatu method:
public void Metode1(int a, int b)
{
int tmp;
tmp = a; a = b; b = tmp;
}

26. Pemanggilan Metode1(a,b) untuk variabel a dan b yang sudah berisi harga berlainan menyebabkan
a. Kedua variabel berharga nol
b. Kedua variabel berharga sama yaitu b
c. Kedua variabel berharga sama yaitu a
d. Kedua variabel tidak berubah harga
e. Kedua variabel bertukar harga
27. Jika diberikan potongan program berikut:
public void Metode2(int I);
{
for (int j=I; j<=13; j++)
{
if (X[j] > X[j+1])
{
Metode1(X[j],X[j+1]);
}
System.out.print(X[j]+” ”);
}
}
maka keluaran dari pemanggilan Metode2(10) adalah:
a. 303 332 234 493 432
b. 303 234 332 432 493
c. 234 303 332 432 493
d. 493 432 332 234 303
e. 493 432 303 332 234

Halaman 3 dari 5
Untuk soal 28 sampai dengan 30, perhatikan gambar double circular linked list berikut:

28. Jika p dihapus maka langkah yang tepat adalah berikut kecuali:
a. t = p.element;(p.getPrev()).setNext(p.getNext()) ;
(p.getNext()).setPrev(p.getPrev());p.setPrev(null);p.setNext(null)
b. t = p.element;(p.getNext()).setPrev(p.getNext()) ;
(p.getNext()).setPrev(p.getPrev());p.setPrev(null);p.setNext(null)
c. t = p.element; (p.getNext()).setPrev(p.getPrev());p.setPrev(null);p.setNext(null)
(p.getPrev()).setNext(p.getNext()) ;
d. t = p.element;(p.getPrev()).setNext(p.getNext()) ; p.setPrev(null);p.setNext(null);
(p.getNext()).setPrev(p.getPrev());
e. t = p.element;(p.getPrev()).setNext(p.getNext()) ; p.setPrev(null); (p.getNext()).setPrev(p.getPrev());
p.setNext(null)
29. Jika dialakukan penyisipan data di tail (ekor) dan ekor dalam keadaan tidak null, diasumsikan baru bertipe node
telah dibuat maka urutan langkah yang benar adalah adalah:
a. baru.next= pEkor; pEkor.prev = baru; pEkor = baru; baru.prev = pEkor;
b. baru.next = pEkor; pEkor.next = baru; pEkor = baru.next;baru = pEkor.next;
c. baru.prev = pEkor; pEkor.next = baru; pEkor = baru; baru.next = pEkor;
d. baru.prev = pEkor.next; pEkor.next = baru; pEkor = baru; baru = pEkor;
e. baru = pEkor; pEkor.next = baru; pEkor.next = baru; baru.next = pEkor;
30. Jika disisipakan data baru pada posisi sebelum p maka langkah-langkah yang tepat adalah sebagai berikut kecuali
:
a. baru.next = p; p.prev = baru; baru.prev = p.prev; p.prev = baru
b. baru.prev = p; p.prev.next = baru; baru.prev = p.prev; p.prev = baru
c. baru.prev = p.prev.next; p.prev.next = baru; baru.prev = p.prev; p.prev = baru
d. baru.next = p; p.prev.next = baru; baru.prev = p.prev; p.prev = baru
e. baru.next = p.next; p.prev.next = baru; baru.prev = p.prev; p.prev = baru
31. Modifier yang digunakan bila suatu unsur (kelas/metode/variable) memiliki nilai yang tetap adalah…
a. protected c. public
b. private d. final
32. Manakah diantara berikut ini yang tidak berhubungan dengan stack?
a. FIFO lists c. Peek
b. LIFO list d. Push
33. Berikut merupakan pernyataan yang benar mengenai tipe data reference, yaitu…
a. Menyimpan data dalam lokasi memori yang sebenarnya
b. Berisi nilai tunggal dengan format dan ukuran yang sesuai tipenya
c. Menyimpan alamat dalam lokasi memori yang menunjuk ke lokasi memori dimana data sebenarnya
berada
d. Sebuah tipe data berjenis metode yang memiliki class.

Untuk soal no. 34-37 Perhatikan program berikut :


1. public class OutputVariable {
2. public static void main(String [] args){
3. int value;
4. value = 10;
5. char C;
Halaman 4 dari 5
6. C = ‘C’;
7. System.out.print(value++);
8. System.out.println(“The value of C=”+ C);
9. }
10. }

34. Pendeklarasian class pada program diatas terjadi pada nomor…


a. 2 c. 3 dan 5
b. 1 d. 4 dan 6
35. Pendeklarasian variabel pada program diatas terjadi pada nomor…
a. 3 c. 1
b. 4 dan 6 d. 3 dan 5
36. Proses inisialisasi pada program diatas terjadi pada nomor…
a. 3 c. 1
b. 4 dan 6 d. 3 dan 5
37. Hasil dari program diatas adalah…
a. 10 The value of C=C c. 10The value of C=C
b. 11The value of C=C d. Error
38. Di bawah ini adalah sifat-sifat pemrograman berorientasi objek , kecuali
a. encapsulation c. polymorphism
b. inheritance d. structural
39. Method yang berfungsi memanggil dirinya sendiri disebut dengan…
a. Method Constructor c. Method Rekursif
b. Method Overloading d. Method Factorial
40. Beberapa method dengan nama yang sama tetapi berbeda parameternya merupakan ciri dari…
a. Method Constructor c. Method Rekursif
b. Method Overloading d. Method Factorial

Halaman 5 dari 5

Anda mungkin juga menyukai