Skip to main content

Membuat CRUD dengan PHP - MySQL

Membuat CRUD dengan PHP MySQL
CRUD adalah singkatan dari Create - Read - Update - Delete. Bisa diartikan pada pembelajaran pemrograman ini kali ini kita akan belajar bagaimana cara menampilkan data, mengupdate, menghapus dan menyimpan data ke database menggunakan bahasa pemrogramanan PHP.

Contoh tutorial ini boleh dibilang cukup kompleks,karena pada contoh program kita juga akan membaca nilai dari parameter.

Untuk memulai membuat program berikut adalah file-file yang kita butuhkan :



Step 1: Membuat Database
Pertama kita harus membuat database terlebih dahulu. Disini saya mengumpamakan Anda sudah membuat database dengan nama crud-php. Setelah database dibuat, selanjutnya adalah membuat tabel. Berikut adalah dumping SQL untuk tabel karyawan :

CREATE TABLE IF NOT EXISTS `karyawan` (
  `id` int(11) NOT NULL,
  `nama_lengkap` char(50) NOT NULL,
  `jekel` char(15) NOT NULL,
  `tanggal_lahir` date NOT NULL,
  `tempat_lahir` varchar(50) NOT NULL,
  `no_telp` char(20) NOT NULL,
  `alamat` char(100) NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=latin1;

ALTER TABLE `karyawan` ADD PRIMARY KEY (`id`); 


Step 2 : Membuat Koneksi
Buat file baru dengan nama koneksi.php pada file koneksi.php ini kita akan menghubungkan aplikasi dengan database.
<?php
error_reporting(0);

$host = 'localhost';    // web host
$user = 'root';         // username
$pass = '';             // password database
$db   = 'crud-php';     // nama database
mysql_connect($host, $user, $pass) or die('Gagal menghubungkan ke webserver !') ;
mysql_select_db($db) or die('Database tidak ditemukan !');

?>


Step 3 : Membuat File Index
Pada file index.php ini lah kita akan menggunakan parameter untuk memanggil file lainnya. Berikut kode untuk index.php :
<?php
include 'koneksi.php'; /* koneksi ke database */

echo '
<!DOCTYPE html>
<html>
    <head>
        <title>CRUD - PHP Native</title>
        <link href="style.css" rel="stylesheet" type="text/css" />
    </head>
    <body>
        <div class="wrapper">
            <h1>Manajemen Data Karyawan</h1>';
            /* parameter */
            $opsi = isset($_GET['opsi']) ? $_GET['opsi'] : '';
          
            /* jika parameter "opsi" = "tambah" (Insert)*/
            if ( $opsi == 'tambah' )
            {
                include 'tambah.php';
                include 'view.php';
            }
            /* jika parameter "opsi" = "edit"  ( edit data)*/
            elseif ( $opsi == 'edit' )
            {
                include 'edit.php';
                include 'view.php';
            }
            /* default (browse) */
            else
            {
                include 'view.php';
            }
        echo '
        </div>
    </body>
</html>';
?>


Step 4 : Menampilkan Data (Read)
Buatlah file dengan nama view.php. Pada file ini kita akan menampilkan data dari database. Berikut ini adalah kode dari file view.php :
<?php
include 'koneksi.php';
$sql = mysql_query('SELECT * FROM karyawan ORDER BY nama_lengkap ASC');
echo '

<a href="index.php?opsi=tambah" class="btn biru"><strong>+</strong> Tambah Data</a>
<table>
<thead>
    <tr>
        <th>No</th>
        <th>Nama Lengkap</th>
        <th>Jekel</th>
        <th>Tanggal Lahir</th>
        <th>Telp</th>
        <th>Alamat</th>
        <th>Aksi</th>
    </tr>
</thead>
<tbody>';
$no = 1;
while($row = mysql_fetch_array($sql))
{
    echo '
    <tr>
        <td>'.$no++.'</td>
        <td>'.$row["nama_lengkap"].'</td>
        <td>'.$row["jekel"].'</td>
        <td>'.$row["tanggal_lahir"].'</td>
        <td>'.$row["no_telp"].'</td>
        <td>'.$row["alamat"].'</td>
        <td> <a href="index.php?opsi=edit&id='.$row['id'].'" class="btn hijau">Edit</a>
             <a href="aksi.php?opsi=delete&id='.$row['id'].'" class="btn merah" onClick=\'return confirm("Hapus data pada baris ini?")\' >Hapus</a></td>
    </tr>';
}
echo '
</tbody>
</table>';
?>
 


Step 5 : Menyimpan Data (Create / Insert)
Pada tahap kelima ini kita akan menyimpan data ke database menggunakan kueri "INSERT INTO", untuk itu kita membutuhkan sebuah form. Buatlah file dengan nama tambah.php
<?php

$day_now     = date('d');
$month_now   = date('m');
$year_now    = date('Y');
$lowestYear  = 1950;
$highestYear = date('Y');

echo '<p><a href="index.php">Home</a> > Tambah Data</p>

<fieldset>
    <legend>Form Tambah Data</legend>
    <form action="aksi.php?opsi=tambah&aksi=simpan" method="post">
        <div class="input_group"><label>Nama Lengkap</label><input type="text" class="txt_input" name="txt_nama"  required="required" /></div>
        <div class="input_group"><label>Jenis Kelamin</label>
            <select name="txt_jekel" required="required">
                <option value="" selected="selected">Pilih</option>
                <option value="Laki-laki">Laki-Laki</option>
                <option value="Perempuan">Perempuan</option>
            </select>
        </div>
        <div class="input_group"><label>Tempat Lahir</label><input type="text" class="txt_input" name="txt_tempat" required="required" /></div>
        <div class="input_group">
            <label>Tanggal Lahir</label>
            <select name="txt_tanggal" required="required">';
                echo '<option value="" selected="selected">Tanggal</option>';
                foreach(range(1, 31)as $day)
                {                  
                    echo "<option value='".$day."'>".$day."</option>";
                }
            echo '
            </select>
            <select name="txt_bulan"  required="required">';
                echo '<option value="" selected="selected">Bulan</option>';
                foreach(range(1, 12) as $month)
                {
                    echo "<option value='".$month."'>".$month."</option>";
                    
                }
            echo '
            </select>
            <select name="txt_tahun" required="required">';
                echo '<option value="" selected="selected">Tahun</option>';
                foreach (range($lowestYear, $highestYear) as $year)
                {                   
                    echo "<option value='".$year."'>".$year."</option>";
                }
            echo '
            </select>
        </div>
        <div class="input_group"><label>No Telp</label><input type="text" class="txt_input" name="txt_telp" required="required" /></div>
        <div class="input_group"><label>Alamat</label><input type="text" class="txt_input" name="txt_alamat" required="required" /></div>
        <div class="input_group"><label>&nbsp;</label>
            <button type="submit" class="btn hijau">Simpan</button>
            <button type="reset" class="btn kuning">Reset</button>
            <a href="index.php" class="btn merah"> Batal</a>
        </div>
    </form>
</fieldset>';
?>


Untuk bisa menyimpan ke database, kita akan menggunakan query SQL, untuk itu kita membuat file dengan nama aksi.php

Pada file aksi.php inilah kini akan mengeksekusi perintah-perintah SQL serperi INSERT, UPDATE dan DELETE. Berikut adalah kode untuk file aksi.php :

<?php
error_reporting(0);
include 'koneksi.php'; /* koneksi database */
echo '
<!DOCTYPE html>
<html>
<head>
    <title>CRUD - PHP Native</title>
    <link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body>';


$opsi = isset($_GET['opsi']) ? $_GET['opsi'] : ''; /* mengambil nilai dari parameter "opsi" */
$aksi = isset($_GET['aksi']) ? $_GET['aksi'] : ''; /* mengambil nilai dari parameter "aksi" */

/* Menyimpan Data (Create / Insert)*/
if ($opsi == 'tambah' and $aksi=='simpan')
{
    $tanggal_lahir    = $_POST['txt_tahun'] .'-'. $_POST['txt_bulan'] .'-'. $_POST['txt_tanggal'];
    $nama_lengkap    = $_POST['txt_nama'];
    $jekel            = $_POST['txt_jekel'];
    $tempat_lahir    = $_POST['txt_tempat'];
    $no_telp        = $_POST['txt_telp'];
    $alamat            = $_POST['txt_alamat'];
  
   
    $query = mysql_query("INSERT INTO karyawan (`nama_lengkap`,`jekel`, `tanggal_lahir`, `tempat_lahir`, `no_telp`, `alamat`)
                          VALUES ('".$nama_lengkap."',
                                   '".$jekel."',
                                   '".$tanggal_lahir."',
                                   '".$tempat_lahir."',
                                   '".$no_telp."',
                                   '".$alamat."') ");
    if ($query)
    {
        echo '
        <div class="pesan pesan-sukses">
            <p style="text-align:center;">Data karyawan baru telah disimpan !<br /> <a href="index.php">Halaman Utama</a></p>
        </div>';
    }
    else
    {
        echo '
        <div class="pesan pesan-error">
            <p style="text-align:center;">Gagal menyimpan kedatabase ! <br /><a href="index.php?opsi=tambah">Ulangi </a></p>
        </div>';
    }
}
/* Update Data */
elseif ($opsi == 'edit' and $aksi=='update'){
    $id                = $_POST['txt_id'];
    $tanggal_lahir    = $_POST['txt_tahun'] .'-'. $_POST['txt_bulan'] .'-'. $_POST['txt_tanggal'];
    $nama_lengkap   = $_POST['txt_nama'];
    $jekel          = $_POST['txt_jekel'];
    $tempat_lahir   = $_POST['txt_tempat'];
    $no_telp        = $_POST['txt_telp'];
    $alamat         = $_POST['txt_alamat'];
    $query = mysql_query("UPDATE karyawan SET nama_lengkap     = '". $nama_lengkap ."',
                                              jekel            = '". $jekel ."',
                                              tanggal_lahir    = '". $tanggal_lahir ."',
                                              tempat_lahir    = '". $tempat_lahir ."',
                                              no_telp         = '". $no_telp ."',
                                              alamat         = '". $alamat ."'
                            WHERE id = '".mysql_escape_string($id)."'");
    if ($query)
    {
        echo '
        <div class="pesan pesan-sukses">
            <p style="text-align:center;">Data karyawan telah berhasil diupdate !<br /> <a href="index.php">Halaman Utama</a></p>
        </div>';
        header('location:index.php');
    }
    else
    {
        echo '
        <div class="pesan pesan-error">
            <p style="text-align:center;">Gagal menyimpan kedatabase ! Coba periksa lagi koneksi ke database Anda<br />
            <a href="index.php">Halaman Depan </a></p>
        </div>';
      
      
    }
}
/* Menghapus Data */
elseif ($opsi == 'delete' ){
    $id = isset($_GET['id']) ? $_GET['id'] : '';
    if (!empty($id))
    {
        $query = mysql_query("DELETE FROM karyawan WHERE id = '".$id."' ");
        if ($query)
        {
            echo '
            <div class="pesan pesan-sukses">
                <p style="text-align:center;">Data karyawan telah berhasil diupdate !<br /> <a href="index.php">Halaman Utama</a></p>
            </div>';
            header('location:index.php');
        }
        else
        {
            echo '
            <div class="pesan pesan-error">
                <p style="text-align:center;">Gagal menyimpan kedatabase ! Coba periksa lagi koneksi ke database Anda<br />
                <a href="index.php">Halaman Depan </a></p>
            </div>';
          
          
        }
    }
  
}
else{
    echo '
    <div class="pesan pesan-error">
        <p style="text-align:center;"><strong>404 Not Found !</strong><br />
        <a href="index.php">Halaman Depan </a></p>
    </div>';  
}
echo '
</body>
</html>';
?>


Step 7 : Edit Data (Update)
Pada file view.php kita sudah membuat tombol atau link untuk mengedit dan menghapus data. Untuk bisa mengedit data kita membutuhkan form edit. Sedahkan kalau untuk menghapus data (DELETE) kita bisa mengarakan lansung ke URL yang dituju. Berikut adalah kode untuk file edit.php :
<?php

$id= isset($_GET['id']) ? $_GET['id'] : '';
$query = mysql_query("SELECT * FROM karyawan WHERE id='".$id."'");
if($row=mysql_fetch_array($query)){

$tgl = substr($row['tanggal_lahir'],8,2);
$bln = substr($row['tanggal_lahir'],5,2);
$thn = substr($row['tanggal_lahir'],0,4);

$tahun_dimulai  = 1950;
$tahun_akhir = date('Y');

echo '<p><a href="index.php">Home</a> > Edit Data</p>

<fieldset>
    <legend>Edit Data</legend>
    <form action="aksi.php?opsi=edit&aksi=update" method="post">
        <input name="txt_id" type="hidden" value="'.$row['id'].'" />
        <div class="input_group"><label>Nama Lengkap</label><input type="text" class="txt_input" name="txt_nama"  required="required" value="'.$row["nama_lengkap"].'" /></div>
        <div class="input_group"><label>Jenis Kelamin</label>
            <select name="txt_jekel" required="required">
                <option value="">Pilih</option>';
                if ($row['jekel'] == 'Laki-laki')
                {
                    echo '
                    <option value="Laki-laki" selected="selected" >Laki-Laki</option>
                    <option value="Perempuan" >Perempuan</option>';
                }elseif ($row['jekel'] == 'Perempuan')
                {
                    echo '
                    <option value="Laki-laki" >Laki-Laki</option>
                    <option value="Perempuan" selected="selected" >Perempuan</option>';
                }else{
                    echo '
                    <option value="Laki-laki" >Laki-Laki</option>
                    <option value="Perempuan" >Perempuan</option>';
                }
              
            echo '
            </select>
        </div>
        <div class="input_group"><label>Tempat Lahir</label><input type="text" class="txt_input" name="txt_tempat" required="required" value="'.$row["tempat_lahir"].'" /></div>
        <div class="input_group">
            <label>Tanggal Lahir</label>
            <select name="txt_tanggal" style="width:100px;" required="required">';
                echo '<option value="">Tanggal</option>';   
                foreach(range(1, 31)as $tampil_hari)
                {   
                    if ($tampil_hari == $tgl ){
                        $selected = 'selected = "selected"';
                    }
                    else{
                        $selected = '';
                    }
                   
                    echo "<option value='".$tampil_hari."' ".$selected.">".$tampil_hari."</option>";
                }
            echo '
            </select>
            <select name="txt_bulan"  style="width:100px;" required="required">';
                echo '<option value="" >Bulan</option>';
                foreach(range(1, 12) as $tampil_bulan)
                {
                    if ($tampil_bulan == $bln ){
                        $selected = 'selected = "selected"';
                    }
                    else{
                        $selected = '';
                    }
                    echo "<option value='".$tampil_bulan."' ".$selected.">".$tampil_bulan."</option>";
                   
                }
            echo '
            </select>
            <select name="txt_tahun" style="width:100px;" required="required">';
                echo '<option value="" selected="selected">Tahun</option>';
                foreach (range($tahun_dimulai, $tahun_akhir) as $tampil_tahun)
                {                   
                    if ($tampil_tahun == $thn ){
                        $selected = 'selected = "selected"';
                    }
                    else{
                        $selected = '';
                    }
                    echo "<option value='".$tampil_tahun."' ".$selected.">".$tampil_tahun."</option>";
                }
            echo '
            </select>
        </div>
        <div class="input_group"><label>No Telp</label><input type="text" class="txt_input" name="txt_telp" required="required" value="'.$row["no_telp"].'" /></div>
        <div class="input_group"><label>Alamat</label><input type="text" class="txt_input" name="txt_alamat" required="required" value="'.$row["alamat"].'" /></div>
        <div class="input_group"><label>&nbsp;</label>
            <button type="submit" class="btn hijau">Update</button>
            <a href="index.php" class="btn merah"> Batal</a>
        </div>
    </form>
</fieldset>';
}
else
{
    echo '<div class="pesan pesan-error"> 404 Not Found ! </div>';
}
?>


Selanjutnya untuk memperindah tampilan kita sisipnya CSS berikut adalah kode dari file style.css :
body{
    font-family:Verdana, Tahoma, Arial, "Trebuchet MS";
    color: #555;
    font-size: 13px;
    background:#f1f1f1;
}
.wrapper{
    width:800px;border:1px solid transparent;
    margin:0 auto;
    background:#fff;
    border:1px solid #ddd;
    padding:10px;
}
a{text-decoration: none;color:#337AB7;}
a:hover{color:#23527C;text-decoration: underline;}
table{
    border:1px solid #ddd;
    border-collapse: collapse;
    border-spacing: 0px;
    width:100%;
}
table tr th{border:1px solid #ddd;padding:10px;}
table tr td{
    border:1px solid #ddd;padding:3px 5px;
    margin:0px;
    line-height: 1.42857;
    vertical-align: top;
    border-left-width: 0px;
    border-bottom-width: 0px;
}
table tr td:first-child{border-left: 0px none;}
.btn{
    display: inline-block;
    padding: 3px 10px;
    margin-bottom: 5px;
    font-size: 12px;
    font-weight: 400;
    line-height: 1.42857;
    text-align: center;
    white-space: nowrap;
    vertical-align: middle;
    cursor: pointer;
    -moz-user-select: none;
    border: 1px solid transparent;
    border-radius: 0px;
    text-decoration: none;
}
.biru {
    background: #337AB7;
    border-color: #245580;
    color: #FFF;
}
.biru:hover, .biru:focus{
    background-color: #265A88;
    color: #FFF;
    text-decoration: none;
}
.hijau{
    background:#5CB85C;
    border-color: #4CAE4C;
    color: #FFF;
}
.hijau:hover, .hijau:focus{
    background:#419641;
    color: #FFF;
    text-decoration: none;
}
.merah{
    background:#D9534F;
    border-color: #B92C28;
    color:#fff;
}
.merah:hover, merah:focus{
    background: #C12E2A;
    color: #FFF;
    text-decoration: none;
}
.kuning{  
    background: #F0AD4E;
    border-color: #E38D13;
    color: #FFF;text-decoration: none;
}
.kuning:hover , kuning:focus{
    background:#EB9316;
    color: #FFF;text-decoration: none;
}
fieldset{padding:.35em .625em .75em;margin:0 2px 20px 2px;border:1px solid #ddd;}
.input_group{
    width:100%;
    padding:0 0 5px 0px;
    display: table;
}
.input_group label{
    width:150px;
    float: left;
    display: block;
    font-weight: bold;
}
.txt_input{border:1px solid #ccc;width:300px;float:left;padding:3px 5px;}

.pesan {
  padding: 15px;
  margin-bottom: 20px;
  border: 1px solid transparent;
  border-radius: 4px;
}
.pesan-sukses{
    color: #3c763d;
    background-color: #dff0d8;
    border-color: #d6e9c6;
}
.pesan-error{
    color: #a94442;
      background-color: #f2dede;
      border-color: #ebccd1;
}


Nah, demikianlah tutorial membuat CRUD (Create - Read - Update - Delete) menggunakan pemrograman PHP dan database MySQL. Semoga bisa membantu untuk sobat-sobat yang baru belajar pemrograman web.

Jika sobat bingung dengan penjelasan saya diatas, silahkan download dan praktekkan sendiri, dengan demikian mudah-mudahan tidak bingung lagi :)

Password RAR : www.braintekno.com


Catatan : Tutorial ini hanya berlaku untuk PHP versi 5 kebawah. Untuk PHP 7, Insya Allah akan menyusul.


Comments

  1. kenapa tidak bisa simpan ya gan,

    ReplyDelete
    Replies
    1. BIsa gan, coba cek lagi koneksinya.

      Delete
    2. ketika save malah muncul error apache nya gan ? kenapa ya ?

      Delete
    3. ngga bisa gan. uda saya coba file yg download malah gg bsa, saya ketik ulang bisa cmn tambah data lagi ga mau. uda persis bgt scriptnya padahal

      Delete
  2. mohon maaf aku udah bisa, tapi pas aku rubah databasenya dan semuanya aku rubah, malah muncul pesan error 404! dan pas aku liat, itu errornya dari bagian edit.php. padahal aku udah ikut semua caranya dan aku rasa gak ada yang kelewat, soalnya udah beberapa kali aku liat dan samain sama contoh di atas. mohon bantuannya kakak ^_^

    ReplyDelete
    Replies
    1. Bisa kok dek, ini buktinya :
      https://www.youtube.com/watch?v=YIt3pcaiQQI

      Delete
  3. mau tanya gan, pas tambah data kok id nya malah 0 ya. Harusnya kan nilai terakhir dari data karyawan kan? Dan setelah saya input kan lagi databse gagal input data
    Ada solusinya?

    ReplyDelete
  4. Password nya apa ya

    ReplyDelete
  5. gan... data pertama berhasil tersimpan... tapi setelah mau nyimpan data baru lagi gak bisa.. gimana ya?

    ReplyDelete
  6. Makasih gan 😊😊😊

    ReplyDelete
  7. berhasil..,terima kasih gan ilmunya sangat bermanfaat.

    ReplyDelete

Post a Comment

Popular posts from this blog

Membuat Fungsi Sederhana dengan PHP

Dalam pemrograman PHP berbasis orientasi objek, kita akan mengenal istilah function (fungsi). Sebenarnya apa yang disebut function dalam pemrograman php ? Sebuat pertanyaan yang pasti pernah terbersit dalam pemikiran para pemula dalam pemrograman php. Function secara umum bisa diartikan dengan sekumpulan perintah yang sudah kita susun untuk membuat sebuah pola tertentu yang bisa kita panggil dan kita gunakan sewaktu - waktu. Adapun bentuk dari struktur function adalah sebagai berikut : <?php function nama_fungsi(variabel_a, variabel_b) {     ... statement ...    return data_yang_sudah_diproses; } ?> Contoh fungsi sederhana dapat kita aplikasikan sebagai berikut : <?php function nama($nama) { echo 'Hallo, perkenalkan nama Saya adalah <strong>'.$nama.'</strong>'; } nama('Muhammad Ridho'); ?> Jika dijalankan maka menghasilkan output sebagai berikut : function

Membuat Database MySQL dari PhpMyAdmin

MySQL adalah database yang paling banyak digunakan dalam pemrograman web. PhpMyAdmin adalah user interface untuk memudahkan pengguna dalam mengelola data. Dalam tutorial kali ini kita akan mencoba membuat database melalui phpmyadmin. 1. Buka PhpMyAdmin. Buka phpmyadmin Anda melalui url pada browser : http://localhost/phpmyadmin phpmyadmin 2. Buat Database Pada menu database masukkan nama database misal : "dbkota" lalu klik tombol "Create" 3. Buat Tabel  Masukkan nama tabel (ex: tabel_kota) dan jumlah kolom. Kemudian klik tombol "Go" 4. Membuat Kolom Masukkan nama kolom yang dibutuhkan, misalnya pada tutorial kali ini kita membutuhkan 2 kolom. Yakni "id_kota" dan "nama_kota" berikut adalah detailnya: id_kota | type = INT | LENGTH / VALUES = 11 | Index = PRIMARY | AI = True | nama_kota | type = VARCHAR | LENGTH / VALUES = 30 | jangan lupa memberi nilai " PRIMARY " untuk  kolom id_kota dan checklis