Rabu, 08 Maret 2017

Membuat CRUD OOP dalam 1 File

Assalamu'alaikum wr.wb.


A. Pengertian

     CRUD) adalah empat fungsi dasar dari penyimpanan persisten . Kata Alternatif kadang-kadang digunakan ketika mendefinisikan empat fungsi dasar CRUD, mengambil alih-alih membaca, memodifikasi bukan pembaruan, atau menghancurkan bukan delete.

B. Latar Belakang

     Latar belakang permasalahan kali ini yaitu membuat crud sederhana didalam satu file saja yang menggunakan perbaduan oop di dalamnya. Membuat CRUD (Create, Read, Update, Delete) dalam satu file PHP. Biasanya, membuat CRUD dilakukan dengan membuat file terpisah. Masing-masing file mewakili CRUD. Misalkan file create.php untuk menambahkan data, read.php untuk menampikan data, update.php untuk mengubah data, dan delete.php untuk menghapus data

C. Alat dan Bahan
  • OS XUbuntu 16.10
  • Laptop
  • Sublime Text (Text Editor) 
  • PHP 7.1
  • Apache2 (LAMP Server)
  • Browser
  • PHPMyAdmin
D. Tujuan

     Bertujuan menerapkan hasil pengetahuan penulis untuk mempelajari bagaimana cara membuat CRUD OOP di dalam 1 file.

E. Tahap Pelaksanaan

     Langkah-langkah pembuatan CRUD OOP dalam satu file yaitu sebagai berikut.
  • Yang pertama, kita buka terlebih dahulu phpMyAdmin untuk membuat database. Kali ini kita beri nama "hasil_panen" dan di dalamnya terdapat table "pertanian"
  • Berikutnya kita akan membuat folder di dalam /var/www/html dengan nama "CRUD_Satu_File".
  • Jika folder telah dibuat kita akan buka Menu->ketikkan pada pencarian SublimeText.
  • Berikutnya kita akan buka folder yang telah kita buat melalui sublimetext -> File -> Open Folder. 
  • Setelah itu kita buat file dengan nama hh.php. Berikut ini merupakan coding dan penjelasannya.
 <!DOCTYPE html>
<html>
<head>
    <title>CRUD 1 File</title>
</head>
<body>

<?php
// untuk koneksi ke database
$koneksi = mysqli_connect("localhost","root","fadila12","hasil_panen") or die(mysqli_error());
//  Fungsi untuk tambah data (Create)
function tambah($koneksi){
  
    if (isset($_POST['btn_simpan'])){
        $id = time();
        $nm_tanaman = $_POST['nm_tanaman'];
        $hasil = $_POST['hasil'];
        $lama = $_POST['lama'];
        $tgl_panen = $_POST['tgl_panen'];
      
        if(!empty($nm_tanaman) && !empty($hasil) && !empty($lama) && !empty($tgl_panen)){
            $sql = "INSERT INTO pertanian (id,nm_tanaman, hasil, lama, tgl_panen) VALUES(".$id.",'".$nm_tanaman."','".$hasil."','".$lama."','".$tgl_panen."')";
            $simpan = mysqli_query($koneksi, $sql);
            if($simpan && isset($_GET['aksi'])){
                if($_GET['aksi'] == 'create'){
                    header('location: hh.php');
                }
            }
        } else {
            $pesan = "Tidak dapat menyimpan, data belum lengkap!";
        }
    }
    ?>
        <form action="" method="POST">
            <fieldset>
                <legend><h2>Tambah data</h2></legend>
                <label>Nama tanaman <input type="text" name="nm_tanaman" /></label> <br>
                <label>Hasil panen <input type="number" name="hasil" /> kg</label><br>
                <label>Lama tanam <input type="number" name="lama" /> bulan</label> <br>
                <label>Tanggal panen <input type="date" name="tgl_panen" /></label> <br>
                <br>
                <label>
                    <input type="submit" name="btn_simpan" value="Simpan"/>
                    <input type="reset" name="reset" value="Besihkan"/>
                </label>
                <br>
                <p><?= isset($pesan) ? $pesan : "" ?></p>
            </fieldset>
        </form>
    <?php
}

// Fungsi untuk menampilkan (Read)
function tampil_data($koneksi){
    $sql = "SELECT * FROM pertanian";
    $query = mysqli_query($koneksi, $sql);
  
    echo "<fieldset>";
    echo "<legend><h2>Data Panen</h2></legend>";
  
    echo "<table border='1' cellpadding='10'>";
    echo "<tr>
            <th>ID</th>
            <th>Nama Tanaman</th>
            <th>Hasil Panen</th>
            <th>Lama Tanam</th>
            <th>Tanggal Panen</th>
            <th>Tindakan</th>
          </tr>";
  
    while($data = mysqli_fetch_array($query)){
        ?>
            <tr>
                <td><?= $data['id']; ?></td>
                <td><?= $data['nm_tanaman']; ?></td>
                <td><?= $data['hasil']; ?> Kg</td>
                <td><?= $data['lama']; ?> bulan</td>
                <td><?= $data['tgl_panen']; ?></td>
                <td>
                    <a href="hh.php?aksi=update&id=<?= $data['id']; ?>&nama=<?= $data['nm_tanaman']; ?>&hasil=<?= $data['hasil']; ?>&lama=<?= $data['lama']; ?>&tanggal=<?php echo $data['tgl_panen']; ?>">Ubah</a> |
                    <a href="hh.php?aksi=delete&id=<?= $data['id']; ?>">Hapus</a>
                </td>
            </tr>
        <?php
    }
    echo "</table>";
    echo "</fieldset>";
}


