Jumat, 28 Juni 2013

u,u

Hujan turun lagi di tempat ini. Membasahi tanah setelah kemarau panjang yang melukai hari.
Mirip dirimu yang datang saat aku diserang sepi. Hadir dalam keringnya hati.
Saat sedih menghampiri. Hujan badai tak segan menghantui.
Aku hanya mampu berdiri menanti. Memandang langit, sampai kau datang bersama pelangi.
Mungkin kau tak pernah ingin mengerti. Setidaknya kau harus tau dirimu selalu menjadi obat hati.
Resah dalam hati melanda saat ku berdiri melepas kau pergi.
Aku tak takut jarak, tak takut pula waktu yang membagi sepi.
Hanya ada sebesit kerinduan untuk menggengam tangannya. Tanganmu yang lembut, yang mampu mengobati segala curiga maupun luka.

Senin, 17 Juni 2013

[Yii Framework] Membuat Multi Select Control dengan EMultiSelect

Cukup sering kita temukan kasus yang membutuhkan suatu form yang mengizinkan user menginput pilihan yang dapat dipilih lebih dari satu pilihan. Ada banyak cara yang bisa diterapkan untuk memungkinkan form seperti itu, tapi salah satu yang cukup efektif menurut saya adalah menggunakan extension EMultiSelect yang mana hasilnya adalah seperti gambar berikut :


Big thanks lah buat developernya emultiselect.. Kita sudah dimanjakan dengan fitur add, remove, search, add all, dan remove all dengan menggunakan emultiselect..  Lalu bagaimana cara menerapkannya pada code kita??
Seperti biasa, donlot extensionnya dari link di atas dan pindahkan ke folder extensions yang ada pada project anda..

Lalu pada tampilan anda, masukkan code berikut :

$isis=CHtml::listData(Lfunction::model()->findAll(),'id','label');
 $this->widget(
    'application.extensions.emultiselect.EMultiSelect',
    array('sortable'=>true, 'searchable'=>true)
 );

 echo $form->listBox($model,'namaAttribute',
       $isis,array('multiple'=>'multiple','key'=>'label', 'class'=>'multiselect',
      'style'=>'width:650px')
 );
Penejelasan : pada kode diatas pertama-tama kita mendefinisikan 
terlebih dahulu extension EMultiSelect. Lalu kita definisikan sebuah 
control “listbox” (anda dapat gunakan listbox ataupun dropdownlist untuk
 menggunakan emultiselect) kemudian kita masukkan class “multiselect” ke
 dala listbox tersebut. Lalu jangan lupa untuk melemparkan data 
option-option yang akan mengisi control tersebut..
Dan sekarang tinggal “How to save our data from emultiselect?”. Anda harus lakukan sedikit perubahan pada controller anda seperti berikut :
foreach ($_POST['NamaModel']['namaAttribute'] as $ii) 
 {
    $model2=new NamaModel;
    $model2->namaAttribute=$ii;
    $model2->save();
 }

Pada kode di atas, kita mengambil masing-masing nilai yang sudah di pilih pada multi select. Kemudian satu persatu datanya kita simpan dalam database kita..
Selesai..
Selamat mencoba…

Semoga membantu… :D

[Yii Framework] Integrasi Chart dan Database dengan Highchart

Menyambung postingan saya sebelumnya disini dimana saya sudah mencontohkan step-step untuk membuat chart. Pada postingan kali ini saya akan paparkan bagaimana caranya untuk menghubungkan chart yang kita buat dengan database..
Okeh, pertama saya asumsikan saya memiliki tabel “profile”, dimana tabel tersebut memiliki attribut sebagai berikut:
  • id : Primary key, integer, auto increment
  • nama : varchar(30)
  • jenisKelamin: enum(“Laki-laki, Perempuan”);
Anggaplah saya sudah menginput ke dalam data tersebut beberapa informasi untuk tabel tersebut. Lalu saya akan membuat jumlah pengguna berdasarkan jenis kelaminnya dengan menggunakan chart, yaitu pie chart dan bar chart. Okeh berikut step-step nya:

Pertama buatlah sebuah action di controller anda seperti berikut:

public function  actionStus()
 {
  $sql='SELECT count(id),jenisKelamin FROM profile GROUP BY jenisKelamin';
  
  $dataProvider=new CSqlDataProvider($sql,array(
                            'keyField' => 'id',
  ));
  $this->render('stus',array(
   'dataProvider'=>$dataProvider,
  ));
 }

Penjelasan : kode di atas akan mengembalikan jumlah pengguna berdasarkan jenis kelaminnya.

