14.4. CRUD dengan Model MVC

November 22, 2008
Setelah membuat Crud dengan 1 halaman, selanjutnya kita akan membuat CRUD dengan Model MVC (Model, View dan Controller), Membuat CRUD dengan MVC akan memudah kita membaca script karena bagian-bagian telah terpisah-pisah sesuai fungsinya.









Buatlah Folder  sebagai berikut :

com_oto

- Site

---- Models

---- Views

--------Images

---- Controllers



Pada Folder Site buatlah sebuah file PHP com_oto.php

<html>

<body>
<h2>CRUD PHP | </h2>
<h3>CREATE - READ - UPDATE - DELETE DATABASE</h3>
<p><a href="/com_oto.php">Home</a> | <a href="/?page=insert">Tambah Data</a></p>



<?php
//koneksi ke database
INCLUDE ('controllers/class.oto.php');

// Baca database, kemudian data-nya dijadikan sebuah objek untuk ditampilkan dalam tabel
$sql = mysql_query("SELECT * FROM inv_user ORDER BY iduser");
//-------------------------------------------------------------------------------------------------------------------------------

// Tambah data ke database, jika didapati get page
if ($_GET['page']){
INCLUDE ('views/v_ototambah.php');

include ('models/m_ototambah.php');//membaca file eksekusi untuk menyimpan data
}
// Akhir tambah data ke databasw
//-------------------------------------------------------------------------------------------------------------
// menampilkan data
INCLUDE ('views/v_show.php');
?>



<?php
// Edit data dari database jika didapati get edit
if ($_GET['edit']){
// membaca database berdasarkan get kemudian menampilkannya ke dalam form
$editsql = mysql_query ("SELECT * FROM inv_user WHERE iduser = '".$_GET['edit']."'");
$selectedit = mysql_fetch_object($editsql);
INCLUDE ('views/v_editoto.php');
?>

<?php
}
?>


<?php
// Hapus data database berdasarkan get hapus
if ($_GET['hapus']){
mysql_query("DELETE FROM inv_user WHERE iduser = '".$_GET['hapus']."'");
header ("location:com_oto.php");
}
// Akhir hapus data database
//-----------------------------------------------------------------------------------------------------------------------
?>

<p><a href="/com_oto.php">Home</a> | <a href="/?page=insert">Tambah Data</a></p>
<br />
&copy; <?=date("Y");?>
</body>
</html>

Pada Folder Model buatlah file :

m_otoedit.php

<?php
    require_once ('../controllers/class.oto.php');
    $id=$_GET['id'];
$nama_br=$_POST['nama'];
$telpkantor_br=$_POST['telpkantor'];
$ext_br=$_POST['ext'];
$hp_br=$_POST['hp'];
$email_br=$_POST['email'];
$pinbb_br=$_POST['pinbb'];

$query= "update inv_user set iduser='$id',
    nama='$nama_br',
telpkantor='$telpkantor_br',
ext='$ext_br',
hp='$hp_br',
email='$email_br',
pinbb='$pinbb_br'
    where iduser='$id'";
$exe=mysql_query($query,$koneksi);
    header ("location:../com_oto.php");
?>

dan buatlah file lagi m_ototambah.php

<?php
// membuat semacam validasi sederhana untuk variable post

$nama = $_POST['nama'];
$telpkantor= $_POST['telpkantor'];
$ext = $_POST['ext'];
$hp = $_POST['hp'];
$email = $_POST['email'];
$pinbb= $_POST['pinbb'];

