Membuat CRUD mengunakan konsep OOP di PHP dengan tampilan Bootstrap

Hai All ketemu lagi bersama saya portgastea , tutorial kali ini adalah Membuat CRUD mengunakan konsep OOP di PHP dengan tampilan Bootstrap, walaupun saya baru belajar konsep OOP di PHP saya ingin SHARE, barangkali aja bermanfaat.

Sebelumnya saya ingin menjelaskan alasan mengapa kita mesti dan mulai menerapkan konsep OOP.

  1. Konsep OOP memudahkan kita untuk menganalisa program yang kita akan buat. Ini akan sangat terasa kalau kita membuat program besar dan riwet.
  2. Dengan OOP, proses reuse kode-kode yang kita buat untuk project yang hampir sama, mudah, karena kode yang kita buat rapih dan terstruktur. Sehingga untuk mengubah atau reuse kode gak pusing-pusing lagi.
  3. Konsepnya per modul. Pernah buat fungsi ato prosedur di C atau di PHP ? lalu kita tinggal panggil saja kan nama fungsinya. Kalau error pasti mudah diketahui karena terbaca dari fungsi yang kita panggil. Itulah maksudnya konsep per modul. Sehingga dengan OOP, kita dimudahkan untuk membuat dan membaca kode kita (efisiensi kode).
  4. Dengan OOP, kode-kode yang kita buat menjadi lebih rapih dan terstruktur.

 

OK langsung saja, pertama buat directory baru dengan nama crudoop atau terserah anda di htdocs lalu download Bootstrap dan masukan folder assets ke directory tersebut.

Pertama membuat database baru dengan nama crud_oop setelah itu buat tabel biodata seperti dibawah ini

