wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

UAS P WEB SEMESTER GENAP KLS XI RPL 2025

Total questions: 30

Worksheet time: 3600secs

Name
Class
Date
1.

Indah sedang belajar PHP dan menulis kode berikut:

$x = 10;

$y = "20";

$z = $x + $y;

echo $z;

Apa output dari kode di atas, dan mengapa hasilnya seperti itu?

a)

30, karena PHP otomatis mengonversi string ke integer

b)

1020, karena PHP menganggap operasi sebagai konkatenasi string

c)

Error, karena tipe data tidak sesuai

d)

20, karena PHP hanya mengambil nilai string

e)

10, karena PHP mengabaikan variabel $y

2.

Perhatikan kode berikut:

<?php

$a = 5;

$b = &$a;

$b = 10;

echo $a;

?>

Apa output dari kode di atas, dan apa konsep PHP yang digunakan?

a)

5, karena variabel $a tidak berubah

b)

10, karena $b mereferensi $a

c)

Error, karena referensi tidak valid

d)

Null, karena $b tidak didefinisikan

e)

15, karena $a dan $b dijumlahkan

3.

Rudi, seorang pengembang perangkat lunak, sedang mengerjakan sebuah aplikasi yang memerlukan input dari pengguna. Ia ingin memastikan bahwa variabel $input yang diterima hanya berisi angka. Manakah perintah PHP yang paling tepat untuk validasi ini? (a)  

Choose from the below words
is_numeric($input)
is_int($input)
ctype_digit($input)
is_float($input)
is_string($input)
4.

Surya adalah seorang pengembang yang sedang membuat form login untuk aplikasi webnya dengan metode POST. Bagaimana cara menangkap data username dari form di PHP?

a)

$_GET['username']

b)

$_POST['username']

c)

$_REQUEST['username']

d)

$_SESSION['username']

e)

$_SERVER['username']

5.

Faisal sedang membuat sebuah aplikasi web yang menerima input dari pengguna. Dia menulis kode PHP berikut:

<?php

if ($_SERVER['REQUEST_METHOD'] == 'POST') {

    $name = $_POST['name'] ?? 'Guest';

    echo "Hello, $name!";

}

?>

Apa fungsi dari operator ?? dalam kode di atas?

a)

Menggantikan nilai null dengan string kosong

b)

Menggantikan nilai yang tidak terdefinisi dengan nilai default

c)

Memeriksa apakah variabel ada dalam array POST

d)

Menghentikan eksekusi jika variabel tidak ada

e)

Menggabungkan dua string menjadi satu

6.

Indah sedang mengembangkan sebuah aplikasi web yang memungkinkan pengguna untuk mengisi form input. Dia khawatir tentang keamanan aplikasinya dan ingin mencegah serangan SQL Injection. Manakah pendekatan terbaik yang harus dia gunakan untuk melindungi form input tersebut?

a)

Menggunakan mysql_query() tanpa sanitasi

b)

Menggunakan prepared statement dengan PDO

c)

Menggunakan addslashes() pada input

d)

Mengganti karakter khusus dengan HTML entities

e)

Memfilter input dengan str_replace()

7.

Perhatikan situasi berikut:

Rudi sedang menghitung angka dari 1 sampai 10. Setiap kali ia menemukan angka genap, ia akan melewatinya dan hanya menyebutkan angka ganjil. Berikut adalah kode yang ia gunakan:

for ($i = 1; $i <= 10; $i++) {

    if ($i % 2 == 0) continue;

    echo $i . " ";

}

Apa output dari kode di atas? Outputnya adalah (a)   .

Choose from the below words
1 3 5 7 9
2 4 6 8 10
1 2 3 4 5 6 7 8 9 10
Tidak ada output
Error karena sintaks salah
8.

Hadi adalah seorang pelajar yang sedang menjalani ujian akhir. Manakah struktur kendali yang benar untuk menampilkan pesan error hanya jika semua kondisi berikut terpenuhi: $age < 18, $status != 'active', dan $score <= 50?

a)

if ($age < 18 && $status != 'active' || $score <= 50)

b)

