Baru saja aku baca artikel di codeigniter-id (http://codeigniter-id.com/node/5 dan http://codeigniter-id.com/node/18), tentang integrasi codeigniter dengan open flash chart. Namun setelah membaca keduanya, saya masih belum bisa menjalankan OFC dengan sukses, padahal semua langkah sudah aku jalankan. setelah brosing2, akhirnya aku temukan cara, seperti yang aku tulis dibawah ini.

Intermezzo sedikit, Open Flash Chart adalah library grafik open source yang bersifat free. Library ini unik karena tidak menghasilkan image namun grafik yang dihasilkan berupa flash. Sudah tentu grafis yang ditampilkan akan lebih menarik.

Cara integrasinya dengan code igniter pun bisa dibilang cukup mudah.

Pertama, untuk OpenFlashChart versi 2 dapat didownload di http://sourceforge.net/project/showfiles.php?group_id=201148, atau untuk versi 1.9.6 dapat di download di http://teethgrinder.co.uk/open-flash-chart/open-flash-chart-1.9.6.zip atau disini
catatan: saya menggunakan yang versi 1.9.6, karena ukuran swf nya lebih kecil cuman 56-60KB, beda dengan versi 2 nya yang ukuran swf nya sampe 250KB

Kedua, abis download, extract dan kopi file berikut ini :

  1. File open-flash-chart-object.php di folder php-ofc-library kopi ke folder ci_root/system/plugins, lalu ganti nama file nya jadi graph_pi.php
  2. File open-flash-chart.php di folder php-ofc-library kopi ke folder ci_root/system/application/libraries lalu ganti nama file jadi graph.php. Lalu buka file graph.php, kemudian ganti baris class graph menjadi class opgraph dan function graph() menjadi function opgraph().
  3. File open-flash-chart.swf kopi ke folder ci_root

Ketiga, edit file graph.php tambahkan 2 baris ini

$this->js_path = base_url().'js/';
$this->swf_path = base_url().'swf/';

dan ubah baris

$this->base = 'js/';

menjadi

$this->base = base_url().'js/';

Keempat, buat kelas controller seperti ini :

< ?php

class CMain extends Controller {

	function CMain()
	{
		parent::Controller();
		$this->load->model('log_model');
		$this->load->model('user_model');
                $this->load->plugin('graph');
                $this->load->libraries('opgraph');

	}

  function grvisit()
  {
		$allbln = $this->log_model->getStatSemuaBulan($this->site_sentry->get_userdata('kodeDealer'),'LOGIN');
		$statall = $allbln->result_array();

		$dataBulanLog = array();

		for ($i=0;$i< $allbln->num_rows;$i++)
		{
			$dataBulanLog['LOG'][$statall[$i]['bulan']] = (int)$statall[$i]['CNT'];
		}

		$allbln = $this->log_model->getStatSemuaBulan($this->site_sentry->get_userdata('kodeDealer'),'DL');
		$statall = $allbln->result_array();

		for ($i=0;$i< $allbln->num_rows;$i++)
		{
			$dataBulanLog['DL'][$statall[$i]['bulan']] = (int)$statall[$i]['CNT'];
		}

		$allbln = $this->log_model->getStatSemuaBulan($this->site_sentry->get_userdata('kodeDealer'),'UL');
		$statall = $allbln->result_array();

		for ($i=0;$i< $allbln->num_rows;$i++)
		{
			$dataBulanLog['UL'][$statall[$i]['bulan']] = (int)$statall[$i]['CNT'];
		}

		$dataLabel = array_unique(array_merge(array_merge(array_keys($dataBulanLog['LOG']),array_keys($dataBulanLog['UL'])),array_keys($dataBulanLog['DL'])));

		$dataLog = array();
		$dataDL = array();
		$dataUL = array();
		foreach ($dataLabel as $lbl)
		{
			$dataLog[] = (in_array($lbl,array_keys($dataBulanLog['LOG'])))?$dataBulanLog['LOG'][$lbl]:0;
			$dataDL[] = (in_array($lbl,array_keys($dataBulanLog['DL'])))?$dataBulanLog['DL'][$lbl]:0;
			$dataUL[] = (in_array($lbl,array_keys($dataBulanLog['UL'])))?$dataBulanLog['UL'][$lbl]:0;
		}
    $this->opgraph->opgraph();
    $this->opgraph->bg_colour = '0xFFFFCC'; //this is a change in background
    $this->opgraph->title( 'Statistik Kunjungan', '{font-size: 20px; color: #736AFF}' );

    // add the data:
    $this->opgraph->set_data( $dataLog );
    $this->opgraph->set_data( $dataDL );
    $this->opgraph->set_data( $dataUL );

    // we add the 3 line types and key labels
    $this->opgraph->line_hollow( 2, 4, '0xCC3399', 'Kunjungan', 9 );
    $this->opgraph->line_hollow( 2, 4, '0xCC9933', 'Download', 9 );
    $this->opgraph->line_hollow( 2, 4, '0x33CC99', 'Upload', 9 );

    $this->opgraph->set_x_labels( $dataLabel );
    $this->opgraph->set_x_label_style( 10, '0x000000', 0, 1 );
		$this->opgraph->set_tool_tip( 'Jumlah : #val#');
    $this->opgraph->set_y_max( 15 );
    $this->opgraph->y_label_steps( 3 );
    $this->opgraph->set_x_legend( 'Hari', 14, '#736AFF' );
    $this->opgraph->set_y_legend( 'Jumlah', 14, '#736AFF' );
    echo $this->opgraph->render();
  }

}
?>

Kelima, buat view seperti ini :

< ?echo open_flash_chart_object_str( '385', '250', site_url('cmain/grvisit'), false, base_url() );?>

catatan: site_url(‘cmain/grvisit’) adalah url yang menyediakan data buat open-flash-chart.swf untuk membangun graph yang dibutuhkan. Berikut ini gambar hasil generate OFC ku.
ofc-ku

Kalo masih belum bisa, monggo silahkan tanya.

wassalam

10 Responses to “Integrasi OpenFlashChart dengan CodeIgniter”

  1. PencariTutorChartKeCI says:

    Bagus ato Jelek: Thumb up 2 Thumb down 0

    thanks udah membantu mencerahkan.
    tapi kok masih error ^^’

    bahkan udah pake kombinasi tutorial ini dan 2 lainnya yg disebutkan di atas,

    untuk contoh saya pake dari
    http://codeigniter-id.com/node/18
    karena yg punya masdeka error berat ;)

    tapi,
    tetep aja mentok di string ini :

    &title=Contoh+Pie+Chart,{font-size:14px; color: #7F7772; padding-bottom:25px}& &x_axis_steps=1& &y_ticks=5,10,5& &line=3,#87421F& &y_min=0& &y_max=20& &bg_colour=#FFFFFF& &pie=75,#505050,{font-size: 12px; color: #404040;& &values=20,40,40& &pie_labels=IE,Firefox,Opera& &colours=#d9db35,#487daf,#d00000& &links=& &tool_tip=Persentase+%3A+%23val%23+&

    bisa bantu?
    thx before

  2. Ario says:

    Bagus ato Jelek: Thumb up 1 Thumb down 0

    Sudah coba cara yg ada di http://codeigniter.com/forums/viewthread/120792/ ?

    Saya lagi nyoba nih… do’a kan saja semoga berhasil… ^_^

  3. qorianku says:

    Bagus ato Jelek: Thumb up 0 Thumb down 0

    aduh… jarang online nih …maap ya..maklum ada anak kecil dirumah :)
    @PencariTutorChartKeCI .
    yang error dimana nya yah? soalnya di tempatku fine2 aja :D

    @ario.. yup… guud lack mas :)

  4. newbie says:

    Bagus ato Jelek: Thumb up 0 Thumb down 0

    mas kalo kita mau ngambil datanya dari database bagaimana?

    itu file pada view diberi nama apa?

    terimakasih banyak mas

  5. masdeka says:

    Bagus ato Jelek: Thumb up 0 Thumb down 0

    @newbie.. contoh saya diatas kan juga pake database.
    cuma ngambil nya pake model..

  6. ramdani says:

    Bagus ato Jelek: Thumb up 0 Thumb down 0

    punya code kumplit nya.. ngk..
    yang tutorial ini masih error

  7. fazar says:

    Bagus ato Jelek: Thumb up 0 Thumb down 0

    (ci_root/system/application/libraries) folder ini ada di mana?….hehehe….

  8. DEKA says:

    Bagus ato Jelek: Thumb up 0 Thumb down 0

    @fazar… ci_root = tempat anda kopi file2 CI anda.. misal c:\www\codeigniter..

  9. fazar says:

    Bagus ato Jelek: Thumb up 0 Thumb down 0

    klo di htdocs?

Leave a Reply

(required)

(required)

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

© 2010 Catatan (PHP) Suffusion WordPress theme by Sayontan Sinha