Pemrograman Web Database
Pemrograman Web Database
BAB
NAMA
: DATABASE
: RIKO ANDIANTO
ADRYAN CHIKO PRATAMA
NIM
: 135150307111048
135150301111114
ASISTEN
: LABIB IMAM HIDAYAT
LENI ISTIKOMAH
TGL PRAKTIKUM : 28 APRIL 2016
LATIHAN 1
A. Soal
Buatlah tabel berikut pada database:
<?php
$namahost = "localhost";
$username = "root";
$password = "root"; //password MySQL anda
$database = "Modul"; //database anda
mysql_connect($namahost,$username,$password) or die("Failed");
mysql_select_db($database) or die("Database not exist");
?>
<?php
include "koneksi.php";
$q = mysql_query ("SELECT * FROM user");
echo "<form action=\"Lat3_4.php]\" method=\"POST\">
<input type=\"submit\" value=\"tambah
user\" />
</form>";
echo "<table border=\"1\">
<th>Username</th>
<th>Password</th>
<th>level</th>
<th>aksi</th>";
while ($hasil = mysql_fetch_array($q))
echo " <tr>
<td>$hasil[username]</td>
19
20
21
22
<td>$hasil[password]</td>
<td>$hasil[level]</td>
<td><a href=\"Lat3_4.php?
username=$hasil[username]&e=1\">Edit</a></td>
</tr>";
echo "</table>"
?>
B. Screenshoot
Halaman pada localhost/phpmyadmin
Koneksi database
C. Syntax
Koneksi.php
1
2
3
4
5
6
7
8
9
10
11
<?php
$namahost = "localhost";
$username = "root";
$password = ""; //password MySQLi anda
$database = "praktikumWeb"; //database anda
$db = mysqli_connect($namahost,$username,$password,
$database) or die("Failed");
?>
Code Lat5_1.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
include "koneksi.php";
$q = mysqli_query ($db, "SELECT * FROM user");
echo "<form action=\"Lat5_2.php]\" method=\"POST\">
<input type=\"submit\" value=\"tambah
user\" />
</form>";
echo "<table border=\"1\">
<th>Username</th>
<th>Password</th>
<th>level</th>
<th>aksi</th>";
while ($hasil = mysqli_fetch_array($q))
echo " <tr>
<td>$hasil[username]</td>
<td>$hasil[password]</td>
<td>$hasil[level]</td>
20
21
22
23
24
25
<td><a
href=\"Lat5_2.php?
username=$hasil[username]&e=1\">Edit</a></td>
</tr>";
echo "</table>"
?>
D. Penjelasan
a. Koneksi.php berguna untuk menghubungkan dengan database. Hubungan
baris 2 dari Lat5_1 adalah menyertakan file-file php dari koneksi.php pada
Lat5_1.
b. Penggunaan include yaitu digunakan untuk memanggil semua code
koneksi.php pada code Lat5_1. fungsi include() akan menyertakan dan
mengevaluasi seluruh program yang ada di file yang disertakan. Jika
terdapat error pada program yang disertakan, maka error akan ditampilkan
di layar. Jika tidak ditemukan maka akan eksekusi program selanjutnya
(setelah include) akan tetap dijalankan walaupun ditampilkan error.
Perbedaannya hanya terletak pada saat file yang disertakan tidak
ditemukan, maka perintah-perintah selanjutnya tidak akan dijalankan. Jika
perintah include pada baris ke-2 diganti dengan perintah require dan
program koneksi.php tidak ditemukan, maka teks Program setelah koneksi
tidak akan ditampilkan, melainkan hanya menampilkan error.
c. Guna dari baris 18-19 pada Lat5_1 adalah untuk melakukan edit. Link
(lokasi yang ditunjuk href) untuk menunjuk ke Lat5_2 dengan
mengirimkan input username dan $e yang nilainya sama dengan 1.
LATIHAN 2
A. Soal
Tulis kode berikut dan simpan dengan nama Lat5_2.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
include "koneksi.php";
$e = $_GET['e'];
if (empty($e))
$title = "Tambah User";
else {
$title = "Edit User";
$q
= mysqli_query("SELECT * FROM user
WHERE
$data
username='$_GET[username]'");
= mysqli_fetch_array($q);
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type"
content="text/html;charset=utf-8"/>
<title><?php echo $title ?></title>
</head>
<body>
<h1><?php echo $title ?> </h1>
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
Jalankan Lat5_1 di browser kemudian tekan tombol Tambah User dan link
Edit untuk membuka Lat5_2. Apa yang terjadi?
b. Baris manakah dari Lat5_2 yang membedakan aksi yang terjadi jika tombol
Tambah User dan link Edit dari Lat5_3 ditekan? Jelaskan baris tersebut!
a.
B. Screenshoot
C. Syntax
1
2
3
4
5
<?php
//report error(0)
include "koneksi.php";
if (!isset($_GET['e'])){
$title = "Tambah User";
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
$q
user WHERE
$data
}
else {
$title
$q
user WHERE
username=''");
= mysqli_fetch_array($q);
= "Edit User";
= mysqli_query($db, "SELECT * FROM
username='$_GET[username]'");
$data
= mysqli_fetch_array($q);
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type"
content="text/html;charset=utf-8"/>
<title><?php echo $title ?></title>
</head>
<body>
<h1><?php echo $title ?></h1>
<form method="post" action="Lat5_3.php">
<input type="hidden" name="e" value="<?php echo
$data['username'] ?>"/>
<table border="1">
<tr>
<td>Username</td>
<td><input name="username" type="text"
value="<?php echo $data['username'] ?
>"/></td>
</tr>
<tr>
<td>Password</td>
<td><input name="password" type="text"
value="<?php echo $data['password']
?>"/></td>
</tr>
<tr>
<td>Level</td>
<td><input name="level" type="text"
value="<?php echo $data['level'] ?
>"/></td>
54
55
56
57
58
59
60
61
62
</tr>
<tr>
<td colspan="2"><input type="submit" value="Submit"
/></td>
</tr>
</table>
</form>
</body>
</html>
D. Penjelasan
a. Pada saat menjalankan Lat5_1 tampilan browser akan menampilkan table
yang berisi nama, password, level dan sebuah tombol tambah user dan aksi
edit. Ketika tombol tambah user di klik maka akan menampilkan daftar
table kosong yang siap untuk diisi, tapi ketika mengklik aksi edit, maka akan
muncul tampilan mana yang di klik edit sebelumnya dan disitu bisa edit
nama, password dan level.
b. Yang membedakan antara aksi saat tombol Tambah User dan link edit
ditekan adalah pada Lat5_2 baris ke 4-19. Jika $e=0 maka aksi tambah user
yang dijalankan karena data-datanya belum diinputkan. Dan jika $e=1 maka
aksi edit yang dijalankan dengan mengambil data sesuai username yang
ingin diedit karena data-datanya sudah dimasukkan sebelumnya.
LATIHAN 3
A. Soal
Tulis kode berikut dan simpan dengan nama Lat5_3.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
include "koneksi.php";
$e = $_POST['e'];
if (empty($e))
mysqli_query("INSERT INTO user
VALUES ('$_POST[username]',
'$_POST[password]',
'$_POST[level]')");
else
mysqli_query("UPDATE user SET password =
'$_POST[password]',
level
= '$_POST[level]'
WHERE username =
'$_POST[username]'");
header("location:Lat5_1.php");
?>
B. Screenshoot
C. Syntax
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
include "koneksi.php";
if (empty($_POST['e']))
mysqli_query($db, "INSERT INTO user
VALUES
('$_POST[username]',
'$_POST[password]',
'$_POST[level]')");
else
mysqli_query($db, "UPDATE user SET password
'$_POST[password]',
'$_POST[level]'
level =
WHERE username =
'$_POST[username]'");
header("location:Lat5_1.php");
?>
D. Penjelasan
a. Lat5_3 digunakan untuk meneruskan data dari koneksi.php dan Lat5_2.php.
Terdapat 2 pilihan pada Lat5_2.php, tambah user dan edit. Apabila
tambah user berrti saat submit di tekan maka akan meneruskan pembuatan
data tersebut pada Lat5_3 dan akan menampilkan data baru pada
Lat5_1.php. apabila edit user berarti data yang akan di edit akan di
tampilkan pada baris 10-17 kemudian akan me refresh data kembali pada
Lat5_1.php
b. Variable $e didapat dari code berikut :
LATIHAN 4
A. Soal
Tulis kode SQL berikut dan eksekusi pada halaman phpmyadmin dengan menggunakan
database yang sama dengan database yang sudah dibuat pada Latihan 1
1
2
3
4
5
6
7
8
9
Buatlah form HTML untuk melakukan Login, kemudian aksi yang akan dilakukan akan
menuju ke file Lat5_4.php dan simpan dengan nama formLogin.html seperti berikut :
1. Jalankan halaman form Login yang sudah dibuat, kemudian masukkan username dan
password sesuai dengan data yang sudah tersimpan di database, kemudian jalankan
kembali form login tersebut dan coba isikan dengan data yang belum tersimpan di
dalam database, amati dan simpulkan apa yang terjadi !
2. Perhatikan script SQL untuk SP_Login yang sudah dibuat, apa arti dari baris 2 dan
3 ? Misalkan jika kita ingin membuat stored procedure yang memiliki output atau
keluaran, maka apa yang harus dilakukan ?
3. Perhatikan kode program pada file Lat5_4.php dan jelaskan :
a.
Apa arti baris nomor 5 dan apa bedanya dengan script yang ditulis pada file
koneksi.php ?
b.
Apa maksud dari baris 8 sampai baris 11 dan apa bedanya dengan penulisan
kode program untuk mengeksekusi query pada file Lat5_1.php ?
B. Screenshot
C. Syntax
Kode SQL
1
2
3
4
5
6
7
8
DELIMITER |
CREATE PROCEDURE SP_Login(IN userName VARCHAR(32), IN passWord
VARCHAR(35))
BEGIN
SELECT * FROM user u WHERE u.username = userName AND u.password =
password
END
|
Lat5_4.php
1
2
3
4
5
6
7
8
9
1
0
1
1
1
2
1
3
1
4
1
5
1
6
1
7
1
8
1
9
<?php
//ganti mySQLUserName dengan username dari server mySQL Anda
//ganti mySQLPassWord dengan password dari server mySQL Anda
if(isset( $_POST['username'])&&isset( $_POST['password']))
{
$username = $_POST['username'];
$password = $_POST['password'];
$mysqli = new mysqli('localhost', 'root',
'', 'bab5');
$rs = $mysqli->query( "CALL SP_Login
('".$username."','".$password."')" );
$row = $rs->fetch_object();
if ($row)
{
header("location:Lat5_1.php");
}
else
{ ?>
<script>
alert('Maaf anda belum terdaftar');
</script>
<?php
}
}
else
2
0
2
1
2
2
2
3
2
4
2
5
2
6
2
7
2
8
?>
D. Penjelasan
1. Ketika kita memasukkan data yang belum ada di database kita akan
dikembalikan ke halaman form_login.html, karena tidak memenuhi syarat
yang ada di dalam Lat5_4.php. Jika ada data yang sebelumnya di
tampilkan maka lanjutkan ke proses bawahnya.
2. Arti dari baris ke 2 dan 3 yaitu adalah sebuah parameter yang harus
dipenuhi apabila ingin menggunakan fungsi dari SP_Login. Apabila ingin
menampilkan output atau keluaran yaitu dengan membuat satu parameter
pada procedure bersifat OUT, karena pada procedure MySQL ada 3 jenis
parameter, yaitu : IN(default), OUT, dan INOUT.
3. a. Arti dari baris nomor 5 adalah kita mengkoneksikan file Lat5_4.php ke
database MySQL, bedanya dengan koneksi.php adalah file ini
menggunakan OOP style, sedangkan pada koneksi.php menggunakan
procedural.
b. Hampir sama dengan diatas, yaitu menggunakan OOP style, pada baris
8 file memanggil fungsi bernama SP_Login dengan 2 parameter variable
$username dan $password.