if ($age < 18 || $status != 'active' && $score <= 50)

c)

if ($age < 18 && $status != 'active' && $score <= 50)

d)

if ($age < 18 || $status == 'active' || $score <= 50)

e)

if ($age < 18 && ($status != 'active' || $score <= 50))

9.

Eko sedang memeriksa daftar nilai siswa dalam sebuah array. Dia ingin menghentikan proses pemeriksaan jika dia menemukan nilai null. Pernyataan yang tepat untuk menghentikan loop jika ditemukan nilai null dalam array adalah (a)   .

Choose from the below words
break
continue
exit
return
die
10.

Perhatikan fungsi berikut:

function calculateDiscount($price, $discount = 10) {

    return $price - ($price * $discount / 100);

}

Jika Mega membeli barang seharga 1000 dan mendapatkan diskon 10%, total yang harus dibayarnya adalah (a)   .

Choose from the below words
900
1000
990
910
100
11.

Tiara adalah seorang pengembang yang sedang membuat fungsi untuk memeriksa apakah string adalah palindrom. Manakah implementasi yang benar?

a)

function isPalindrome($str) { return $str == strrev($str); }

b)

function isPalindrome($str) { return $str === strrev($str); }

c)

function isPalindrome($str) { return strcmp($str, strrev($str)); }

d)

function isPalindrome($str) { return strcasecmp($str, strrev($str)); }

e)

function isPalindrome($str) { return $str == reverse($str); }

12.

Yuni sedang belajar pemrograman dan ingin membuat fungsi yang mengembalikan array bilangan genap dari array input. Manakah kode yang benar untuk mencapai tujuan tersebut?

a)

function getEvenNumbers($arr) {

    return array_filter($arr, function($num) {

        return $num % 2 == 0;

    });

}

b)

function getEvenNumbers($arr) {

    return array_map($arr, function($num) {

        return $num % 2 == 0;

    });

}

c)

function getEvenNumbers($arr) {

    $result = [];

    foreach ($arr as $num) {

        if ($num % 2 == 0) $result[] = $num;

    }

}

d)

function getEvenNumbers($arr) {

    return array_walk($arr, function($num) {

        return $num % 2 == 0;

    });

}

e)

function getEvenNumbers($arr) {

    $result = [];

    for ($i = 0; $i <= count($arr); $i++) {

        if ($arr[$i] % 2 == 0) $result[] = $arr[$i];

    }

    return $result;

}

13.

Adi, seorang pengembang, ingin membaca isi file data.txt yang berisi informasi penting untuk proyeknya. Manakah cara yang paling aman dan efisien untuk melakukannya?

a)

file_get_contents('data.txt')

b)

fopen('data.txt', 'r')

c)

readfile('data.txt')

d)

file('data.txt')

e)

fread('data.txt', filesize('data.txt'))

14.

Perhatikan kode berikut: $file = fopen('log.txt', 'a'); fwrite($file, 'User login at ' . date('Y-m-d') . '\n'); fclose($file); Apa yang dilakukan kode di atas?

a)

Membaca isi file log.txt

b)

Menimpa file log.txt dengan tanggal saat ini

c)

Menambahkan tanggal saat ini ke file log.txt

d)

Membuat file baru bernama log.txt tanpa isi

e)

Menghapus isi file log.txt

15.

Surya sedang mengembangkan aplikasi yang memerlukan file konfigurasi bernama config.ini. Sebelum aplikasi tersebut mencoba untuk membaca file tersebut, bagaimana cara Surya memeriksa apakah file config.ini ada?

a)

file_exists('config.ini')

b)

is_file('config.ini')

c)

file('config.ini')

d)

fopen('config.ini', 'r')

e)

is_readable('config.ini')

16.

Dewi, seorang pengembang web, sedang mencari cara untuk mengirim email dari aplikasinya menggunakan PHP. Manakah library yang direkomendasikan untuknya?

a)

PHPMailer

b)

SimpleXML

c)

PDO

d)

GD Library

e)

cURL

17.

Perhatikan kode berikut:

require 'vendor/autoload.php';

use PHPMailer\PHPMailer\PHPMailer;

