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”
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:
0 komentar:
Posting Komentar