Cara Membuat Aplikasi Web Dengan Codeigniter (Part 2) CRUD
Assalamu’alaikum, selamat malam
semua sebagai lanjutan tutorial kemarin kali ini saya akan sharing sedikit
tentang penggunaan model pada CodeIgniter.
Seperti yang sudah di ketahui fungsi Model adalah untuk proses Interaksi dengan database.
Berikut
Contoh Penggunaan Controller, View & Model
Pertama Konfigurasi
codeigniter pada file “application/config/database.php”
$active_group
= 'default';
$active_record
= TRUE;
$db['default']['hostname']
= 'localhost';
$db['default']['username']
= 'root';
$db['default']['password']
= '';
$db['default']['database']
= ‘mydb';
$db['default']['dbdriver']
= 'mysql';
….
•
Buat
database sesuai dengan database name pada file database.php
•
Buat
table dengan nama buku, spesifikasi tabel sbb:
Atau copy
script sql berikut :
CREATE TABLE `buku` (
`kode_buku` varchar(20) primary key NOT NULL,
`nama_buku` varchar(50) NOT NULL,
`judul_buku` varchar(100) NOT NULL,
`pengarang` varchar(50) NOT NULL,
`jumlah_halaman` int(11) NOT NULL,
`penerbit` varchar(100) NOT NULL,
`tahun_terbit` date NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Menampilkan
Seluruh Data
•
Buat
file buku_view.php pada ci_lat/application/views/
sbb :
<!doctype html>
<html>
<head>
<meta charset="utf-8"/>
<title><?php echo $judul; ?></title>
<style>
body{
font: 10px verdana
}
table{
width:100%; border:1px solid #ccc; align:left;
}
th{
background:blue; padding:3px; color:#fff;
}
td{
border:1px solid #ccc;
}
h1 {
font:20px verdana;
}
hr{
margin-bottom:20px;
}
h3 a{
font:10px verdana;
padding:5px;
background:red;
text-decoration:none;
color:#fff;
}
h3 a:hover{
background:green;
}
</style>
</head>
<body>
<h1>BUKU</h1>
<hr>
<h3><?php echo '<a href="'.base_url().'buku/add_buku">Add Buku</a>'?></h3>
<table>
<tr>
<th align="left">Kode Buku</th>
<th align="left">Nama Buku</th>
<th align="left">Judul Buku</th>
<th align="left">Pengarang</th>
<th align="left">Jumlah Halaman</th>
<th align="left">Penerbit</th>
<th align="left">Tahun Terbit</th>
<th colspan="2">Aksi</th>
</tr>
<?php
foreach($databuku as $buku){
?>
<tr>
<td><?php echo $buku->kode_buku; ?></td>
<td><?php echo $buku->nama_buku; ?></td>
<td><?php echo $buku->judul_buku; ?></td>
<td><?php echo $buku->pengarang; ?></td>
<td align="center"><?php echo $buku->jumlah_halaman; ?></td>
<td><?php echo $buku->penerbit; ?></td>
<td><?php echo $buku->tahun_terbit; ?></td>
<td><?php echo '<a href="'.base_url().'buku/delete_buku/'.$buku->kode_buku.'" onclick="return confirm(\'Anda yakin akan menghapus JUDUL BUKU '.$buku->judul_buku.'?\')">Delete</a>'?></td>
<td><?php echo '<a href="'.base_url().'buku/edit_buku/'.$buku->kode_buku.'">Edit</a>'?></td>
</tr>
<?php } ?>
</table>
</body>
</html>
•
Selanjutnya kita akan membuat model yang
berisi perintah sql untuk menampilkan data. Buat file “buku_model.php” pada ci_lat/application/models/ sbb :
<?php
class Buku_model extends CI_Model{
public function __construct()
{
parent::__construct();
$this->load->database();
}
public function get_buku_all()
{
$query=$this->db->query("SELECT * FROM buku ORDER BY kode_buku");
return $query->result();
}
}
•
Selanjutnya Buat file buku.php pada ci_lat/application/controller/ sbb :
<?php
class Buku extends CI_Controller{
Public function __Construct()
{
parent ::__construct();
$this->load->helper('form');
$this->load->helper('url');
}
public function index()
{
redirect('buku/list_buku');
}
public function list_buku()
{
$this->load->model('buku_model');
$data['judul'] = '::DATA BUKU::';
$data['databuku'] = $this->buku_model->get_buku_all();
$this->load->view('buku_view', $data);
}
}
•
Runing
Program dengan URL :
*untuk konfigurasi url bisa di lihat di tutorial part 1
•
Untuk
membuat form add Buat file View :
addbuku_view.php sbb
<!doctype html>
<html>
<head>
<title><?php echo $judul;?></title>
<style>
form{
font:10px verdana; width:340px;
margin:20px auto; border:1px solid #ccc;
padding:0;
}
label{
font-weight:bold; margin-left:20px;
}
.judul{
background:blue; padding:7px;
font:14px verdana; color:#fff;
border:1px solid blue;
}
input[type="text"]{
margin-left:20px; width:300px;
border:1px solid #ccc; height:25px;
border-radius:5px;
-webkit-border-radius:5px;
-moz-border-radius:5px;
}
input[type="submit"], input[type="reset"]{
margin-top:10px; font:10px verdana;
background:red; color:#fff;
padding:5px; width:50px;
border:1px solid red; border-radius:3px;
-webkit-border-radius:3px;
-moz-border-radius:3px;
}
input[type="submit"]{ margin-left:110px; }
input[type="reset"]{ margin-left:20px; }
</style>
</head>
<body>
<form action="simpan_buku" method="post">
<div class="judul">
:: TAMBAH BUKU ::
</div>
<p>
<label>Kode Buku</label><br />
<input name="kodebuku" type="text"/>
</p>
<p>
<label>Nama Buku</label><br />
<input type="text" name="namabuku"/>
<p>
<p>
<label>Judul Buku</label><br />
<input type="text" name="judulbuku"/>
</p>
<p>
<label>Pengarang</label><br />
<input name="pengarang" type="text"/>
</p>
<p>
<label>Jumlah Halaman</label><br />
<input type="text" name="jumlahhalaman">
</p>
<p>
<label>Penerbit</label><br />
<input type="text" name="penerbit">
</p>
<p>
<label>Tahun Terbit (yyyy-mm-dd)</label><br />
<input type="text" name="tahunterbit">
</p>
<p>
<input type="submit" value="Simpan"/>
<input type="reset" value="Back" onclick="self.history.back();"/>
</p>
</form>
</body>
</html>
•
Pada
file Model : buku_model.php, tambahkan coding berikut setelah public
function get_buku_all() :
public function simpan_buku()
{
$simpan_data=array(
'kode_buku ' => $this->input->post('kodebuku'),
'nama_buku' => $this->input->post('namabuku'),
'judul_buku' => $this->input->post('judulbuku'),
'pengarang' => $this->input->post('pengarang'),
'jumlah_halaman' => $this->input->post('jumlahhalaman'),
'penerbit' => $this->input->post('penerbit'),
'tahun_terbit' => $this->input->post('tahunterbit')
);
$simpan = $this->db->insert('buku', $simpan_data);
return $simpan;
}
•
Pada
file Controller : buku.php, tambahkan coding berikut setelah public
function list_buku() :
public function add_buku()
{
$data['judul'] = '::DATA BUKU::';
$this->load->view('addbuku_view', $data);
}
public function simpan_buku()
{
$this->load->model('buku_model');
$this->buku_model->simpan_buku();
redirect('buku/index');
}
•
Runing
Program dengan URL :
•
Uji program dengan entry beberapa data
Delete Data
•
Pada
file Controller : buku.php, tambahkan coding berikut setelah public function simpan_buku():
public function delete_buku($kode_buku)• Pada file Model : buku_model.php, tambahkan coding berikut setelah public function simpan_buku() :
{
$this->load->model('buku_model');
$kode_buku = $this->buku_model->delete_buku($kode_buku);
redirect('buku/index');
}
public function delete_buku($kode_buku)
{
$query=$this->db->query("DELETE FROM buku WHERE kode_buku='$kode_buku'");
}
•
Runing
Program dengan URL :
•
Uji program dengan melakukan delete data
Update Data
•
Buat
file editbuku_view.php pada ci_lat/application/views sbb :
<!doctype html>
<html>
<head>
<title><?php echo $judul;?></title>
<style>
form{
font:10px verdana; width:340px;
margin:20px auto; border:1px solid #ccc;
padding:0;
}
label{
font-weight:bold; margin-left:20px;
}
.judul{
background:blue; padding:7px;
font:14px verdana; color:#fff;
border:1px solid blue;
}
input[type="text"]{
margin-left:20px; width:300px;
border:1px solid #ccc;
height:25px;
border-radius:5px;
-webkit-border-radius:5px;
-moz-border-radius:5px;
}
input[type="submit"], input[type="reset"]{
margin-top:10px; font:10px verdana;
background:red; color:#fff;
padding:5px; width:50px;
border:1px solid red;
border-radius:3px;
-webkit-border-radius:3px;
-moz-border-radius:3px;
}
input[type="submit"]{ margin-left:110px; }
input[type="reset"]{ margin-left:20px; }
</style>
</head>
<body>
<?php
$att = array('id' => 'user-buku');
echo form_open('buku/simpan_edit_buku', $att);
echo form_hidden('kode_buku',$edit->kode_buku);
?>
<form action="simpan_buku" method="post">
<div class="judul“> :: UPDATE BUKU ::</div>
<p>
<label>Kode Buku</label><br />
<input type="text" name="kodebuku" value="<?php echo $edit->kode_buku; ?>" readonly/>
</p>
<p>
<label>Nama Buku</label><br />
<input type="text" name="namabuku" value="<?php echo $edit->nama_buku; ?>"/>
<p>
<p>
<label>Judul Buku</label><br />
<input type="text" name="judulbuku" value="<?php echo $edit->judul_buku; ?>"/>
</p>
<p>
<label>Pengarang</label><br />
<input type="text" name="pengarang" value="<?php echo $edit->pengarang; ?>"/>
</p>
<p>
<label>Jumlah Halaman</label><br />
<input type="text" name="jumlahhalaman" value="<?php echo $edit->jumlah_halaman; ?>"/>
</p>
<p>
<label>Penerbit</label><br />
<input type="text" name="penerbit" value="<?php echo $edit->penerbit; ?>"/>
</p>
<p>
<label>Tahun Terbit (yyyy-mm-dd)</label><br />
<input type="text" name="tahunterbit" value="<?php echo $edit->tahun_terbit; ?>"/>
</p>
<p>
<input type="submit" value="Update"/>
<input type="reset" value="Back" onclick="self.history.back();"/>
</p>
</form>
</body>
</html>
•
Pada
file Controller : buku.php, tambahkan coding berikut setelah public
function delete_buku($kode_buku)
public function edit_buku($kode_buku)• Pada file Model : buku_model.php, tambahkan coding berikut setelah public function delete_buku($kode_buku)
{
$data['judul'] = '::DATA BUKU::';
$this->load->model('buku_model');
$data['edit']=$this->buku_model->edit_buku($kode_buku);
$this->load->view('editbuku_view', $data);
}
public function simpan_edit_buku()
{
$kode_buku = $this->input->post('kodebuku');
$nama_buku = $this->input->post('namabuku');
$judul_buku = $this->input->post('judulbuku');
$pengarang = $this->input->post('pengarang');
$jumlah_halaman = $this->input->post('jumlahhalaman');
$penerbit = $this->input->post('penerbit');
$tahun_terbit = $this->input->post('tahunterbit');
$data['judul'] = '::DATA BUKU::';
$this->load->model('buku_model');
$data['edit'] = $this->buku_model->simpan_edit_buku($kode_buku, $nama_buku, $judul_buku, $pengarang, $jumlah_halaman, $penerbit, $tahun_terbit);
redirect('buku/index');
}
public function edit_buku($kode_buku)
{
$q="SELECT * FROM buku WHERE kode_buku='$kode_buku'";
$query=$this->db->query($q);
return $query->row();
}
public function simpan_edit_buku($kode_buku, $nama_buku, $judul_buku, $pengarang, $jumlah_halaman, $penerbit, $tahun_terbit)
{
$data = array(
'kode_buku' => $kode_buku,
'nama_buku' => $nama_buku,
'judul_buku' => $judul_buku,
'pengarang' => $pengarang,
'jumlah_halaman' => $jumlah_halaman,
'penerbit' => $penerbit,
'tahun_terbit' => $tahun_terbit
);
$this->db->where('kode_buku', $kode_buku);
$this->db->update('buku', $data);
}
•
Runing
Program dengan URL :
•
Uji program dengan melakukan update data
Tidak ada komentar
1. Berkomentarlah yang baik
2. Jangan memasukkan Link tanpa seizin admin