$mail = new PHPMailer();

$mail->isSMTP();

$mail->Host = 'smtp.example.com';

$mail->Port = 587;

Sri ingin mengirimkan email pemberitahuan kepada kliennya menggunakan PHP. Dia menggunakan kode di atas untuk mengatur pengiriman email. Apa fungsi dari kode di atas?

a)

Menginisialisasi koneksi database

b)

Mengatur pengiriman email melalui SMTP

c)

Membaca file XML

d)

Mengompresi file gambar

e)

Mengirim HTTP request

18.

Rizky, seorang pengembang, sedang mengerjakan proyek yang melibatkan pengolahan data dalam format JSON menggunakan library PHP. Manakah fungsi yang tepat untuk digunakan dalam proses ini?

a)

json_encode() dan json_decode()

b)

xml_parse() dan xml_encode()

c)

serialize() dan unserialize()

d)

parse_ini_file()

e)

file_get_contents()

19.

Perhatikan kode berikut:

$pdo = new PDO('mysql:host=localhost;dbname=test', 'root', '');

$stmt = $pdo->prepare('SELECT * FROM users WHERE age > ?');

$stmt->execute([20]);

$users = $stmt->fetchAll();

Apa yang dilakukan kode di atas?

a)

Menghapus data pengguna dengan usia di atas 20

b)

Mengambil data pengguna dengan usia di atas 20

c)

Memperbarui data pengguna dengan usia di atas 20

d)

Menambahkan data pengguna baru

e)

Membuat tabel baru bernama users

20.

Dedi, seorang pengembang, sedang mengerjakan proyek untuk menampilkan data dari tabel products dalam HTML. Manakah kode yang benar untuk mencapai hal ini?

a)

$stmt = $pdo->query('SELECT * FROM products'); while ($row = $stmt->fetch()) { echo "{$row['name']}{$row['price']}"; }

b)

$stmt = $pdo->query('SELECT * FROM products'); echo "{$stmt['name']}{$stmt['price']}";

c)

$stmt = $pdo->query('SELECT * FROM products'); foreach ($stmt as $row) { echo "$row['name']$row['price']"; }

d)

$stmt = $pdo->query('SELECT * FROM products'); echo "$stmt->name$stmt->price";

e)

$stmt = $pdo->query('SELECT * FROM products'); while ($row = $stmt->fetchAll()) { echo "{$row['name']}{$row['price']}"; }

21.

Arif, seorang pengembang web, sedang mengerjakan proyek baru dan ingin memastikan bahwa aplikasi yang dia buat aman dari serangan XSS saat menampilkan input pengguna. Manakah fungsi PHP yang tepat untuk digunakan dalam situasi ini?

a)

htmlentities()

b)

strip_tags()

c)

addslashes()

d)

str_replace()

e)

urlencode()

22.

Perhatikan kode berikut:

$pdo = new PDO('mysql:host=localhost;dbname=shop', 'root', '');

$stmt = $pdo->prepare('INSERT INTO orders (user_id, total) VALUES (?, ?)');

$stmt->execute([$_POST['user_id'], $_POST['total']]);

Apa risiko keamanan dari kode di atas jika $_POST tidak divalidasi?

a)

SQL Injection

b)

XSS

c)

CSRF

d)

Directory Traversal

e)

Tidak ada risiko

23.

Arif, seorang pengembang, ingin membuat form pencarian yang menampilkan hasil dari tabel books. Manakah query yang paling efisien?

a)

SELECT * FROM books WHERE title LIKE '%?%'

b)

SELECT * FROM books WHERE title = ?

c)

SELECT title, author FROM books WHERE title LIKE ?

d)

SELECT * FROM books WHERE author LIKE '%?%'

e)

SELECT * FROM books

24.

Perhatikan situasi berikut:

Siti memulai sesi untuk menyimpan informasi pengguna.

$_SESSION['user'] = ['id' => 1, 'name' => 'John'];

Dia kemudian menghapus nama pengguna dari sesi.

Apa hasil dari situasi di atas?

a)

$_SESSION['user'] menjadi ['id' => 1]

