Anda di halaman 1dari 12

 

Membangun Aplikasi Perkantoran dengan Yii


Framework
Ninin Sapto Hargiyanto 
sapto.hargi@depkeu.go.id
 
Lisensi Dokumen: 
Copyright © 2003‐2012 IlmuKomputer.Com 
 
Seluruh  dokumen  di  IlmuKomputer.Com  dapat  digunakan,  dimodifikasi  dan  disebarkan  secara 
 
bebas  untuk  tujuan  bukan  komersial  (nonprofit),  dengan  syarat  tidak  menghapus  atau  merubah 
atribut  penulis  dan  pernyataan  copyright  yang  disertakan  dalam  setiap  dokumen.  Tidak 
 
diperbolehkan  melakukan  penulisan  ulang,  kecuali  mendapatkan  ijin  terlebih  dahulu  dari 
IlmuKomputer.Com. 
 

A. PENDAHULUAN
PHP  merupakan  singkatan  rekursif  (akronim  berulang)  dari  PHP  Hypertext  Preprocessor.  PHP 
adalah bahasa pemrograman script yang paling banyak dipakai saat ini atau dalam kata lain bisa 
diartikan  sebuah  bahasa  pemrograman  web  yang  bekerja  di  sisi  server  (server  side  scripting) 
yang  dapat  melakukan  konektifitas  pada  database  yang  di  mana  hal  itu  tidak  dapat  dilakukan 
hanya dengan menggunakan sintaks‐sintaks HTML biasa. 

Mengenal Dan Instalasi Yii Framework


1. Apa itu Yii?
Yii  adalah  kerangka  kerja  bahasa  pemrograman  PHP  berorientasi  objek  yang  menerapkan 
pola desain dengan konsep model-view-controller (MVC).

Konsep MVC adalah cara pandang membuat aplikasi web-based dengan memisahkan
antara data (Model), tampilan (View) dan cara pemrosesan (Controller).
Dimana Mendapatkan Yii? 
Download  file  di  http://www.yiiframework.com/  release  terakhir  ketika  tutorial  ini  ditulis 
adalah versi 1.1 dengan nama file yii‐1.1.10.r3566.tar.gz 

2. Bagaimana cara menginstal Yii?


Software  yang  mesti  diinstall  adalah  Apache  Web  Server,  penulis  menggunanakan  XAMPP. 
Pastikan  Apache  dan  Mysql  telah  di  klik  start,  lalu  Unzip  file  yii‐1.1.10.r3566.tar.gz  di  root 
directori yaitu di folder C:\xampp\htdocs\  

Komunitas eLearning IlmuKomputer.Com  1 
Copyright © 2008‐2012 IlmuKomputer.Com 
 
MEMBUAT APLIKASI WEB‐BASED DENGAN YII

1. Menyiapkan file di server


Buka  Command  Prompt  lalu  pindahkan  lokasi  current  directory  dengan  mengetik  perintah 
berikut : 
cd C:\xampp\php\
kemudian enter, lalu untuk membuat kerangka aplikasi Yii, jalankan perintah berikut : 
php.exe C:\xampp\htdocs\yii-1.1.10.r3566\framework\yiic webapp
C:\xampp\htdocs\aplikasiku
kemudian ketika muncul pertanyaan ketik: yes 
perintah diatas berfungsi untuk membuat folder bernama aplikasiku didalam root directory 
yaitu di C:\xampp\htdocs\ mengacu pada aturan yang dibuat oleh Yii, dimana Yii telah kita 
copy  paste  di  dalam  C:\xampp\htdocs\yii‐1.1.10.r3566.  Hasilnya  adalah  akan  muncul 
command berikut: 
Your application has been created successfully under
C:\xampp\htdocs\aplikasiku
Wow,  aplikasi  anda  telah  sukses  dibuat.  Untuk  mengetes  benar  tidaknya,  Silahkan  buka 
browser kesayangan anda dan ketik url http://localhost/aplikasiku 

2. 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 Web-based Pusdiklat Keuangan Umum</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 -->
 

3. 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  2 
Copyright © 2008‐2012 IlmuKomputer.Com 
 
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: 
 

Komunitas eLearning IlmuKomputer.Com  3 
Copyright © 2008‐2012 IlmuKomputer.Com 
 
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` (


`idtraining` int(11) NOT NULL AUTO_INCREMENT,
`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;

Komunitas eLearning IlmuKomputer.Com  4 
Copyright © 2008‐2012 IlmuKomputer.Com 
 
 

4. 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.  

Komunitas eLearning IlmuKomputer.Com  5 
Copyright © 2008‐2012 IlmuKomputer.Com 
 
 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: 

5. 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


1. 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')),

Komunitas eLearning IlmuKomputer.Com  6 
Copyright © 2008‐2012 IlmuKomputer.Com 
 
 
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.  

2. 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. 

3. 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: 
 

Komunitas eLearning IlmuKomputer.Com  7 
Copyright © 2008‐2012 IlmuKomputer.Com 
 
 
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',

Komunitas eLearning IlmuKomputer.Com  8 
Copyright © 2008‐2012 IlmuKomputer.Com 
 
'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.  

4. Modifikasi Sub isi 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(

Komunitas eLearning IlmuKomputer.Com  9 
Copyright © 2008‐2012 IlmuKomputer.Com 
 
'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))',

Komunitas eLearning IlmuKomputer.Com  10 
Copyright © 2008‐2012 IlmuKomputer.Com 
 
),
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 menjadi seperti ini 
$this->breadcrumbs=array(
'Participants'=>array('index'),
$model->name_participant,
);
2. 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?')),
);
3. Kemudian ubah pula tampilan dari tulisan peserta diklat dari menjadi 
<h1><?php echo $model->name_participant; ?></h1>
4. 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,

Komunitas eLearning IlmuKomputer.Com  11 
Copyright © 2008‐2012 IlmuKomputer.Com 
 
'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. 
 

B. REFERENSI
http://www.yiiframework.com/doc/guide/1.1/id  
http://www.yiiframework.com/wiki/250/yii‐for‐beginners/ 

C. BIOGRAFI PENULIS
Ninin Sapto Hargiyanto. Menyelesaikan Diploma di STAN, seorang Fungsional Pranata Komputer 
di  Kementerian  Keuangan,  Jakarta.    Bidang  peminatan  di  Ilmu  Komputer  adalah  Web 
Development, Networking  serta Linux.   

Komunitas eLearning IlmuKomputer.Com  12 
Copyright © 2008‐2012 IlmuKomputer.Com 

Anda mungkin juga menyukai