Contoh Soal Mid Pemrograman Berbasis Teks Grafis dan Multimedia

 1. Apa fungsi utama dari perintah mysqli_connect() dalam PHP?

a. Membuat database baru

b.  Menghapus tabel dari database

c. Membuka koneksi ke database MySQL

d. Memodifikasi data di dalam database

e.  Menutup koneksi dari database MySQL

2. Parameter apa yang dibutuhkan oleh fungsi mysqli_connect() untuk menghubungkan ke database?

a. Nama host, username, password

b. Nama host, username, password, nama database

c. Nama host, nama database, password

d. Username, password, nama database

e. Nama host, username, password, port

3. Fungsi mana yang digunakan untuk menutup koneksi ke database MySQL?

a. mysqli_close()

b. mysqli_stop()

c. mysqli_disconnect()

d. mysqli_end()

e. mysqli_terminate()

4. Apakah hasil yang dikembalikan jika koneksi database dengan mysqli_connect() gagal?

a. Angka 0

b. Nilai TRUE

c. Nilai FALSE

d. Nilai NULL

e. Sebuah error message

5. Bagaimana cara memeriksa apakah koneksi ke database berhasil atau tidak dalam PHP?

a. Menggunakan if (mysqli_connected())

b. Menggunakan if (mysqli_success())

c. Menggunakan if (mysqli_connect_error())

d. Menggunakan if (mysqli_error())

e. Menggunakan if (mysqli_no_error())

6. Budi siswa SMK Hasan Kafrawi ingin membuat form input data pengguna menggunakan PHP. Di dalam form tersebut, budi memasukkan field untuk nama, email, dan nomor telepon. Perintah HTML mana yang harus digunakan untuk mengirim data input ke file PHP?

a. <form method="send" action="submit.php">

b. <form method="get" action="submit.php">

c.  <form method="post" action="submit.php">

d. <form method="put" action="submit.php">

e.  <form method="save" action="submit.php">

7. izzana membuat form input untuk menambahkan data siswa baru. Saat pengguna mengisi dan men-submit form, izzana ingin menangkap data dari field nama yang dikirimkan dengan metode POST. Fungsi PHP mana yang digunakan izzana untuk mengakses data tersebut?

a. $_GET['nama']

b. $_POST['nama']

c. $_REQUEST['nama']

d.  $_SERVER['nama']

e.  $_FORM['nama']

8. Rudi sedang membangun sebuah aplikasi pendaftaran. Dia ingin memastikan bahwa setiap kali form dikirim, input email dari pengguna tidak boleh kosong. Bagaimana cara Rudi melakukan validasi ini dalam PHP?

a. if (empty($_POST['email']))

b. if (!isset($_POST['email']))

c. if (strlen($_POST['email']) > 0)

d. if ($_POST['email'] === NULL)

e. if (is_null($_POST['email']))

9. SMK Hasan Kafrawi membuat aplikasi input data yang meminta nama pengguna dan kata sandi. SMK Hasan Kafrawi ingin kata sandi yang dimasukkan tidak terlihat saat pengguna mengetiknya. Elemen HTML apa yang harus digunakan untuk input kata sandi?

a. <input type="text" name="password">

b. <input type="password" name="password">

c. <input type="hidden" name="password">

d. <input type="secure" name="password">

e.  <input type="email" name="password">

10. Bagas ingin memastikan data yang dimasukkan pengguna ke dalam form pendaftaran tersimpan dalam database. Setelah pengguna mengisi dan mengirim form, Bagas menggunakan PHP untuk menangkap data input dan menyimpannya dalam tabel users. Kode SQL mana yang paling tepat untuk menyimpan data nama dan email ke dalam tabel?

a. INSERT INTO users (name, email) VALUES ('$_POST[name]', '$_POST[email]')

b. UPDATE users (name, email) VALUES ('$_POST[name]', '$_POST[email]')

c.  INSERT INTO users SET name='$_POST[name]', email='$_POST[email]'

d. INSERT INTO users VALUES ('$_POST[name]', '$_POST[email]')

e. INSERT DATA users (name, email) VALUES ('$_POST[name]', '$_POST[email]')

11. Ardi membuat sistem login menggunakan PHP dan MySQL. Setelah pengguna memasukkan username dan password, Ardi ingin memvalidasi apakah kombinasi tersebut ada di database. Apa langkah pertama yang perlu dilakukan untuk menghindari SQL Injection saat memproses data login?