b)

$_SESSION['user'] menjadi null

c)

$_SESSION['user'] tetap ['id' => 1, 'name' => 'John']

d)

Error karena unset tidak valid

e)

$_SESSION dihapus

25.

Angga, seorang pengembang, ingin menampilkan data dalam format JSON dari tabel employees. Manakah kode yang benar?

a)

$stmt = $pdo->query('SELECT * FROM employees'); echo json_encode($stmt->fetchAll());

b)

$stmt = $pdo->query('SELECT * FROM employees'); echo $stmt->fetchAll();

c)

$stmt = $pdo->query('SELECT * FROM employees'); echo json_decode($stmt->fetchAll());

d)

$stmt = $pdo->query('SELECT * FROM employees'); echo serialize($stmt->fetchAll());

e)

$stmt = $pdo->query('SELECT * FROM employees'); print_r($stmt->fetchAll());

26.

Sri, seorang pengembang, ingin membuat pagination untuk tabel dengan 1000 baris, menampilkan 10 baris per halaman. Berapa nilai OFFSET untuk halaman ke-5?

a)

40

b)

50

c)

60

d)

70

e)

80

27.

Perhatikan kode berikut:

<form method="POST" action="save.php">

    <input type="text" name="username">

    <input type="submit" value="Save">

</form>

<?php

if ($_SERVER['REQUEST_METHOD'] == 'POST') {

    $username = filter_input(INPUT_POST, 'username', FILTER_SANITIZE_STRING);

    echo $username;

}

Joko sedang membuat sebuah formulir pendaftaran di situs webnya. Dia ingin memastikan bahwa nama pengguna yang dimasukkan oleh pengguna bersih dari karakter berbahaya. Apa fungsi filter_input dalam kode di atas?

a)

Mengenkripsi input pengguna

b)

Menyaring dan membersihkan input pengguna

c)

Mengonversi input ke JSON

d)

Menyimpan input ke database

e)

Mengubah input ke huruf kapital

28.

Dewi, seorang pengembang, ingin mengunggah file gambar dan memvalidasi bahwa file tersebut adalah PNG. Manakah kode yang benar?

a)

if ($_FILES['image']['type'] == 'image/png') {

    move_uploaded_file($_FILES['image']['tmp_name'], 'uploads/' . $_FILES['image']['name']);

}

b)

if ($_FILES['image']['name'] == 'png') {

    move_uploaded_file($_FILES['image']['tmp_name'], 'uploads/' . $_FILES['image']['name']);

}

c)

if (pathinfo($_FILES['image']['name'], PATHINFO_EXTENSION) == 'png') {

    move_uploaded_file($_FILES['image']['tmp_name'], 'uploads/' . $_FILES['image']['name']);

}

d)

if ($_FILES['image']['size'] == 'image/png') {

    move_uploaded_file($_FILES['image']['tmp_name'], 'uploads/' . $_FILES['image']['name']);

}

e)

if ($_FILES['image']['tmp_name'] == 'png') {

    move_uploaded_file($_FILES['image']['tmp_name'], 'uploads/' . $_FILES['image']['name']);

}

29.

Arif, seorang pengembang, sedang mengerjakan proyek baru yang memerlukan API untuk mengembalikan data dalam format JSON. Manakah header yang harus diset?

a)

header('Content-Type: application/json');

b)

header('Content-Type: text/html');

c)

header('Content-Type: application/xml');

d)

header('Content-Type: text/plain');

e)

header('Content-Type: application/pdf');

30.

Perhatikan kode berikut:

$pdo = new PDO('mysql:host=localhost;dbname=blog', 'root', '');

$stmt = $pdo->prepare('UPDATE posts SET title = ?, content = ? WHERE id = ?');

$stmt->execute([$_POST['title'], $_POST['content'], $_POST['id']]);

Apa yang dilakukan kode di atas?

a)

Menambahkan posting baru ke tabel posts

b)

Memperbarui posting berdasarkan ID

c)

Menghapus posting berdasarkan ID

d)

Mengambil posting berdasarkan ID

e)

Membuat tabel baru bernama posts