Rabu, 14 Desember 2016

Perbedaan Layanan Transfer LLG dan RTGS di Bank BCA

BCA merupakan penyedia jasa bank terbesar saat ini dan banyak dari mereka yang baru pertama kali transfer lewat klikbca bingung ketika dihadapkan pilihan transfer yaitu LLG, dan RTGS. Nah apa itu layanannya mari kita bahas

Perbedaan Layanan Transfer LLG dan RTGS di Bank BCA


Apa itu Layanan Transfer LLG (Lalu Lintas Giro)

  • LLG adalah mekanisme tranfer antar Bank dengan menggunakan fasilitas kliring.
  • Berapa biaya untuk layanan LLG ?
    Biaya yang dikeluarkan untuk layanan LLG adalah Rp. 5000,- 
  • Berapa lama biasanya transfer LLG dilakukan?
    Biasanya berkisar antara 1-3 hari. Jasa layanan ini memang agak lama dan memang murah. Jadi sabar aja pasti nanti juga bakalan ketransfer. Kalau pengalaman admin sih sekitar 36 jam
  • Statusnya Transaksi Tunda

Apa itu Layanan RTGS (Real Time Gross Settlement)

  • RTGS mekanisme tranfer antar Bank secara real time,
  • Berapa  biaya untuk layanan RTGS?
    Biaya yang dikeluarkan untuk layanan RTGS adalah Rp. 20.000,-
  • Berapa lama biasanya transfer RTGS dilakukan?
    Pada hari itu juga akan diterima tetapi nunggu dlu bisa sampai beberapa jam
Contoh berikut tampilan untuk transfer dari BCA ke BRI


Kamis, 08 Desember 2016

Aturan baru ambil Western Union adsense harus sesuai KTP di kantor pos

Bagi publisher adsense yang sudah bisa payout tiap bulan tanggal diatas 20an merupakan tanggal tanggal yang dagdigdug mengingat Google telah menyiapkan pembayaran buat kita sebagai pekerja adsense.


Aturan baru ambil Western Union adsense harus sesuai KTP di kantor pos

Dan metode yang paling gampang buat ambil duit di Google adsense adalah melalui western union dimana banyak channel yang dapat diambil di Indonesia mulai dari kantor pos, indomaret, pegadaian, bank dan masih banyak yang lainnya.

Pada kali ini ane ingin bahas mengenai pembayaran yang ane pakai yaitu pengambilan WU melalui kantor pos. Awalnya dulu saya sering banget ambil uang adsense di kantor pos karena pencairannya mudah, terus juga deket sama kantor tinggal bawa MTCN sama SIM + KTP dah cair dah.

Sudah bertahun tahun ambil disitu, Dan bulan kemaren saya coba masuk ke kantor pos pusat deket kantor saya dengan menggunakan persyaratan yang sama. Dan alangkah kagetnya pegawai disana bilang.

   petugas: "Mas, ktpnya darimana ya? "
   ane       : "Boyolali mbak Jateng"
   petugas : "Oh sekarang kantor pos ini untuk pengambilan WU hanya untuk jakarta pusat aja mas"
   ane       :  "Oh kok gitu mbak"
   petugas : "Iya sekarang ada aturan baru untuk ngambil WU harus sesuai dengan KTP"

dan yasudah ane pergi dengan rasa kecewa. Dan setelah itu ane mencoba untuk ke Indomaret deket kantor pos. Sampai sana

 ane              : "Mbak bisa ambil WU di indomaret?"
 petugas       : "Oh bisa mas, Mau ambil berapa?"
 ane              :"Sekitar xxxx"
 petugas       :"Oh bisa mas, mas isi formulir dlu ya"

Cara pengambilan uang western union di Indomaret

Setelah itu ane isi formulir, selesai isi ditanya uangnya berapa yang mau diambil dalam rupiah, dan setelah itu "Mas maaf systemnya error, mohon maaf ya".
Dan ane kecewa lagi dengan jawaban mbak Indomaret.

Besoknya ane ke berbagai indomaret di bekasi karena dekat dengan domisili ane, Dan sudah masuk ke hampir 6 Indomaret mereka kebanyakan bilang

  1. "Wah maaf mas duitnya belum ada "        
  2. "Maaf mas formulirnya gak ada coba cari yang lain"
  3. "Systemnya error"
Alasan yang diberikan kebanyakan ketiga itu di berbagai Indomaret. Dan males ane udah tanya lagi ke indomaret ane cari alternatif lain.

Cara pengambilan uang western union di Pegadaian


Dan besoknya ane ke pegadaian Sumber Arta di Bekasi. Dan ane lihat ternyata langsung ada formulir pengambilan uang di Western Union dan jangan lupa kalau ke pegadaian harus siapin materai 6000 1 buah karena biasanya gak disediakan.

Syarat ambil western union :
  1. Sediakan materai 6000
  2. Sediakan fotocopy SIM / KTP (Lebih baik 22nya)
  3. Siapkan nomor MTCN yang mau diambil

Setelah antri sekitar 30 menit akhirnya cair juga ke pegadaian.Mbaknya gak nanya ktp dan sim asli ane malahan. Terima kasih pegadaian sebagai alternatif pengambilan adsense yang ktpnya tidak sesuai domisili.




Rabu, 07 Desember 2016

Cara memperbaiki cURL error 60: SSL certificate problem: unable to get local issuer certificate


Ketika anda menggunakan cURL untuk host yang menggunakan SSL di xampp anda harus menggunakan cetificate untuk dapat menjalankan dengan baik.


Error yang biasa kita dapatkan seperti ini :


