IT Solution

Wednesday 3 July 2013

Tutorial yii

July 03, 2013 Posted by Bops 1 comment
INSTALASI Yii:
posted by : Muhammad Nazih 
tgl ; 3 juli 2013

MEMBUAT TUTORIAL YII FRAMEWORK



  1. Download
  2. Letakkan di document root => /var/www
  3. Ektrak dan rename => yii
  4. Lihat juga requirements di http://localhost/yii/requirements/
  5. masuk ke direc /var/www/framework
  6. install dengan cara : ./yiic webapp /var/www/appyiiku
  7. ubah kepemilikan : chown 777 /var/www/appyiimu -R
  8. Ubah Mode di MVC : chmod 777 var/www/appyiimu -R
  9. masuk ke directory procted config buka main.php dan buka komentar

Untuk yii controller
    // uncomment the following to enable the Gii tool
    'gii'=>array(
    'class'=>'system.gii.GiiModule',
    'password'=>'1234', // dengan password anda
    // If removed, Gii defaults to localhost only. Edit carefully to taste.
    'ipFilters'=>array('127.0.0.1','::1'),
    ),
    ),
    // uncomment the following to enable URLs in path-format
    Untuk url menjadi lebih singkat / lebih enak di lihat
    'urlManager'=>array(
    'urlFormat'=>'path',
    'rules'=>array(
    '<controller:\w+>/<id:\d+>'=>'<controller>/view',
    '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
    '<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
    ),
    ),
    // uncomment the following to use a MySQL database
    Untuk Menghubungkan ke database
    'db'=>array(
    'connectionString' => 'mysql:host=localhost;dbname=dbpegawai',
    'emulatePrepare' => true,
    'username' => 'root',
    'password' => 'rahmatia',
    'charset' => 'utf8',
    ),
  1. Menganti Themes
  • Downloads template yang anda sukai terlebih dahulu
  • Tambahkan hasil Downloads ke dalam Directory themes
  • tambahkan file yang ke dalam file yang di bawah procted config main.php tambah kan seperti yang berwarna merah

    return array(
    'basePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..',
    'name'=>'Aplikasi Absesi Kelurahan ',
    'theme'=>'mortalkombat',

  • Mengganti Tampilan Awal
Ketika anda buka url aplikasi anda terdapat keterangan jelas bagaimana cara mengganti
tampilan web anda. Dengan pengetahuan HTML, tentu sangat mudah mengganti halaman
ini. Buka file C:\xampp\htdocs\aplikasiku\protected\views\site\index.php editlah sesuai
kreatifitas Anda, misalnya
<h1>Selamat Datang di Aplikasi Bopas</h1>
<p>Aplikasi ini digunakan untuk melakukan pengelolaan terhadap
administrasi program diklat yang diselenggarakan
oleh Pusdiklat Keuangan Umum - Badan Pendidikan dan Pelatihan
Keuangan - Kementerian Keuangan</p>
<p>Pendaftaran pegawai untuk mengikuti diklat dapat diselenggarakan
secara online dengan sistem yang terintegrasi
dan dapat dilihat secara uptodate secara online</p>
<p>Terima kasih</p>
Kemudian untuk mengganti footer default Yii, saya akan buka file di direktori
C:\xampp\htdocs\aplikasiku\protected\views\layouts\main.php kemudian pada bagian
bawah ada tampilan seperti berikut:
<div id="footer">
Copyright copy; <?php echo date('Y'); ?> by My
Company.<br/>
All Rights Reserved.<br/>
<?php echo Yii::powered(); ?>
</div><!-- footer -->
Lalu saya ubah menjadi seperti ini:
<div id="footer">
Copyright copy; <?php echo date('Y'); ?> by Hargi.<br/>
All Rights Reserved.<br/>
Powered by PusdiklatKU
</div><!-- footer -->

  • Membuat database sederhana
Sebelum membuat database ada perlunya untuk menyiapkan software databse designer,
penulis menggunakan MySQL Workbench, skenario kita kali ini akan membuat aplikasi bisnis
Komunitas eLearning IlmuKomputer.Com
Copyright © 2008‐2012 IlmuKomputer.Com
2
yang berhungan dengan training, buka browser lalu ketikkan http://localhost/phpmyadmin,
buat database baru dengan nama aplikasikudb, buat 4 tabel dengan ketentuan sebagai
berikut:
1. Table user dengan 4 field yaitu sebagai berikut:
a. iduser, int(11)
b. username, varchar(45)
c. password, varchar(45)
d. name varchar(45)
2. Table category dengan 2 field yaitu sebagai berikut:
a. idcategory, int(11)
b. category_name, varchar(45)
3. Table training dengan 5 field yaitu sebagai berikut:
a. idtraining, int(11)
b. name_training, varchar(45)
c. hours, varchar(45)
d. time_start, (time)
e. time_end, (time)
4. Table participant dengan 3 field yaitu sebagai berikut:
a. idparticipant, int(11)
b. name_participant, varchar(45)
c. nip, bigint(18)
dengan gambar EER sebagai berikut:



Berikut script mysql nya:
CREATE TABLE IF NOT EXISTS `category` (
`idcategory` int(11) NOT NULL AUTO_INCREMENT,
`category_name` varchar(45) DEFAULT NULL,
PRIMARY KEY (`idcategory`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
INSERT INTO `category` (`idcategory`, `category_name`) VALUES
(1, 'Diklat Teknis Umum (DTU)'),
(2, 'Diklat Fungsional (DF)');
CREATE TABLE IF NOT EXISTS `participant` (
`idparticipant` int(11) NOT NULL AUTO_INCREMENT,
`name_participant` varchar(45) DEFAULT NULL,
`nip` bigint(18) DEFAULT NULL,
`city` varchar(45) DEFAULT NULL,
`trainingid` int(11) NOT NULL,
PRIMARY KEY (`idparticipant`),
KEY `fk_participant_training1` (`trainingid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=17 ;
INSERT INTO `participant` (`idparticipant`, `name_participant`, `nip`,
`city`, `trainingid`) VALUES
(1, 'Pegawai1', 198607202007011004, 'Surabaya', 2),
(2, 'Ninin Sapto Hargiyanto', 198607202007011001, 'Jakarta', 2);
CREATE TABLE IF NOT EXISTS `training` (
`name_training` varchar(45) DEFAULT NULL,
`hours` varchar(45) DEFAULT NULL,
`time_start` date DEFAULT NULL,
`time_end` date DEFAULT NULL,
`categoryid` int(11) NOT NULL,
PRIMARY KEY (`idtraining`),
KEY `fk_training_category` (`categoryid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
INSERT INTO `training` (`idtraining`, `name_training`, `hours`,
`time_start`, `time_end`, `categoryid`) VALUES
(1, 'Legal Drafting', '30', '2012-07-12', '2012-07-19', 1),
(2, 'Pranata Komputer', '150', '2012-07-15', '2012-08-10', 2);
CREATE TABLE IF NOT EXISTS `user` (
`iduser` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(45) DEFAULT NULL,
`password` varchar(45) DEFAULT NULL,
`name` varchar(45) DEFAULT NULL,
PRIMARY KEY (`iduser`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
INSERT INTO `user` (`iduser`, `username`, `password`, `name`) VALUES
(1, 'admin', '21232f297a57a5a743894a0e4a801fc3', 'Administrator'),
(2, 'hargi', '69510e32280ccbb3eb99bb36fc24b312', 'Hargi');
ALTER TABLE `participant`
ADD CONSTRAINT `participant_ibfk_1` FOREIGN KEY (`trainingid`) REFERENCES
`training` (`idtraining`) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE `training`
ADD CONSTRAINT `fk_training_category` FOREIGN KEY (`categoryid`)
REFERENCES `category` (`idcategory`) ON DELETE NO ACTION ON UPDATE NO
ACTION;


  • Melakukan Generate Tabel dengan Gii
Fitur Yii framework yang membuat cepat suatu pemrograman adalah adanya bantuan dari
extensions bernama Gii, singkatan dari Yii Code Generator yang berfungsi untuk
menghasilkan kode secara otomoatis. Implementasinya adalah membuat model, class dan
controller dengan klik‐klik saja.
Ok, langsung aja kita buka folder C:\xampp\htdocs\aplikasiku\protected\config\main.php
lalu cari code berikut:
'modules'=>array(
// uncomment the following to enable the Gii tool
/*
'gii'=>array(
'class'=>'system.gii.GiiModule',
'password'=>'Enter Your Password Here',
// If removed, Gii defaults to localhost only. Edit
carefully to taste.
'ipFilters'=>array('127.0.0.1','::1'),
),
*/
),
Ubah codenya menjadi seperti berikut:
'modules'=>array(
'gii'=>array(
'class'=>'system.gii.GiiModule',
'password'=>'passwordku',
'ipFilters'=>array('127.0.0.1','::1'),
),
),
Kode diatas berfungsi untuk mengaktifkan Yii Code Generator (Gii) dengan mengisikan
passwordnya dengan nilai passwordku, kemudian cari lagi kode koneksi database nya
seperti dibawah ini:
/*
'db'=>array(
'connectionString' =>
'mysql:host=localhost;dbname=testdrive',
'emulatePrepare' => true,
'username' => 'root',
'password' => '',
'charset' => 'utf8',
),
*/
Lalu ubah menjadi seperti berikut:
'db'=>array(
'connectionString' =>
'mysql:host=localhost;dbname=aplikasikudb',
'emulatePrepare' => true,
'username' => 'root',
'password' => '',
'charset' => 'utf8',
),
Kode diatas memberikan koneksi ke database kita yang telah kita buat sebelumny. Buka lagi
browser anda lalu ketikkan alamat http://localhost/aplikasiku/index.php?r=gii masukkan
passwordku di kolom password lalau enter. Akan muncul 5 list, yang akan kita lakukan disini
adalah Model Generator dan Crud Generator saja.


Kode diatas memberikan koneksi ke database kita yang telah kita buat sebelumny. Buka lagi
browser anda lalu ketikkan alamat http://localhost/aplikasiku/index.php?r=gii masukkan
passwordku di kolom password lalau enter. Akan muncul 5 list, yang akan kita lakukan disini
adalah Model Generator dan Crud Generator saja.

Pertama Klik pada Model Generator, pastikan anda ingat nama 4 tabel di database kita,
isikan Table Name dengan nama tabel kita, isikan nama Model Class dengan nama tabel
kita dengan huruf awal kapital klik Preview, Klik Generate. Ulangi untuk 3 tabel kita
Kedua Klik pada Crud Generator, isikan Model Class dengan nilai pada step Pertama tadi,
yaitu nama tabel dengan huruf awal kapital. Klik preview lalu Generate. Ulangi untuk 3
Model Class lainnya.
Selamat, kini kita telah mempunyai
4 file Model di dalam folder models, berekstensi php
4 file Controller di dalam folder controllers, berekstensi php
4 folder View di dalam folder views
Semuanya ada di dalam folder C:\xampp\htdocs\aplikasiku\protected. Kita akan fokus pada
folder di dalam protected ya. Jika ada kesalahan pastikan anda telah benar melakukan
generate Model Generator dan Crud Generator
Referensi:

  • Pengelolaan Aplikasi Web‐based
Hasil generate Gii pada tahap sebelumnya telah cukup untuk melakukan pengeloaan data
dan informasi lewat web yang terkoneksi dengan database kita. Kita telah dapat menambah,
merubah dan menghapus data.
Buka browser ketikkan http://localhost/aplikasiku/index.php?r=training
Hasilnya adalah anda dapat melihat daftar tabel berisi training yang telah terhubung dengan
database kita.
a) Menambah (Insert)
Untuk menambah data baru, diperlukan login. Default Yii adalah menggunakan
username : admin dan password : admin. Setelah berhasil login, Anda dapat melakukan
penambahan data ke dalam tabel dengan melihat pada jendela Operations, lalu klik
Create yang terdapat pada sisi samping tabel listing data.
b) Mengurangi (Update)
Sama seperti pada point a, klik pada Update
c) Menghapus (Delete)
Sama seperti pada point a, klik pada Delete
d) Mengelola (Manage)
Sama seperti pada point a, klik pada Manage. Akan muncul listing data yang powerfull,
fasilitas search berdasarkan data, ditambah pula 3 fitur Insert (Menambah), Update
(Merubah), dan Menghapus (Delete).

  • MODIFIKASI APLIKASI DASAR
Modifikasi Menu Kategori
Pada menu standar Yii, kita ingin menambahkan menu baru.
Buka C:\xampp\htdocs\aplikasiku\protected\views\layouts\main.php cari halaman berikut:
<div id="mainmenu">
<?php $this->widget('zii.widgets.CMenu',array(
'items'=>array(
array('label'=>'Home',
'url'=>array('/site/index')),
array('label'=>'About',
'url'=>array('/site/page', 'view'=>'about')),
array('label'=>'Contact',
'url'=>array('/site/contact')),

Ubah menjadi seperti berikut:
<div id="mainmenu">
<?php $this->widget('zii.widgets.CMenu',array(
'items'=>array(
array('label'=>'Home',
'url'=>array('/site/index')),
array('label'=>'Kelola Diklat',
'url'=>array('/category/index')),
Hasilnya memberikan link Kelola Diklat dengan tampilan (view) adalah category/index.php.
ke dalam Menu.

  • Modifikasi Tampilan Kategori
Untuk merubah tampilan nya buka file nya di dalam folder berikut:
C:\xampp\htdocs\aplikasiku\protected\views\category lalu edit index.php
Ubah <h1>Categories</h1> menjadi <h1>Pilih Kategori Diklat</h1>
Tampilan listingnya ternyata diarahkan ke _view, buka lagi file
C:\xampp\htdocs\aplikasiku\protected\views\category\_view.php
Ubah
<b><?php echo CHtml::encode($data->getAttributeLabel('idcategory'));
?>:</b>
<?php echo CHtml::link(CHtml::encode($data->idcategory),
array('view', 'id'=>$data->idcategory)); ?>
<br />
<b><?php echo CHtml::encode($data-
>getAttributeLabel('category_name')); ?>:</b>
<?php echo CHtml::encode($data->category_name); ?>
<br />
Menjadi cukup seperti ini
<h2><?php echo CHtml::link(CHtml::encode($data->category_name),
array('view', 'id'=>$data->idcategory)); ?></h2>
Ini akan menjadikan tampilan ketika di klik menu kategori, akan muncul listing data kategori
saja.

  • Modifikasi Isi Halaman
Ketika diklik masing‐masing kategori kita akan dihadapkan pada tampilah nama dari kategori
tersebut beserta link Operations‐nya. Kini kita akan merubah tampilanya menjadi daftar
diklat yang masuk dalam kategori tersebut
a. Pertama masuk ke folder view dari kategori lalu buka file view.php, hapus semua isinya
lalu ganti menjadi berikut ini
<?php
$this->breadcrumbs=array(
'Categories'=>array('index'),
$model->category_name,
);?>
Hal ini akan memberikan tampilan jejak posisi (breadcrumbs) dengan nama kategori.
b. Selain breadcrumbs, tentunya harus ada isinya. Isi dari kategori setelah diklik adalah list
diklat. Ada 5 langkah sbb yaitu:

1) Pada TrainingController definisikan dulu parameter Category pada bagian
ActionCreate. Buka folder controller lalu buka file TrainingController.php atur hingga
tampilanya sama dengan code dibawah ini:
public function actionCreate($id)
{
$model=new Training;
if(isset($_POST['Training']))
{
$model->attributes=$_POST['Training'];
$model->categoryid=$id;
if($model->save())
$this->redirect(array('view','id'=>$model-
>idtraining));
}
$this->render('create',array(
'model'=>$model,
));
}
Dengan kode ini, orang yang akan menambah diklat baru, harus melewati langkah
mengeklik nama kategori dahulu. Ini bermanfaat supaya tidak ada diklat dibuat
tanpa kategori sama sekali.
2) Sekarang saatnya membuat link Menambah Diklat pada view Category. Masuk ke
folder view dari kategori lalu buka file view.php tambahkan kode dibawah ini :
<?php
$this->menu=array(
array('label'=>'Tambah Diklat Baru',
'url'=>array('training/create','id'=>$model->idcategory )),);
?>
3) Ubah juga view dari _form.php dari Training, hilangkan field Categoryid atau untuk
amannya uncheck dengan //
<?php //echo $form->labelEx($model,'categoryid'); ?>
<?php //echo $form->textField($model,'categoryid'); ?>
<?php //echo $form->error($model,'categoryid'); ?>
Perintah diatas tidak digunakan karena pada langkah sebelumnya kita telah
mendefinisikan kategori untuk setiap Diklat yang dipilih, selain itu kalau diaktifkan
juga akan terjadi konflik dualisme kategori.
4) Dibagian view Kategori ini, selain bisa membuat training baru kita juga ingin
menambah peserta ke masing‐masing diklat. Buka CategoryController.php atur
script pada actionView menjadi seperti berikut:
public function actionView($id)
{
$totraining=new Training('search');
$totraining->unsetAttributes();
$totraining->categoryid=$id;
$this->render('view',array(
'model'=>$this->loadModel($id),
'totraining'=>$totraining,
));
}
5) Masuk ke folder view dari kategori lalu buka file view.php, kita ingin menampilkan
listing diklat yang dikategorikan per masing‐masing kategori, tambahkan kode
sebagai berikut:
<?php $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'training-grid',
'dataProvider'=>$totraining->search(),
//'filter'=>$totraining,
'emptyText'=>'Belum ada training pada kategori ini',
summaryText'=>'',
'columns'=>array(
array(
'name'=>'No',
'type'=>'raw',
'value'=>'$data->idtraining',
),
array(
'name'=>'Nama diklat',
'type'=>'raw',
'value'=>'Chtml::link($data-
>name_training,array(\'training/view\',\'id\'=>$data->idtraining))',
),
array(
'name'=>'Jamlat',
'type'=>'raw',
'value'=>'$data->hours',
),
)));?>
Berhasil sudah anda membuat tampilan statis kategori diklat sampai keisi‐isinya.
  • Modifikasi Subisi Halaman Aplikasi
Langkah ini adalah mirip langkah membuat kategori ke diklat, kita akan membuat peserta
yang dikategorikan per masing‐masing diklat. Hasilnya adalah mirip sebelumnya, kalau
sebelumnya ketika kategori diklik, yang muncul adalah listing diklat, maka langkah ini adalah
jika diklat diklik yang muncul adalah listing peserta diklat. Tentu ada sedikit perbedaan yaitu
tidak dilakukan langkah 2) karena tidak ada sub sub isi halaman, artinya peserta diklat tidak
memiliki anak kategori lagi, di kondisi tertentu bisa saja ada tapi untuk kali ini tidak ada.
Langkah ketiga juga tidak kita ulangi karena kita telah memasukkan pembahasan pembuatan
Mari kita mulai.
a. Pertama masuk ke folder view dari training lalu buka file view.php, hapus semua isinya
lalu ganti menjadi berikut ini
<?php
$this->breadcrumbs=array(
'Categories'=>array('index'),
$model->name_training,
); ?>
Hal ini akan memberikan tampilan jejak posisi (breadcrumbs) dengan nama diklat.
b. Selain breadcrumbs, tentunya harus ada isinya. Isi dari diklat setelah diklik adalah list
peserta. Ada 5 langkah sbb yaitu:
1) Pada ParticipantController definisikan dulu parameter Training pada bagian
ActionCreate. Buka folder controller lalu buka file ParticipantController.php atur
hingga tampilanya sama dengan code dibawah ini:

public function actionCreate($id)
{
$model=new Participant;
if(isset($_POST['Participant']))
{
$model->attributes=$_POST['Participant'];
$model->trainingid=$id;
if($model->save())
$this->redirect(array('view','id'=>$model-
>idparticipant));
}
$this->render('create',array(
'model'=>$model,
));
}
Dengan kode ini, orang yang akan menambah diklat baru, harus melewati langkah
mengeklik nama kategori dahulu. Ini bermanfaat supaya tidak ada diklat dibuat
tanpa kategori sama sekali.
2) Sekarang saatnya membuat link Menambah Peserta pada view Training. Masuk ke
folder view dari Training lalu buka file view.php tambahkan kode dibawah ini :