Lalu buatlah sebuah file view “stus.php” yg isinya sebagai berikut jika anda ingin menampilkan datanya berupa bar chart:


<?php
$this->breadcrumbs=array(
 'Chart'=>array('index'),
 'Statistik Pengguna',
);

<?php $form=$this->beginWidget('CActiveForm', array(
 'id'=>'tinstrument-form',
 'enableAjaxValidation'=>false,
)); ?>
<center>
?>
<?php
$label=array();
$nilai=array();

foreach($dataProvider->getData() as $i=>$ii)
{
    $label[$i]=$ii['aa'];
    $nilai[$i]=(int)$ii['count(id)'];
}

$this->widget('application.extensions.highcharts.HighchartsWidget', array(
   'options'=>array(
     'chart'=> array('defaultSeriesType'=>'column',),
      'title' => array('text' => ''),
      'legend'=>array('enabled'=>false),
      'xAxis'=>array('categories'=>$label,
   'title'=>array('text'=>''),),
      'yAxis'=> array(
            'min'=> 0,
            'title'=> array(
            'text'=>'Jumlah'
            ),
        ),
      'series' => array(
         array('data' => $nilai)
      ),
      'tooltip' => array('formatter' => 'js:function(){ return "<b>"+this.point.name+"</b> :"+this.y; }'),
      'tooltip' => array(
  'formatter' => 'js:function() {return "<b>"+ this.x +"</b><br/>"+"Jumlah : "+ this.y; }'
      ),
      'plotOptions'=>array('pie'=>(array(
                    'allowPointSelect'=>true,
                    'showInLegend'=>true,
                    'cursor'=>'pointer',
                )
            )                       
        ),
      'credits'=>array('enabled'=>false),
   )
));

?>
</center>

Sedangkan jika ingin menampilkannya dalam bentuk pie chart, anda dapat membuat code ny sebagai berikut:
<?php
$this->breadcrumbs=array(
 'Chart'=>array('index'),
 'Statistik Pengguna',
);

<?php $form=$this->beginWidget('CActiveForm', array(
 'id'=>'tinstrument-form',
 'enableAjaxValidation'=>false,
)); ?>
<center>
?>
<?php

$bb=array();
foreach($dataProvider->getData() as $i=>$ii)
 $bb[$i]=array($ii['aa'],(int)$ii['count(id)']);

$this->widget('application.extensions.highcharts.HighchartsWidget', array(
   'options'=>array(
      'series' => array(
         array('type'=>'pie',
               'data' => $bb
              )
      ),
      'title'=>'',
      'tooltip' => array(
  'formatter' => 'js:function(){ return "<b>"+this.point.name+"</b> :"+this.y; }'
      ),
      'plotOptions'=>array('pie'=>(array(
                    'allowPointSelect'=>true,
                    'showInLegend'=>true,
                    'cursor'=>'pointer',
                )
            )                       
        ),
      'credits'=>array('enabled'=>false),
   )
));

?>
</center>
<?php $this->endWidget(); ?>
Okeh, selesai.. Silahkan anda coba dan modifikasi dengan kebutuhan anda…

Selamat mencoba..
Semoga membantu… :D 

Sabtu, 04 Mei 2013

this is way i am afraid you say that you love me too


you say you love rain , but you open umbrella
you say youlove the sun , but you find a shadow spot
you say you love the wind ,but you close your windows
this is way i am afraid you say that you love me too

Jumat, 03 Mei 2013

bukan kamu lagi


kadang terasa sedih melihat mu bahagia .
bukan karena aku tak ingin melihat mu bahagia.
namun bukan aku yang membuat mu bahagia . 

seperti pukulan yang ingin membuat ku tersadar,
tersadar dari kebodohan . 
Mungkin ini saat nya ak melepas mu
meninggalkan sebuah cerita. 
yang hanya untuk di kenang 
di keabadian

namun ketahuilah,
Sebelum aku berhenti mencintai mu , 
darah ini mengalir ,
membawa bayang mu mengelilingi tubuh ku
jantung ini berdetak 
berdenting , membuat kamu menari2 di pikiran ku
ada satu hal yang ingin aku ucapkan 
yang hingga sampai saat ini aku bangga menjadi aku 
aku yang dapat memiliki mu.

aku pernah berharap ketika angin mengehempas ku dari daya ingat mu 
aku ingin saat itu aku sudah tak lagi bisa menginjak bumi. 
sebab , itu seperti kau lukisan 
cinta kita menjadi palu
yang memukul aku , memukul aku  lagi 
hingga aku tertancap tak bisa lepas menggores bekas 
pada akhir nya , semoga bukan kamu yang aku lihat
saat cahaya itu ada sebelum aku tertidur pulas.