Membuat CRUD
(Create, Read, Update, Delete) Menggunakan PDO di PHP
Assalamualaikum
Wr. Wb.
Kali ini saya akan memposting tentang pemograman WEB CRUD ya mungkin tidak pas dengan judul bloger saya tapi untuk menambah wawasan saja ,, mari pelajari ini
Apa sih itu PDO ?
PDO (PHP
Data Objects) adalah interface universal yang disediakan PHP untuk “berkomunikasi”
dengan database server. Maksud istilah “interface universal” disini
adalah bahwa PDO tidak terikat dengan aplikasi database tertentu. Apabila saat
ini kita menggunakan database MySQL dan dikemudian hari ingin bermigrasi
menggunakan PostgreSQL, kita
hanya tinggal mengganti cara pemanggilan awal PDO dan seluruh kode program yang
ada bisa langsung digunakan untuk database baru.
Dari
pengertian di atas sekarang saya akan memberikan langkah-langkah untuk membuat
CRUD menggunakan PDO di PHP :
1. buatlah
database dengan nama crud_oop pada XAMPP
Control Panel, agar kita bisa mengimport database yang sudah jadi.
berikut cara
mengimport databasenya
a. langkah
pertama yaitu bukalah browser untuk mengisi link localhost/phpmyadmin, kemudian
klik
pada form basisdata untuk membuat database baru.
pada form basisdata untuk membuat database baru.
b. kemudian kita buat nama database dengan nama crud_oop, karena kita sebelumnya sudah membuat database tersebut, tinggal kita nanti importkan saja.
c. lalu setelah nama database sudah di buat, kita klik dulu nama database yang barusan kita buat untuk mengimpornya.
klik browse untuk memilih file yang akan kita proses.
ketika file sudah di pilih kemudian klik open.
kemudian tekan tombol Go.
d. setelah berhasil coba klik tabel mahasiswa maka akan muncul tampilan seperti dibawah ini
crud_oop.sql
-- phpMyAdmin SQL Dump
-- version 4.5.1
-- http://www.phpmyadmin.net
--
-- Host: 127.0.0.1
-- Generation Time: Oct 18, 2016 at 08:38 AM
-- Server version: 10.1.10-MariaDB
-- PHP Version: 5.6.19
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
--
-- Database: `crud_oop`
--
-- --------------------------------------------------------
--
-- Table structure for table `mahasiswa`
--
DROP TABLE IF EXISTS `mahasiswa`;
CREATE TABLE `mahasiswa` (
`id` int(11) NOT NULL,
`nim` varchar(20) NOT NULL,
`nama` varchar(30) NOT NULL,
`tempat_lahir` varchar(30) NOT NULL,
`tanggal_lahir` date NOT NULL,
`jenis_kelamin` enum('Laki-laki','Perempuan') NOT NULL,
`agama` varchar(20) NOT NULL,
`alamat` varchar(100) NOT NULL,
`no_telepon` varchar(12) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--
-- Dumping data for table `mahasiswa`
--
INSERT INTO `mahasiswa` (`id`, `nim`, `nama`, `tempat_lahir`, `tanggal_lahir`, `jenis_kelamin`, `agama`, `alamat`, `no_telepon`) VALUES
(1, '16001', 'Danang Kusuma', 'Bandar Lampung', '1990-02-01', 'Laki-laki', 'Islam', 'Jalan Gatot Subroto No. 10, Bandar Lampung', '085758857775'),
(2, '16002', 'Isyana Sarasvati', 'Jakarta', '1993-05-02', 'Perempuan', 'Islam', 'Jalan Pagar Alam No. 15, Kedaton, Bandar Lampung', '085789892909'),
(3, '16003', 'Indra Styawantoro', 'Purbolinggo', '1991-05-15', 'Laki-laki', 'Islam', 'Perum Griya Gedung Meneng Blok C2 No. 2, Rajabasa, Bandar Lampung', '085669919769'),
(4, '16004', 'Maudy Ayunda', 'Jakarta', '1994-12-19', 'Perempuan', 'Islam', 'Jalan Radin Intan No. 77, Tanjung Karang, Bandar Lampung', '089977955772'),
(5, '16005', 'Valentino Rossi', 'Metro', '1979-03-16', 'Laki-laki', 'Islam', 'Jalan Zaenal Abidin Pagaralam No. 1, Bandar Lampung', '081922919212'),
(6, '16006', 'Raisa Andriana', 'Jakarta', '1990-06-06', 'Perempuan', 'Islam', 'Jalan Yos Sudarso No. 135, Bandar Lampung', '081388955767'),
(7, '16007', 'Cristiano Ronaldo', 'Teluk Betung', '1986-02-25', 'Laki-laki', 'Islam', 'Jalan Teuku Umar No. 52, Kedaton Bandar Lampung', '081269962201'),
(8, '16008', 'M Muzaqi', '', '0000-00-00', '', '', '', ''),
(9, '099023022', 'Nia Ramadhani', 'Jakarta', '1996-02-01', 'Perempuan', 'Islam', 'Cengkareng Barat', '12345678'),
(10, '109209381', 'Frienly Faisal', '', '0000-00-00', 'Laki-laki', '', '', '');
--
-- Indexes for dumped tables
--
--
-- Indexes for table `mahasiswa`
--
ALTER TABLE `mahasiswa`
ADD PRIMARY KEY (`id`);
--
-- AUTO_INCREMENT for dumped tables
--
--
-- AUTO_INCREMENT for table `mahasiswa`
--
ALTER TABLE `mahasiswa`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=11;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
2. setelah selesai membuat database, langkah selanjutnya adalah membuat folder dengan nama pdo di dalam directory C:->xampp->htdocs
3. sesudah membuat folder mari kita isikan folder tersebut dengan file2 yang berformat php. bukalah text editor anda masing-masing disini saya menggunakan notepad ++ kemudian buatlah file dengan nama index.php simpan di dalam folder pdo ayo kita mulai saja mengodingnnya ,hati-hati saat mengoding harus teliti karna satu kesalahan kecil saja coding tidak akan berhasil di running
index.php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>CRUD PDO</title>
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<!-- Latest compiled and minified JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
</head>
<body>
<div class="container">
<h2>Tambah Mahasiswa Baru</h2>
<form action="index.php" method="POST" class="form-group row">
NIM : <input type="text" name="nim" required="required" class="form-control" ><br/>
Nama : <input type="text" name="nama" required="required" class="form-control"><br/>
Tempat Lahir : <input type="text" name="tempat_lahir" class="form-control"><br/>
Tanggal Lahir : <input type="text" name="tanggal_lahir" class="form-control"><br/>
Jenis Kelamin : <input type="text" name="jenis_kelamin" class="form-control"><br/>
Agama : <input type="text" name="agama" class="form-control"><br/>
No. Telepon : <input type="text" name="no_telepon" class="form-control"><br/>
Alamat : <textarea name="alamat" class="form-control"></textarea><br/>
<input type="submit" name="tambahMhs" value="Tambah" class="btn btn-success">
<input type="reset" value="Batal" class="btn btn-warning">
</form>
</div>
</body>
</html>
<?php
require('library.php');
if(isset($_POST['tambahMhs'])){
$nim = $_POST['nim'];
$nama = $_POST['nama'];
$tempat_lahir=$_POST['tempat_lahir'];
$tanggal_lahir=$_POST['tanggal_lahir'];
$jenis_kelamin=$_POST['jenis_kelamin'];
$agama=$_POST['agama'];
$alamat=$_POST['alamat'];
$no_telepon=$_POST['no_telepon'];
$Lib = new Library();
$add = $Lib->tambahMhs($nim, $nama, $tempat_lahir, $tanggal_lahir, $jenis_kelamin, $agama, $alamat, $no_telepon);
if($add == "Success"){
header('Location: List.php');
}
}
?>
4. buat file lagi dengan nama edit.php, kemudian simpan di dalam folder pdo lagi
edit.php
<?php
require('library.php');
if(isset($_GET['id'])){
$Lib = new Library();
$id = $Lib->editMhs($_GET['id']);
$edit = $id->fetch(PDO::FETCH_OBJ);
echo '
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Edit Data Mahasiswa</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<!-- Latest compiled and minified JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
</head>
<body>
<div class="container">
<h2>Ubah Data Mahasiswa</h2>
<form action="edit.php" method="POST" class="form-group">
NIM : <input type="text" name="nim" value="'.$edit->nim.'" required="required" class="form-control"><br>
Nama : <input type="text" name="nama" value="'.$edit->nama.'" class="form-control"><br>
Tempat Lahir : <input type="text" value="'.$edit->tempat_lahir.'" name="tempat_lahir" class="form-control"><br/>
Tanggal Lahir : <input type="text" value="'.$edit->tanggal_lahir.'" name="tanggal_lahir" class="form-control"><br/>
Jenis Kelamin : <input type="text" value="'.$edit->jenis_kelamin.'" name="jenis_kelamin" class="form-control"><br/>
Agama : <input type="text" name="agama" value="'.$edit->agama.'" class="form-control"><br/>
No. Telepon : <input type="text" value="'.$edit->no_telepon.'" name="no_telepon" class="form-control"><br/>
Alamat : <textarea name="alamat" class="form-control">'.$edit->alamat.'</textarea><br/>
<input type="submit" name="updateMhs" value="Update" class="btn btn-info">
<input type="reset" value="Batal" class="btn btn-warning">
</form>
</div>
</body>
</html>
';
}
if(isset($_POST['updateMhs'])){
$nim = $_POST['nim'];
$nama = $_POST['nama'];
$tempat_lahir=$_POST['tempat_lahir'];
$tanggal_lahir=$_POST['tanggal_lahir'];
$jenis_kelamin=$_POST['jenis_kelamin'];
$agama=$_POST['agama'];
$alamat=$_POST['alamat'];
$no_telepon=$_POST['no_telepon'];
$Lib = new Library();
$upd = $Lib->updateMhs($nim, $nama, $tempat_lahir, $tanggal_lahir, $jenis_kelamin, $agama, $alamat, $no_telepon);
if($upd == "Success"){
header('Location: list.php');
}
}
?>
5. buat file baru lagi, kemudian beri nama library.php simpan juga di dalam folder pdo.
library.php
<?php
class Library{
public function __construct(){
$this->db = new PDO('mysql:host=localhost;dbname=crud_oop','root','');
}
public function tambahMhs($nim, $nama, $tempat_lahir, $tanggal_lahir, $jenis_kelamin, $agama, $alamat, $no_telepon){
$sql = "INSERT INTO mahasiswa (nim, nama, tempat_lahir, tanggal_lahir, jenis_kelamin, agama, alamat, no_telepon) VALUES('$nim', '$nama', '$tempat_lahir', '$tanggal_lahir', '$jenis_kelamin', '$agama', '$alamat', '$no_telepon')";
$query = $this->db->query($sql);
if(!$query){
return "Failed";
}
else{
return "Success";
}
}
public function editMhs($id){
$sql = "SELECT * FROM mahasiswa where id='$id'";
$query = $this->db->query($sql);
return $query;
}
public function updateMhs($nim, $nama, $tempat_lahir, $tanggal_lahir, $jenis_kelamin, $agama, $alamat, $no_telepon){
$sql = "UPDATE mahasiswa SET nim='$nim', nama='$nama', tempat_lahir='$tempat_lahir', tanggal_lahir='$tanggal_lahir', jenis_kelamin='$jenis_kelamin', agama='$agama', alamat='$alamat', no_telepon='$no_telepon' WHERE nim='$nim'";
$query = $this->db->query($sql);
if(!$query){
return "Failed";
}
else{
return "Success";
}
}
public function showmahasiswa(){
$sql = "SELECT * FROM mahasiswa order by id desc";
$query = $this->db->query($sql);
return $query;
}
public function deleteMhs($nim){
$sql = "DELETE FROM mahasiswa WHERE nim='$nim'";
$query = $this->db->query($sql);
}
}
?>
6. dan yang terakhir buatlah file dengan nama list.php dan jangan lupa simpan di folder pdo.
list.php
<?php
error_reporting(E_ALL & ~E_NOTICE); // default PHP
error_reporting(E_ERROR | E_PARSE | E_CORE_ERROR);
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>List Mahasiswa</title>
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<!-- Latest compiled and minified JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
</head>
<body>
<div class="container">
<h2>Daftar Nama Mahasiswa</h2>
<table class="table">
<tr>
<td>NIM</td>
<td>Nama</td>
<td>Jenis Kelamin</td>
<td>Alamat</td>
<td>Edit</td>
<td>Delete</td>
</tr>
<?php
require("library.php");
$Lib = new Library();
$show = $Lib->showmahasiswa();
while($data = $show->fetch(PDO::FETCH_OBJ)){
echo "
<tr>
<td>$data->nim</td>
<td>$data->nama</td>
<td>$data->jenis_kelamin</td>
<td>$data->alamat</td>
<td><a class='btn btn-info' href='edit.php?id=$data->id'>Edit</td>
<td><a class='btn btn-danger' href='list.php?delete=$data->nim'>Delete</a></td>
</tr>";
};
?>
</table>
<a href="index.php" class="btn btn-success">Tambah Mahasiswa Baru</a>
</div>
</body>
</html>
<?php
if(isset($_GET['delete'])){
$del = $Lib->deleteMhs($_GET['delete']);
header('Location: List.php');
}
?>
setelah kita membuat semua source kode di atas.. mari kita panggil file index.php dengan cara buka browser kalian masing-masing kemudian ketikkan localhost/pdo/index.php maka akan muncul tampilan seperti di bawah ini.
kemudian kita inputkan /isikan form tersebut. kemudian klik button "tambah".
Untuk mengedit data mahasiswa, klik button “Edit”. Untuk menghapus data mahasiswa, klik button "Delete". Seperti gambar dibawah ini
setelah itu klik edit akan kembali kehalaman sebelumnnya dan jika klik delete maka di daftar nama mahasiswa akan hilang secara otomatis
sekian ilmu yang bisa saya sharing mohon maaf apa bila kurang jelas dalam penjelasan saya juga masih belajar dan semoga ini bisa bermanfaat untuk semua
Sumber by : http://www.zaqi.ekanum.com/v2/







0 komentar:
Posting Komentar