Fatal error: Uncaught exception 'GuzzleHttp\Exception\RequestException' with message 'cURL error 60: SSL certificate problem: unable to get local issuer certificate (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)' in D:\handita\htdocs\test\scraper\vendor\guzzlehttp\guzzle\src\Handler\CurlFactory.php:187 Stack trace: #0 D:\handita\htdocs\test\scraper\vendor\guzzlehttp\guzzle\src\Handler\CurlFactory.php(150): GuzzleHttp\Handler\CurlFactory::createRejection(Object(GuzzleHttp\Handler\EasyHandle), Array) #1 D:\handita\htdocs\test\scraper\vendor\guzzlehttp\guzzle\src\Handler\CurlFactory.php(103): GuzzleHttp\Handler\CurlFactory::finishError(Object(GuzzleHttp\Handler\CurlHandler), Object(GuzzleHttp\Handler\EasyHandle), Object(GuzzleHttp\Handler\CurlFactory)) #2 D:\handita\htdocs\test\scraper\vendor\guzzlehttp\guzzle\src\Handler\CurlHandler.php(43): GuzzleHttp\Handler\CurlFactory::finish(Object(GuzzleHttp\Handler\CurlHandler), Object(GuzzleHttp\Handler\EasyHandle), Object(GuzzleHttp\Handler\CurlFactory)) #3 D:\handita\htdo in D:\handita\htdocs\test\scraper\vendor\guzzlehttp\guzzle\src\Handler\CurlFactory.php on line 187


Untuk mengatasi masalah koneksi ini di php anda harus mengeset certificatenya dulu. Carany download sertifikatnya dulu di sini

https://curl.haxx.se/ca/cacert.pem

Setelah itu taruh filenya di

C:\xampp\php\extras\ssl\cacert.pem

Setelah itu taruh configurasi php.ini seperti berikut :

;;;;;;;;;;;;;;;;;;;;
; php.ini Options  ;
;;;;;;;;;;;;;;;;;;;;

curl.cainfo = "C:\xampp\php\extras\ssl\cacert.pem"
Semoga bermanfaat

Senin, 05 Desember 2016

Yii Code Snippet Collection (Yii 1 Only) part 3


Lanjutan dari yii code snippet seri ke 1 dan ke dua ini adalah seri yang ketiga semoga bermanfaat ya teman - temen langsung aja ni YiiFramework Snippet Collection part 3