<?php
$this->menu=array(
array('label'=>'Daftarkan Peserta',
'url'=>array('participant/create','id'=>$model->idtraining )),);
?>
3) Ubah juga view dari _form.php dari Participant, hilangkan field Trainingid atau untuk
amannya uncheck dengan //
<?php //echo $form->labelEx($model,'trainingid'); ?>
<?php //echo $form->textField($model,'trainingid'); ?>
<?php //echo $form->error($model,'trainingid'); ?>?>
Perintah diatas tidak digunakan karena pada langkah sebelumnya kita telah
mendefinisikan Diklat untuk setiap Peserta yang dipilih, selain itu kalau diaktifkan
juga akan terjadi konflik dualisme Diklat.
4) Dibagian view Training ini, selain bisa membuat training baru kita juga ingin
menambah peserta ke masing‐masing diklat. Buka TrainingController.php atur script
pada actionView menjadi seperti berikut:
public function actionView($id)
{
$toparticipant=new Participant('search');
$toparticipant->unsetAttributes();
$toparticipant->trainingid=$id;
$this->render('view',array(
'model'=>$this->loadModel($id),
'toparticipant'=>$toparticipant,
));
}

5) Masuk ke folder view dari Training lalu buka file view.php, kita ingin menampilkan
listing diklat yang dikategorikan per masing‐masing training, tambahkan kode
sebagai berikut: ]
<?php $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'participant-grid',
'dataProvider'=>$toparticipant->search(),
//'filter'=>$toparticipant,
'emptyText'=>'Belum ada Peserta yang mendaftar pada diklat ini',
'summaryText'=>'',
'columns'=>array(
array(
'name'=>'No',
'type'=>'raw',
'value'=>'$data->idparticipant',
),
array(
'name'=>'Nama Peserta',
'type'=>'raw',
'value'=>'Chtml::link($data-
>name_participant,array(\'participant/view\',\'id\'=>$data-
>idparticipant))',
),
array(
'name'=>'Jamlat',
'type'=>'raw',
'value'=>'$data->city',
),
)));?>
Satu langkah lagi akan saya tambahkan yaitu tampilan dari Participant, buka folder view,
participant, view.php
  1. Breadcrumbs dari participant
