Font size
S
M
L
XL
WorksheetsUAS Struktur Data
Total questions: 100
Worksheet time: 33mins
Name
Class
Date
1.
Apa tipe data untuk menyimpan karakter tunggal di C++?
a)
int
b)
string
c)
char
d)
float
2.
Simbol apa yang digunakan untuk mengakhiri pernyataan di C++?
a)
:
b)
;
c)
.
d)
,
3.
Manakah penulisan variabel yang benar di C++?
a)
int 1angka;
b)
int angka satu;
c)
int angka_satu;
d)
int -angka;
4.
Keyword untuk membuat variabel konstanta adalah?
a)
final
b)
const
c)
static
d)
let
5.
Berapa ukuran umum 'int' pada sistem 32-bit/64-bit?
a)
1 byte
b)
2 byte
c)
4 byte
d)
8 byte
6.
Operator logika 'AND' di C++ ditulis dengan?
a)
&
b)
&&
c)
||
d)
AND
7.
Fungsi utama yang dieksekusi pertama kali dalam program C++ adalah?
a)
start()
b)
main()
c)
init()
d)
run()
8.
Tipe data 'bool' hanya memiliki nilai?
a)
0 dan 1
b)
True dan False
c)
Ya dan Tidak
d)
Benar dan Salah
9.
Untuk menggunakan 'cout', kita perlu include library apa?
a)
<stdio.h>
b)
<conio.h>
c)
<iostream>
d)
<string>
10.
Apa output dari 5 % 2?
a)
2.0
b)
2.5
c)
1.0
11.
Simbol untuk komentar satu baris adalah?
a)
/*
b)
#
c)
//
d)
--
12.
Manakah tipe data floating point dengan presisi ganda?
a)
float
b)
double
c)
decimal
d)
real
13.
Escape sequence untuk baris baru adalah?
a)
\t
b)
\n
c)
\r
d)
\b
14.
Library apa yang dibutuhkan untuk menggunakan vector?
a)
<array>
b)
<list>
c)
<vector>
d)
<collection>
15.
Fungsi untuk menambahkan elemen ke akhir vector adalah?
a)
add()
b)
insert()
c)
push_back()
d)
append()
16.
Bagaimana cara mengakses elemen pertama vector 'v'?
a)
v.first()
b)
v[0]
c)
v(0)
d)
v.start()
17.
Fungsi v.size() mengembalikan?
a)
Kapasitas memori
b)
Jumlah elemen saat ini
c)
Ukuran byte
d)
Batas maksimum
18.
Apa perbedaan size() dan capacity()?
a)
Sama saja
b)
size=elemen terisi, capacity=memori dialokasikan
c)
size=memori, capacity=elemen
d)
Tidak ada bedanya
19.
Fungsi untuk menghapus elemen terakhir adalah?
a)
remove_last()
b)
delete()
c)
pop_back()
d)
erase()
20.
Vector menyimpan elemen di memori secara?
a)
Acak
b)
Tersebar
c)
Berurutan
d)
Linked
21.
Untuk mengosongkan seluruh isi vector, gunakan fungsi?
a)
empty()
b)
delete_all()
c)
clear()
d)
reset()
22.
Apa yang terjadi jika mengakses v[10] pada vector ukuran 5?
a)
Mengembalikan 0
b)
Undefined behavior / Error
c)
Membuat elemen baru
d)
Return null
23.
Fungsi v.empty() mengembalikan true jika?
a)
Vector penuh
b)
Vector memiliki 1 elemen
c)
Vector kosong
d)
Kapasitas 0
24.
Bagaimana mendeklarasikan vector integer kosong?
a)
vector v<int>;
b)
vector<int> v;
c)
int vector v;
d)
Vector v = new int();
25.
Iterator .begin() menunjuk ke?
a)
Elemen pertama
b)
Sebelum elemen pertama
c)
Elemen terakhir
d)
Setelah elemen terakhir
26.
Apa kompleksitas waktu akses elemen vector v[i]?
a)
O(n)
b)
O(log n)
c)
O(1)
d)
O(n^2)
27.
Tipe kembalian 'void' pada fungsi berarti?
a)
Mengembalikan 0
b)
Mengembalikan null
c)
Tidak mengembalikan nilai
d)
Error
28.
Parameter fungsi yang menerima salinan nilai disebut?
a)
Pass by reference
b)
Pass by value
c)
Pass by pointer
d)
Pass by name
29.
Untuk mengubah nilai variabel asli di dalam fungsi, gunakan?
a)
Pass by value
b)
Pass by reference
c)
Pass by copy
d)
Pass by constant
30.
Simbol untuk membuat reference parameter adalah?
a)
*
b)
&
c)
#
d)
@
31.
Apa itu function overloading?
a)
Fungsi dengan nama beda
b)
Fungsi nama sama beda parameter
c)
Fungsi error
d)
Fungsi rekursif
32.
Variabel yang dideklarasikan di dalam fungsi bersifat?
a)
Global
b)
Lokal
c)
Static
d)
Universal
33.
Bolehkah fungsi void memiliki statement 'return;'?
a)
Tidak boleh
b)
Boleh, untuk mengakhiri fungsi
c)
Wajib ada
d)
Hanya jika error
34.
Prototipe fungsi biasanya ditulis di?
a)
Setelah main
b)
Sebelum main
c)
Di dalam main
d)
Di file terpisah saja
35.
Default argument pada fungsi harus diletakkan di?
a)
Parameter awal
b)
Parameter akhir
c)
Tengah
d)
Acak
36.
Fungsi yang memanggil dirinya sendiri disebut?
a)
Looping
b)
Iterasi
c)
Rekursi
d)
Nesting
37.
Variabel 'static' dalam fungsi akan?
a)
Direset tiap pemanggilan
b)
Mempertahankan nilai antar pemanggilan
c)
Dihapus dari memori
d)
Menjadi global
38.
Keyword 'inline' menyarankan kompiler untuk?
a)
Menghapus fungsi
b)
Menyalin kode fungsi ke tempat pemanggilan
c)
Membuat lambat
d)
Menghemat memori
39.
Objek standar untuk input di C++ adalah?
a)
cout
b)
cerr
c)
cin
d)
stdin
40.
Operator ekstraksi untuk cin adalah?
a)
<<
b)
>>
c)
::
d)
->
41.
Bagaimana cara membaca string yang mengandung spasi?
a)
cin >> s;
b)
getline(cin, s);
c)
cin.get(s);
d)
scanf(s);
42.
Apa yang terjadi pada cin >> x jika input tipe salah?
a)
Crash
b)
cin masuk state fail
c)
Nilai default
d)
Retry otomatis
43.
Fungsi untuk mengabaikan karakter sisa di buffer input?
a)
cin.clear()
b)
cin.ignore()
c)
cin.flush()
d)
cin.skip()
44.
cin >> membaca input sampai menemukan?
a)
Huruf kapital
b)
Angka
c)
Whitespace (spasi/tab/enter)
d)
Titik
45.
Header file untuk cin dan cout adalah?
a)
<cstdio>
b)
<iostream>
c)
<input>
d)
<stream>
46.
Mengapa getline sering dilewati setelah cin >>?
a)
Bug compiler
b)
Karakter newline tertinggal di buffer
c)
Memori penuh
d)
String null
47.
Cara membaca satu karakter termasuk spasi?
a)
cin >> c
b)
cin.get(c)
c)
getline(c)
d)
read(c)
48.
Apa guna cin.clear()?
a)
Menghapus layar
b)
Mereset state error flag cin
c)
Menghapus input user
d)
Keluar program
49.
Apakah cin bisa digunakan berantai (cin >> a >> b)?
a)
Tidak
b)
Ya
c)
Hanya untuk int
d)
Error
50.
Untuk menampilkan prompt teks sebelum input, kita gunakan?
a)
cin
b)
cout
c)
prompt
d)
input
51.
Kompleksitas waktu Linear Search adalah?
a)
O(1)
b)
O(log n)
c)
O(n)
d)
O(n^2)
52.
Kompleksitas waktu Binary Search adalah?
a)
O(1)
b)
O(log n)
c)
O(n)
d)
O(n log n)
53.
Syarat utama menggunakan Binary Search adalah?
a)
Data harus banyak
b)
Data harus acak
c)
Data harus terurut
d)
Data harus integer
54.
Pada data 1 juta elemen, mana yang lebih cepat secara umum?
a)
Linear Search
b)
Binary Search
c)
Sama saja
d)
Tergantung nasib
55.
Jika data tidak terurut, algoritma pencarian yang bisa dipakai?
a)
Binary Search
b)
Linear Search
c)
Interpolation Search
d)
Fibonacci Search
56.
Binary Search bekerja dengan cara?
a)
Cek satu per satu
b)
Membagi dua ruang pencarian
c)
Mengacak index
d)
Melompat-lompat
57.
Kasus terbaik (Best Case) Linear Search terjadi saat?
a)
Data di akhir
b)
Data tidak ada
c)
Data di awal
d)
Data di tengah
58.
Berapa langkah maksimal Binary Search untuk 8 data?
a)
8.0
b)
4.0
c)
3.0
d)
1.0
59.
Dalam rekursi Binary Search, apa yang terjadi jika base case terlewati?
a)
Stack Overflow
b)
Hasil benar
c)
Program cepat
d)
Memory leak
60.
Mengapa Binary Search lebih efisien dibanding Linear untuk data besar?
a)
Kode lebih pendek
b)
Mengurangi ruang cari secara eksponensial
c)
Tidak pakai memori
d)
Lebih mudah dipahami
61.
Perbedaan iteratif dan rekursif pada Binary Search?
a)
Rekursif lebih hemat memori
b)
Iteratif lebih hemat memori (stack)
c)
Hasil beda
d)
Iteratif lebih lambat
62.
Apa kerugian Linear Search?
a)
Lambat untuk data besar
b)
Harus terurut
c)
Susah diimplementasi
d)
Hanya untuk angka
63.
Pada Linked List, apakah Binary Search efisien?
a)
Ya, sangat cepat
b)
Tidak, karena tidak ada random access
c)
Sama seperti Array
d)
Tergantung compiler
64.
Prinsip kerja Stack adalah?
a)
FIFO
b)
LIFO
c)
LILO
d)
Random
65.
Prinsip kerja Queue adalah?
a)
FIFO
b)
LIFO
c)
FILO
d)
Random
66.
Operasi menambahkan elemen ke Stack disebut?
a)
enqueue
b)
insert
c)
push
d)
add
67.
Operasi mengambil elemen dari Queue disebut?
a)
pop
b)
dequeue
c)
remove
d)
delete
68.
Di Stack, elemen yang dihapus adalah?
a)
Elemen pertama masuk
b)
Elemen terakhir masuk
c)
Elemen tengah
d)
Elemen acak
69.
Di Queue, elemen baru ditambahkan di posisi?
a)
Front (Depan)
b)
Rear (Belakang)
c)
Middle
d)
Top
70.
Contoh aplikasi Stack di kehidupan nyata?
a)
Antrian tiket
b)
Tumpukan piring
c)
Daftar putar lagu
d)
Absensi
71.
Contoh aplikasi Queue?
a)
Undo di text editor
b)
Browser history
c)
Job scheduling printer
d)
Function call stack
72.
Apa itu Stack Overflow?
a)
Stack kosong di-pop
b)
Stack penuh di-push
c)
Stack hilang
d)
Stack rusak
73.
Kompleksitas waktu operasi push/pop pada Stack?
a)
O(n)
b)
O(1)
c)
O(log n)
d)
O(n^2)
74.
Posisi akses utama pada Stack disebut?
a)
Base
b)
Root
c)
Top
d)
Head
75.
Struktur data Deque (Double Ended Queue) memungkinkan?
a)
Insert/delete di satu ujung
b)
Insert/delete di kedua ujung
c)
Hanya baca
d)
Hanya insert
76.
Implementasi Queue menggunakan array sirkular bertujuan untuk?
a)
Mempercantik kode
b)
Memanfaatkan ruang kosong bekas dequeue
c)
Memperlambat proses
d)
Menghapus data
77.
Komponen utama node Linked List adalah?
a)
Data dan Index
b)
Data dan Pointer Next
c)
Key dan Value
d)
Head dan Tail
78.
Keuntungan Linked List dibanding Array?
a)
Random Access
b)
Ukuran dinamis
c)
Hemat memori pointer
d)
Cache friendly
79.
Elemen terakhir pada Single Linked List menunjuk ke?
a)
Head
b)
Tail
c)
NULL
d)
Previous
80.
Doubly Linked List memiliki pointer tambahan yaitu?
a)
Next
b)
Prev (Previous)
c)
Top
d)
Root
81.
Kompleksitas insert di awal (head) Linked List?
a)
O(n)
b)
O(log n)
c)
O(1)
d)
O(n^2)
82.
Untuk mengakses elemen ke-n pada Linked List, kompleksitasnya?
a)
O(1)
b)
O(n)
c)
O(log n)
d)
O(n^2)
83.
Apa itu Circular Linked List?
a)
Node terakhir menunjuk ke NULL
b)
Node terakhir menunjuk ke Head
c)
Node pertama menunjuk NULL
d)
List berbentuk bola
84.
Kerugian Linked List dibanding Array?
a)
Ukuran statis
b)
Tidak bisa resize
c)
Tidak ada Random Access & butuh memori extra pointer
d)
Insert lambat
85.
Pointer yang menunjuk ke node pertama disebut?
a)
Tail
b)
Head
c)
Body
d)
Root
86.
Jika Head == NULL, berarti?
a)
List penuh
b)
List kosong
c)
Error
d)
List berisi 1
87.
Pada Doubly Linked List, penghapusan node lebih mudah karena?
a)
Bisa akses node sebelumnya (prev)
b)
Tidak butuh pointer
c)
Hanya satu arah
d)
Memori lebih kecil
88.
Apa yang terjadi jika pointer next node tidak di-set NULL saat inisialisasi node akhir?
a)
Aman saja
b)
Menunjuk ke memori sampah (dangling)
c)
Otomatis NULL
d)
Syntax error
89.
Fungsi Hash bertugas untuk?
a)
Mengurutkan data
b)
Memetakan key ke index array
c)
Menghapus data
d)
Mengacak data
90.
Apa itu 'Collision' pada Hash Table?
a)
Dua key berbeda dipetakan ke index sama
b)
Table penuh
c)
Hash function error
d)
Data hilang
91.
Metode Separate Chaining menangani collision dengan?
a)
Mencari slot kosong berikutnya
b)
Menggunakan Linked List di setiap slot
c)
Menghapus data lama
d)
Memperbesar tabel
92.
Metode Linear Probing menangani collision dengan?
a)
Linked List
b)
Cari slot kosong terdekat secara linear
c)
Hash ganda
d)
Random
93.
Kompleksitas waktu rata-rata pencarian Hash Table?
a)
O(n)
b)
O(log n)
c)
O(1)
d)
O(n^2)
94.
Apa itu Load Factor?
a)
Berat data
b)
Rasio elemen terisi dibanding kapasitas
c)
Waktu loading
d)
Jumlah pointer
95.
Jika Load Factor tinggi, apa yang biasanya dilakukan?
a)
Rehashing (Resize table)
b)
Hapus data
c)
Biarkan saja
d)
Ganti fungsi hash
96.
Masalah 'Clustering' sering terjadi pada?
a)
Separate Chaining
b)
Linear Probing
c)
Binary Search Tree
d)
Stack
97.
Fungsi Hash yang baik harus?
a)
Selalu return 0
b)
Menyebarkan kunci secara merata
c)
Rumit dan lambat
d)
Menghasilkan string
98.
Dalam Separate Chaining, worst case search complexity adalah?
a)
O(1)
b)
O(n) (semua masuk satu slot)
c)
O(log n)
d)
O(n log n)
99.
Operator modulus (%) sering digunakan di Hash Function untuk?
a)
Enkripsi
b)
Memastikan index dalam batas array
c)
Kompresi
d)
Sortir
100.
Keunggulan Hash Table dibanding Binary Search Tree?
a)
Data terurut
b)
Search rata-rata O(1) vs O(log n)
c)
Tidak butuh memori
d)
Lebih mudah range query
Reset
