Bootstrap
Kali ini kita akan belajar cara membuat CRUD sederhana dengan PHP dan Bootstrap serta
menggunakan mySQL untuk databasenya. Aplikasi CRUD merupakan aplikai yang paling dasar
dan umum untuk programmer web. CRUD sendiri merupakan singkatan dari Create, Read,
Update dan delete. Kita biasanya membuat aplikasi ini untuk mengelolah data di database.
Fungsi-fungsi seperti insert data kedalam tabel, tampilkan data dengan perintah select. Hapus
dengan perintah delete, semua telah tercover pada aplikasi CRUD.
▪ Konfigurasi Database
▪ Membuat file PHP untuk koneksi ke database
▪ Konfigurasi Framework Bootstrap
▪ Membuat file index.php
▪ Membuat file create.php
▪ Membuat file update.php
Konfigurasi Database
Tahap pertama kita buat dulu databasenya. kita gunakan database mysql. Kalian bisa
membuatnya melalui CMD atau dari tools phpMyAdmin
Pada contoh ini saya membuat database dengan nama crud. Namun kalian bisa menyesuailkan
dengan projek aplikasi web yang kalian buat.
alamat varchar(50),
email varchar(30),
no_hp char(13)
);
Saya membuat folder dengan nama crud didalam folder htdocs xampp.
Konfigurasi Bootstrap
Download bootstrap pada halaman resminya di getbootstrap.com
Untuk mempersingkat tutorial yang saya berikan, saya tidak perlu lagi membahas bagaimana
mengkonfigurasikan bootstrap ke projek yang sedang kita buat. Kalian bisa pelajari di modul
CARA MENGGUNAKAN BOOTSTRAP 4.
Untuk Project kali ini pergunakan cara CARA #2 yang terdapat pada modul CARA
MENGGUNAKAN BOOTSTRAP 4.
Dengan cara :
- Copy folder Bootstrap-4.5.0-dist ke folder c:\xampp\
Kita buat file PHP, untuk mengkoneksikan ke database akademik yang sudah kita buat
sebelumnya
<?php
$host="localhost";
$user="root";
$password="";
$db="crud";
$kon = mysqli_connect($host,$user,$password,$db);
if (!$kon){
die("Koneksi gagal:".mysqli_connect_error());
?>
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<div class="container">
<?php
include "koneksi.php";
//Fungsi untuk mencegah inputan karakter yang tidak sesuai
function input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$username=input($_POST["username"]);
$nama=input($_POST["nama"]);
$alamat=input($_POST["alamat"]);
$email=input($_POST["email"]);
$no_hp=input($_POST["no_hp"]);
('$username','$nama','$alamat','$email','$no_hp')";
$hasil=mysqli_query($kon,$sql);
if ($hasil) {
header("Location:index.php");
else {
?>
<h2>Input Data</h2>
<div class="form-group">
<label>Username:</label>
</div>
<div class="form-group">
<label>Nama:</label>
required/>
</div>
<div class="form-group">
<label>Alamat:</label>
Alamat" required></textarea>
</div>
<div class="form-group">
<label>Email:</label>
Email" required/>
</div>
<div class="form-group">
<label>No HP:</label>
HP" required/>
</div>
</form>
</div>
</body>
</html>
Penjelasan sintak:
Mungkin saya akan sedikit jelaskan beberapa bagian sintak yang menurut saya penting untuk
dijelaskan.
yang pertama untuk menggunakan bootstrap saya meload data bootstrap yang telah saya
download dan simpan dialam folder htdoc/crud. untuk menggunakannya saya load css
bootstrapnya di bagian <head>. sintaknya adalah
Kemudian saya membuat koneksi database dengan cara include file koneksi yang kita buat
terpisah dengan file projek kita. disini kita menggunakan perintah include
include "koneksi.php";
Selanjutnya saya membuat fungsi untuk mencegah karakter-karakter yang tidak sesuai,
misalnya pengguna memasukan kode-kode atau tag html dan javascript atau biasanya dikenal
dengan istilah Cross Site Scripting (XSS). Nah untuk mencegah inputan-inputan yang tersebut
kita gunakan beberapa fungsi PHP misalnya htmlspecialchars(), fungsi trim() dan stripslashes().
function input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
Kemudian kita masuk kebagian selanjutnya yaitu terdapat kondisi untuk mengecek apakah ada
kiriman form dengan method post pada form tersebut.
if ($_SERVER["REQUEST_METHOD"] == "POST")
Jika kondisi bernilai benar (true) maka sistem akan mengambil setiap nilai (value) dari isian form
tersebut. yang mana ada berapa inputan seperti username, nama, alamat, email dan no hp yang
masing-masing disimpan menggunakan variabel dan menggunakan fungsi input() yang telah kita
buat diatas.
$username=input($_POST["username"]);
$nama=input($_POST["nama"]);
$alamat=input($_POST["alamat"]);
$email=input($_POST["email"]);
$no_hp=input($_POST["no_hp"]);
Nantinya sistem akan menjalankan perintah sql untuk input data berdasarkan nilai dari variabel
masing-masing
('$username','$nama','$alamat','$email','$no_hp')";
$hasil=mysqli_query($kon,$sql);
Terakhir kondisi untuk mengecek apakah query tersebut berhasil eksekusi, jika ya maka
halaman akan diarahkan ke file index.php yang akan kita buat selanjutnya dan apabila gagal
maka menampilkan pemberitahuan gagal input data
if ($hasil) {
header("Location:index.php");
else {
}
Membuat file untuk menampilkan data anggota (Read)
Pada tahap ini kita membuat sebuah file PHP dengan nama index.php didalam file ini nantinya
kita akan menampilkan data anggota yang diambil dari tabel anggota pada database crud yang
telah kita buat sebelumnya.
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<div class="container">
<br>
<?php
include "koneksi.php";
//Cek apakah ada nilai dari method GET dengan nama id_anggota
if (isset($_GET['id_anggota'])) {
$id_anggota=htmlspecialchars($_GET["id_anggota"]);
$hasil=mysqli_query($kon,$sql);
if ($hasil) {
header("Location:index.php");
else {
?>
<table class="table table-bordered table-hover">
<br>
<thead>
<tr>
<th>No</th>
<th>Username</th>
<th>Nama</th>
<th>Alamat</th>
<th>Email</th>
<th>No HP</th>
<th colspan='2'>Aksi</th>
</tr>
</thead>
<?php
include "koneksi.php";
$hasil=mysqli_query($kon,$sql);
$no=0;
$no++;
?>
<tbody>
<tr>
<td>
</td>
</tr>
</tbody>
<?php
?>
</table>
</div>
</body>
</html>
Penjelasan Sintak:
Pada file index.php file ini akan menjadi file utama yang akan diload saat crud dipanggil lewat
localhost. Disini kita menampilkan datanya menggunakan tabel dengan bootstrap.
Untuk menampilkan data anggota dari tabel anggota didatabase, kita gunakan perintah sql
berikut, dimana perintah ini akan menampilkan semua data anggota pada tabel anggota dan di
urutkan berdasarkan id_anggota secara descending (dari besar ke kecil).
Selanjutnya untuk menampilkan data anggota sintaknya kita gunakan perulangan while dan
menggunakan fungsi mysqli_fetch_array()
while ($data = mysqli_fetch_array($hasil))
Nantinya data hasil query akan disimpan dalam bentuk array dan ditampilkan menggunakan
perulangan. untuk menampilkannya kita cukup menyebut nama field pada tabel anggota yang
telah tersimpan pada array $data dengan jenis assosiatif.
Selanjutnya kita membuat button untuk aksi update dan delete, nantinya ketika pengguna
mengklik tombol update maka akan di arahkan ke halaman update berdasarkan id_anggota yang
ingin di update.
Begitu juga dengan hapus, ketika tombol delete diklik maka akan mengerjakan sintak pada
bagian ini
<?php
include "koneksi.php";
if (isset($_GET['id_anggota'])) {
$id_anggota=htmlspecialchars($_GET["id_anggota"]);
if ($hasil) {
header("Location:index.php");
else {
?>
Disini saya memang sengaja membuat fungsi hapus data digabung pada file index.php agar
tidak terlalu banyak file yang kita buat. Kalian bisa membuat fungsi delete dengan file terpisah,
silahkan saja kalian explore. tapi pada contoh disini saya gabubungkan dengan file index.php.
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<div class="container">
<?php
include "koneksi.php";
//Fungsi untuk mencegah inputan karakter yang tidak sesuai
function input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
//Cek apakah ada nilai yang dikirim menggunakan methos GET dengan nama id_anggota
if (isset($_GET['id_anggota'])) {
$id_anggota=input($_GET["id_anggota"]);
$hasil=mysqli_query($kon,$sql);
$data = mysqli_fetch_assoc($hasil);
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$id_anggota=htmlspecialchars($_POST["id_anggota"]);
$username=input($_POST["username"]);
$nama=input($_POST["nama"]);
$alamat=input($_POST["alamat"]);
$email=input($_POST["email"]);
$no_hp=input($_POST["no_hp"]);
username='$username',
nama='$nama',
alamat='$alamat',
email='$email',
no_hp='$no_hp'
where id_anggota=$id_anggota";
$hasil=mysqli_query($kon,$sql);
if ($hasil) {
header("Location:index.php");
else {
?>
<h2>Update Data</h2>
<div class="form-group">
<label>Username:</label>
</div>
<div class="form-group">
<label>Nama:</label>
</div>
<div class="form-group">
<label>Alamat:</label>
</div>
<div class="form-group">
<label>Email:</label>
</div>
<div class="form-group">
<label>No HP:</label>
</div>
/>
</form>
</div>
</body>
</html>
Beberapa fungsi sama dengan fungsi yang sudah saya jelaskan diatas.
Untuk menampilkan data anggota yang ingin di update maka akan diambil nilai id_anggota yang
dikirim dari file index.php saat pengguna mengklik tombol update.
if (isset($_GET['id_anggota'])) {
$id_anggota=input($_GET["id_anggota"]);
$hasil=mysqli_query($kon,$sql);
$data = mysqli_fetch_assoc($hasil);
Nantinya data anggota akan ditampilkan pada masing-masing inputan berdasarkan fieldnya
masing-masing, untuk memasukan nilai pada form inputan kita gunakan atribut value. seperti
contoh pada sintak dibawah ini kita memasukan nilai username dari query yang dijalankan
diatas,
Selanjutnya ketika pengguna telah memperbaharui data anggota melalui form update lalu
mengklik tombol update, maka query update data pda tabel anggota akan dijalankan.
username='$username',
nama='$nama',
alamat='$alamat',
email='$email',
no_hp='$no_hp'
where id_anggota=$id_anggota";
Apabila berhasil maka halaman akan diarahkan kembali ke file index.php. Namun jika gagal
akan menampilkan pemeritahuan gagal.
if ($hasil) {
header("Location:index.php");
else {
Uji Coba
Tahap terakhir kita uji coba, dengan menginput data terlebih dahulu.
http://localhost/crud/create.php
Setelah semua from inputan di isi dan tombol submit diklik, maka akan tampil data yang kita
inputkan tersebut.
Selanjutnya kita akan coba untuk merubah data tersebut dengan cara klik tombol update pada
kolom aksi.
Kita coba merubah username dan nama dari yang sebelumnya usernamenya adalah dimas95
diganti menjadi dimas12 dan nama sebelumnya Setiawan Dimas diganti menjadi Setiawan
Dimas Arimurti. dan kemudan di klik tombol submit maka akan diarahkan kembali ke file
index.php dan kondisi kolom username dan nama telah berubah.
Terakhir untuk menghapus data tersebut cukup dengan menekan tombol delete maka data akan
langsung terhapus dari database.