Cara menggunakan Form Control di YiiFramework


  1. Cara menggunakan Dropdown list di yiiframework
    //Inside Form (View)
    <?php echo $form->dropDownList($model,'id_level_FK',CHtml::listData(MLevel::model()->findAll(), 'id_level', 'name'),array('empty'=>'Select level','style'=>'width:200px'))?>
    //Outside Form (View)
    <?php echo CHtml::dropDownList('Users[id_level_FK]','', CHtml::listData(MLevel::model()->findAll(),'id_level','name'),array('empty'=>'Select Level'))?>
  2. Cara menggunakan LinkButton di yiiframework
    <?php echo CHtml::linkButton('Approve', array(
     'submit'=>array('comment/approve','id'=>$data->id),
    )); ?> 
    <?php echo CHtml::linkButton('Delete', array(
     'submit'=>array('comment/delete','id'=>$data->id),
     'confirm'=>"Are you sure to delete comment #{$data->id}?",
    )); ?>
  3. Cara menggunakan ActiveField di YiiFramework
    <?php
    echo CHtml::activeField('User[name]',array(
     'style'=>'margin-left:30px',
     'placeholder'=>'search',
     'visible'=>Yii::app()->user->isGuest()
    );
    ?>
  4. Cara menggunakan Link di YiiFramework
    <?php echo CHtml::link('Link Text',array('controller/action')); ?> 
    <!-- <a href="index.php?r=controller/action">Link Text</a> -->
    
    
    <?php echo CHtml::link('Link Text',array('controller/action', 'param1'=>'value1')); ?>
    <!--  <a href="index.php?r=controller/action&param1=value1">Link Text</a> -->
    
    
    <?php echo CHtml::link('Link Text',array('controller/action',
           'param1'=>'value1',
           'param2'=>'value2',
           'param3'=>'value3')); ?>
    <!-- <a href="index.php?r=controller/action&param1=value1&param2=value2&param3=value3">Link Text</a> -->
    
    
    <?php echo CHtml::link('Link Text',array('controller/action',
       'param1'=>'value1'), array('target'=>'_blank'); ?>
    <!--  <a target="_blank" href="index.php?r=controller/action&param1=value1">Link Text</a> -->
    
    
    <?php echo CHtml::link('Link Text',
       array('action')
      ); ?>
    
    
    
    <?php echo CHtml::link('Link Text',
      array('/controller/action')
    ); ?>
    
    
    <?php echo CHtml::link('Link Text',
     array('/module-id/controller/action')
    ); ?>
    
    
    <?php echo CHtml::link('Link Text',
     array('/{$this->module->id}/controller/action')
    ); ?>
    
    
    <?php echo CHtml::link('Delete',"#", array(
     "submit"=>array('delete', 'id'=>$data->ID), 
     'confirm' => 'Are you sure?')
     ); ?>
    
    
    <?php echo CHtml::link('Delete',"#", array(
     "submit"=>array('delete', 'id'=>$data->ID),
     'confirm' => 'Are you sure?', 
     'csrf'=>true)
    ); ?>
    
    
    
    <?php echo CHtml::link('Delete blog post', '#', array(
     'submit'=>array('blog/deletePost', 'param'=>100),
     'params'=>array('id'=>$post->id, 'status'=>Post::STATUS_DELETED_BY_OWNER),
     'csrf'=>true,
    )); ?>
    
    
    <?php 
    CHtml::link(t("Delete"), "#", array(
    "submit"=>array("delete","id"=>"$model->id" ),
    "confirm"=>"Are you sure?")
    ); ?>
    
  5. Cara menggunakan Button di YiiFramework
    <?php echo CHtml::button('Button Text', array('submit' => array('controller/action'))); ?>
    <?php echo CHtml::button('Delete', 
    array('submit' => array('user/delete','id'=>$model->usId),
     'name'=>'btnDelete',
     'confirm'=>'Are you sure you want to delete?',
     'class'=>'btn btn-large btn-danger',
     'style'=>'width:160px;'
    ));
    ?>
  6. Cara menggunakan TextField di YiiFramework
    1. <?php echo CHtml::textField('Text'); ?>
    2. <?php echo CHtml::textField('Text', 'some value'); ?>
    3. <?php echo CHtml::textField('Text', 'some value',
      array('id'=>'idTextField', 
        'width'=>100, 
        'maxlength'=>100); ?>
    4. <?php echo CHtml::textField('Text', 'some value', 
      array('disabled'=>'disabled'); ?>
  7. Cara menggunakan ListData di YiiFramework
    1. <?php 
      /*you can use here any find method you think 
      proper to return your data from db*/
      $models = categories::model()->findAll();
     
      // format models resulting using listData     
      $list = CHtml::listData($models, 
        'category_id', 'category_name');    //array("1" => "Arts", "2" => "Science", "3" => "Culture");
     
      print_r($list);
    ?>
    2. <?php 
      $models = categories::model()->findAll(
         array('order' => 'category_name'));
     
      $list = CHtml::listData($models, 
        'category_id', 'category_name');    
     
      print_r($list);// array("1" => "Arts", "3" => "Culture", "2" => "Science");
    ?>
  8. Cara menggunakan DropdownList di YiiFramework
    1. <?php echo CHtml::dropDownList('listname', $select, 
      array('M' => 'Male', 'F' => 'Female'));?>
    2. <?php echo CHtml::dropDownList('listname', $select, 
      array('M' => 'Male', 'F' => 'Female'),
      array('empty' => '(Select a gender)'));?>
    3. <?php 
    public function getGenderOptions(){
     return array('M' => 'Male', 'F' => 'Female');
    }
    
    echo CHtml::dropDownList('listname', $select, 
       $model->genderOptions,
       array('empty' => '(Select a gender'));?>
    4. <?php // retrieve the models from db
     $models = categories::model()->findAll(
          array('order' => 'category_name'));
      
     // format models as $key=>$value with listData
     $list = CHtml::listData($models, 
         'category_id', 'category_name');
        
    // to Use
      echo CHtml::dropDownList('categories', $category, 
           $list,
           array('empty' => '(Select a category'));
    ?>
    5.  <div class="cars-select">
     <?php echo CHtml::dropDownList('Cars', 'car_id', array(
      'Mazda'=>array(
       'mazda-rx7'=>'RX7',
       'mazda-rx5'=>'RX5',
      ),
      'Volvo'=>array(
       'volvo-b9tl'=>'B9TL',
       'volvo-l90e-radlader'=>'L90E Radlader',
      ),
     )); ?>
    </div>
  9. Cara menggunakan Upload di YiiFramework
    a. di form <?php 'htmlOptions'=>array('enctype'=>'multipart/form-data'), ?>
    b. <?php echo $form->fileField($model,'profile_picture',array('size'=>60,'maxlength'=>200)); ?>
    c. <?php $model->attributes=$_POST['TUser'];
        $model->profile_picture=CUploadedFile::getInstance($model, 'profile_picture');
        if($model->save()){
         if(strlen($model->profile_picture)>0)
          $model->profile_picture->saveAs(Yii::app()->basePath.'/../upload/'.$model->profile_picture);
         $this->redirect(array('view','id'=>$model->id_user));
        } ?>
  10. Cara menggunakan Captcha di YiiFramework
    a. 
     <?php echo $form->labelEx($model,'verifyCode'); ?>
     <div>
     <?php $this->widget('CCaptcha'); ?>
     <?php echo $form->textField($model,'verifyCode'); ?>
     
    b. <?php 
     public function actions()
     {
      return array(
       // captcha action renders the CAPTCHA image displayed on the contact page
       'captcha'=>array(
        'class'=>'CCaptchaAction',
        'backColor'=>0xFFFFFF,
       ),
       // page action renders "static" pages stored under 'protected/views/site/pages'
       // They can be accessed via: index.php?r=site/page&view=FileName
       'page'=>array(
        'class'=>'CViewAction',
       ),
      );
     }
    ?> 
    c.controller: accessRules <?php  array('captcha');?>
       model : rules      <?php array('verifyCode', 'captcha', 'allowEmpty'=>!CCaptcha::checkRequirements()),?>
    
    

Yii Code Snippet Collection (Yii 1 Only) part 2

Setelah code snippet sesi yang pertama disini  berikut saya lanjutkan kembali code snippet yii bagian yang kedua semoga bermanfaat bagi temen - temen

Cara menggunakan Rules di YiiFramework

  1. Required
    <?php
    array('username, name, email, password', 'required'),
    array('reputation, id_city_FK, id_level_FK', 'numerical', 'integerOnly'=>true),
    array('username, password, salt_password, location', 'length', 'max'=>50),
    ?>
  2. Captcha
    <?php
    array('verifyCode', 'captcha', 'allowEmpty'=>!CCaptcha::checkRequirements()),
    array('repeat_password','compare','compareAttribute'=>'password','message'=>'Password must be same'),
    ?>
  3. Unique
    <?php
    array('id_user','unique','message'=>'{attribute}:{value} already exists'),
    ?>
  4. Email
    <?php
    array('email', 'email','message'=>'The email isnLt correct'),
    ?>
    <?php
    $validator=new CEmailValidator;
    if(!$validator->validate($this->email)){
       $this->addError('Invalid email address');
    }
  5. Format Letter
    <?php
    array('question', 'filter', 'filter'=>'strtolower'),
    ?>

Cara setting bahasa di multi language YiiFramework

#MULTISITE
<?php
Yii::app()->language = 'zh-cn'; 
?>

Cara menggunakan URL di YiiFramework

#URL
<?php
/**
home url= /my_projects/index.php
base url= /my_projects
base path= E:\www\my_projects\protected
*/
 //1.
 Yii::app()->getHomeUrl();// /my_projects/index.php
 Yii::app()->getBaseUrl(); // /my_projects
 Yii::app()->getBaseUrl(true);// http://localhost/my_projects/index.php
 Yii::app()->getBasePath();
 Yii::app()->request->baseUrl;
 Yii::app()->request->basePath;
  //when using theme
 Yii::app()->theme->baseUrl;
?>

Cara menggunakan Widget di YiiFramework

  1.  Cara menggunakan CDetailView di YiiFramework
    <?php
    $this->widget('zii.widgets.CDetailView', array(
     'data'=>$model,
     'attributes'=>array(
      'title',             // title attribute (in plain text)
      'owner.name',        // an attribute of the related object "owner"
      'description:html',  // description attribute in HTML
      array(               // related city displayed as a link
       'label'=>'City',
       'type'=>'raw',
       'value'=>CHtml::link(CHtml::encode($model->city->name),
             array('city/view','id'=>$model->city->id)),
      ),
     ),
    ));
    ?>
  2. Cara menggunakan CJuiAutoComplete di YiiFramework
    Di sisi client view

    <?php 
    echo CHtml::script("
     function split(val) {
      return val.split(/,\s*/);
     }
     function extractLast(term) {
      return split(term).pop();
     }
     ")?>
    <?php $this->widget('zii.widgets.jui.CJuiAutoComplete', array(
     'model'=>$model,
     'attribute'=>'tag',
     'source'=>"js:function(request, response) {
        $.getJSON('".$this->createUrl('suggest')."', {
          term: extractLast(request.term)
        }, response);
        }",
     'options'=>array(
       'delay'=>300,
       'minLength'=>2,
       'showAnim'=>'fold',
       'select'=>"js:function(event, ui) {
        var terms = split(this.value);
        // remove the current input
        terms.pop();
        // add the selected item
        terms.push( ui.item.value );
        // add placeholder to get the comma-and-space at the end
        terms.push('');
        this.value = terms.join(', ');
        return false;
      }"
     ),
     'htmlOptions'=>array(
       'size'=>'40'
     ),
    ));?>

     Disisi server

    <?php
    public function actionSuggest(){
     if (Yii::app()->request->isAjaxRequest && isset($_GET['term'])) {
      $models = Tag::model()->suggestTag($_GET['term']);
      $result = array();
      foreach ($models as $m)
       $result[] = array(
         'label' => $m->nama,
         'value' => $m->nama,
         'id' => $m->id_tag,
       );
     
      echo CJSON::encode($result);
     }
    }
    
    public function suggestTag($keyword){
      $tags=$this->findAll(array(
     'condition'=>'nama LIKE :keyword',
     'params'=>array(
       ':keyword'=>'%'.strtr($keyword,array('%'=>'\%', '_'=>'\_', '\\'=>'\\\\')).'%',
     )
      ));
      return $tags;
     }
    ?>
    
    
  3. Cara menggunakan CJuiDatePicker di YiiFramework
    <?php
    $this->widget('zii.widgets.jui.CJuiDatePicker',array(
     'attribute'=>'atribute',
     'model'=>$model,
     'value'=>$model->atribute,
    
     'options'=>array(
       'showAnim'=>'fold',
       'yearRange'=>'-70:+0',
       'changeMonth'=>'true',
       'changeYear'=>'true',
       'dateFormat' => 'yy-mm-dd', // save to db format
       'themeUrl' => Yii::app()->baseUrl.'/css/jui' ,
    
       'theme'=>'pool', //try 'bee' also to see the changes
    
       'cssFile'=>array('jquery-ui.css' /*,anotherfile.css, etc.css*/),
    
     ),
     'htmlOptions'=>array(
      'style'=>'height:20px;'
     ),
    )
    );
    ?>

Yii Code Snippet Collection (Yii 1 Only) part 1

Sudah lama gak koding yii framework dan setelah bedah bedah dokumentasi ane menemukan tulisan ini nih. Mending dishare daripada nanti lupa nyariin lagi semoga bermanfaat ya teman teman :


Cara Menggunakan CActiveDataProvider di YiiFramework


Cara Membuat CActiveDataprovider
<?php $high_scores_dp =
 new CActiveDataProvider('score',
  array('criteria' =>
   array('condition' => 'game_id = ' . $model->id,
      'order' => 'score desc',
      'limit' => 20,     //  <=== TRIED CHANGING THIS VALUE
     )
    )
    , 'pagination' => false            // <=== FIXED BY ADDING THIS LINE

   );
      
?>

Membuat CActiveDataprovider dengan Criteria


<?php
 criteria = new CDbCriteria;
 $criteria->with = array('foreign_table1','foreign_table2', 'foreign_table2.foreign_table3');
 $criteria->select = array('id');
 $criteria->condition = "foreign_table1.col1=:col_val AND foreign_table3.col3=:col_val2";
 $criteria->params = array(':col_val' => some_val, ':col_val2' => other_val);
 $criteria->order = 'foreign_table3.col5 DESC';
 $criteria->limit = 10;
 //with criteria
 
 
 $dataProvider=new CActiveDataProvider('Post', array(
  //'criteria'=>$criteria, //if using criteria
  'criteria'=>array(
   'condition'=>'status=1 AND post_id='.$model->post_id,
   'order'=>'create_time DESC',
   'with'=>array('author'),
   'limit'=>20
  ),
  'pagination'=>array(
   'pageSize'=>20,
  ),
 ));

      $dataProvider->getData() will return a list of Post objects


ACTIVE RECORDS

 Menggunakan FindByAttributes di Yiiframework


<?php
 $usersComments=KomentarThread::model()->findAllByAttributes(array('ID_THREAD'=>$model->ID_THREAD),array(
  'select'=>'t.ID_USER',
  'condition'=>'t.ID_USER<>:id_user_pembuat AND t.ID_USER<>:id_user_komentar',
  'params'=>array(':id_user_pembuat'=>$idUserPembuat,':id_user_komentar'=>$model->ID_USER),
  'distinct'=>true,
 ));

?>

 Cara menggunakan Exists di YiiFramework
 <?php
   $this->findByAttributes(array('email'=>$this->email));
   return $this->exists('email = :email', array(':email'=>$this->email));
 ?>

Cara menggunakan Find di YiiFramework


<?php
return User::model()->active()
 ->validemail()
 ->completeprofile()
 ->with('userprofile', 'userskillconfigs')
 ->together()
 ->findAll(
  array('condition' => 'id_gametype='.Gametype::MAUMAU, 
   'limit' => 3, 
   'order' => 'created DESC') );
?>

<?php
$post=Post::model()->find(array(
 'select'=>'title',
 'condition'=>'postID=:postID',
 'params'=>array(':postID'=>10),
));
<?php
// find all rows satisfying the specified condition
$posts=Post::model()->findAll($condition,$params);
// find all rows with the specified primary keys
$posts=Post::model()->findAllByPk($postIDs,$condition,$params);
// find all rows with the specified attribute values
$posts=Post::model()->findAllByAttributes($attributes,$condition,$params);
// find all rows using the specified SQL statement
$posts=Post::model()->findAllBySql($sql,$params);


<?php
// get the number of rows satisfying the specified condition
$n=Post::model()->count($condition,$params);
// get the number of rows using the specified SQL statement
$n=Post::model()->countBySql($sql,$params);
// check if there is at least a row satisfying the specified condition
$exists=Post::model()->exists($condition,$params)
?>

Cara menyimpan data di YiiFramework


<?php 
$post=new Post;
$post->title='sample post';
$post->content='content for the sample post';
$post->create_time=time();
$post->save();
?>

Cara Update data di YiiFramework
<?php
$post=Post::model()->findByPk(10);
$post->title='new post title';
$post->save(); // s
 
// update the rows matching the specified condition
Post::model()->updateAll($attributes,$condition,$params);
// update the rows matching the specified condition and primary key(s)
Post::model()->updateByPk($pk,$attributes,$condition,$params);
// update counter columns in the rows satisfying the specified conditions
Post::model()->updateCounters($counters,$condition,$params);
?>
Cara menghapus data di YiiFramework
<?php
$post=Post::model()->findByPk(10); // assuming there is a post whose ID is 10
$post->delete(); // delete the row from the database table


// delete the rows matching the specified condition
Post::model()->deleteAll($condition,$params);
// delete the rows matching the specified condition and primary key(s)
Post::model()->deleteByPk($pk,$condition,$params);
?>


Menggunakan CDBCRITERIA di YiiFramework


Cara menggunakan find dengan cdbcriteria di YiiFramework


<?php
 $match = addcslashes($match, '%_'); // escape LIKE's special characters
 $q = new CDbCriteria( array(
  'condition' => "content LIKE :match",         // no quotes around :match
  'params'    => array(':match' => "%$match%")  // Aha! Wildcards go here
 ) );

 $comments = Comments::model()->findAll( $q );     // works!
?>

Cara menggunakan findAll dengan CdbCriteria di YiiFramework

<?php
$match = addcslashes($match, '%_'); // escape LIKE's special characters

// directly into findAll()
$comments = Comments::model()->findAll(
 'content LIKE :match',
 array(':match' => "%$match%")
);
 
// merging in a parameterized scope:
$this->getDbCriteria()->mergeWith( array(
 'condition' => 'content LIKE :match',
 'params'    => array(':match' => "%$match%")
) );
?>

Kombinasi CDbCriteria dan Find di ActiveRecord

<?php
$q = new CDbCriteria();
$q->addSearchCondition('content', $match);
$comments = Comments::model()->findAll( $q );
?>

<?php
$criteria=new CDbCriteria;
$criteria->select='title';  // only select the 'title' column
$criteria->condition='postID=:postID';
$criteria->params=array(':postID'=>10);
$post=Post::model()->find($criteria);
?>

Sabtu, 19 November 2016

Cara install Google Apps (Play Store, Google Services, Google Maps) di Genymotion

"Genymotion - Sebagai developer Android, Genymotion merupakan emulator android yang sangat dapat dihandalkan untuk development aplikasi android anda. Dibandingkan dengan emulator bawaan SDK android yang sangat berat Genymotion dapat mengungguli fitur - fitur utama yang ada di Android Emulator terutama masalah kecepatan dan kebutuhan memory untuk menjalankan emulator. Akan tetapi Genymotion secara bawaan tidak disertakan Aplikasi Google Maps maupun Google Services seperti Play Store, Google + dan sinkronisasi akun google di emulator Genymotion. Untuk mendapatkan service ini (Play Store, Google Service, Google Maps) anda harus installnya secara manual. Caranya sebagai berikut : Cara install Google Apps (Play Store, Google Services, Google Maps) di Genymotion
  1. Install Arm Translation. Kenapa Genymotion bisa lebih cepat dibandingkan dengan Emulator biasa karena ROM dari Genymotion dicompile dengan menggunakan mesin arsitektur x86, Jadi untuk install Google apps untuk Cyanogen anda harus menginstall Arm Translation terlebih dahulu melalui link berikut : ARM Translation Installer v1.1 (Mirrors). Setelah itu anda dapat drag n drop file tersebut ke Emulator Genymotion. Klik ok jika ada konfirmasi penginstalan dan berikut layar yang akan tampil jika anda berhasil menginstallnya.


    genymotion arm installation
    Jika anda sudah berhasil install Arm translation,anda dapat restart adb dengan menggunakan command adb pada default Android SDK :
    adb reboot
    Jika tidak mengerti langsung close saja emulator restart kembali emulator genymotion anda.
  2. Install Gapps untuk Android diGenymotion Jika step pertama sudah selesai selanjutnya adalah download aplikasi Google Apps tergantung dari versi android yang anda miliki.
    (Notes: Lakukan pemilihan dengan teliti. Jika tidak Gapps akan mengalami masalah seperti  Such No Connections di Google Play)
    Sekarang download gapps pada link berikut :
  3. Setelah itu drag and drop ke emulator android dan lakukan instalasi kembali.

    google apps genymotion installation
     
  4. Jika sudah selesai anda berhasil install Gapps sekarang anda dapat restart kembali genymotion kemudian buka kembali emulator genymotion anda. Jika anda menemui pesan Google Play services has stopped ini normal karana versi Google Play services sudah lama dan sekarang update ke Google Play store dengan sign in ke akun anda dan update untuk memperbaikinya
"

Cara mereset nilai Auto Increment di MySQL

Bagi temen - temen yang ingin mereset auto increment mysql yang sudah mencapai nilai tertentu dapat menggunakan Query sebagai berikut ini ni

Cara mereset nilai Auto Increment di MySQL



ALTER TABLE [Nama Table] SET AUTO_INCREMENT=[Nilai]
Contohnya sebagai berikut

ALTER TABLE logs AUTO_INCREMENT=1;
Nah jika anda belum mempunyai id tabel dapat menggunakan query berikut ini

ALTER TABLE logs ADD id INT UNSIGNED NOT NULL AUTO_INCREMENT,
    ADD INDEX (id);
Nah mudah bukan selamat mencoba

Jumat, 18 November 2016

Cara menghiraukan folder / ignore folder di Sublime Text

Ada kalanya kalian mendevelop project dan ingin menghiraukan suatu folder di sublime. Misalnya ketika mendevelop node.js dan ada folder node_modules. Ketika menggunakan Ctrl + P (Go to anything) semua yang ada di folder node_modules juga akan ke search.



Cara menghiraukan folder / ignore folder di Sublime Text
Untuk mengatasi masalah ini anda bisa menambahkan folder yang akan dihiraukan. Caranya

  1. Pilih Preferences > Settings - Default
  2. Kemudian tambahkan di  folder_exclude_patterns
    "folder_exclude_patterns": [".svn", ".git", ".hg", "CVS","node_modules"],
  3. Setelah itu restart dan node_modules tidak akan diproses sublime

Cara membuat disable klik kanan di browser dengan javascript

Langsung aja sobat yang biasanya make javascript ni ya. Yang mau disable klik kanan atau mau memproteksi pengcopyan artikel dari blognya dapat menggunakan script ini.

Ingat untuk menjalankan ini harus ada library jQuery terlebih dahulu

$(document).ready(function() {
    $(this).on("contextmenu",function(){
       return false;
    }); 
});
Kalau tanpa jQuery jadinya gini nih

<script language="javascript">
document.onmousedown=disableclick;
status="Right Click Disabled";
function disableclick(event)
{
  if(event.button==2)
   {
     alert(status);
     return false;    
   }
}
</script>

Jangan lupa di body gini

<body oncontextmenu="return false">
...
</body>

Rabu, 16 November 2016

Cara mengubah banyak gambar menjadi transparan dengan cepat

Mungkin dari anda pernah mengalami bagaimana susahnya mengubah gambar transparan dengan jumlah yang banyak. Dari pada satu satu mengubahnya menggunakan photoshop, ada cara yang lebih cepat dan efisien yaitu menggunakan ImageMagick

ImageMagick ini merupakan library yang sangat berguna buat memanipulasi image. Caranya pertama kali install dlu ImageMagick. Pilih sesuai dengan OS masing - masing.


Setelah itu jika sudah terinstall siapkan file gambar di folder yang sudah siap dibuat transparan. Misalnya pake windows ditaruh di folder D:\gambar

Setelah itu masuk ke command prompt masuk ke directory D:\gambar cranya ketik :

D:

cd D:\gambar


Kemudian buat folder batch di  D:\gambar\batch Setelah selesai masukkan perintah ini


FOR %G IN (*.jpg) DO magick %G -transparent #FFFFFF batch\%G

Dan voila semua gambar sudah transparan. Selamat mencoba ya kawan kawan


Senin, 14 November 2016

Cara Install Bcrypt yang error di Node.js

Terkadang package node.js ada yang membutuhkan beberapa tambahan tools untuk dapat diinstall. Biasanya windows build tools untuk phyton.

Contohnya ketika install bcrypt kemudian muncul error sebagai berikut :


D:\handita\Freelance Project\AWB\htdocs>npm install bcrypt

> bcrypt@0.8.7 install D:\handita\Freelance Project\AWB\htdocs\node_modules\bcry
pt
> node-gyp rebuild


D:\handita\Freelance Project\AWB\htdocs\node_modules\bcrypt>if not defined npm_c
onfig_node_gyp (node "C:\Program Files\nodejs\node_modules\npm\bin\node-gyp-bin\
\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild )  else (node "" rebuild )

gyp ERR! configure error
gyp ERR! stack Error: Can't find Python executable "python", you can set the PYT
HON env variable.
gyp ERR! stack     at failNoPython (C:\Program Files\nodejs\node_modules\npm\nod
e_modules\node-gyp\lib\configure.js:449:14)
gyp ERR! stack     at C:\Program Files\nodejs\node_modules\npm\node_modules\node
-gyp\lib\configure.js:404:11
gyp ERR! stack     at FSReqWrap.oncomplete (fs.js:123:15)
gyp ERR! System Windows_NT 6.1.7601
gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodej
s\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild"
gyp ERR! cwd D:\handita\Freelance Project\AWB\htdocs\node_modules\bcrypt
gyp ERR! node -v v6.9.1
gyp ERR! node-gyp -v v3.4.0
gyp ERR! not ok
npm WARN winter-flower@1.0.0 No repository field.
npm WARN winter-flower@1.0.0 No license field.
npm ERR! Windows_NT 6.1.7601
npm ERR! argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\
node_modules\\npm\\bin\\npm-cli.js" "install" "bcrypt"
npm ERR! node v6.9.1
npm ERR! npm  v3.10.8
npm ERR! code ELIFECYCLE

npm ERR! bcrypt@0.8.7 install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the bcrypt@0.8.7 install script 'node-gyp rebuild'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the bcrypt package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-gyp rebuild
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs bcrypt
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls bcrypt
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     D:\handita\Freelance Project\AWB\htdocs\npm-debug.log

node.js perlu install build tools juga caranya

npm install --global --production windows-build-tools

Setelah itu baru install

npm install --global node-gyp
Kalau masih ada error failed to locate "CL.exe" masukkan perintah ini..
npm config set msvs_version 2013 --global

Sabtu, 12 November 2016

Cara mengatasi sql server yang tidak tersambung dengan benar

SQL Server - Jika anda sering menggunakan SQL server ada beberapa hal yang perlu diperhatikan. SQL Server yang tidak tersambung dengan baik akan memberikan pesan error sebagai berikut :
A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server) (Microsoft SQL Server, Error: 2)
Cara mengatasi sql server yang tidak tersambung dengan benar Untuk mengatasi masalah tersebut ada beberapa cara yang dapat dilakukan untuk memastikan bahwa setingan SQL Server berjalan dengan benar. Dengan cara melihat setting berikut :
  1. Cek koneksi tersambung dengan benar dari client ke server Lakukan ping ke komputer server, pastikan ada reply dari server
  2. Matikan Firewall baik di komputer client ataupun server
    Pastikan firewall di komputer baik client maupun server telah dimatikan. Yaitu masuk ke windows search bar kemudian ketik "Windows Firewall". Kemudian matikan seperti gambar berikut :
  3. Cek SQL Browser telah berjalan dengan baik. Masuk ke SQL Server Configuration manager kemudian cek di SQL Server Browser berjalan dengan baik. Dan pastikan juga instance sql server kita berjalan dengan baik pula misalnya intance SQL MSSQLSERVER berstatus running.
    Jika anda tidak dapat membuka SQL Server Configuration manager anda dapat melihatnya melalui Services kemudian cek untuk SQL Server Browser dan Instance SQL Server berjalan dengan baik
  4. Cek di SQL Configuration manager untuk setting berikut :- Shared Memory : Enabled
    - TCP / IP: Enabled- Named Pipes : Enabled
     
 

Cara memperbaiki error highlight Visual studio setelah install Resharper Ultimate

Resharper Ultimate memang tool yang sangat lengkap dan dapat membantu anda mempercepat pekerjaan di Visual Studio. Shortcut dan highlight error lebih spesifik membantu anda menemukan error dengan cepat di Visual Studio. Jika anda belum membeli lisensi Resharper Ultimate dan anda baru menggunakannya untuk keperluan testing, anda akan ditanya untuk mengganti semua shortcut dan highlight dari Default visual studio menjadi Resharper. Setelah masa trial anda habis biasanya selama 30 hari, Anda pasti akan menguninstall Resharper Ultimate dan kemudian anda akan menyadari Visual studio anda tidak memberikan error highlight lagi dan membuat anda frustasi. Untuk memperbaikinya dapat melakukan hal berikut :

Cara memperbaiki error highlight Visual studio setelah install Resharper Ultimate

  1. Masuk ke Visual Studio
  2. Masuk ke Tools > Options
  3. Text Editor > C# > Advanced
  4. Kemudian pilih dan centang kembali menu berikut :
    • Underline errors in the editor
    • Show live semantic error

Cara mengembalikan user SQL Server yang terdisable semuanya

Sql Server - Untuk tutorial kali ini ane akan memberikan cara bagaimana jika user SQL server kita secara tidak sengaja terdisable semuanya dengan query yang kita lakukan. Jika semua user SQL server telah terdisable anda tidak dapat lagi login ke SQL server kembali bahkan untuk masuk dan mencoba untuk enable lagi user yang ada. Solusinya jika masalah ini terjadi yaitu :

Cara mengembalikan user SQL server terdisable semuanya

Cara yang digunakan untuk mengaktifkan kembali user sql server adalah ke mode Single Mode only di SQL server. Caranya adalah sebagai berikut :
  1. Pastikan akun windows yang anda login adalah akun Administrator. Jika kurang yakin gunakan user Administrator default dari windows. Jika masih belum aktif Cara mengaktifkan user administrator pada windows adalah sebagai berikut : Masuk ke Command Prompt > Run as Administrator kemudian ketikkan net user administrator /active:yes. Setelah itu anda sign out kemudian login kembali dengan user administrator tersebut. Secara default user Administrator tidak berpassword.
  2. Setelah itu masuk ke SQL Configuration Manager Pilih instance SQL server yang bermasalah : sql configuration manager 
  3. Stop Server dari instance SQL server yang kita pilih instance sql server
  4. Klik kanan pada instance SQL Server kemudian pilih Propertiesproperties sql server configuration
  5. Masuk ke bagian Advanced. Kemudian ke Startup parameters, kemudian ketik di bagian depan tambahkan -m jadinya seperti ini :
    -m;-dC:\Program Files\Microsoft SQL Server\MSSQL10_50.DATA\MSSQL\DATA\master.mdf;-eC:\Program Files\Microsoft SQL Server\MSSQL10_50.DATA\MSSQL\Log\ERRORLOG;-lC:\Program Files\Microsoft SQL Server\MSSQL10_50.DATA\MSSQL\DATA\mastlog.ldf
    advance sql server
  6. Setelah itu restart kembali SQL server anda. Setelah selesai coba masuk ke SQL management studio kembali login ke SQL Server anda sesuai instance yang anda inginkan. Setelah itu tinggal masuk ke Security > User > Enable kembali login di SQL server. Setelah berhasil anda kembalikan setup SQL server tadi dengan menghilangkan kembali parameter -m untuk keluar dari single mode. Semoga berhasil

Cara membuat custom error di Yii Framework Controller

YiiFramework - Sudah biasa kan kalau kita memakai yii framework untuk membuat validasi sudah dihandle secara mudah oleh model di yiiframework secara otomatis. Nah bagaimana jadinya jika rule tersebut memang agak rumit dan tidak dapat diterapokan di model yiiframework.

Cara membuat custom error di Yii Framework Controller

Salah satu fitur yang ada di yii framework adalah fungsi addError() di yiiframework. Caranya yaitu dengan mengoverride fungsi beforeValidate di model yiiframework. Misal kita punya model berikut :
public class SampelModel extends CActiveRecords{


    ....
 public $customErrors=array();

    /**
     */
    public function addCustomError($attribute, $error) {
        $this->customErrors[] = array($attribute, $error);
    }

    /**
     */
    protected function beforeValidate() {
        $r = parent::beforeValidate(); }
        foreach ($this->customErrors as $param) {
            $this->addError($param[0], $param[1]);
        }
        return $r;
    }
 
 ...
}
Setelah itu di controller anda dapat memakainya dengan mudah yaitu caranya :
$model->addCustomError('Attribute1','Ini Error di custom error 1');
Pastikan 'Attribute1' ada di dalam deklarasi model anda.

Tampilan Baru Konten Baru

Sudah lama sekali website ini sudah tidak saya urusin. Karena saya punya banyak blog, dan waktu yang saya gunakan untuk ngeblog sudah berkurang juga.. huffft..


Tambahan Konten

Ini mungkin postingan catatan selain tutorial di web kali ini. Mungkin ke depan nanti bisa saya tulis tidak cuma untuk programming saja mungkin info - info atau pendapat juga bisa atau malah ups curahan hati..

Bagi pembaca blogku ini terima kasih telah membaca walaupun kontennya tidak update. Blog ini saya tulis biasanya sih sebagai dokumentasi hal yang pernah aku kerjain karena sering banget lupa kalau sudah kerja, setelah itu di kemudian hari mencari hal yang sama dan itu buang - buang waktu.

Ganti Template

Terima kasih kepada mas arif yang sudah ngeshare template blogger keren ini, ane modif modif warnanya aja biar tambah kalem lihatnya. Pengen bikin template blogger juga tapi masih males belajarnya masih seneng bikin template wordpress sih sebenernya hehe.

Finally

Selamat datang di blogku yang baru semoga masih bisa semangat ngeblog selain Lawatek.com, Bizzhow.net dan ini mungkin yang sudah sapu sapu kotoran yang sudah lama menumpuk..


Rabu, 26 Oktober 2016

Cara membuat string.Format di PHP seperti di .NET C#

Jika anda developer .NET pasti sudah tidak asing lagi menggunakan fungsi string.Format dimana fungsi ini sangat membantu kita untuk memberikan string dengan parameter angka contohnya



string.Format("Ini merupakan {0} yang mempunyai {1} fasilitas","teks","banyak");


nah bagaimana kalau di php untuk melakukannya nah kita bisa menggunakan fungsi sprintf cuma untuk bisa mendapatkan fasilitas angka agak ribet nulisnya

sprintf("Ini merupakan %1$s yang mempunyai %2$s fasilitas","teks","banyak");


Nah jika susah menuliskannya anda dapat menggunakan fungsi sebagai berikut :

public function str_format($format /*, ... */) {
     $args = func_get_args();
     return preg_replace_callback('/\{(\\d+)\}/',
         function($m) use($args) {
             return $args[$m[1]+1];
         },
         $format
     );
 }

tinggal penggunaannya sama

str_format("Ini merupakan {0} yang mempunyai {1} fasilitas","teks","banyak");

Senin, 24 Oktober 2016

Cara membuat tabel boostrap otomatis wrap di mobile view / small devices

Ketika menggunakan tabel responsive di bootstrap terkadang kita menemukan tabel tidak melakukan wrapping di small devices. Tabel hanya menampilkan scroll panjang menyamping dan kamu harus scroll ke samping sampai menemukan konten yang kamu inginkan.

Untuk mengatasi masalah itu tambahkan css berikut ini agar tabel dapat dilihat sesuai yang diinginkan.


<style>
@media
    only screen and (max-width: 767px),
    (min-device-width: 768px) and (max-device-width: 1024px)  {
        .table-responsive > .table > tbody > tr > td {
            white-space: inherit;
        }
     }
</style>