a. Menggunakan $_POST['username'] dan $_POST['password'] secara langsung dalam query

b. Memeriksa apakah username dan password kosong

c.  Menggunakan query SQL dengan LIKE untuk mencocokkan data

d.  Menggunakan Prepared Statements atau mysqli_real_escape_string()

e.  Menyimpan password dalam session tanpa enkripsi

12. Tina telah membuat form login. Untuk meningkatkan keamanan, dia ingin menyimpan password pengguna dalam database menggunakan teknik hashing. Fungsi PHP mana yang paling tepat digunakan untuk mengenkripsi password sebelum menyimpannya?

a. hash('sha256', $password)

b. md5($password)

c. password_hash($password, PASSWORD_DEFAULT)

d. crypt($password)

e.  base64_encode($password)

13. Saat memproses login, Bayu ingin memastikan password yang diinput oleh pengguna sesuai dengan yang tersimpan di database setelah di-hash. Fungsi PHP apa yang digunakan untuk memverifikasi apakah password yang diinput benar?

a. hash_verify($password, $hash)

b. password_verify($password, $hash)

c.  md5_verify($password, $hash)

d.  password_match($password, $hash)

e.  crypt_verify($password, $hash)

14. Rina ingin membuat sistem login yang memerlukan pemeriksaan session untuk menjaga pengguna tetap terautentikasi selama sesi berlangsung. Setelah pengguna berhasil login, data apa yang paling aman disimpan dalam session?

a. Password pengguna

b.  Username dan password yang di-hash

c.  ID pengguna atau token otentikasi

d.  Seluruh data pengguna dari database

e.  Role pengguna dalam format teks biasa

15. Farhan menemukan bahwa setiap kali pengguna salah memasukkan password, sistem memberikan pesan kesalahan yang terlalu spesifik seperti "Password salah" atau "Username tidak ditemukan". Untuk meningkatkan keamanan dari serangan brute force, bagaimana Farhan sebaiknya menangani pesan kesalahan pada form login?

a. Selalu menampilkan pesan kesalahan yang sama, seperti "Login gagal"

b. Memisahkan pesan kesalahan untuk username dan password

c.  Menampilkan pesan kesalahan yang lebih detail

d.  Mengunci akun setelah 3 kali percobaan login

e.  Menyimpan password dalam format teks biasa agar lebih mudah diperiksa

16. Farid ingin membuat proses logout dalam aplikasi PHP. Fungsi PHP apa yang digunakan untuk menghapus semua data session saat pengguna logout?

 

a. `session_end()`  

b. `session_destroy()`  

c. `session_unset()`  

d. `session_reset()`  

e. `session_delete()`  

 

17. Setelah memanggil fungsi `session_destroy()`, Santi menemukan bahwa data session tetap ada di halaman lain. Apa langkah tambahan yang harus dilakukan untuk memastikan pengguna benar-benar logout?

 

a. Memanggil kembali `session_start()` setelah `session_destroy()`  

b. Mengatur ulang variabel session menggunakan `$_SESSION = array()`  

c. Menggunakan `header('Location: index.php')` tanpa memanggil `session_destroy()`  

d. Menghapus file session secara manual dari server  

e. Menggunakan `session_regenerate_id()`  

 

18. Apa fungsi utama dari `session_unset()` dalam proses logout?

 

a. Menghapus file session dari server  

b. Menghapus semua variabel session saat ini  

c. Menghentikan session dari browser  

d. Menutup koneksi ke database  

e. Mengganti session ID pengguna  

 

19.  Setelah melakukan logout, Rian ingin mengarahkan pengguna kembali ke halaman login. Bagaimana cara paling tepat melakukan ini dalam PHP?

 

a. `redirect('login.php')`  

b. `header('Refresh: 0; URL=login.php')`  

c. `header('Location: login.php')`  

d. `exit('login.php')`  

e. `include('login.php')`  

 

20. Setelah melakukan logout, apa yang sebaiknya dilakukan untuk mencegah pengguna kembali ke halaman yang dilindungi hanya dengan menekan tombol "Back" pada browser?

 

a. Menyisipkan kode `exit()` di setiap halaman yang dilindungi  

b. Mengatur session timeout yang sangat singkat  

c. Menggunakan `session_destroy()` di halaman logout dan memeriksa session di setiap halaman yang dilindungi  

