Cara Membuat CRUD Lengkap Menggunakan PHP dan MySQL
Membuat website tidak bisa lepas dari proses Create, Read, Update, and Delete atau CRUD. Cara membuat CRUD menjadi bagian integral dari keseluruhan pengembangan website.
Salah satu teknik membuat CRUD adalah dengan memakai PHP dan MYSQL. Kedua bahasa pemrograman ini sama baiknya untuk menciptakan CRUD yang efektif untuk website Anda nantinya.
Apa itu CRUD?
Sebagaimana disarankan dari singkatannya, CRUD berkaitan erat dengan pengambilan atau transaksi data dari atau ke database. Bagi perusahaan, proses ini menjadi sangat penting jika berhubungan dengan sistem informasi perusahaan. Data transaksi lah yang menjadi kuncinya sebab data tersebut yang biasanya diproses.
PHP developer berpendapat operasi CRUD umumnya menjadi patokan sebelum mengolah data memakai PHP dan database MySQL. Di sini, CRUD serupa jalur penghubung bahasa pemrograman PHP dan MySQL.
Di bawah ini merupakan operasi CRUD dan contohnya:
Create (C )
Cara membuat CRUD diawali dengan Create yang berarti membuat data baru. Tahapan ini dimulai dengan mendaftar pada sebuah halaman website. Data Anda akan disimpan dalam database memakai operasi Create.
Read ( R )
Pada tahap ini, data akan diambil dari database. Umumnya, tahapan ini terjadi saat Anda ingin masuk ke laman website tertentu. Usai mengeklik “Login”, website akan menjalankan proses Read untuk memastikan akun yang Anda gunakan memang benar milik Anda. Sebagai contoh, proses Read berjalan saat Anda mengakses sebuah laman website. Untuk mengeceknya, cukup lihat laman website di browser.
Update ( U )
Level ini menandakan proses pengubahan data yang berada di dalam database. Sebagai ilustrasi, level ini terjadi saat Anda mengubah profil di dalam akun media sosial. Ketika mengeklik “Ubah”, website akan mengirimkan proses Update ke dalam database. Kemudian, database mengubah data lama menjadi data baru untuk kemudian ditaruh pada laman profil Anda.
Delete ( D )
Sesuai namanya, Delete berarti menghapus data di dalam database. Mirip dengan proses Update, tetapi proses Delete meniadakan data di dalam database.
Cara Membuat CRUD dengan PHP dan MySQL
PHP dan MySQL secara bersamaan digunakan untuk merealisasikan cara membuat CRUD. Bahasa pemrograman PHP berfungsi untuk menjalankan operasi CRUD sedangkan MySQL untuk menyimpan database dari website.
Untuk mengakses MySQL, Anda bisa menggunakan PHP, Phyton, JavaScript dan lainnya. Untuk PHP, server yang bisa dipakai adalah PostgreSQL, MongoDB, dan semacamnya.
Berikut adalah contoh cara membuat CRUD memakai PHP dan MySQL untuk sebuah aplikasi sederhana, yakni melihat dan menambahkan data pegawai.
1. Membuat Table Database
Pertama-tama, buatlah data ke masukkan ke dalam database di MySQL. Data yang bisa dimasukkan berupa tabel berisikan nama, alamat, gaji, nomor handphone, status, hobi, dan lain sebagainya. Kemudian, ketikkan “show tables” setelah database telah berhasil dibuat.
2. Menyusun File Config
Berikutnya, buatlah sebuah file berisikan script PHP khusus untuk menghubungkan PHP dengan MySQL. Sebut saja nama sesuai kemauan. Contohnya, beri nama file config.php. Lalu, masukkan baris kode di bawah ini. File ini akan dipadukan dengan yang lainnya memakai fungsi PHP require _once () dan berlaku juga untuk file lainnya. Dan berikut tampilan kodenya:
<?php
/* Database credentials. Assuming you are running MySQL server with default setting (user ‘root’ with no password) */
define(‘DB_SERVER’, ‘localhost’);
define(‘DB_USERNAME’, ‘root’);
define(‘DB_PASSWORD’, ‘password’);
define(‘DB_NAME’, ‘niagahoster’);
/* Attempt to connect to MySQL database */
$link = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_NAME);
// Check connection
if($link === false){
die(“ERROR: Could not connect. ” . mysqli_connect_error());
}
?>
3. Menyusun Landing Page
Landing page berguna untuk menampilkan tabel database pegawai sebagaimana yang dilakukan pada tahap sebelumnya. Landing page mengandung ikon dari setiap record tabel database pegawai. Ikon tersebut membantu untuk menjalankan perintah update, delete, dan mengecek rincian informasi atau data.
Sebagai tambahan, imbuhkan tombol create untuk menambahkan data pegawai. Fungsinya, menambahkan record baru pada tabel pegawai dalam database. Berikut barisan kode untuk dimasukkan ke dalam file index.php.
Kami juga akan menambahkan tombol create untuk menambahkan data employees. Tombol ini berguna untuk menambahkan record baru pada tabel employees di dalam database.
Untuk membuatnya, silakan masukkan baris kode di bawah ini ke dalam file index.php.
<!DOCTYPE html>
<html lang=”en”>
<head>
<meta charset=”UTF-8″>
<title>Dashboard</title>
<link rel=”stylesheet” href=”https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.css”>
<script src=”https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js”></script>
<script src=”https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.js”></script>
<style type=”text/css”>
.wrapper{
width: 650px;
margin: 0 auto;
}
.page-header h2{
margin-top: 0;
}
table tr td:last-child a{
margin-right: 15px;
}
</style>
<script type=”text/javascript”>
$(document).ready(function(){
$(‘[data-toggle=”tooltip”]’).tooltip();
});
</script>
</head>
<body>
<div class=”wrapper”>
<div class=”container-fluid”>
<div class=”row”>
<div class=”col-md-12″>
<div class=”page-header clearfix”>
<h2 class=”pull-left”>Informasi Pegawai</h2>
<a href=”create.php” class=”btn btn-success pull-right”>Tambah Baru</a>
</div>
<?php
// Include config file
require_once “config.php”;
// Attempt select query execution
$sql = “SELECT * FROM employees”;
if($result = mysqli_query($link, $sql)){
if(mysqli_num_rows($result) > 0){
echo “<table class=’table table-bordered table-striped’>”;
echo “<thead>”;
echo “<tr>”;
echo “<th>#</th>”;
echo “<th>Nama</th>”;
echo “<th>Alamat</th>”;
echo “<th>Salary</th>”;
echo “<th>Pengaturan</th>”;
echo “</tr>”;
echo “</thead>”;
echo “<tbody>”;
while($row = mysqli_fetch_array($result)){
echo “<tr>”;
echo “<td>” . $row[‘id’] . “</td>”;
echo “<td>” . $row[‘name’] . “</td>”;
echo “<td>” . $row[‘address’] . “</td>”;
echo “<td>” . $row[‘salary’] . “</td>”;
echo “<td>”;
echo “<a href=’read.php?id=”. $row[‘id’] .”‘ title=’View Record’ data-toggle=’tooltip’><span class=’glyphicon glyphicon-eye-open’></span></a>”;
echo “<a href=’update.php?id=”. $row[‘id’] .”‘ title=’Update Record’ data-toggle=’tooltip’><span class=’glyphicon glyphicon-pencil’></span></a>”;
echo “<a href=’delete.php?id=”. $row[‘id’] .”‘ title=’Delete Record’ data-toggle=’tooltip’><span class=’glyphicon glyphicon-trash’></span></a>”;
echo “</td>”;
echo “</tr>”;
}
echo “</tbody>”;
echo “</table>”;
// Free result set
mysqli_free_result($result);
} else{
echo “<p class=’lead’><em>No records were found.</em></p>”;
}
} else{
echo “ERROR: Could not able to execute $sql. ” . mysqli_error($link);
}
// Close connection
mysqli_close($link);
?>
</div>
</div>
</div>
</div>
</body>
</html>
Gunakan landing page untuk menampung data beberapa data pegawai. Dan berikut tampilan tabel sesuai kode di atas:
4. Menyusun Halaman Create
Create adalah proses menaruh informasi atau data ke dalam database. Caranya, buat file dengan nama “create.php”. Lalu masukkan kode sebagaimana di bawah ini:
<?php
// Include config file
require_once “config.php”;
// Define variables and initialize with empty values
$name = $address = $salary = “”;
$name_err = $address_err = $salary_err = “”;
// Processing form data when form is submitted
if($_SERVER[“REQUEST_METHOD”] == “POST”){
// Validate name
$input_name = trim($_POST[“name”]);
if(empty($input_name)){
$name_err = “Please enter a name.”;
} elseif(!filter_var($input_name, FILTER_VALIDATE_REGEXP, array(“options”=>array(“regexp”=>”/^[a-zA-Z\s]+$/”)))){
$name_err = “Please enter a valid name.”;
} else{
$name = $input_name;
}
// Validate address
$input_address = trim($_POST[“address”]);
if(empty($input_address)){
$address_err = “Please enter an address.”;
} else{
$address = $input_address;
}
// Validate salary
$input_salary = trim($_POST[“salary”]);
if(empty($input_salary)){
$salary_err = “Please enter the salary amount.”;
} elseif(!ctype_digit($input_salary)){
$salary_err = “Please enter a positive integer value.”;
} else{
$salary = $input_salary;
}
// Check input errors before inserting in database
if(empty($name_err) && empty($address_err) && empty($salary_err)){
// Prepare an insert statement
$sql = “INSERT INTO employees (name, address, salary) VALUES (?, ?, ?)”;
if($stmt = mysqli_prepare($link, $sql)){
// Bind variables to the prepared statement as parameters
mysqli_stmt_bind_param($stmt, “sss”, $param_name, $param_address, $param_salary);
// Set parameters
$param_name = $name;
$param_address = $address;
$param_salary = $salary;
// Attempt to execute the prepared statement
if(mysqli_stmt_execute($stmt)){
// Records created successfully. Redirect to landing page
header(“location: index.php”);
exit();
} else{
echo “Something went wrong. Please try again later.”;
}
}
// Close statement
mysqli_stmt_close($stmt);
}
// Close connection
mysqli_close($link);
}
?>
<!DOCTYPE html>
<html lang=”en”>
<head>
<meta charset=”UTF-8″>
<title>Create Record</title>
<link rel=”stylesheet” href=”https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.css”>
<style type=”text/css”>
.wrapper{
width: 500px;
margin: 0 auto;
}
</style>
</head>
<body>
<div class=”wrapper”>
<div class=”container-fluid”>
<div class=”row”>
<div class=”col-md-12″>
<div class=”page-header”>
<h2>Tambah Record</h2>
</div>
<p>Silahkan isi form di bawah ini kemudian submit untuk menambahkan data pegawai ke dalam database.</p>
<form action=”<?php echo htmlspecialchars($_SERVER[“PHP_SELF”]); ?>” method=”post”>
<div class=”form-group <?php echo (!empty($name_err)) ? ‘has-error’ : ”; ?>”>
<label>Nama</label>
<input type=”text” name=”name” class=”form-control” value=”<?php echo $name; ?>”>
<span class=”help-block”><?php echo $name_err;?></span>
</div>
<div class=”form-group <?php echo (!empty($address_err)) ? ‘has-error’ : ”; ?>”>
<label>Alamat</label>
<textarea name=”address” class=”form-control”><?php echo $address; ?></textarea>
<span class=”help-block”><?php echo $address_err;?></span>
</div>
<div class=”form-group <?php echo (!empty($salary_err)) ? ‘has-error’ : ”; ?>”>
<label>Salary</label>
<input type=”text” name=”salary” class=”form-control” value=”<?php echo $salary; ?>”>
<span class=”help-block”><?php echo $salary_err;?></span>
</div>
<input type=”submit” class=”btn btn-primary” value=”Submit”>
<a href=”index.php” class=”btn btn-default”>Cancel</a>
</form>
</div>
</div>
</div>
</div>
</body>
</html>
Kode di atas akan menyajikan formulir untuk menambahkan data pegawai ke dalam database. Sebelum data disimpan, barisan kode di atas akan memverifikasi data yang dimasukkan terlebih dahulu.
5. Menyusun Bagian Read
Halaman Read merujuk pada file dimana ia bertugas mengambil atau membaca data dari database dan menunjukkannya dalam bentuk tabel. Caranya, buat file dengan nama “read.php” lalu taruh barisan kode berikut ini di dalamnya. Kode di bawah ini mengandung rincian informasi mengenai setiap pegawai yang akan tersaji jika diklik ikon read.
<?php
// Check existence of id parameter before processing further
if(isset($_GET[“id”]) && !empty(trim($_GET[“id”]))){
// Include config file
require_once “config.php”;
// Prepare a select statement
$sql = “SELECT * FROM employees WHERE id = ?”;
if($stmt = mysqli_prepare($link, $sql)){
// Bind variables to the prepared statement as parameters
mysqli_stmt_bind_param($stmt, “i”, $param_id);
// Set parameters
$param_id = trim($_GET[“id”]);
// Attempt to execute the prepared statement
if(mysqli_stmt_execute($stmt)){
$result = mysqli_stmt_get_result($stmt);
if(mysqli_num_rows($result) == 1){
/* Fetch result row as an associative array. Since the result set
contains only one row, we don’t need to use while loop */
$row = mysqli_fetch_array($result, MYSQLI_ASSOC);
// Retrieve individual field value
$name = $row[“name”];
$address = $row[“address”];
$salary = $row[“salary”];
} else{
// URL doesn’t contain valid id parameter. Redirect to error page
header(“location: error.php”);
exit();
}
} else{
echo “Oops! Something went wrong. Please try again later.”;
}
}
// Close statement
mysqli_stmt_close($stmt);
// Close connection
mysqli_close($link);
} else{
// URL doesn’t contain id parameter. Redirect to error page
header(“location: error.php”);
exit();
}
?>
<!DOCTYPE html>
<html lang=”en”>
<head>
<meta charset=”UTF-8″>
<title>View Record</title>
<link rel=”stylesheet” href=”https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.css”>
<style type=”text/css”>
.wrapper{
width: 500px;
margin: 0 auto;
}
</style>
</head>
<body>
<div class=”wrapper”>
<div class=”container-fluid”>
<div class=”row”>
<div class=”col-md-12″>
<div class=”page-header”>
<h1>View Record</h1>
</div>
<div class=”form-group”>
<label>Name</label>
<p class=”form-control-static”><?php echo $row[“name”]; ?></p>
</div>
<div class=”form-group”>
<label>Address</label>
<p class=”form-control-static”><?php echo $row[“address”]; ?></p>
</div>
<div class=”form-group”>
<label>Salary</label>
<p class=”form-control-static”><?php echo $row[“salary”]; ?></p>
</div>
<p><a href=”index.php” class=”btn btn-primary”>Back</a></p>
</div>
</div>
</div>
</div>
</body>
</html>
6. Menyusun Bagian Update
Cara membuat CRUD berikutnya adalah menyusun laman Update yang berfungsi mengubah data yang sudah disimpan. Caranya, buat file “update.php” lalu taruh baris kode berikut di dalamnya. Barisan kode ini bertujuan mengarahkan ke laman lain yang berisikan formulir untuk mengganti data yang sebelumnya terdapat di dalam database.
<?php
// Include config file
require_once “config.php”;
// Define variables and initialize with empty values
$name = $address = $salary = “”;
$name_err = $address_err = $salary_err = “”;
// Processing form data when form is submitted
if(isset($_POST[“id”]) && !empty($_POST[“id”])){
// Get hidden input value
$id = $_POST[“id”];
// Validate name
$input_name = trim($_POST[“name”]);
if(empty($input_name)){
$name_err = “Please enter a name.”;
} elseif(!filter_var($input_name, FILTER_VALIDATE_REGEXP, array(“options”=>array(“regexp”=>”/^[a-zA-Z\s]+$/”)))){
$name_err = “Please enter a valid name.”;
} else{
$name = $input_name;
}
// Validate address address
$input_address = trim($_POST[“address”]);
if(empty($input_address)){
$address_err = “Please enter an address.”;
} else{
$address = $input_address;
}
// Validate salary
$input_salary = trim($_POST[“salary”]);
if(empty($input_salary)){
$salary_err = “Please enter the salary amount.”;
} elseif(!ctype_digit($input_salary)){
$salary_err = “Please enter a positive integer value.”;
} else{
$salary = $input_salary;
}
// Check input errors before inserting in database
if(empty($name_err) && empty($address_err) && empty($salary_err)){
// Prepare an update statement
$sql = “UPDATE employees SET name=?, address=?, salary=? WHERE id=?”;
if($stmt = mysqli_prepare($link, $sql)){
// Bind variables to the prepared statement as parameters
mysqli_stmt_bind_param($stmt, “sssi”, $param_name, $param_address, $param_salary, $param_id);
// Set parameters
$param_name = $name;
$param_address = $address;
$param_salary = $salary;
$param_id = $id;
// Attempt to execute the prepared statement
if(mysqli_stmt_execute($stmt)){
// Records updated successfully. Redirect to landing page
header(“location: index.php”);
exit();
} else{
echo “Something went wrong. Please try again later.”;
}
}
// Close statement
mysqli_stmt_close($stmt);
}
// Close connection
mysqli_close($link);
} else{
// Check existence of id parameter before processing further
if(isset($_GET[“id”]) && !empty(trim($_GET[“id”]))){
// Get URL parameter
$id = trim($_GET[“id”]);
// Prepare a select statement
$sql = “SELECT * FROM employees WHERE id = ?”;
if($stmt = mysqli_prepare($link, $sql)){
// Bind variables to the prepared statement as parameters
mysqli_stmt_bind_param($stmt, “i”, $param_id);
// Set parameters
$param_id = $id;
// Attempt to execute the prepared statement
if(mysqli_stmt_execute($stmt)){
$result = mysqli_stmt_get_result($stmt);
if(mysqli_num_rows($result) == 1){
/* Fetch result row as an associative array. Since the result set
contains only one row, we don’t need to use while loop */
$row = mysqli_fetch_array($result, MYSQLI_ASSOC);
// Retrieve individual field value
$name = $row[“name”];
$address = $row[“address”];
$salary = $row[“salary”];
} else{
// URL doesn’t contain valid id. Redirect to error page
header(“location: error.php”);
exit();
}
} else{
echo “Oops! Something went wrong. Please try again later.”;
}
}
// Close statement
mysqli_stmt_close($stmt);
// Close connection
mysqli_close($link);
} else{
// URL doesn’t contain id parameter. Redirect to error page
header(“location: error.php”);
exit();
}
}
?>
<!DOCTYPE html>
<html lang=”en”>
<head>
<meta charset=”UTF-8″>
<title>Update Record</title>
<link rel=”stylesheet” href=”https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.css”>
<style type=”text/css”>
.wrapper{
width: 500px;
margin: 0 auto;
}
</style>
</head>
<body>
<div class=”wrapper”>
<div class=”container-fluid”>
<div class=”row”>
<div class=”col-md-12″>
<div class=”page-header”>
<h2>Update Record</h2>
</div>
<p>Please edit the input values and submit to update the record.</p>
<form action=”<?php echo htmlspecialchars(basename($_SERVER[‘REQUEST_URI’])); ?>” method=”post”>
<div class=”form-group <?php echo (!empty($name_err)) ? ‘has-error’ : ”; ?>”>
<label>Name</label>
<input type=”text” name=”name” class=”form-control” value=”<?php echo $name; ?>”>
<span class=”help-block”><?php echo $name_err;?></span>
</div>
<div class=”form-group <?php echo (!empty($address_err)) ? ‘has-error’ : ”; ?>”>
<label>Address</label>
<textarea name=”address” class=”form-control”><?php echo $address; ?></textarea>
<span class=”help-block”><?php echo $address_err;?></span>
</div>
<div class=”form-group <?php echo (!empty($salary_err)) ? ‘has-error’ : ”; ?>”>
<label>Salary</label>
<input type=”text” name=”salary” class=”form-control” value=”<?php echo $salary; ?>”>
<span class=”help-block”><?php echo $salary_err;?></span>
</div>
<input type=”hidden” name=”id” value=”<?php echo $id; ?>”/>
<input type=”submit” class=”btn btn-primary” value=”Submit”>
<a href=”index.php” class=”btn btn-default”>Cancel</a>
</form>
</div>
</div>
</div>
</div>
</body>
</html>
7. Menyusun Bagian Delete
Terkadang, data dalam database pegawai harus kita hapus karena ada perubahan. Untuk melakukannya, berikut caranya. Pertama, buat file dengan nama “delete.php” lalu taruh baris kode berikut ke dalamnya. Jika mengeklik ikon delete di dalam tabel, barisan kode ini akan menghapus datanya.
<?php
// Process delete operation after confirmation
if(isset($_POST[“id”]) && !empty($_POST[“id”])){
// Include config file
require_once “config.php”;
// Prepare a delete statement
$sql = “DELETE FROM employees WHERE id = ?”;
if($stmt = mysqli_prepare($link, $sql)){
// Bind variables to the prepared statement as parameters
mysqli_stmt_bind_param($stmt, “i”, $param_id);
// Set parameters
$param_id = trim($_POST[“id”]);
// Attempt to execute the prepared statement
if(mysqli_stmt_execute($stmt)){
// Records deleted successfully. Redirect to landing page
header(“location: index.php”);
exit();
} else{
echo “Oops! Something went wrong. Please try again later.”;
}
}
// Close statement
mysqli_stmt_close($stmt);
// Close connection
mysqli_close($link);
} else{
// Check existence of id parameter
if(empty(trim($_GET[“id”]))){
// URL doesn’t contain id parameter. Redirect to error page
header(“location: error.php”);
exit();
}
}
?>
<!DOCTYPE html>
<html lang=”en”>
<head>
<meta charset=”UTF-8″>
<title>View Record</title>
<link rel=”stylesheet” href=”https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.css”>
<style type=”text/css”>
.wrapper{
width: 500px;
margin: 0 auto;
}
</style>
</head>
<body>
<div class=”wrapper”>
<div class=”container-fluid”>
<div class=”row”>
<div class=”col-md-12″>
<div class=”page-header”>
<h1>Delete Record</h1>
</div>
<form action=”<?php echo htmlspecialchars($_SERVER[“PHP_SELF”]); ?>” method=”post”>
<div class=”alert alert-danger fade in”>
<input type=”hidden” name=”id” value=”<?php echo trim($_GET[“id”]); ?>”/>
<p>Are you sure you want to delete this record?</p><br>
<p>
<input type=”submit” value=”Yes” class=”btn btn-danger”>
<a href=”index.php” class=”btn btn-default”>No</a>
</p>
</div>
</form>
</div>
</div>
</div>
</div>
</body>
</html>
Mudah-mudahan cara membuat CRUD di atas mempermudah pembelajaran Anda.
Baca juga: Ketahui Apa itu CRUD dan Kegunannya Dalam Pemrograman
TOG Indonesia Adalah Salah Satu Perusahaan IT Solution Terbaik di Indonesia
TOGI (Triple One Global Indonesia) merupakan perusahaan IT Solution bagi setiap bisnis yang ingin berkembang dengan pesat. Dalam menghadapi tantangan global di era industri 4.0, TOGI siap memberikan solusi layanan IT yang dibutuhkan oleh semua perusahaan supaya dapat bersaing ketat dalam ekonomi digital yang sangat diperlukan untuk proses bisnis kedepannya. Kami memberikan layanan IT solution terpadu kepada Anda dengan tenaga-tenaga profesional IT yang berpengalaman.
Bagi Anda para Job Seeker, kami siap membantu Anda dalam menemukan pekerjaan impian sebagai seorang Programmer. Sedangkan bagi Anda bisnis owner, kami memiliki talenta-talenta terbaik di bidang IT, sesuai dengan kebutuhan bisnis Anda seperti : IT Consulting, IT Developer, Software Tester, Project Manager, Business Analyst, System.
Klik di bawah ini untuk informasi tentang layanan kami selengkapnya