14.4. CRUD dengan Model MVC
Bank Ifoel
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 />
© <?=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> <?=$hsl->iduser;?> </td>
<td> <?=$hsl->nama;?> </td>
<td> <?=$hsl->telpkantor;?> </td>
<td> <?=$hsl->ext;?> </td>
<td> <?=$hsl->hp;?> </td>
<td> <?=$hsl->email;?> </td>
<td> <?=$hsl->pinbb;?> </td>
<td> <a href="/?edit=<?=$hsl->iduser;?>">Edit</a>
|
<a href="/?hapus=<?=$hsl->iduser;?>">Hapus</a>
</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.
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 />
© <?=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> <?=$hsl->iduser;?> </td>
<td> <?=$hsl->nama;?> </td>
<td> <?=$hsl->telpkantor;?> </td>
<td> <?=$hsl->ext;?> </td>
<td> <?=$hsl->hp;?> </td>
<td> <?=$hsl->email;?> </td>
<td> <?=$hsl->pinbb;?> </td>
<td> <a href="/?edit=<?=$hsl->iduser;?>">Edit</a>
|
<a href="/?hapus=<?=$hsl->iduser;?>">Hapus</a>
</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
Reviewed by Bank Ifoel
on
November 22, 2008
Rating:
