Modul 8 Pemrograman Web
Modul 8 Pemrograman Web
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.
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";
?>
Di bagian kode, telah ditentukan detail database sebagai value dari variabel tersebut. Di
dalam function mysqli_connect() Anda dapat melihat sebuah variabel digunakan.
$nama = $_POST['nama'];
$alamat = $_POST['alamat'];
$pekerjaan = $_POST['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';
// 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.
<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.
Contoh Sintaks:
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
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":
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.
$firstname = "Mary";
$lastname = "Moe";
$email = "[email protected]";
$stmt->execute();
$firstname = "Julie";
$lastname = "Dooley";
$email = "[email protected]";
$stmt->execute();
$stmt->close();
$conn->close();
10. Where
Klausa WHERE digunakan untuk memfilter record.
Klausa WHERE digunakan untuk mengekstrak hanya catatan yang memenuhi kondisi
tertentu.
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.
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";
}
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:
# 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.