wayground logo

Free Printable Worksheets

NEW

Font size

S
M
L
XL
Worksheets

UAS WEB Lanjtut Teori_2026

Total questions: 65

Worksheet time: 33mins

Name
Class
Date
1.
CRUD paling tepat dipahami sebagai …
a)
siklus operasi data (Create, Read, Update, Delete) pada penyimpanan terstruktur
b)
metode kompresi file agar website lebih cepat
c)
protokol keamanan untuk mengenkripsi koneksi web
d)
teknik styling UI agar tampilan konsisten
2.
Jika user menekan tombol “Simpan” pada form tambah data, operasi CRUD yang terjadi adalah …
a)
Create (membuat record baru)
b)
Read (membaca record lama)
c)
Update (mengubah record lama)
d)
Delete (menghapus record)
3.
Perintah SQL yang paling tepat untuk mengambil kolom tertentu dari tabel adalah …
a)
SELECT nama, nim FROM mahasiswa
b)
INSERT INTO mahasiswa(nama,nim) VALUES(...)
c)
UPDATE mahasiswa SET nama=...
d)
DELETE FROM mahasiswa WHERE ...
4.
Kesalahan desain jika proses hapus data dilakukan via GET tanpa proteksi adalah …
a)
rawan CSRF/klik tidak sengaja karena cukup membuka URL untuk menghapus
b)
query SELECT akan menjadi lebih lambat
c)
CSS tidak akan termuat sempurna
d)
session selalu gagal dibuat
5.
Alasan utama memakai prepared statement dibanding string query biasa adalah …
a)
mengurangi risiko SQL Injection dan memisahkan query dari data
b)
membuat HTML menjadi responsif otomatis
c)
mempercepat upload gambar tanpa batas
d)
menghapus kebutuhan koneksi database
6.
Pagination diperlukan ketika …
a)
jumlah data besar sehingga perlu dibagi per halaman untuk efisiensi dan UX
b)
ingin mengubah domain menjadi HTTPS
c)
ingin membuat tabel baru di database
d)
ingin mematikan session
7.
Penerapan pagination di MySQL umumnya memakai …
a)
LIMIT dan OFFSET
b)
GROUP BY dan HAVING
c)
TRIGGER dan VIEW
d)
UNION dan INTERSECT
8.
Kelemahan OFFSET besar (mis. offset 100000) adalah …
a)
database tetap “melewati” banyak baris sehingga performa bisa turun
b)
browser tidak bisa menampilkan tabel HTML
c)
server tidak bisa menerima request POST
d)
domain tidak bisa mengarah ke hosting
9.
Live searching yang benar seharusnya …
a)
mengirim request saat input berubah (debounce) dan menampilkan hasil tanpa reload
b)
menyimpan query pencarian ke cookie permanen
c)
mengubah struktur tabel database saat user mengetik
d)
menonaktifkan caching browser
10.
Tujuan utama debounce pada live search adalah …
a)
mengurangi jumlah request agar server tidak dibanjiri saat user mengetik cepat
b)
mempercepat kompresi gambar di server
c)
mengganti method GET menjadi POST otomatis
d)
membuat CSS dipanggil ulang
11.
Perbedaan GET vs POST yang paling relevan untuk data sensitif adalah …
a)
GET terlihat di URL, POST berada di body (lebih aman dari sisi paparan URL)
b)
GET selalu terenkripsi, POST tidak pernah
c)
POST hanya untuk membaca data, GET untuk menulis
d)
GET tidak bisa dipakai pada form HTML
12.
Validasi input yang baik seharusnya dilakukan …
a)
di client (untuk UX) dan di server (untuk keamanan)
b)
hanya di client agar cepat
c)
hanya di server agar HTML bersih
d)
tidak perlu validasi jika memakai MySQL
13.
Session pada aplikasi login digunakan untuk …
a)
menyimpan status autentikasi user di sisi server antar halaman
b)
menyimpan stylesheet CSS agar tidak dimuat ulang
c)
mengganti password user otomatis
d)
menjalankan query SQL di browser
14.
Masalah keamanan jika session ID tidak diregenerasi setelah login adalah …
a)
rentan session fixation (pihak lain bisa menebak/menetapkan session)
b)
database tidak bisa diakses oleh mysqli
c)
CSS menjadi tidak responsif
d)
server tidak bisa menjalankan PHP
15.
Hosting dalam konteks deployment web berarti …
a)
server/layanan untuk menjalankan aplikasi dan menyajikannya ke internet
b)
alat untuk mendesain UI di Figma
c)
bahasa pemrograman untuk backend
d)
format data untuk API
16.
Perbedaan domain dan hosting adalah …
a)
domain = alamat; hosting = tempat aplikasi/file berjalan
b)
domain = database; hosting = query
c)
domain = CSS; hosting = HTML
d)
domain = session; hosting = cookie
17.
Langkah minimum agar website bisa diakses publik adalah …
a)
upload ke hosting + set DNS domain mengarah ke hosting
b)
install VS Code + restart laptop
c)
buat tabel di MySQL + rename folder
d)
hapus cache browser + ganti theme
18.
Jika file koneksi database diletakkan terpisah (konek.php), manfaat utama adalah …
a)
reusable dan memudahkan pemeliharaan (ubah sekali, berlaku di semua halaman)
b)
membuat query otomatis lebih aman tanpa validasi
c)
menghilangkan kebutuhan username/password database
d)
membuat HTML menjadi SEO otomatis
19.
Fungsi include/require dalam PHP adalah …
a)
memuat file PHP lain agar kode bisa dipakai ulang
b)
mengubah PHP menjadi JavaScript
c)
mengunci database agar tidak bisa diakses
d)
membuat request HTTP ke server lain
20.
Perbedaan require vs include ketika file tidak ditemukan adalah …
a)
require menghasilkan fatal error dan menghentikan eksekusi; include biasanya hanya warning
b)
include selalu fatal error; require selalu lanjut
c)
keduanya identik tanpa perbedaan
d)
require hanya untuk CSS; include hanya untuk PHP
21.
Primary key yang baik pada tabel mahasiswa seharusnya …
a)
unik dan tidak mudah berubah (mis. id auto increment/UUID)
b)
boleh duplikat asal nama berbeda
c)
harus berupa text panjang agar aman
d)
selalu mengikuti urutan alfabet
22.
Foreign key digunakan untuk …
a)
membangun relasi antar tabel dan menjaga integritas referensial
b)
membuat halaman web lebih cepat
c)
mengganti domain otomatis
d)
mengenkripsi password user
23.
API (REST) umumnya mengembalikan data dalam format …
a)
JSON
b)
DOCX
c)
PSD
d)
EXE
24.
Keuntungan API dibanding render HTML langsung adalah …
a)
client bisa memakai data yang sama untuk berbagai tampilan (web/mobile)
b)
database tidak perlu lagi
c)
server tidak perlu autentikasi
d)
semua request harus memakai GET
25.
Kode status HTTP 404 berarti …
a)
resource tidak ditemukan
b)
login berhasil
c)
server sedang maintenance
d)
request ditolak karena rate limit
26.
Perlindungan minimal untuk endpoint delete adalah …
a)
CSRF token + cek otorisasi user + validasi id
b)
hapus tombol delete dari UI saja
c)
ganti method menjadi GET agar sederhana
d)
letakkan query delete di file CSS
27.
Prinsip otorisasi yang benar pada CRUD multi-user adalah …
a)
user hanya boleh mengubah/menghapus data miliknya (cek owner_id)
b)
user bebas menghapus semua data agar cepat
c)
semua user dianggap admin
d)
tidak perlu login jika ada captcha
28.
Penyebab umum error “Undefined index” pada PHP adalah …
a)
mengakses $_POST/$_GET key yang tidak dikirim
b)
CSS tidak ditemukan
c)
database terlalu cepat
d)
domain belum dibeli
29.
Cara aman menangani input pencarian adalah …
a)
sanitize input + gunakan prepared statement untuk query pencarian
b)
gabungkan input langsung ke query string tanpa filter
c)
simpan input ke session tanpa cek
d)
matikan error reporting
30.
Manfaat `header('Content-Type: application/json')` pada API adalah …
a)
memberi tahu client tipe response agar diparsing sebagai JSON
b)
mengubah HTML menjadi JSON otomatis
c)
mempercepat koneksi database
d)
mengunci session user
31.
Dalam hosting, istilah “deployment” berarti …
a)
memindahkan aplikasi ke environment produksi dan membuatnya dapat diakses publik
b)
menghapus database di lokal
c)
mengubah bahasa pemrograman
d)
mengganti IDE
32.
Perbedaan shared hosting vs VPS yang paling tepat adalah …
a)
shared: resource berbagi; VPS: resource lebih terisolasi/terkontrol
b)
shared: selalu lebih cepat dari VPS
c)
VPS: tidak butuh domain
d)
shared: tidak bisa menjalankan PHP sama sekali
33.
Risiko jika folder upload tidak dibatasi tipe file adalah …
a)
upload file berbahaya (webshell) yang bisa dieksekusi di server
b)
CSS menjadi tidak terbaca
c)
pagination menjadi lambat
d)
API otomatis gagal
34.
Praktik minimal penyimpanan password yang benar adalah …
a)
hashing (bcrypt/argon2), bukan plaintext
b)
encrypt dengan base64
c)
simpan di cookie agar mudah
d)
tulis di file config
35.
Penggunaan JavaScript pada web modern paling tepat untuk …
a)
interaktivitas client-side dan komunikasi async ke server (fetch/AJAX)
b)
menggantikan database sepenuhnya
c)
membuat tabel SQL langsung
d)
mengelola DNS domain
36.
Berdasarkan gambar, bagian koneksi database paling tepat digunakan untuk …
a)
membuat objek/handle koneksi agar query ke MySQL bisa dijalankan
b)
mencetak tabel HTML ke browser tanpa query
c)
menutup koneksi sebelum query dieksekusi
d)
mengganti konfigurasi DNS domain
37.
Berdasarkan gambar, pengecekan login berbasis session digunakan untuk …
a)
membatasi akses halaman hanya untuk user yang sudah autentikasi
b)
menampilkan pagination pada tabel
c)
mengubah data tanpa validasi
d)
membuat API JSON otomatis
38.
Berdasarkan gambar, query pengambilan data digunakan untuk …
a)
mengambil data mahasiswa untuk ditampilkan/diolah di halaman
b)
membuat tabel database baru
c)
menghapus seluruh data mahasiswa
d)
mengubah password admin
39.
Berdasarkan gambar, proses INSERT dari data form digunakan untuk …
a)
menambah record baru ke tabel sesuai field yang dikirim user
b)
menghapus record berdasarkan id
c)
mengubah struktur kolom tabel
d)
melakukan backup database
40.
Berdasarkan gambar, proses DELETE berbasis id digunakan untuk …
a)
menghapus satu record spesifik berdasarkan identitas uniknya
b)
menghapus seluruh tabel mahasiswa
c)
mengganti nama database
d)
membuat user baru di hosting
41.
Berdasarkan gambar, perintah SQL tersebut digunakan untuk …
a)
Menampilkan seluruh data dari tabel mahasiswa
b)
menampilkan semua data tanpa filter
c)
membuat koneksi database kedua
d)
menghapus session user
42.
Berdasarkan gambar, potongan kode PHP tersebut digunakan untuk …
a)
menampilkan data hasil query dari database ke halaman web
b)
mengompresi data sebelum dikirim ke server
c)
mengubah database menjadi NoSQL
d)
mengganti database menjadi NoSQL
43.
Pada potongan kode `$_GET['id']`, nilai `id` diambil dari …
a)
Parameter URL (query string) yang dikirim lewat metode GET
b)
Data form yang dikirim lewat metode POST
c)
Variabel session yang tersimpan di server
d)
Cookie yang tersimpan di browser
44.
Fungsi `mysqli_real_escape_string($conn, $_POST['nama'])` digunakan untuk …
a)
Mencegah karakter berbahaya/SQL Injection pada input sebelum dipakai di query
b)
Mengubah input menjadi angka (casting)
c)
Mengenkripsi password user secara otomatis
d)
Menghapus spasi di awal dan akhir string
45.
Perintah `header('Location: dashboard.php');` berfungsi untuk …
a)
Mengalihkan (redirect) user ke halaman `dashboard.php`
b)
Menutup koneksi database `$conn`
c)
Menjalankan file `dashboard.php` sebagai include
d)
Mengubah judul halaman menjadi dashboard
46.
Query `UPDATE mahasiswa SET nama='$nama' WHERE id='$id'` digunakan untuk …
a)
Mengubah (update) kolom `nama` pada data dengan `id` tertentu
b)
Menambah data mahasiswa baru
c)
Menghapus data mahasiswa berdasarkan `id`
d)
Menampilkan seluruh data mahasiswa
47.
Kondisi `mysqli_num_rows($result) > 0` digunakan untuk …
a)
Mengecek apakah hasil query memiliki data (baris)
b)
Mengambil satu baris data dari hasil query
c)
Menjalankan query UPDATE ke database
d)
Menutup hasil query (free result)
48.
Potongan kode `$id = $_POST['id'];` berarti `id` diperoleh dari …
a)
Input form yang dikirim dengan metode POST
b)
Parameter URL (GET)
c)
File upload (FILES)
d)
Variabel server (SERVER)
49.
Fungsi `session_destroy();` digunakan untuk …
a)
Menghapus semua data session (logout)
b)
Membuat session baru
c)
Mengambil data session username
d)
Menyimpan session ke database
50.
Atribut `required` pada `<input ... required>` berfungsi untuk …
a)
Memaksa field wajib diisi sebelum form dikirim
b)
Membatasi input hanya angka
c)
Mengenkripsi input sebelum dikirim
d)
Menyembunyikan field dari user
51.
Pada `<form method='post' action='proses.php'>`, `action` digunakan untuk …
a)
Menentukan file/URL tujuan saat form dikirim
b)
Menentukan nama tabel database yang dipakai
c)
Menentukan tipe input pada form
d)
Menentukan agar form tidak bisa disubmit
52.
Query `SELECT * FROM mahasiswa LIMIT 10` menerapkan konsep …
a)
Pagination/batas data dengan menampilkan maksimal 10 baris
b)
Join tabel (relasi)
c)
Penghapusan data massal
d)
Pengurutan data descending
53.
Input `<input type='hidden' name='id' value='...'>` digunakan untuk …
a)
Mengirim nilai `id` tanpa ditampilkan ke user
b)
Menampilkan `id` agar bisa diedit user
c)
Menyimpan `id` ke cookie otomatis
d)
Mengambil `id` dari URL tanpa form
54.
Perintah `include 'konek.php';` digunakan untuk …
a)
Memanggil file koneksi agar variabel/koneksi dapat dipakai
b)
Menghapus file koneksi setelah dipakai
c)
Menjalankan query SELECT otomatis
d)
Mengubah koneksi menjadi mode aman
55.
Perintah `require 'konek.php';` akan menyebabkan … jika file tidak ditemukan.
a)
Program berhenti (fatal error)
b)
Program tetap lanjut tanpa error
c)
Program otomatis membuat file `konek.php`
d)
Program hanya menampilkan warning lalu lanjut
56.
`date_default_timezone_set('Asia/Jakarta');` digunakan untuk …
a)
Menetapkan zona waktu default PHP menjadi WIB
b)
Mengubah format tanggal ke ISO 8601
c)
Mengatur bahasa tampilan browser
d)
Menyinkronkan waktu server dengan client
57.
Kondisi `if(isset($_POST['simpan']))` digunakan untuk …
a)
Mengecek apakah tombol/field `simpan` dikirim dari form
b)
Menghapus semua isi `$_POST`
c)
Mengambil parameter `simpan` dari URL
d)
Memvalidasi bahwa input selalu angka
58.
Bagian komentar `// proses data` di dalam blok `if(isset(...))` menunjukkan …
a)
Tempat logika pemrosesan data setelah form disubmit
b)
Perintah untuk menghapus data otomatis
c)
Perintah untuk mengaktifkan pagination
d)
Perintah untuk mengunci database
59.
Fungsi `htmlspecialchars($input)` digunakan untuk …
a)
Mencegah XSS dengan mengubah karakter khusus menjadi HTML entities
b)
Menghapus spasi berlebih (trim)
c)
Mengenkripsi string menjadi hash
d)
Mengubah string menjadi huruf besar
60.
Kode `$_SESSION['username'] = $user;` digunakan untuk …
a)
Menyimpan username ke session setelah login berhasil
b)
Menghapus session username
c)
Mengambil username dari database
d)
Menyimpan username ke cookie permanen
61.
Fungsi `mysqli_close($conn);` digunakan untuk …
a)
Menutup koneksi database MySQLi
b)
Menutup hasil query SELECT
c)
Menghapus database yang sedang dipakai
d)
Membatalkan transaksi (rollback)
62.
Elemen `<input type='search' id='keyword'>` paling tepat digunakan untuk …
a)
Input pencarian (search box) untuk fitur live search
b)
Input password yang tersembunyi
c)
Input file upload
d)
Input angka dengan validasi otomatis
63.
Potongan `fetch('mahasiswa_api.php?keyword='+key)` menunjukkan teknik …
a)
Mengirim request ke API berdasarkan keyword (AJAX/Fetch)
b)
Mengirim email otomatis dari browser
c)
Menjalankan query SQL langsung di browser
d)
Mengunggah file ke server
64.
Perintah `header('Content-Type: application/json');` digunakan untuk …
a)
Memberi tahu client bahwa response berformat JSON
b)
Mengalihkan halaman ke file JSON
c)
Mengompresi response menjadi JSON
d)
Menghapus cache browser
65.
Kondisi `if(empty($nama)) { ... }` digunakan untuk …
a)
Validasi agar field `nama` tidak kosong sebelum diproses
b)
Menghapus field `nama` dari database
c)
Mengubah `nama` menjadi NULL di database
d)
Memaksa `nama` selalu angka