$this->breadcrumbs=array(
'Participants'=>array('index'),
$model->idparticipant,
);
ubah menajdi:
$this->breadcrumbs=array(
'Participants'=>array('index'),
$model->name_participant,
);
  1. Ubah pula operations dari participant
$this->menu=array(
array('label'=>'List Participant', 'url'=>array('index')),
array('label'=>'Create Participant', 'url'=>array('create')),
array('label'=>'Update Participant', 'url'=>array('update',
'id'=>$model->idparticipant)),
array('label'=>'Delete Participant', 'url'=>'#',
'linkOptions'=>array('submit'=>array('delete','id'=>$model-
>idparticipant),'confirm'=>'Are you sure you want to delete this
item?')),
array('label'=>'Manage Participant', 'url'=>array('admin')),
);
Ubah menjadi seperti ini:
$this->menu=array(
array('label'=>'Ubah Peserta', 'url'=>array('update',
'id'=>$model->idparticipant)),
array('label'=>'Hapus Peserta', 'url'=>'#',
'linkOptions'=>array('submit'=>array('delete','id'=>$model-
>idparticipant),'confirm'=>'Are you sure you want to delete this
item?')),
);
  1. Kemudian ubah pula tampilan dari tulisan peserta diklat dari menjadi
<h1><?php echo $model->name_participant; ?></h1>
  1. Data peserta juga ingin kita ubah, dari seperti ini
<?php $this->widget('zii.widgets.CDetailView', array(
'data'=>$model,
'attributes'=>array(
'idparticipant',
'name_participant',
'nip',
'city',
'trainingid',
),
)); ?>
Menjadi begini
<?php $this->widget('zii.widgets.CDetailView', array(
'data'=>$model,
'attributes'=>array(
'name_participant',
'nip',
'city',
),
)); ?>
Langkah berikutnya, anda bisa berkreasi sendiri tentunya. Misal dihalaman update ingin
diubah, atau halaman Manage menurut anda perlu ditampilkan, halaman create ingin
dimodif dll. Hal penting yang harus diperhatikan adalah bahwa, setiap halaman view adalah
hasil representasi dari proses coding yang telah kita buat di controller, function actionView,
action adalah akan menghasilkan view.php, actionCreate akan menghasilkan create.php dst.
Selamat mencoba....!!!

DATA BASE KEPEGAWAIAN

July 03, 2013 Posted by Bops No comments
 DATA BASE KEPEGAWAIAN
posted by :Muhammad Nazih




SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL';

CREATE SCHEMA IF NOT EXISTS `dbpegawai` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci ;
USE `dbpegawai` ;

-- -----------------------------------------------------
-- Table `dbpegawai`.`agama`
-- -----------------------------------------------------
CREATE  TABLE IF NOT EXISTS `dbpegawai`.`agama` (
  `id` INT NOT NULL AUTO_INCREMENT ,
  `nama` VARCHAR(20) NOT NULL ,
  PRIMARY KEY (`id`) ,
  UNIQUE INDEX `nama_UNIQUE` (`nama` ASC) )
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `dbpegawai`.`divisi`
-- -----------------------------------------------------
CREATE  TABLE IF NOT EXISTS `dbpegawai`.`divisi` (
  `id` INT NOT NULL AUTO_INCREMENT ,
  `nama` VARCHAR(30) NOT NULL ,
  PRIMARY KEY (`id`) ,
  UNIQUE INDEX `nama_UNIQUE` (`nama` ASC) )
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `dbpegawai`.`jabatan`
-- -----------------------------------------------------
CREATE  TABLE IF NOT EXISTS `dbpegawai`.`jabatan` (
  `id` INT NOT NULL AUTO_INCREMENT ,
  `nama` VARCHAR(30) NOT NULL ,
  PRIMARY KEY (`id`) ,
  UNIQUE INDEX `nama_UNIQUE` (`nama` ASC) )
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `dbpegawai`.`pegawai`
-- -----------------------------------------------------
CREATE  TABLE IF NOT EXISTS `dbpegawai`.`pegawai` (
  `id` INT NOT NULL AUTO_INCREMENT ,
  `nip` VARCHAR(20) NOT NULL ,
  `nama` VARCHAR(45) NOT NULL ,
  `jenis_kelamin` VARCHAR(10) NOT NULL ,
  `tmp_lahir` VARCHAR(30) NOT NULL ,
  `tgl_lahir` DATE NOT NULL ,
  `id_agama` INT NOT NULL ,
  `id_divisi` INT NOT NULL ,
  `id_jabatan` INT NOT NULL ,
  `alamat` VARCHAR(100) NOT NULL ,
  `telp` VARCHAR(15) NOT NULL ,
  `email` VARCHAR(45) NULL ,
  `foto` VARCHAR(20) NULL ,
  PRIMARY KEY (`id`) ,
  UNIQUE INDEX `nip_UNIQUE` (`nip` ASC) ,
  UNIQUE INDEX `email_UNIQUE` (`email` ASC) ,
  INDEX `fk_pegawai_agama` (`id_agama` ASC) ,
  INDEX `fk_pegawai_divisi1` (`id_divisi` ASC) ,
  INDEX `fk_pegawai_jabatan1` (`id_jabatan` ASC) ,
  CONSTRAINT `fk_pegawai_agama`
    FOREIGN KEY (`id_agama` )
    REFERENCES `dbpegawai`.`agama` (`id` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `fk_pegawai_divisi1`
    FOREIGN KEY (`id_divisi` )
    REFERENCES `dbpegawai`.`divisi` (`id` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `fk_pegawai_jabatan1`
    FOREIGN KEY (`id_jabatan` )
    REFERENCES `dbpegawai`.`jabatan` (`id` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `dbpegawai`.`gaji`
-- -----------------------------------------------------
CREATE  TABLE IF NOT EXISTS `dbpegawai`.`gaji` (
  `id` INT NOT NULL AUTO_INCREMENT ,
  `id_pegawai` INT NOT NULL ,
  `gapok` DOUBLE NOT NULL ,
  `tunjab` DOUBLE NOT NULL ,
  `askes` DOUBLE NOT NULL ,
  `lain2` DOUBLE NULL ,
  PRIMARY KEY (`id`) ,
  INDEX `fk_gaji_pegawai1` (`id_pegawai` ASC) ,
  CONSTRAINT `fk_gaji_pegawai1`
    FOREIGN KEY (`id_pegawai` )
    REFERENCES `dbpegawai`.`pegawai` (`id` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `dbpegawai`.`materi`
-- -----------------------------------------------------
CREATE  TABLE IF NOT EXISTS `dbpegawai`.`materi` (
  `id` INT NOT NULL AUTO_INCREMENT ,
  `nama` VARCHAR(45) NOT NULL ,
  PRIMARY KEY (`id`) )
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `dbpegawai`.`diklat`
-- -----------------------------------------------------
CREATE  TABLE IF NOT EXISTS `dbpegawai`.`diklat` (
  `id` INT NOT NULL AUTO_INCREMENT ,
  `id_pegawai` INT NOT NULL ,
  `id_materi` INT NOT NULL ,
  `tgl` DATE NOT NULL ,
  `tempat` VARCHAR(100) NOT NULL ,
  `narasumber` VARCHAR(45) NULL ,
  `diklatcol` VARCHAR(45) NULL ,
  INDEX `fk_pegawai_has_materi_materi1` (`id_materi` ASC) ,
  INDEX `fk_pegawai_has_materi_pegawai1` (`id_pegawai` ASC) ,
  PRIMARY KEY (`id`) ,
  CONSTRAINT `fk_pegawai_has_materi_pegawai1`
    FOREIGN KEY (`id_pegawai` )
    REFERENCES `dbpegawai`.`pegawai` (`id` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `fk_pegawai_has_materi_materi1`
    FOREIGN KEY (`id_materi` )
    REFERENCES `dbpegawai`.`materi` (`id` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `dbpegawai`.`user`
-- -----------------------------------------------------
CREATE  TABLE IF NOT EXISTS `dbpegawai`.`user` (
  `id` INT NOT NULL AUTO_INCREMENT ,
  `nama` VARCHAR(45) NOT NULL ,
  `username` VARCHAR(30) NOT NULL ,
  `pass` VARCHAR(32) NOT NULL ,
  `email` VARCHAR(45) NOT NULL ,
  `role` VARCHAR(20) NOT NULL ,
  `joindate` DATETIME NOT NULL ,
  `status` VARCHAR(20) NOT NULL ,
  PRIMARY KEY (`id`) ,
  UNIQUE INDEX `username_UNIQUE` (`username` ASC) ,
  UNIQUE INDEX `email_UNIQUE` (`email` ASC) )
ENGINE = InnoDB;



SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;

Featured post

Game PC (BMW M3)