Structure Table
Create Procedure MySQL
DELIMITER //
CREATE PROCEDURE insKategori(in nama_kategori varchar(50))
BEGIN
 declare nomor int;
 declare kode_kategori varchar(3);
 set nomor = (select count(*)+1 from kategori);
 set kode_kategori = (select right(concat('00',convert(nomor, char(3))),3));
 insert into KATEGORI values(kode_kategori, nama_kategori);
END;
//
DELIMITER ;
CategoryController
 public function actionCreate()
 {
  $model=new Kategori;
  // Uncomment the following line if AJAX validation is needed
  // $this->performAjaxValidation($model);
  if(isset($_POST['Kategori']))
  {
                    //$model->attributes=$_POST['Kategori'];
                    if ($_POST['Kategori']['NAMA_KATEGORI']==null)
                    {
                        if($model->save())
                        $this->redirect(array('view','id'=>$model->KODE_KATEGORI));
                    }
                    else
                    {
                    $command = Yii::app()->db->createCommand("CALL insKategori(:nama_kategori)");
                    $command->bindParam(":nama_kategori", $_POST['Kategori']['NAMA_KATEGORI'], PDO::PARAM_STR);
                    $command->execute(); 
                    }
  }
              
  $this->render('create',array(
   'model'=>$model,
  ));
 }