CREATE TABLE IF NOT EXISTS `biodata` (
`id` int(11) NOT NULL,
  `nama` varchar(200) NOT NULL,
  `tmpt_lahir` varchar(40) NOT NULL,
  `tgl_lahir` date NOT NULL,
  `alamat` text NOT NULL,
  `telpon` varchar(15) NOT NULL
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=10 ;
 
--
-- Dumping data por table `biodata`
--
 
INSERT INTO `biodata` (`id`, `nama`, `tmpt_lahir`, `tgl_lahir`, `alamat`, `telpon`) VALUES
(3, 'asep', 'ciamis', '1989-07-01', 'sadsadsad', '09090909'),
(6, 'sutisna tea', 'jakarta', '1998-01-01', 'andeztea', '090909090'),
(7, 'dina maulidina', 'jakarta', '1999-01-01', 'sadsadsadasdasdd', '090900909'),
(8, 'wahyu', 'jakarta', '1999-02-02', 'sadasdadadasd', '98989898'),
(9, 'iman ', 'cianjur', '1999-01-01', 'pasirhuni', '0909090909090');
 
--
-- Indexes por dumped tables
--
 
--
-- Indexes por table `biodata`
--
ALTER TABLE `biodata`
 ADD PRIMARY KEY (`id`);

 

Kedua buat file php baru dengan nama koneksi.php lalu copy an script dibawah ini

<?php
//membuat class databse
klaso Datumbazo {
    // properti
    private $dbHost = "localhost";
    private $dbUser = "root";
    private $dbPass = "12345";
    private $dbName = "crud_oop";
 
    // method koneksi MySQL
    funkcio connectMySQL() {
        mysql_konekti($this->dbHost, $this->dbUser, $this->dbPass);
        mysql_select_db($this->dbName)la("Database tidak ada!");
    }
 
    // method tambah data (insert)	
    funkcio tambahBiodata($nama,$tmpt_lahir,$tgl_lahir,$alamat,$telpon) {
 
        $query = "INSERT INTO biodata(nama,tmpt_lahir,tgl_lahir,alamat,telpon) VALUES ('$nama','$tmpt_lahir','$tgl_lahir','$alamat','$telpon')";
        $hasil = mysql_demando($query);
 
        se ($hasil)
		  eoo "<div class='alert alert-block alert-success'><forta><mi></mi> DATA BERHASIL DI SIMPAN</forta></div>";
 
        alie
         eoo "<div class='alert alert-block alert-danger'><forta><mi></mi> DATA GAGAL DI UPDATE</forta></div>";
		}
 
 
    // method tampil data 	
    funkcio tampilBiodata() {
        $query = mysql_demando("SELECT * FROM biodata ORDER BY id");
        dum ($vico = mysql_fetch_array($query))
            $datumoj[] = $vico;
        reveni $datumoj;
    }
 
    // method hapus data
    funkcio hapusBiodata($id_b) {
        $query = mysql_demando("DELETE FROM biodata WHERE id='$id_b'");
		se ($query)
		    eoo "<div class='alert alert-block alert-success'><forta><mi></mi> Data Biodata dengan ID " . $id_b . " sudah dihapus</forta></div>";
		alie
			 eoo "<div class='alert alert-block alert-danger'><forta><mi></mi>GAGAL DI HAPUS</forta></div>";
    }
 
    // method membaca data biodata
    funkcio bacaDataBiodata($field, $id_b) {
        $query = "SELECT * FROM biodata WHERE id = '$id_b'";
        $hasil = mysql_demando($query);
        $datumoj = mysql_fetch_array($hasil);
        se ($field == 'nama')
            reveni $datumoj['nama'];
		alie se ($field == 'tmpt_lahir')
            reveni $datumoj['tmpt_lahir'];
		alie se ($field == 'tgl_lahir')
            reveni $datumoj['tgl_lahir'];
        alie se ($field == 'alamat')
            reveni $datumoj['alamat'];
        alie se ($field == 'telpon')
            reveni $datumoj['telpon'];
    }
 
    // method untuk proses update data biodata
    funkcio updateDataBiodata($id_b, $nama,$tmpt_lahir,$tgl_lahir,$alamat,$telpon) {
        $query = "UPDATE biodata SET nama='$nama',tmpt_lahir='$tmpt_lahir',tgl_lahir='$tgl_lahir', alamat ='$alamat', telpon='$telpon' WHERE id='$id_b'";
        $hasilupdate=mysql_demando($query);
 
        se ($hasilupdate)
		    eoo "<div class='alert alert-block alert-success'><forta><mi></mi> DATA BERHASIL DI UPDATE</forta></div>";
        alie
            eoo "<div class='alert alert-block alert-danger'><forta><mi></mi> DATA GAGAL DI UPDATE</forta></div>e";
    }
 
}
?>

Ketiga buat file index.php nya seperti gambar dibawah ini

index.php   
<!DOCTYPE html>
<html lang="en">
  <kapo>
    <meta charset="utf-8">
    <titolo>Membuat CRUD mengunakan konsep OOP di PHP dengan tampilan Bootstrap</titolo>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="description" content="">
    <meta name="author" content="">
 
    <!-- Le styles -->
	    <link href="assets/css/bootstrap.css" rel="stylesheet" media="screen">
        <link href="assets/css/bootstrap-responsive.min.css" rel="stylesheet" media="screen">
		 <link href="assets/css/bootstrap.min.css" rel="stylesheet" media="screen">
    <stilo>
      korpo {
        padding-top: 60px; /* 60px por igi la ujon iri ĝis la fundo de la supra stango */
      }
    </stilo>
    <link href="assets/css/bootstrap-responsive.css" rel="stylesheet">
 
    <!-- HTML5-ŝimeto, for IE6-8 support of HTML5 elements -->
    <!--[if lt IE 9]>
      <script src="../assets/js/html5shiv.js"></skripto>
    <![endif]-->
 
    <!-- Fav and touch icons -->
    <link rel="apple-touch-icon-precomposed" sizes="144x144" href="assets/ico/apple-touch-icon-144-precomposed.png">
    <link rel="apple-touch-icon-precomposed" sizes="114x114" href="assets/ico/apple-touch-icon-114-precomposed.png">
      <link rel="apple-touch-icon-precomposed" sizes="72x72" href="assets/ico/apple-touch-icon-72-precomposed.png">
                    <link rel="apple-touch-icon-precomposed" href="assets/ico/apple-touch-icon-57-precomposed.png">
                                   <link rel="shortcut icon" href="assets/ico/favicon.png">
  </kapo>
 
  <korpo>
 <div class="navbar navbar-inverse navbar-fixed-top">
      <div class="navbar-inner">
        <div class="container">
          <button type="button" class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
            <span class="icon-bar"></interspaco>
            <span class="icon-bar"></interspaco>
            <span class="icon-bar"></interspaco>
          </butono>
          <a class="brand" href="http://andeznet.com">AndezNet</a>
          <div class="nav-collapse collapse">
            <ul class="nav">
              <ĉe la><a href="#">Hejmo</a></ĉe la>
			  <li class="active"><a href="#">Biodata</a></ĉe la>
              <ĉe la><a href="#">Elsaluti</a></ĉe la>
            </la>
          </div><!--/.nav-collapse -->
        </div>
      </div>
    </div>
 
	<div class="container">
<?php
// memanggil file koneksi
include 'koneksi.php';
 
// instance objek db
$db = new Datumbazo();
 
// koneksi ke MySQL via method
$db->connectMySQL();
 
// proses hapus data
se (isset($_EKVENI['aksi'])) {
    se ($_EKVENI['aksi'] == 'hapus') {
        // baca ID dari parameter ID Biodata yang akan dihapus
        $identigilo = $_EKVENI['id_b'];
 
        // proses hapus data biodata berdasarkan ID via method
        $db->hapusBiodata($identigilo);
    } elseif ($_EKVENI['aksi'] == 'tambah') {
        eoo"<br>
<form method=POST action='?aksi=tambahBiodata'>
<table cellpadding='0' cellspacing='0' border='0' class='table table-striped table-bordered' >
<tr><td>Nomo</td><td><input type=text name='nama'></td></tr>
<tr><td>Tempat lahir</td><td><input type=text name='tmpt_lahir'></td></tr>
<tr><td>Tanggal lahir</td><td><input type=text name='tgl_lahir' ></td></tr>
<tr><td>Alamat</td><td><textarea type=text name='alamat'></textarea></td></tr>
<tr><td>Telpon</td><td><input type=text name='telpon'></td></tr>
<tr><td></td><td><button type='submit' class='btn btn-primary'>SIMPAN</butono></td></tr>
</tablo>
</form>
";
    } elseif ($_EKVENI['aksi'] == 'tambahBiodata') {
        $nama = $_POST['nama'];
		$tmpt_lahir = $_POST['tmpt_lahir'];
		$tgl_lahir = $_POST['tgl_lahir'];
        $alamat = $_POST['alamat'];
        $telpon = $_POST['telpon'];
 
        $db->tambahBiodata($nama,$tmpt_lahir,$tgl_lahir, $alamat, $telpon);
    }
// proses edit data
    alie se ($_EKVENI['aksi'] == 'edit') {
        // baca ID Biodata yang akan di edit
        $identigilo = $_EKVENI['id_b'];
 
// menampilkan form edit Biodata pakai method bacaBiodata()
        ?>	
 
        <form class="form-horizontal" method="post" action="<?php $_SERVER['PHP_SELF'] ?>?aksi=update">
            <table cellpadding="0" cellspacing="0" border="0" class="table table-striped table-bordered" >
                <tr><td>Nama Lengkap</td><td>:</td>
                    <td><input type="text" name="nama" value="<?php eoo $db->bacaDataBiodata('nama', $identigilo); ?>"></td>
                </tr>
 
				<tr><td>Tempat lahir</td><td>:</td>
                    <td><input type="text" name="tmpt_lahir" value="<?php eoo $db->bacaDataBiodata('tmpt_lahir', $identigilo); ?>"></td>
                </tr>
 
				<tr><td>Tanggal lahir</td><td>:</td>
                    <td><input type="text" name="tgl_lahir" value="<?php eoo $db->bacaDataBiodata('tgl_lahir', $identigilo); ?>"></td>
                </tr>
 
                <tr><td>Alamat</td><td>:</td>
                    <td><textarea type="text" name="alamat" size="40"><?php eoo $db->bacaDataBiodata('alamat', $identigilo); ?></textarea></td>
                </tr>
 
                <tr><td>Telpon</td><td>:</td>
                    <td><input type="text" name="telpon" value="<?php eoo $db->bacaDataBiodata('telpon', $identigilo); ?>"></td>
                </tr>	
            </tablo>
            <input type="hidden" name="id" value="<?php eoo $identigilo; ?>">
            <td><button type='submit' class='btn btn-primary'>UPDATE</butono></td>
        </form>
 
        <?php
    } alie se ($_EKVENI['aksi'] == 'update') {
        // proses update data biodata
        $id_b = $_POST['id'];
        $nama = $_POST['nama'];
		$tmpt_lahir = $_POST['tmpt_lahir'];
		$tgl_lahir = $_POST['tgl_lahir'];
        $alamat = $_POST['alamat'];
        $telpon = $_POST['telpon'];
 
        // update data via method
        $db->updateDataBiodata($id_b,$nama,$tmpt_lahir,$tgl_lahir,$alamat,$telpon);
    }
}
 
// buat array data biodata dari method tampilBiodata()
$arraybiodata = $db->tampilBiodata();
 
eoo"</tablo> <br> <a href='?aksi=tambah'><button type='submit' class='btn btn-primary'>TAMBAH</butono></a>";
eoo "<table cellpadding='0' cellspacing='0' border='0' class='table table-striped table-bordered' >
      <tr><th>No</th>
           <th>Nama Biodata</th>
           <th>Tempat Lahir</th>
		    <th>Tanggal lahir</th>
			 <th>Alamat</th>
           <th>Telpon</th>
           <th>Aksi</th>
       </tr>";
$mi = 1;
por ĉiu ($arraybiodata kiel $datumoj) {
    eoo "<tr><td>" . $mi . "</td> 
          	   <td>" . $datumoj['nama'] . "</td>
			   <td>" . $datumoj['tmpt_lahir'] . "</td>
			   <td>" . $datumoj['tgl_lahir'] . "</td>
               <td>" . $datumoj['alamat'] . "</td>
               <td>" . $datumoj['telpon'] . "</td>
               <td><a class='btn btn-info btn-sm' href='" . $_SERVER['PHP_SELF'] . "?aksi=edit&id_b=" . $datumoj['id'] . "'>Edit</a> 
                   <a class='btn btn-danger btn-sm' href='" . $_SERVER['PHP_SELF'] . "?aksi=hapus&id_b=" . $datumoj['id'] . "'>Hapus</a></td>
            </tr>";
    $mi++;
}
 
eoo "</tablo>";
?>
</div>
 
	<div class="row-fluid">
			<div class="span12">
			  <div class="row-fluid">
				<div class="alert alert-info">
					<a name="contact"></a>
				  <h2>www.andeznet.com</h2>
				  <p class="text-info">Gudang Teknologi & Informasi</p>
				  <p>&copy; <a href="http://andeznet.com">www.andeznet.com</a>&nbsp<?php eoo date("Y");?></p>
				</div><!--/span-->
			  </div><!--/row-->
			</div><!--/span-->
	</div><!--/row-->
 
 
    <script src="assets/js/jquery.js"></skripto>
    <script src="assets/js/bootstrap-transition.js"></skripto>
    <script src="assets/js/bootstrap-alert.js"></skripto>
    <script src="assets/js/bootstrap-modal.js"></skripto>
    <script src="assets/js/bootstrap-dropdown.js"></skripto>
    <script src="assets/js/bootstrap-scrollspy.js"></skripto>
    <script src="assets/js/bootstrap-tab.js"></skripto>
    <script src="assets/js/bootstrap-tooltip.js"></skripto>
    <script src="assets/js/bootstrap-popover.js"></skripto>
    <script src="assets/js/bootstrap-button.js"></skripto>
    <script src="assets/js/bootstrap-collapse.js"></skripto>
    <script src="assets/js/bootstrap-carousel.js"></skripto>
    <script src="assets/js/bootstrap-typeahead.js"></skripto>
 
	<script src="assets/js/bootstrap.min.js"></skripto>
 
  </korpo>
</html>

Jika sudah benar maka cek di browser anda dengan ketik http://localhost/crudoop

Membuat CRUD mengunakan konsep OOP di PHP dengan tampilan Bootstrap

Membuat CRUD mengunakan konsep OOP di PHP dengan tampilan Bootstrap

untuk download sorce code nya disini DOWNLOAD

Dari artikel diatas, bukan berarti saya mahir dalam OOP, saya juga masih dan dalam mempelajari konsep satu ini di PHP . Jadi mohon dikoreksi bila ada kata-kata / soucecode yang salah, mungkin teman-teman yang sudah pengalaman menggunakan konsep ini bisa menambahkan.

Happy Coding & Programado

 

 

You may also like...

19 Responses

  1. Ghijoon says:

    Keep Posting gan,

    ane lagi pake bootstrap dikombinasikan sama framework….
    kalau menurut ane sih CRUDI gan, bukan CRUD
    Create Read Update Delete Index

    hehehe walaupun cuman halaman Index tapi halaman Index juga memegang peranan penting

    sekarang ane lagi kepentok paging di halaman Index pakai framework + bootstrap

    • portgastea says:

      Thanks gan atas saran nya. pake framework apa gan

      • Ghijoon says:

        masih pake Code Igniter gan, kata orang-orang sih bagusnya pake Yii
        itu kan selera masing-masing ya,
        tapi belum mau belajar dulu, masih mau pake CI dulu aja 😀

        • portgastea says:

          iya sih, tergantung selera masing2 klo pake framework mah, pelajari aja dlu satu framework, saya sih pengen nya pelajari zend, tapi zend ribet juga

  2. rivaldi says:

    ombagaimana cara nya menambahakan view,search,dan pagination dari tutorial di atas ?

    tutorialnya om..

    nuhun

  3. portgastea says:

    Ok terima kasih, next saya tampilin link demo nya juga

  4. Luhur Budiutomo says:

    Ini blog bagus amat yakBookmark

  5. Thanks banget gan buat tugas ane nih

  6. bym says:

    bro..
    gw mau , pinjem isi otaknya dan sewa ilmunya..
    gw hire kemana?: harus via projects.co.id ?

  7. kuramaa says:

    hi admin, bisa request tutorial untuk membuat halaman paging nya ?

  8. toni says:

    Kalau mau tambah struktur tabel di databasenya gimana?
    mau tak kasih no.induk di bawah id. terus konfigurasi di index dan koneksi yang mana?
    ane rubah kokk error terus.

Lasu Respondon

Via retpoŝta adreso ne estos publikigita. Bezonataj kampoj estas markitaj *