d. Menghapus semua cookie di halaman logout  

e. Mengganti URL setiap halaman setelah logout  

 

21. Sebuah aplikasi kasir berbasis web perlu memiliki fitur untuk menyimpan data transaksi. Teknologi apa yang paling umum digunakan untuk menyimpan data transaksi secara permanen dalam aplikasi kasir berbasis web?

 

a. File teks  

b. MySQL atau database relasional lainnya  

c. Cookies  

d. Session PHP  

e. LocalStorage di browser  

 

22. Dalam aplikasi kasir, fitur diskon seringkali diperlukan. Jika sebuah aplikasi kasir berbasis web mengharuskan pengguna memasukkan kode diskon sebelum menyelesaikan transaksi, bagaimana sebaiknya data diskon tersebut diproses?

 

a. Memeriksa kode diskon di sisi klien menggunakan JavaScript  

b. Mengirim kode diskon ke server untuk divalidasi melalui database  

c. Menggunakan session untuk menyimpan kode diskon tanpa validasi  

d. Menyimpan kode diskon di LocalStorage browser  

e. Mengabaikan kode diskon dan langsung melanjutkan transaksi  

 

23. Di dalam aplikasi kasir berbasis web, setiap kali pengguna menambahkan barang ke dalam keranjang, data barang tersebut harus disimpan sementara. Bagaimana cara paling aman dan efisien untuk menyimpan data keranjang belanja selama sesi berlangsung?

 

a. Menyimpan data keranjang di cookie browser  

b. Menyimpan data keranjang di LocalStorage browser  

c. Menyimpan data keranjang di session server  

d. Menyimpan data keranjang di file teks di server  

e. Menyimpan data keranjang di cache browser  

24. Fitur laporan penjualan harian diperlukan dalam sebuah aplikasi kasir. Laporan ini harus menampilkan data transaksi yang dilakukan dalam satu hari. Query SQL apa yang tepat digunakan untuk mengambil transaksi berdasarkan tanggal?

 

a. `SELECT * FROM transaksi WHERE tanggal_transaksi = CURRENT_DATE()`  

b. `SELECT * FROM transaksi WHERE tanggal_transaksi LIKE '%CURRENT%'`  

c. `SELECT * FROM transaksi WHERE tanggal_transaksi BETWEEN NOW() AND 24 HOURS`  

d. `SELECT * FROM transaksi WHERE DATE(tanggal_transaksi) = CURDATE()`  

e. `SELECT * FROM transaksi WHERE tanggal_transaksi > CURRENT_DATE()`  

 

25. Sebuah aplikasi kasir berbasis web harus dapat menangani banyak transaksi sekaligus, terutama di toko dengan banyak kasir yang menggunakan aplikasi secara bersamaan. Apa yang harus diperhatikan agar aplikasi kasir dapat bekerja secara real-time dan multi-user?

 

a. Menggunakan AJAX untuk memperbarui data secara asinkron  

b. Menggunakan cookies untuk menyimpan semua transaksi  

c. Menggunakan sesi tunggal untuk semua pengguna  

d. Menyimpan data transaksi di LocalStorage setiap pengguna  

e. Menghindari penggunaan database untuk menyimpan transaksi  

1. Jelaskan bagaimana proses kerja aplikasi kasir berbasis web dari input data barang hingga transaksi selesai dan tersimpan di dalam database!
Jelaskn setiap langkah mulai dari pengguna memasukkan data barang, pengolahan data di server, hingga penyimpanan ke dalam database.

2. Apa saja komponen utama yang harus ada dalam aplikasi kasir berbasis web agar dapat berfungsi secara optimal?
Jelaskan peran masing-masing komponen, seperti database, interface pengguna, session management, dan fitur laporan.

3. Bagaimana cara mengamankan aplikasi kasir berbasis web agar tidak mudah diserang, terutama dalam hal transaksi dan penyimpanan data?
Jelaskan berbagai teknik keamanan yang dapat diterapkan, seperti penggunaan enkripsi, validasi input, dan keamanan sesi.

4. Apa saja risiko keamanan yang dapat muncul jika proses login pada aplikasi PHP tidak diimplementasikan dengan baik?

5. Apa perbedaan antara fungsi mysqli_connect() dan PDO dalam PHP untuk menghubungkan ke database.

0 Comments

Newest