contoh soal PHP


SECTION A
1. Pilih salah satu jawaban ang menurut Anda paling benar
2. Tuliskan jawaban Anda pada Lembar Jawaban Komputer (LJK) yang telah
disediakan
1. Perhatikan potongan kode berikut ini.
function my_func($variable)
{
return (is_numeric($variable) && $variable % 2 == 0);
}
Apakah yang dilakukan oleh fungsi tersebut?
a. mengecek apakah $variable habis dibagi 2
b. mengecek apakah $variable adalah sebuah bilangan dan habis
dibagi 2
c. mengecek apakah $variable berisi angka 2
d. mengecek apakah $variable adalah sebuah bilangan dan mengandung
angka 2
e. mengecek apakah $variable sebuah bilangan genap
2. Misalkan kita ingin menyimpan hasil dari ujian ini dan ujian-ujian lainnya dalam
tabel tblExam berikut, bagaimana cara kita menampilkan semua nama ujian dan
nilai rata-ratanya?
+--------------+--------------+
| Field | Type |
+--------------+--------------+
| userName | varchar(20) |
| userScore | tinyint(3) |
| userComments | varchar(255) |
| examName | varchar(20) |
+--------------+--------------+
a. select examName, avg(userScore) from tblExam order by
examName;
b. select examName, sum(userScore) / count(userScore) from
tblExam group by examName;
c. select examName, userScore / count(userScore) from
tblExam group by examName;
d. select examName, userScore / count(userScore) from
tblExam order by examName;
e. select examName, avg(userScore) / count(userScore) from
tblExam group by examName;
3. Variabel static adalah:
a. Variabel yang nilainya di-share ke semua object yang ada dalam
sebuah class
b. Sebuah konstanta
c. Variabel yang tetap menyimpan nilainya yang dihasilkan dari
invokasi sebuah fungsi ke fungsi lainnya
IBAD/UTS 3/24/2012, 1:38 PM 3 of 15
d. Variabel global yang dapat diakses oleh semua fungsi dalam script
tersebut
e. Tidak ada yang benar
4. Perhatikan potongan kode berikut ini.
1 function count($var) {
2 static $var = 3;
3 $var = $var + 4;
4 return ($var);
5 }
6
7 count($temp);
8 $var = 3;
9 echo “nilai akhir = “ . count(&$var);
Apakah yang dihasilkan oleh baris ke-9?
a. nilai akhir = 11
b. nilai akhir = 7
c. nilai akhir = 10
d. nilai akhir = 4
e. nilai akhir = 3
5. Perhatikan script berikut ini
<?
$a = false;
$b = true;
$c = false;
if ($a ? $b : $c) {
echo "false";
} else {
echo "true";
}
?>
Apakah output dari script tersebut?
a. Tidak menampilkan apapun
b. Error
c. Tidak ada yang benar
d. true
e. false
6. Perhatikan potongan kode berikut ini.
$number = 50;
function tenTimes() {
$number = $number * 10;
}
tenTimes();
print $number;
IBAD/UTS 3/24/2012, 1:38 PM 4 of 15
Apakah output dari kode tersebut?
a. 500
b. 50
c. 0
d. Error
e. Tidak menampilkan apapun
7. Perhatikan potongan kode berikut ini.
<?
$var1 = "Politeknik";
$var2 = &$var1;
$var2 = "Del";
echo $var1." ";
echo $var2;
?>
Apakah output dari kode tersebut?
a. Politeknik Del
b. Del Politeknik
c. Politeknik Politeknik
d. Del Del
e. Tidak ada yang benar
8. Perhatikan potongan kode berikut ini.
$var1 = 0;
$var2 = "my_name";
my_address();
if ($var1) {
function my_name() {
echo "Politeknik Informatika Del ";
}
}
$var2();
function my_address() {
echo 'Sitoluama ';
}
Apakah output dari kode tersebut?
a. "Sitoluama"
b. "Politeknik Informatika Del Sitoluama"
c. "Sitoluama Politeknik Informatika Del"
d. Error, karena fungsi my_address belum pernah didefinisikan sebelumnya
saat dipanggil
e. Error, karena fungsi my_name tidak pernah diinisialisasi
IBAD/UTS 3/24/2012, 1:38 PM 5 of 15
$link = mysql_connect("my_host", "my_user", "my_pwd")
or die("Could not connect : " . mysql_error());
$query = "SELECT * FROM my_table";
$result = mysql_query($query)
or die("Query failed : " . mysql_error());
while ($line = mysql_fetch_array($result, MYSQL_ASSOC))
{
foreach ($line as $col_value) {
echo $col_value\n";
}
}
mysql_free_result($result);
mysql_close($link);
$link = mysql_connect("my_host", "my_user", "my_pwd")
or die("Could not connect : " . mysql_error());
mysql_select_db("my_db")
or die("Could not select database");
$query = "SELECT * FROM my_table";
$result = mysql_query($query)
or die("Query failed : " . mysql_error());
while ($line = mysql_fetch_array($result, MYSQL_ASSOC))
{
foreach ($line as $col_value) {
echo "$col_value\n";
}
}
mysql_free_result($result);
mysql_close($link);
$link = mysql_connect("my_host", "my_user", "my_pwd")
or die("Could not connect : " . mysql_error());
mysql_select_db("my_db")
or die("Could not select database");
$query = "SELECT * FROM my_table";
$result = mysql_query($query)
or die("Query failed : " . mysql_error());
while ($line = mysql_fetch_array($result, mysql_assoc))
{
foreach ($line as $col_value) {
echo "$col_value\n";
}
}
mysql_free_result($result);
mysql_close($link);
$link = mysql_connect("my_host", "my_user", "my_pwd")
or die("Could not connect : " . mysql_error());
mysql_select_db("my_db")
or die("Could not select database");
$query = "SELECT * FROM my_table";
$result = mysql_query($query)
or die("Query failed : " . mysql_error());
while ($line = mysql_fetch_row($result, MYSQL_NUM)) {
foreach ($line as $col_value) {
echo "$col_value\n";
}
}
mysql_free_result($result);
mysql_close($link);
9. Anggap ada sebuah tabel my_table pada database my_db yang disimpan di server
my_host oleh user my_user dengan password my_pwd. Potongan kode yang benar
untuk mengambil data dari tabel my_table adalah:
a.
b.
c.
d.
IBAD/UTS 3/24/2012, 1:38 PM 6 of 15
e. Tidak ada yang benar
10. Jika sebuah fungsi tidak memiliki parameter argumen formal, maka fungsi
tersebut boleh tidak memiliki tanda kurung ‘()’.
a. Benar
b. Salah
11. Perhatikan query SQL berikut ini.
mysql> CREATE TABLE grocery_inventory (
-> id int not null primary key auto_increment,
-> item_name varchar (50) not null,
-> item_desc text,
-> item_price float not null,
-> curr_qty int not null
-> );
Manakah diantara query SQL berikut yang menyebabkan error?
a. insert into grocery_inventory values ('NULL', 'Bottled
Water (6-pack)', '500ml spring water.', 2.29, 250);
b. insert into grocery_inventory (id, item_name, item_desc,
item_price, curr_qty) values (1, 'Apples', 'Medium-sized
Granny Smith apples.', 0.25, 1000);
c. insert into grocery_inventory values (2, 'Bunches of
Grapes', 'Seedless grapes.', 2.99, 500);
d. insert into grocery_inventory (item_name, item_desc,
item_price, curr_qty) values ('Bottled Water (6-pack)',
'500ml spring water.', '2.29', 250);
e. insert into grocery_inventory values ('Bottled Water (6-
pack)', '500ml spring water.', 2.29, 250);
12. Perhatikan eksekusi sebuah query SQL berikut ini. Struktur table
grocery_inventory dapat Anda lihat pada soal no. 11.
mysql> replace into grocery_inventory values
-> (1, 'Granny Smith Apples', 'Sweet!', '0.50', 1000);
Query OK, 2 rows affected (0.00 sec)
Pernyataan-pernyataan berikut ini sesuai dengan query tersebut, kecuali:
a. Sudah ada record dengan id = 1 pada tabel grocery_inventory
b. Operasi replace tersebut terlebih dahulu menghapus record dengan id
yang sama jika ada
IBAD/UTS 3/24/2012, 1:38 PM 7 of 15
c. Replace melakukan overwrite terhadap record dengan id yang sama
dengan record yang baru
d. Perintah replace adalah extension terhadap ANSI SQL yang ada di
MySQL
e. Perintah replace pada dasarnya melakukan dua aksi sekaligus yaitu
DELETE dan INSERT sebuah record tertentu
13. Perhatikan potongan kode berikut ini.
Header("Content-type: image/jpeg");
$image = ImageCreate(200, 150);
$gray=ImageColorAllocate($image, 204, 204, 204);
$blue=ImageColorAllocate($image, 0, 0, 255);
ImageLine($image, 10, 10, 150, 30, $blue);
ImageArc($image, 150, 65, 70, 70, 0, 360, $blue);
ImageRectangle($image, 10, 65, 150, 140, $blue);
ImageJPEG($image);
ImageDestroy($image);
Pernyataan manakah yang benar sesuai dengan kode tersebut?
a. warna background yang dimiliki oleh $image adalah warna default
yaitu putih
b. masing-masing bidang atau bentuk tepat bersinggungan satu dengan
lainnya
c. dimensi dari bidang rectangle adalah 10 x 65
d. garis yang melalui bidang lengkung tepat melalui titik pusat bidang
lengkung tersebut
e. bidang lengkung tersebut adalah lingkaran
14. Manakah gambar yang paling tepat sesuai dengan kode pada nomor 13?
a.
b.
c.
IBAD/UTS 3/24/2012, 1:38 PM 8 of 15
d.
e.
15. Perhatikan potongan kode berikut ini.
// Filename: a.php
$a = 3;
function inc1() {
static $a = 1;
return $a++;
}
// Filename: b.php
include "a.php";
function inc2(&$a) {
inc1();
return $a++;
}
inc2($a);
echo $a;
Apakah output dari kode tersebut?
a. 2
b. 3
c. 4
d. 5
e. 6
16. Apa perbedaan atara print () dan echo()
a. Print() dapat digunakan sebagai bagian dari ekspresi, sementara echo()
tidak
b. Echo() dapat digunakan sebagai bagian dari ekspresi, sementara print()
tidak
c. Echo() dapat digunakan pada versi CLI, sedangkan print() tidak
IBAD/UTS 3/24/2012, 1:38 PM 9 of 15
d. print() dapat digunakan pada versi CLI, sedangkan echo() tidak
e. Tidak ada perbedaan antara keduanya, kedua fungsi ini berfungsi untuk
memprint teks.
17. Language construct mana yang terbaik yang dapat digunakan untuk menggantikan
if conditional seperti dibawah in?
<?php
if($a == 'a') {
somefunction();
} else if ($a == 'b') {
anotherfunction();
} else if ($a == 'c') {
dosomething();
} else {
donothing();
}
?>
a. switch statement tanpa default case
b. menggunakan recursive function call
c. menggunakan while statement
d. switch statement dengan default case
18. Bagaimana cara terbaik untuk mengiterasi array $array, asumsi Anda ingin
mengubah nilai setiap elemen?
<?php
$myarray = array ("My String",
"Another String",
"Hi, Mom!");
?>
a. Menggunakan loop for
b. Menggunakan loop foreach
c. Menggunakan loop while
d. Menggnakan loop do..while
e. Tidak ada cara untuk menyelesaikan persoalan tersebut
19. Perhatikan kode dibawah ini:
<?php
define("STOP_AT", 1024);
$result = array();
/* Missing code */
{
$result[] = $idx;
}
print_r($result);
?>
Agar program tersebut menghasilkan array seperti dibawah ini,
Maka potongan program yang dihilangkan adalah?
Array
{
[0] => 1
[1] => 2
[2] => 4
[3] => 8
[4] => 16
[5] => 32
[6] => 64
[7] => 128
[8] => 256
[9] => 512
}
a. foreach($result as $key => $val) A.
b. while($idx *= 2)
c. for($idx = 1; $idx < STOP_AT; $idx *= 2)
d. for($idx *= 2; STOP_AT >= $idx; $idx = 0)
e. while($idx < STOP_AT) do $idx *= 2
IBAD/UTS 3/24/2012, 1:38 PM 10 of 15
20. Berapa nilai yang ditampilkan pada saat program berikut dieksekusi? Asumsi
kode tersebut dieksekusi menggunakan URL berikut
testscript.php?c=25
<?php
function process($c, $d = 25)
{
global $e;
$retval = $c + $d - $_GET['c'] - $e;
return $retval;
}
$e = 10;
echo process(5);
?>
a. 25
b. -5
c. 10
d. 5
e. 0
21. Pada saat program berikut selesai dieksekusi, berapa nilai yang akan disimpan
pada variable array $a->my_value?
<?php
class my_class {
var $my_value = array();
function my_class ($value){
$this->my_value[] = $value;
}
function set_value ($value){
$this->$my_value = $value;
}
}
$a = new my_class ('a');
$a->my_value[] = 'b';
$a->set_value ('c');
$a->my_class('d');
?>
a. c
b. b
c. a
d. d
e. e
22. Bagaimana cara Anda memanggil method method sebuah kelas dari dalam kelas
itu sendiri?
a. $self=>mymethod();
b. $this->mymethod();
c. $current->mymethod();
d. $this::mymethod();
e. None of the above are correct
23. Asumsi bahwa browser client tidak pernah direstart, berapa lama setelah akses
yang terakhir session dinyatakan expire dan dianggap sebagai garbage ?
a. Setelah 1440 detik
b. Setelah waktu yang dinyatakan pada PHP ini pada session.gc_maxlifetime
IBAD/UTS 3/24/2012, 1:38 PM 11 of 15
c. Tidak pernah expire hingga secara manual dihapus
d. Hanya expire pada saat browser direstart
e. Tidak ada yang benar
24. Jika Anda ingin mensorting sebuah array secara ascending dengan tetap
mempertahankan key nya, fungsi apa yang akan Anda gunaakan?
a. ksort()
b. assort()
c. krsort()
d. sort()
e. usort()
25. Apa output script berikut :
<?php
$array = array ('3' => 'a', '1b' => 'b', 'c', 'd');
echo ($array[1]);
?>
a. 1
b. b
c. c
d. Warning
e. A
26. Apa output script berikut :
<?php
$array = array (0.1 => 'a', 0.2 => 'b');
echo count ($array);
?>
a. 1
b. 2
c. 0
d. Tidak ada
e. 0.3
27. Perhatikan script dibawah ini. Kode apa yang harus disisipkan dilokasi yang
ditandai untuk menampilkan string php pada saat script tersebut dieksekusi?
<?php
$alpha = 'abcdefghijklmnopqrstuvwxyz';
$letters = array(15, 7, 15);
foreach($letters as $val) {
/* What should be here */
}
?>
a. echo chr($val);
b. echo asc($val);
c. echo substr($alpha, $val, 2);
d. echo $alpha{$val};
e. echo $alpha{$val+1}
28. Diberikan sebuah variable $email yang mengandung string user@example.com,
statement mana dibawah ini yang akan mengekstrak string example.com ?
a. substr($email, strpos($email, "@"));
b. strstr($email, "@");
IBAD/UTS 3/24/2012, 1:38 PM 12 of 15
c. strchr($email, "@");
d. substr($email, strpos($email, "@")+1);
e. strrpos($email, "@");
29. Apa output dari string berikut ?
<?php
$s = '12345';
$s[$s[1]] = '2';
echo $s;
?>
a. 12345
b. 12245
c. 22345
d. 11345
e. Array
30. Perhatikan script dibawah ini, yang akan membaca file baris per baris dari sebuah
file teks. Fungsi apa yang harus disisipkan pada baris yang ditandai agar fungsi
tersebut dapat berjalan dengan baik?
<?php
$file = fopen("test", "r");
while(!feof($file)) {
echo ????????????;
}
fclose($file);
?>
a. file_get_contents($file)
b. file($file)
c. read_file($file)
d. fgets($file)
e. fread($file)
SECTION B
1. Tuliskan jawaban Anda pada lembar jawaban yang telah disediakan
2. Anda boleh menjawab dengan nomor yang tidak berurutan, namun pastikan
bahwa setiap jawaban memiliki nomor sesuai pertanyaan
3. Jika Anda membutuhkan informasi lain yang tidak disediakan oleh soal, Anda
boleh menuliskan asumsi yang Anda gunakan.
31. Script berikut ini tidak menyebabkan adanya error, hanya beberapa warning.
Namun demikian, warning tersebut menyebabkan script tersebut tidak dapat
menampilkan image yang diharapkan. Tugas Anda:
a. [2 pts] Carilah dua hal yang menyebabkan warning tersebut
b. [2 pts] Jelaskan mengapa mereka menyebabkan kegagalan script untuk
menampilkan image
c. [2 pts] Perbaikilah script tersebut
<?
$image = imagecreate(400, 300);
$bg = imagecolorallocate($image, 0, 0, 0);
$one = imagecolorallocate($image, 255, 255, 255);
imagepolygon($image,
array (
IBAD/UTS 3/24/2012, 1:38 PM 13 of 15
0, 0,
100, 200,
300, 200
),
5,
$one);
header("Content-type: image/jpeg");
imagejpeg($image);
?>
32. [4 pts] Jika tidak ada file testku.png yang disimpan di server, apakah output
yang akan dihasilkan oleh script berikut. Jelaskan mengapa?
<?
if(!($image=@imagecreatefrompng("testku.png"))) {
$image=imagecreate(200,200);
$one=imagecolorallocate($image,255,255,255);
$two=imagecolorallocate($image,0,0,0);
imagefill($image,0,0,$one);
imagestring($image,4,10,10,"Hmm!",$two);
header("Content-type:image/png");
imagepng($image);
$width = imagesx ($image);
$height = imagesy ($image);
exit();
} else {
$image=imagecreate(200,200);
$one=imagecolorallocate($image,255,255,255);
$two=imagecolorallocate($image,0,0,0);
imagefill($image,0,0,$one);
imagefilledrectangle($image,30,30,70,70,$two);
header("Content-type:image/png");
imagepng($image);
$width = imagesx ($image);
$height = imagesy ($image);
exit();
}
?>
33. [10 pts] Buatlah sebuah program kecil yang akan menampilkan sejumlah record
tertentu dari tabel tblExam pada database dbExam dengan user exam dan password
exam. List of records akan menampilkan sejumlah n record pertama dari tblExam.
Saat next di-click akan menampilkan sejumlah n record berikutnya dari current
list of records. Sebaliknya saat prev di-click, akan menampilkan sejumlah n
record sebelum yang ada pada list of record.
IBAD/UTS 3/24/2012, 1:38 PM 14 of 15
34. [20 pts] Anda ditugaskan untuk membuat sebuah aplikasi guestbook sederhana,
dimana formnya adalah seperti berikut :
Dan tampilannya adalah seperti berikut
Data guestbook tersebut disimpan di file teks dimana setiap record disimpan per baris
dan setiap field dipisah dengan karakter “|”.
a. Tuliskan program yang anda buat untuk action form pada saat form
disubmit (from tidak perlu Anda tulisan)
b. Tuliskan program untuk menampilkan data guestbook
List of records
Prev Next
//Filename: list.php
IBAD/UTS 3/24/2012, 1:38 PM 15 of 15
c. Bagaimana jika kita ingin menambahkan fungsi untuk menghapus data?
Tuliskan program yang hanya bertugas menghapus data tersebut dari file,
perhatikan apa parameter yang harus dikirimkan pada file action/fungsi
tersebut?
End of Examination

Comments

  1. Minta Jawabannya secepatnya maksimal sampai malem pliisss :( :( lagi butuh nih

    ReplyDelete
    Replies
    1. wahhh sorry baru aktif lagi, dah lulus dong ya . hehehe

      Delete
  2. This comment has been removed by the author.

    ReplyDelete

Post a Comment

Popular Posts