Berikut ini merupakan interface untuk mengelola data perpustakaan yang terdiri dari daftar buku, penerbit, pengarang dan bahasabahasa dengan fungsi insert,update,delete,view
1. DDL DATABASE “perpustakaan”
Hasilnya ketika sudah mengedit data:
Hasilnya ketika sudah memasukkan data:
Alhamdulilah, kelar jugaa ^.^
1. DDL DATABASE “perpustakaan”
Syntak SQL membuat DatabaseCREATE DATABASE perpustakaan
CREATE TABLE `buku` (
`id` int(11) NOT NULL
AUTO_INCREMENT,
`no_buku` varchar(50) NOT NULL,
`judul` text NOT NULL,
`edisi` varchar(100) NOT NULL,
`tahun_terbit` year(4) NOT NULL,
`penerbit_id` int(11) NOT NULL,
`bahasa_id` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `penerbit_id`
(`penerbit_id`),
KEY `bahasa_id` (`bahasa_id`)
) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=latin1
|
Syntak SQL membuat tabel Buku dan kunci kandidat
CREATE TABLE `bahasa` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`kode` varchar(4) NOT NULL,
`nama` varchar(200) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4
DEFAULT CHARSET=latin1
|
Membuat
View pada SQLYog
Vbuku
DELIMITER $$
USE `perpustakaan`$$
DROP VIEW IF EXISTS `vbuku`$$
CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY
DEFINER VIEW `vbuku` AS
SELECT
`b`.`id` AS `id`,
`b`.`no_buku` AS `no_buku`,
`b`.`judul` AS `judul`,
`b`.`edisi` AS
`edisi`,
`b`.`tahun_terbit` AS `tahun_terbit`,
`t`.`nama` AS `penerbit`,
`t`.`kota` AS `kota`,
`bhs`.`nama` AS `bahasa`,
GROUP_CONCAT(`p`.`nama`
SEPARATOR '|') AS `pengarang`
FROM ((((`buku` `b`
LEFT JOIN `penerbit` `t`
ON ((`t`.`id` =
`b`.`penerbit_id`)))
LEFT JOIN `bahasa` `bhs`
ON ((`bhs`.`id` =
`b`.`bahasa_id`)))
LEFT JOIN `buku_pengarang`
`bp`
ON ((`bp`.`buku_id` =
`b`.`id`)))
LEFT JOIN `pengarang` `p`
ON ((`p`.`id` =
`bp`.`pengarang_id`)))
GROUP BY `b`.`id`$$
DELIMITER ;
2.
Script cakePHP
Menggunakan Cake PHP versi 2, letakkan folder di xampp -> htdocs
kemudian rename menjadi nama"perpustakaan"
PenerbitsController.php
<?php
class
BahasasController extends AppController {
var $name='Bahasas';
var
$uses=array('Bahasa');
var $scaffold;
}
?>
BukusController.php
<?php
class BukusController
extends AppController {
var
$name='Bukus';
var
$uses = array('Vbuku','Buku','Penerbit','Pengarang','Bahasa');
function
index(){
$data
= $this->Vbuku->find('all');
$this->set('buku',
$data);
}
function
add() {
if
(!empty($this->data)) {
if
($this->Buku->save($this->data)) {
$this->Session->setFlash('Buku
telah disimpan');
$this->redirect(array('action'=>'index'),
null, true);
}
else {
$this->Session->setFlash('buku
belum disimpan.Coba lagi!.');
}
}
$penerbit
= $this->Penerbit->find('list', array());
$this->set('penerbit',
$penerbit);
$pengarang
= $this->Pengarang->find('list', array());
$this->set('pengarangs',
$pengarang);
$bahasa
= $this->Bahasa->find('list', array());
$this->set('bahasa',
$bahasa);
}
function
edit($id=null) {
if
(!empty($this->data)) {
if
($this->Buku->save($this->data)) {
$this->Session->setFlash('Buku
telah disimpan');
$this->redirect(array('action'=>'index'),
null, true);
}
else {
$this->Session->setFlash('buku
belum disimpan.Coba lagi!.');
}
}else
{
$this->data
= $this->Buku->findById($id);
}
$penerbit
= $this->Penerbit->find('list', array());
$this->set('penerbit',
$penerbit);
$pengarang
= $this->Pengarang->find('list', array());
$this->set('pengarangs',
$pengarang);
$bahasa
= $this->Bahasa->find('list', array());
$this->set('bahasa',
$bahasa);
}
function
delete($id =null) {
if
(!$id) {
$this->Session->setFlash('id
Buku tidak valid');
$this->redirect(array('action'=>'index'),
null, true);
}
if
($this->Buku->delete($id)) {
$this->Session->setFlash('Buku
#'.$id.' dihapus.');
$this->redirect(array('action'=>'index'),
null, true);
}
}
}
?>
add.ctp
<?php echo
$this->Form->create('Buku',array('url'=>'add'));?>
<fieldset>
<legend>Tambah Buku</legend>
<?php
echo $this->Form->input('judul');
echo $this->Form->input('Pengarang',array( 'type' =>
'select', 'multiple' => 'checkbox' ));
echo $this->Form->input('no_buku');
echo $this->Form->input('tahun_terbit');
echo $this->Form->input('edisi');
echo $this->Form->input('penerbit_id', array('div' =>
'typeselect','options' => $penerbit,'empty' => false));
echo $this->Form->input('bahasa_id', array('div' =>
'typeselect','options' => $bahasa,'empty' => false));
?>
</fieldset>
<?php echo $this->Form->end('Simpan');?>
<?php echo $this->Html->link('Daftar semua
buku',array('action'=>'index')); ?>$buku['Vbuku']['id']), null, 'Anda
yakin akan menghapus buku ini?'); ?>
</td>
</tr>
<?php endforeach;
?>
</table>
<?php endif;
?>
edit.ctp
<?php echo $this->Form->create('Buku',array('url'=>'edit'));?>
<fieldset>
<legend>Ubah Buku</legend>
<?php
echo $this->Form->hidden('id');
echo $this->Form->input('judul');
echo $this->Form->input('Pengarang',array( 'type' =>
'select', 'multiple' => 'checkbox' ));
echo $this->Form->input('no_buku');
echo $this->Form->input('tahun_terbit');
echo $this->Form->input('edisi');
echo $this->Form->input('penerbit_id', array('div' =>
'typeselect','options' => $penerbit,'empty' => false));
echo $this->Form->input('bahasa_id', array('div' =>
'typeselect','options' => $bahasa,'empty' => false));
?>
</fieldset>
<?php echo $this->Form->end('Simpan');?>
<?php echo $this->Html->link('Daftar semua
buku',array('action'=>'index')); ?>
Hasilnya:
Gambar 1.1. CakePHP
2.6.2 telah aktif
|
Gambar 1.2. localhost/perpus/Bahasas
Tampilan awal
Gambar 1.3.
Mengedit data di tabel bahasa. Pilih Aksi Edit
Hasilnya ketika sudah mengedit data:
Gambar 1.4.
menghapus data Pilih Aksi Delete
Hasilnya ketika data sudah dihapus
Gambar 1.5. Menambah/mengisi
data di tabel bahasa. Pilih Tambah
Buku
Hasilnya ketika sudah memasukkan data: