Materi PHP membuat grafik di yiiframework
posted 19 september 2013
by ;muhammad nazih
Materi tgl 19 september 2013
menambahkan extentions grafik di main.php
menginstall
# di directori extensions dan di estrack
dan tambahkan query di file /protected/config/main.php
return array(
'basePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..',
'name'=>'Aplikasi Pegawai ',
// preloading 'log' component
'preload'=>array('log'),
// autoloading model and component classes
'import'=>array(
'application.models.*',
'application.components.*',
//tambahkan modul user
'application.modules.user.models.*',
'application.modules.user.components.*',
//tambahkan untuk extention grafik
'application.extensions.OpenFlashChart2Widget.*',
# membuka mysql dan membuat inner join table dbpegawai
mysql> select divisi.nama AS bagian, COUNT(id_divisi) AS jumlah_pegawai
-> from pegawai INNER JOIN divisi
-> ON divisi.id = pegawai.id_divisi
-> GROUP BY pegawai.id_divisi;
# menambahkan public function di file model/pegawai.php
public function dataDivisi() {
$sql = "SELECT divisi.nama AS bagian,
COUNT(id_divisi) AS jumlah pegawai
FROM pegawai INNER JOIN divisi
ON divisi.id = pegawai.id_divisi
GROUP BY pegawai.id_divisi";
//koneksi db
$dbkon = Yii::app()->db;
//PDO
$cmd = $dbkon->createCommand($sql);
return $cmd->queryAll();
# menambahkan label array di file view/pegawai/index.php
$this->menu=array(
array('label'=>'Regristasi Pegawai', 'url'=>array('create')),
array('label'=>'kelola Pegawai', 'url'=>array('admin')),
array('label'=>'Grafik Divisi Pegawai', 'url'=>array('grafik')),
);
# menambahkan public function dibawah index di protected/controller/pegawaiController.php
public function actionGrafik() {
$this->render('grafik');
}
# dan menambahkan di
public function accessRules()
{
return array(
array('allow', // allow all users to perform 'index' and 'view' actions
'actions'=>array('index','view','grafik'),
'users'=>array('*'),
),
#langkah selanjutnya mengkopy file index.php di file pegawai dan rename menjadi grafik dan rubah isinya menjadi seperti berikut :
<?php
/* @var $this PegawaiController */
/* @var $dataProvider CActiveDataProvider */
$this->breadcrumbs=array(
'Pegawai',
);
$this->menu=array(
array('label'=>'Regristasi Pegawai', 'url'=>array('create')),
array('label'=>'kelola Pegawai', 'url'=>array('admin')),
array('label'=>'Grafik Divisi Pegawai', 'url'=>array('grafik')),
array('label'=>'Grafik Batang Pegawai', 'url'=>array('batang')),
);
?>
<h1>Grafik Divisi Berdasarkan Jumlah Pegawai</h1>
<?php
//1. load openflashcart
OpenFlashChart2Loader::load();
//2. panggil obj
$obj_pie = new Pegawai();
$data = $obj_pie->dataDivisi();
foreach ($data as $row){
echo '<br/>Nama Divisi '.$row['bagian'].' : '.$row['jumlah_pegawai'];
//data diatas dijasikan data grafik
$data_grafik = new pie_value ((float)$row['jumlah_pegawai'],
$row['bagian'].' - '.$row['jumlah_pegawai']);
//buat array baru u/ menyimpan data di atas
$x[] = $data_grafik;
}
//3. data grafik
$title = new title( 'Grafik Divisi Pegawai' );
$pie = new pie();
$pie->set_alpha(0.6);
$pie->set_start_angle( 35 );
$pie->add_animation( new pie_fade() );
$pie->set_tooltip( '#val# of #total#<br>#percent# of 100%' );
$pie->set_colours( array('#7FFF00','#FF00FF','#190FF') );
//$pie->set_values( array(2,3,4,new pie_value(6.5, "hello (6.5)")) );
$pie->set_value($x);
$chart = new open_flash_chart();
$chart->set_title( $title );
$chart->add_element( $pie );
$chart->x_axis = null;
//4. panggil widgetnya
$this->widget(
'application.extensions.OpenFlashChart2Widget.OpenFlashChart2Widget',
array(
'chart' => $chart,
'width' => '100%'
)
);
?>
ket: file openflascart yang pertama di extension di hapus dan yang kedua di cat ke sztension
#di direktori pegawai index.php di copas menjasi grafik dan grafik_batang.php
posted 19 september 2013
by ;muhammad nazih
Materi tgl 19 september 2013
menambahkan extentions grafik di main.php
menginstall
# di directori extensions dan di estrack
dan tambahkan query di file /protected/config/main.php
return array(
'basePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..',
'name'=>'Aplikasi Pegawai ',
// preloading 'log' component
'preload'=>array('log'),
// autoloading model and component classes
'import'=>array(
'application.models.*',
'application.components.*',
//tambahkan modul user
'application.modules.user.models.*',
'application.modules.user.components.*',
//tambahkan untuk extention grafik
'application.extensions.OpenFlashChart2Widget.*',
# membuka mysql dan membuat inner join table dbpegawai
mysql> select divisi.nama AS bagian, COUNT(id_divisi) AS jumlah_pegawai
-> from pegawai INNER JOIN divisi
-> ON divisi.id = pegawai.id_divisi
-> GROUP BY pegawai.id_divisi;
# menambahkan public function di file model/pegawai.php
public function dataDivisi() {
$sql = "SELECT divisi.nama AS bagian,
COUNT(id_divisi) AS jumlah pegawai
FROM pegawai INNER JOIN divisi
ON divisi.id = pegawai.id_divisi
GROUP BY pegawai.id_divisi";
//koneksi db
$dbkon = Yii::app()->db;
//PDO
$cmd = $dbkon->createCommand($sql);
return $cmd->queryAll();
# menambahkan label array di file view/pegawai/index.php
$this->menu=array(
array('label'=>'Regristasi Pegawai', 'url'=>array('create')),
array('label'=>'kelola Pegawai', 'url'=>array('admin')),
array('label'=>'Grafik Divisi Pegawai', 'url'=>array('grafik')),
);
# menambahkan public function dibawah index di protected/controller/pegawaiController.php
public function actionGrafik() {
$this->render('grafik');
}
# dan menambahkan di
public function accessRules()
{
return array(
array('allow', // allow all users to perform 'index' and 'view' actions
'actions'=>array('index','view','grafik'),
'users'=>array('*'),
),
#langkah selanjutnya mengkopy file index.php di file pegawai dan rename menjadi grafik dan rubah isinya menjadi seperti berikut :
<?php
/* @var $this PegawaiController */
/* @var $dataProvider CActiveDataProvider */
$this->breadcrumbs=array(
'Pegawai',
);
$this->menu=array(
array('label'=>'Regristasi Pegawai', 'url'=>array('create')),
array('label'=>'kelola Pegawai', 'url'=>array('admin')),
array('label'=>'Grafik Divisi Pegawai', 'url'=>array('grafik')),
array('label'=>'Grafik Batang Pegawai', 'url'=>array('batang')),
);
?>
<h1>Grafik Divisi Berdasarkan Jumlah Pegawai</h1>
<?php
//1. load openflashcart
OpenFlashChart2Loader::load();
//2. panggil obj
$obj_pie = new Pegawai();
$data = $obj_pie->dataDivisi();
foreach ($data as $row){
echo '<br/>Nama Divisi '.$row['bagian'].' : '.$row['jumlah_pegawai'];
//data diatas dijasikan data grafik
$data_grafik = new pie_value ((float)$row['jumlah_pegawai'],
$row['bagian'].' - '.$row['jumlah_pegawai']);
//buat array baru u/ menyimpan data di atas
$x[] = $data_grafik;
}
//3. data grafik
$title = new title( 'Grafik Divisi Pegawai' );
$pie = new pie();
$pie->set_alpha(0.6);
$pie->set_start_angle( 35 );
$pie->add_animation( new pie_fade() );
$pie->set_tooltip( '#val# of #total#<br>#percent# of 100%' );
$pie->set_colours( array('#7FFF00','#FF00FF','#190FF') );
//$pie->set_values( array(2,3,4,new pie_value(6.5, "hello (6.5)")) );
$pie->set_value($x);
$chart = new open_flash_chart();
$chart->set_title( $title );
$chart->add_element( $pie );
$chart->x_axis = null;
//4. panggil widgetnya
$this->widget(
'application.extensions.OpenFlashChart2Widget.OpenFlashChart2Widget',
array(
'chart' => $chart,
'width' => '100%'
)
);
?>
ket: file openflascart yang pertama di extension di hapus dan yang kedua di cat ke sztension
#di direktori pegawai index.php di copas menjasi grafik dan grafik_batang.php