Anda di halaman 1dari 11

Modul 8 Pemrograman Web

Dosen Pengampu: Berlian Rahmy Lidiawaty S.ST., M.MT.

PHP Query

Tim Penyusun :
- Rey Dylanza
- Sabillah Sakti
- Dimas Cahyo Utomo

KOMPETENSI DASAR
Mahasiswa bisa membuat website dinamis dengan memanfaatkan query PHP untuk mengolah
data di dalam web.

1. Create Database
Buka program XAMPP di komputer/laptop Anda, lalu klik "START" pada services
Apache dan MySQL. Jika sudah running, klik "ADMIN" pada services MySQL untuk
membuka PHPMyAdmin.
Akan terbuka jendela PHPMyAdmin di browser Anda, lalu klik "Databases" dan
berikutnya beri nama database Anda pada kolom yang telah tersedia. Kemudian klik
"CREATE".

Sekarang, Anda akan diminta membuat tabel untuk database, beri nama tabel database
Anda dan tentukan jumlah kolom tabelnya.
Berikutnya, Anda akan diminta memasukkan nama masing-masing kolom, menentukan
jenis tipe data kolom tersebut, panjangnya, dan indikator lain seperti apakah kolom
tersebut bersifat Auto Increment, dll.

Dan jadilah database Anda.


2. Membuat koneksi PHP
Silakan buat file PHP pada direktori utama website maupun direktori yang Anda
inginkan. Dalam contoh ini kita meletakkannya pada direktori dengan nama file
koneksi.php.

Masukkan script koneksi ke dalam file koneksi.php. Berikut ini adalah contoh kode
standar yang dapat digunakan untuk melakukan koneksi PHP ke MySQL.

<?php
$servername = "localhost";
$username = "username";
$password = "password";

// Create connection
$conn = mysqli_connect($servername, $username, $password);

// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
?>

Pastikan Servername, Username, dan Password sama dengan yang ada di


PHPMyAdmin. Jika Anda tidak mengubah pengaturan default dari ketiganya,
gunakan sintaks default diatas dan jangan ubah sintaks servername, username,
maupun password diatas.

Di bagian kode, telah ditentukan detail database sebagai value dari variabel tersebut. Di
dalam function mysqli_connect() Anda dapat melihat sebuah variabel digunakan.

Function mysqli_connect() akan mencoba untuk terhubung ke database sesuai value


dari variabel. Jika koneksi tidak berhasil, pesan seperti di bawah ini akan muncul:

