/*
SQLyog Enterprise - MySQL GUI v8.1 
MySQL - 5.5.5-10.1.9-MariaDB : Database - perpustakaan
*********************************************************************
*/




CREATE DATABASE /*!32312 IF NOT EXISTS*/`perpustakaan` /*!40100 DEFAULT CHARACTER SET latin1 */;

USE `perpustakaan`;

/*Table structure for table `buku` */


CREATE TABLE `buku` (
  `kodebuku` varchar(4) NOT NULL,
  `namabuku` varchar(20) DEFAULT NULL,
  `jenisbuku` varchar(10) DEFAULT NULL,
  `jumlahbuku` int(3) DEFAULT NULL,
  PRIMARY KEY (`kodebuku`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

/*Data for the table `buku` */

/*Table structure for table `buku_history` */


CREATE TABLE `buku_history` (
  `kodebuku` varchar(4) NOT NULL,
  `namabuku` varchar(20) DEFAULT NULL,
  `jenisbuku` varchar(10) DEFAULT NULL,
  `jumlahbuku` int(3) DEFAULT NULL,
  PRIMARY KEY (`kodebuku`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

/*Data for the table `buku_history` */

/*Table structure for table `pelanggan` */


CREATE TABLE `pelanggan` (
  `kodepelanggan` char(4) NOT NULL,
  `nama` varchar(20) DEFAULT NULL,
  `alamat` tinytext,
  `jeniskelamin` varchar(9) DEFAULT NULL,
  `nokartu` int(11) DEFAULT NULL,
  PRIMARY KEY (`kodepelanggan`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

/*Data for the table `pelanggan` */

insert  into `pelanggan`(kodepelanggan,nama,alamat,jeniskelamin,nokartu) values ('S001','RFA','Cengkareng','Perempuan',2),('S002','WTA','Meruya','Perempuan',3);

/*Table structure for table `pelanggan_history` */


CREATE TABLE `pelanggan_history` (
  `kodepelanggan` char(4) NOT NULL,
  `nama` varchar(20) DEFAULT NULL,
  `alamat` tinytext,
  `jeniskelamin` varchar(9) DEFAULT NULL,
  `nokartu` int(11) DEFAULT NULL,
  PRIMARY KEY (`kodepelanggan`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

/*Data for the table `pelanggan_history` */

insert  into `pelanggan_history`(kodepelanggan,nama,alamat,jeniskelamin,nokartu) values ('S003','LNV','Meruya','Perempuan',4);

/*Table structure for table `transaksi` */


CREATE TABLE `transaksi` (
  `idtransaksi` int(11) NOT NULL AUTO_INCREMENT,
  `kodepelanggan` varchar(4) DEFAULT NULL,
  `kodebuku` varbinary(4) DEFAULT NULL,
  `tglpinjam` date DEFAULT NULL,
  `tglkembali` date DEFAULT NULL,
  `jmlbuku` int(11) DEFAULT NULL,
  PRIMARY KEY (`idtransaksi`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

/*Data for the table `transaksi` */

/*Table structure for table `transaksi_history` */


CREATE TABLE `transaksi_history` (
  `idtransaksi` int(11) NOT NULL AUTO_INCREMENT,
  `kodepelanggan` varchar(4) DEFAULT NULL,
  `kodebuku` varbinary(4) DEFAULT NULL,
  `tglpinjam` date DEFAULT NULL,
  `tglkembali` date DEFAULT NULL,
  `jmlbuku` int(11) DEFAULT NULL,
  PRIMARY KEY (`idtransaksi`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

/*Data for the table `transaksi_history` */

/* Procedure structure for procedure `call_pelanggan` */

/*!50003 DROP PROCEDURE IF EXISTS  `call_pelanggan` */;

DELIMITER $$

/*!50003 CREATE DEFINER=`root`@`localhost` PROCEDURE `call_pelanggan`(IN ipar_kodepelanggan VARCHAR(4))
BEGIN
/*ini skrip untuk menampilkan pelanggan  berdasarkan yang kodepelanggan */
select kodepelanggan,nama,alamat,jeniskelamin,nokartu from pelanggan where kodepelanggan=ipar_kodepelanggan;
END */$$
DELIMITER ;

/* Procedure structure for procedure `sp_deletepelanggan` */

/*!50003 DROP PROCEDURE IF EXISTS  `sp_deletepelanggan` */;

DELIMITER $$

/*!50003 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_deletepelanggan`(IN ipar_kodepelanggan VARCHAR(4))
BEGIN
/*ini skrip untuk mmengkopy row ke history */
insert into pelanggan_history(kodepelanggan,nama,alamat,jeniskelamin,nokartu)  
SELECT kodepelanggan,nama,alamat,jeniskelamin,nokartu FROM pelanggan WHERE kodepelanggan=ipar_kodepelanggan;
/* skrip ini untuk mendelete */
delete from pelanggan where kodepelanggan=ipar_kodepelanggan;
END */$$
DELIMITER ;

/* Procedure structure for procedure `sp_insertpelanggan` */

/*!50003 DROP PROCEDURE IF EXISTS  `sp_insertpelanggan` */;

DELIMITER $$

/*!50003 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_insertpelanggan`(IN ipar_kodepelanggan varCHAR(4),IN ipar_namapelanggan VARCHAR(50),IN ipar_alamat VARCHAR(200), IN ipar_jeniskelamin VARCHAR(10),IN ipar_nokartu int)
BEGIN
/*ini skrip menyimpan ke tabel pelaggan */
insert into pelanggan(kodepelanggan,nama,alamat,jeniskelamin,nokartu) values (ipar_kodepelanggan,ipar_namapelanggan,ipar_alamat,ipar_jeniskelamin,ipar_nokartu);
END */$$
DELIMITER ;

/* Procedure structure for procedure `sp_updatepelanggan` */

/*!50003 DROP PROCEDURE IF EXISTS  `sp_updatepelanggan` */;

DELIMITER $$

/*!50003 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_updatepelanggan`(IN ipar_kodepelanggan VARCHAR(4),IN ipar_namapelanggan VARCHAR(50),IN ipar_alamat VARCHAR(200), IN ipar_jeniskelamin VARCHAR(10),IN ipar_nokartu INT)
BEGIN
/*ini skrip mengupdate ke tabel pelaggan */
update pelanggan set kodepelanggan=ipar_kodepelanggan,nama=ipar_namapelanggan,alamat=ipar_alamat,nokartu=ipar_nokartu where kodepelanggan=ipar_kodepelanggan;
END */$$
DELIMITER ;