$tbsimpan = $_POST['tbsimpan'];
if ($tbsimpan){

if (!empty($nama)){

mysql_query ("INSERT INTO inv_user
  VALUES('','$nama','$telpkantor','$ext','$hp','$email','$pinbb')");
header ("location:com_oto.php");

}else{
 echo "Nama harus diisi";
}

}
?>


Pada Folder Views buatlah File v_editoto.php

<h3>Edit Data</h3>
<form action="models/m_otoedit.php?id=<?=$selectedit->iduser;?>" method="post">
<table>
<tr>
<td>ID User</td>
<td>:</td>
<td><input type="text" name="iduser" size="30" value="<?=$selectedit->iduser;?>" /></td>
</tr>

<tr>
<td>Nama</td>
<td>:</td>
<td><input type="text" name="nama" size="30" value="<?=$selectedit->nama;?>" /></td>
</tr>

<tr>
<td>Telp Kantor</td>
<td>:</td>
<td><input type="text" name="telpkantor" size="30" value="<?=$selectedit->telpkantor;?>" /></td>
</tr>

<tr>
<td>Ext</td>
<td>:</td>
<td><input type="text" name="ext" size="30" value="<?=$selectedit->ext;?>" /></td>
</tr>

<tr>
<td>HP</td>
<td>:</td>
<td><input type="text" name="hp" size="30" value="<?=$selectedit->hp;?>" /></td>
</tr>

<tr>
<td>Email</td>
<td>:</td>
<td><input type="text" name="email" size="30" value="<?=$selectedit->email;?>" /></td>
</tr>

<tr>
<td>PIN BB</td>
<td>:</td>
<td><input type="text" name="pinbb" size="30" value="<?=$selectedit->pinbb;?>" /></td>
</tr>

<tr>
<td></td>
<td></td>
<td><input type="submit" name="update" value="Update" /></td>
</tr>
</table>
</form>

buatlah file lagi v_show.php

html>
<table border="1" cellpadding="0" cellspacing="0">
<tr bgcolor="#CCC">
<td align="center">ID USER</td>
<td align="center">Nama</td>
<td align="center">Telp Kantor</td>
<td align="center">Ext</td>
<td align="center">HP</td>
<td align="center">Email</td>
<td align="center">PIN BB</td>
<td align="center">Aksi</td>
</tr>
<?php
// disini kita mulai array data dengan menjadi objek untuk ditampilkan
while ($hsl = mysql_fetch_object($sql)){ ?>
<tr>
<td>&nbsp;<?=$hsl->iduser;?>&nbsp;</td>
<td>&nbsp;<?=$hsl->nama;?>&nbsp;</td>
<td>&nbsp;<?=$hsl->telpkantor;?>&nbsp;</td>
<td>&nbsp;<?=$hsl->ext;?>&nbsp;</td>
<td>&nbsp;<?=$hsl->hp;?>&nbsp;</td>
<td>&nbsp;<?=$hsl->email;?>&nbsp;</td>
<td>&nbsp;<?=$hsl->pinbb;?>&nbsp;</td>


<td>&nbsp;<a href="/?edit=<?=$hsl->iduser;?>">Edit</a>
|
<a href="/?hapus=<?=$hsl->iduser;?>">Hapus</a>
&nbsp;</td>
</tr>
<?php
}
// Akhir dari baca database
//---------------------------------------------------------------------------------------------------------------
?>
</table>
</html>

selajutnya buatlah file v_ototambah.php :

<h3>Tambah Data</h3>
<form action="" method="post">
<table>

<tr>
<td>Nama</td>
<td>:</td>
<td><input type="text" size="30" name="nama" /></td>
</tr>

<tr>
<td>Telp Kantor</td>
<td>:</td>
<td><input type="text" size="30" name="telpkantor" /></td>
</tr>

<tr>
<td>Ext</td>
<td>:</td>
<td><input type="text" size="30" name="ext" /></td>
</tr>

<tr>
<td>HP</td>
<td>:</td>
<td><input type="text" size="30" name="hp" /></td>
</tr>

<tr>
<td>email</td>
<td>:</td>
<td><input type="text" size="30" name="email" /></td>
</tr>


<td>PIN BB</td>
<td>:</td>
<td><input type="text" size="30" name="pinbb" /></td>
</tr>

<tr>
<td></td>
<td></td>
<td align="right"><input type="submit" name="tbsimpan" value="Simpan" /></td>
</tr>
</table>
</form>


Didalam Folder Controllers buatlah file  class.oto.php ::

<?php
// Membuat koneksi dengan database
error_reporting(0); // menghilangkan pesan error yang muncul
$host = "localhost"; // nama db host
$user = "root"; // user db
$pass = ""; // password db, kosongkan jika tidak ada
$namadb = "joomdle"; // nama database

// fungsi untuk koneksi ke database
$koneksi = mysql_connect($host,$user,$pass);

// fungsi untuk memilih database
$database = mysql_select_db ($namadb);

// membuat validasi untuk koneksi
if(!$koneksi){
echo "Tidak dapat terkoneksi";
}else{
if (!$namadb){
echo "Database tidak ditemukan";
}
}
// Akhir koneksi

?>

Note :

error_reporting(0) : perintah ini diperlukan untuk menghilangkan massage error akibat belum terbentuk variable.



Kenapa dipaksakan tampilan dibuat dalam satu layar ?

Hal ini akan berkaitan dengan pemuatan component pada joomla.

14.4. CRUD dengan Model MVC 14.4. CRUD dengan Model MVC Reviewed by Bank Ifoel on November 22, 2008 Rating: 5
Powered by Blogger.