die("Connection failed: "

Jika koneksi berhasil, kode selanjutnya akan dieksekusi.

echo "Connected successfully";


3. Insert Database
Contoh Sintaks :
<?php
include 'koneksi.php';

$nama = $_POST['nama'];
$alamat = $_POST['alamat'];
$pekerjaan = $_POST['pekerjaan'];

mysql_query("INSERT INTO user


VALUES('','$nama','$alamat','$pekerjaan')");

header("location:index.php");
?>

Baris di atas merupakan baris terpenting dalam barisan kode yang kita gunakan.
INSERT INTO adalah suatu statement yang berfungsi untuk menambahkan data ke
dalam tabel database yang telah ditentukan. Misalnya, kita akan menambahkan data ke
tabel user.

Di dalam tanda kurung, terdapat kolom tabel yang ingin kita tambahkan value-nya:
(nama, alamat, pekerjaan). Data akan ditambahkan sesuai urutan yang telah ditentukan.

Setelah INSERT INTO, ada statement VALUES. Di statement ini, kita menyertakan value
ke kolom yang telah ditentukan sebelumnya. Dengan demikian, masing-masing kolom
merepresentasikan value yang telah dibuat.

Hal terpenting lainnya adalah karena kita hanya menjalankan SQL query dengan
menggunakan kode PHP, maka SQL query harus di set di antara quote.

Dan terakhir setelah menginput data ke database kita alihkan halaman ke halaman
index kembali dengan syntax header("location:index.php");
4. Delete Data
Contoh sintaks :
<?php
include 'koneksi.php';

$id = $_GET['id'];
mysql_query("DELETE FROM user WHERE id='$id'")or die(mysql_error());

header("location:index.php");
?>

Berdasarkan sintaks diatas dapat dilihat bahwa kita akan memanggil ID saja. Kenapa
hanya ID saja yang dipanggil? Karena ID bersifat primary key, maka ia akan mewakili
data lainnya sesuai dengan ID tersebut. Dengan begitu, maka semua data pada ID
tersebut akan terhapus. Kita tidak perlu memanggil kolom lainnya.

5. Select Data
Contoh sintaks :
<?php
include 'koneksi.php';

// Attempt select query execution


$sql = "SELECT * FROM persons";
if($result = mysqli_query($link, $sql)){
if(mysqli_num_rows($result) > 0){
echo "<table>";
echo "<tr>";
echo "<th>id</th>";
echo "<th>first_name</th>";
echo "<th>last_name</th>";
echo "<th>email</th>";
echo "</tr>";
while($row = mysqli_fetch_array($result)){
echo "<tr>";
echo "<td>" . $row['id'] . "</td>";
echo "<td>" . $row['first_name'] . "</td>";
echo "<td>" . $row['last_name'] . "</td>";
echo "<td>" . $row['email'] . "</td>";
echo "</tr>";
}
echo "</table>";
// Free result set
mysqli_free_result($result);
} else{
echo "No records matching your query were found.";
}
} else{
echo "ERROR: Tidak dapat mengeksekusi $sql. " .
mysqli_error($link);
}

// Close connection
mysqli_close($link);
?>

Berdasarkan contoh di atas, loop sementara digunakan untuk loop melalui semua baris
pada hasil set-nya. Akhirnya nilai masing-masing bidang dapat diakses dari baris, baik
dengan meneruskannya ke indeks bidang atau nama bidang ke variabel $row seperti
$row[‘id’] atau $row[0], $row[‘first_name’] atau $row[1], $row[‘last_name’] atau $row[2],
dan $row[’email’] atau $row[3].

6. Update Data
jika anda melihat pada address bar browser maka setelah nama file akan ada
?id_mahasiswa=2, parameter id_mahasiswa=2 itu adalah data dinamis yang terbawa
ketika users memiliki data yang akan di edit. Sekarang tugas kita sekarang adalah
menampilkan data yang sesuai dengan data yang dipilih oleh users berdasarkan
parameter id_mahasiswa yang dibawa tadi kedalam form edit.

Contoh sintaks di dalam PHP :


<?php
include 'koneksi.php';
$id = $_GET['id'];
$mahasiswa = mysqli_query($koneksi, "select * from mahasiswa where
id_mahasiswa='$id'");
$row = mysqli_fetch_array($mahasiswa);

// membuat data jurusan menjadi dinamis dalam bentuk array


$jurusan = array('TEKNIK INFORMATIKA','TEKNIK ELEKTRO','REKAMEDIS');

// membuat function untuk set aktif radio button


function active_radio_button($value,$input){

// apabilan value dari radio sama dengan yang di input


$result = $value==$input?'checked':'';
return $result;
}
?>
Contoh sintaks di dalam HTML :
<form method="post" action="update.php">

<input type="hidden" value="<?php echo $row['id_mahasiswa'];?>"


name="id_mahasiswa">

<table>

<tr><td>NIM</td><td>
<input type="text" value="<?php echo $row['nim'];?>"
name="nim"></td></tr>

<tr><td>NAMA</td><td>
<input type="text" value="<?php echo $row['nama'];?>"
name="nama"></td></tr>

<tr><td>JENIS KELAMIN</td><td>
<input type="radio" name="jenis_kelamin" value="L" <?php echo
active_radio_button("L", $row['jenis_kelamin'])?>>Laki Laki

</table>
</form>

7. Get last ID
Jika kita melakukan INSERT atau UPDATE pada tabel dengan bidang
AUTO_INCREMENT, kita bisa segera mendapatkan ID dari catatan yang terakhir
dimasukkan/diperbarui.

Dalam tabel "MyGuests", kolom "id" adalah bidang AUTO_INCREMENT:

Contoh Sintaks:

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}

$sql = "INSERT INTO MyGuests (firstname, lastname, email)


VALUES ('John', 'Doe', 'john@example.com')";

if (mysqli_query($conn, $sql)) {
$last_id = mysqli_insert_id($conn);
echo "New record created successfully. Last inserted ID is: " .
$last_id;
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}

8. Insert multiple
Beberapa pernyataan SQL harus dijalankan dengan fungsi mysqli_multi_query()
Contoh berikut menambahkan tiga catatan baru ke tabel "MyGuests":

$sql = "INSERT INTO MyGuests (firstname, lastname, email)


VALUES ('John', 'Doe', 'john@example.com');";
$sql .= "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('Mary', 'Moe', 'mary@example.com');";
$sql .= "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('Julie', 'Dooley', 'julie@example.com')";

if (mysqli_multi_query($conn, $sql)) {
echo "New records created successfully";
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}

9. Prepared
A prepared statement adalah fitur yang digunakan untuk mengeksekusi pernyataan SQL
yang sama (atau serupa) berulang kali dengan efisiensi tinggi.

// prepare and bind


$stmt = $conn->prepare("INSERT INTO MyGuests (firstname, lastname,
email) VALUES (?, ?, ?)");
$stmt->bind_param("sss", $firstname, $lastname, $email);

// set parameters and execute


$firstname = "John";
$lastname = "Doe";
$email = "john@example.com";
$stmt->execute();

$firstname = "Mary";
$lastname = "Moe";
$email = "mary@example.com";
$stmt->execute();

$firstname = "Julie";
$lastname = "Dooley";
$email = "julie@example.com";
$stmt->execute();

echo "New records created successfully";

$stmt->close();
$conn->close();

10. Where
Klausa WHERE digunakan untuk memfilter record.

Klausa WHERE digunakan untuk mengekstrak hanya catatan yang memenuhi kondisi
tertentu.

$sql = "SELECT id, firstname, lastname FROM MyGuests WHERE


lastname='Doe'";
$result = mysqli_query($conn, $sql);

if (mysqli_num_rows($result) > 0) {
// output data of each row
while($row = mysqli_fetch_assoc($result)) {
echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " .
$row["lastname"]. "<br>";
}
} else {
echo "0 results";
}

mysqli_close($conn);

11. Order by
Klausa ORDER BY digunakan untuk mengurutkan kumpulan hasil dalam urutan naik
atau turun.

Klausa ORDER BY mengurutkan catatan dalam urutan menaik secara default. Untuk
mengurutkan catatan dalam urutan menurun, gunakan kata kunci DESC.

$sql = "SELECT id, firstname, lastname FROM MyGuests ORDER BY


lastname";
$result = mysqli_query($conn, $sql);

if (mysqli_num_rows($result) > 0) {
// output data of each row
while($row = mysqli_fetch_assoc($result)) {
echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " .
$row["lastname"]. "<br>";
}
} else {
echo "0 results";
}

12. Limit Data


MySQL menyediakan klausa LIMIT yang digunakan untuk menentukan jumlah record
yang akan dikembalikan.

Klausa LIMIT memudahkan pengkodean hasil multi halaman atau pagination dengan
SQL, dan sangat berguna pada tabel besar. Mengembalikan rekaman dalam jumlah
besar dapat berdampak pada performa.

Asumsikan kita ingin memilih semua catatan dari 1 - 30 (inklusif) dari tabel yang disebut
"Pesanan". Kueri SQL kemudian akan terlihat seperti ini:

$sql = "SELECT * FROM Orders LIMIT 30";

# TUGAS

1. Apabila pada project UTS kemarin terdapat Formulir di web kalian, buatlah database
untuk menampung response dari formulir tersebut dan sambungkan database tadi
dengan formulir pada website project UTS kalian. Dengan ketentuan:
- Pastikan saat submit data dari formulir tersebut maka data akan masuk ke
database.
- Yang di screenshot dan dijadikan pdf yaitu baris form pada file html dari project
UTS, file php, tampilan formulir pada web , dan isi database setelah proses input
data/setelah menekan tombol submit pada formulir.

Jika pada project UTS kalian tidak ada form sama sekali, maka buatlah sebuah formulir
untuk memberi feedback ke website dari project UTS kalian. Dengan Ketentuan:
- Minimal terdiri dari 5 inputan (Contoh: Nama, ID, Kesan, Saran, dll).
- Pembuatan formulir lengkap mulai dari file html, php, dan databasenya.
- Pastikan saat submit data dari formulir tersebut maka data akan masuk ke
database.
- Yang di screenshot dan dijadikan pdf yaitu file html, file php, tampilan dari formulir
yang dibuat, dan isi database setelah proses input data pada formulir.

Anda mungkin juga menyukai