// Fungsi Ubah Data (Update)
function ubah($koneksi){
    // ubah data
    if(isset($_POST['btn_ubah'])){
        $id = $_POST['id'];
        $nm_tanaman = $_POST['nm_tanaman'];
        $hasil = $_POST['hasil'];
        $lama = $_POST['lama'];
        $tgl_panen = $_POST['tgl_panen'];
      
        if(!empty($nm_tanaman) && !empty($hasil) && !empty($lama) && !empty($tgl_panen)){
            $perubahan = "nm_tanaman='".$nm_tanaman."',hasil=".$hasil.",lama=".$lama.",tgl_panen='".$tgl_panen."'";
            $sql_update = "UPDATE pertanian SET ".$perubahan." WHERE id=$id";
            $update = mysqli_query($koneksi, $sql_update);
            if($update && isset($_GET['aksi'])){
                if($_GET['aksi'] == 'update'){
                    header('location: hh.php');
                }
            }
        } else {
            $pesan = "Data tidak lengkap!";
        }
    }
  
    // tampilkan form ubah
    if(isset($_GET['id'])){
        ?>
            <a href="hh.php"> &laquo; Home</a> |
            <a href="hh.php?aksi=create"> (+) Tambah Data</a>
            <hr>
          
            <form action="" method="POST">
            <fieldset>
                <legend><h2>Ubah data</h2></legend>
                <input type="hidden" name="id" value="<?php echo $_GET['id'] ?>"/>
                <label>Nama tanaman <input type="text" name="nm_tanaman" value="<?= $_GET['nama'] ?>"/></label> <br>
                <label>Hasil panen <input type="number" name="hasil" value="<?= $_GET['hasil'] ?>"/> kg</label><br>
                <label>Lama tanam <input type="number" name="lama" value="<?= $_GET['lama'] ?>"/> bulan</label> <br>
                <label>Tanggal panen <input type="date" name="tgl_panen" value="<?= $_GET['tanggal'] ?>"/></label> <br>
                <br>
                <label>
                    <input type="submit" name="btn_ubah" value="Simpan Perubahan"/> atau <a href="hh.php?aksi=delete&id=<?= $_GET['id'] ?>"> (x) Hapus data ini</a>!
                </label>
                <br>
                <p><?php echo isset($pesan) ? $pesan : "" ?></p>
              
            </fieldset>
            </form>
        <?php
    }
  
}

// Fungsi Delete
function hapus($koneksi){
    if(isset($_GET['id']) && isset($_GET['aksi'])){
        $id = $_GET['id'];
        $sql_hapus = "DELETE FROM pertanian WHERE id=" . $id;
        $hapus = mysqli_query($koneksi, $sql_hapus);
      
        if($hapus){
            if($_GET['aksi'] == 'delete'){
                header('location: hh.php');
            }
        }
    }
  
}

// Program Utama
if (isset($_GET['aksi'])){
    switch($_GET['aksi']){
        case "create":
            echo '<a href="hh.php"> &laquo; Home</a>';
            tambah($koneksi);
            break;
        case "read":
            tampil_data($koneksi);
            break;
        case "update":
            ubah($koneksi);
            tampil_data($koneksi);
            break;
        case "delete":
            hapus($koneksi);
            break;
        default:
            echo "<h3>Aksi <i>".$_GET['aksi']."</i> tidak ada!</h3>";
            tambah($koneksi);
            tampil_data($koneksi);
    }
} else {
    tambah($koneksi);
    tampil_data($koneksi);
}
?>
</body>
</html>
  • Cara pemanggilannya yaitu dengan masukkan perintah ini pada url "localhost/CRUD_Satu_File/hh.php" dan hasil dari penerapan sintaks diatas yaitu seperti berikut.


Hasil saat Ubah di tekan

F. Kesimpulan

    Dari pembahasan diatas dapat ditarik kesimpulan bahwa penerapan dari CRUD dalam satu file tidaklah sulit dan lebih hemat tempat. Akan tetapi kita harus lebih teliti dalam menerapkan codingnya.

G. Referensi
  • http://petanikode.com/2016/03/kode-crud-dalam-satu-file-php/
  • https://en.wikipedia.org/wiki/Create,_read,_update_and_delete
Sekian dan Terimakasih.

SMK Bisa!!

Wassalamu'alaikum wr.wb.

0 komentar:

Posting Komentar

Diberdayakan oleh Blogger.