IT Solution

Wednesday 18 September 2013

Tutorial membuat grafik di yiiframework

September 18, 2013 Posted by Bops No comments
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

Featured post

Game PC (BMW M3)