Banyak orang awam jarang memikirkan fungsi dari url rewriter sebagai SEO website mereka. Ketika orang sudah membuat website di YII Framework maka yang mereka pikirkan adalah dimana dan bagaimana cara mempublish website tersebut agar di kenal orang bahkan dapat menghasilkan rupiah. Pemikiran ini wajar apabila di pikirkan oleh setiap orang sebab hal utama yang di cari adalah memang itu tanpa memikirkan kualitas SEO website yang mereka buat. Disini saya akan memaparkan bagaiman membuat URL rewriter yang GOOD SEO untuk website YII Framework. Kelebihan URL SEO ini di bandingkan dengan tutorial yang beredar di dunia maya adalah dapat membaca url dari primary key integer maupun string, Berikut langkah kerjanya:
Friday 31 May 2013
Friday 24 May 2013
YII Mencegah Input Redudance Data (Data Ganda/ Double)
StandardPernahkan anda menjumpai error duplicate key value violates unique pada yii seperti gambar diatas? Pesan error diatas menjelaskan bahwa dalam database sudah terdapat data dengan yang anda inputkan sekarang. Dengan syarat pesan ini muncul ketika field database merupakan primary key atau unique sehingga ketika data ke-2 yang di inputkan sama maka akan tampil pesan error tersebut. Saya contohkan apabila dalam database terdapat data nomor 123A pada field no_pendaftaran kemudian anda menginputkannya lagi dengan nomor yang sama yaitu 123A maka akan tampil pesan error tersebut. Berikut ini akan saya paparkan 3 buah cara untuk mencegah terjadinya data ganda/ double :
1. Penggunaan try-catch
Contoh codenya seperti berikut:
Dalam lingkup try bernilai benar sedangkan dalam catch adalah value error yang akan di tampilkan.
Script ini hanya menampung error dalam sebuah tampilan gui message flash saja. Cara ini kurang cantik bila di gunakan untuk validasi sebuah kriteria. Cara yang ke-2 ini adalah rekomendasi dari Muhammad Rifki Mockie agar validasi lebih baik dan lebih cantik sesuai prosedur dari doc yii framework. Berikut ini tips ke-2:
2. Penggunaan validasi dari Rule di ModelStep-1
Buatlah file proctected/components/CompositeUniqueKeyValidator.php
Kemudian isikan script seperti berikut ini:
<?php
/**
* CompositeUniqueKeyValidator class file.
*/
class CompositeUniqueKeyValidator extends CValidator {
/**
* @var string comma separated columns that are unique key
*/
public $keyColumns;
public $errorMessage = '"{columns_labels}" are not unique';
/**
* @var boolean whether the error message should be added to all of the columns
*/
public $addErrorToAllColumns = false;
/**
* @param CModel $object the object being validated
* @param string $attribute if there is an validation error then error message
* will be added to this property
*/
protected function validateAttribute($object, $attribute) {
$class = get_class($object);
Yii::import($class);
$keyColumns = explode(',', $this->keyColumns);
if (count($keyColumns) == 1) {
throw new CException('CUniqueValidator should be used instead');
}
$columnsLabels = $object->attributeLabels();
$criteria = new CDbCriteria();
$keyColumnsLabels = array();
foreach ($keyColumns as &$column) {
$column = trim($column);
$criteria->compare($column, $object->$column);
$keyColumnsLabels[] = $columnsLabels[$column];
}
unset($column);
$criteria->limit = 1;
if ($class::model()->count($criteria)) {
$message = Yii::t('yii', $this->errorMessage, array(
'{columns_labels}' => join(', ', $keyColumnsLabels)
));
if ($this->addErrorToAllColumns) {
foreach ($keyColumns as $column) {
$this->addError($object, $column, $message);
}
}
else {
$this->addError($object, $attribute, $message);
}
}
}
}
?>
Step-2Tambahkan validasi pada method rule di model anda:
<?php
public function rules(){
return array(
array('no_karyawan', 'CompositeUniqueKeyValidator', 'keyColumns' => 'no_karyawan, id_tempat'));
} ?>
Maksud dari rule ini adalah memvalidasi field no_karyawan dan id_tempat yang keduanya merupakan primary key agar menjadi field unique key.
3. Pengecekan databaseStep 1 - Membuat coditional field apa yang ingin dicek, contohnya seperti kode program berikut:
$isExist = Mhs::model()->exists(
array('condition'=>'nim = :nim',
'params'=>array(
':nim'=>$_POST['NilaiKknPpl']['nim']
),
));
Kemudian buat kondisi untuk membaca kode program diatas. Yaitu seperti kode berikut ini:if($isExist){
//True atau ada dalam database
}else{
//False atau tidak ada dalam database
}
Untuk saya pribadi lebih menganjurkan anda untuk memakai cara ke-3 karena langsung melakukan pengecekan pada database, apakah data sudah ada atau tidak. Cara pertama yaitu try... catch tidak cocok untuk pengecekan redudance data. Berbeda dengan cara kedua yang masih error dalam proses updatenya karena validasinya masih membaca primary key sebagai data yang sudah ada dalam database sehingga proses updatenya gagal walaupun proses createnya sudah oke dalam masalah validasi.
Friday 8 February 2013
APLIKASI JAVA MENGGUNAKAN TIPE DATA DAN OPERATOR PERBANDINGAN
Standard
Pernahkan anda melihat aplikasi java yang menggunakan kotak dialog sebagai informasi dari suatu inputan yang di berikan oleh user. Pada tutorial kali ini akan di bahas cara pembuatan aplikasi java menggunakan komponen jOptionPane (Kotak dialog) dan menggunakan tipe data operator perbandingan.
Sedikit gambaran untuk aplikasi java sederhana ini yaitu user melakukan inputan pada form yang di sediakan yaitu memasukkan 3 buah angka. Program akan mendeteksi apakah ketiga angka tersebut merupakan angka yang sama atau berbeda dan akan menampilkan karakter angka 1, angka 2, angka 3 dari inputan yang sudah kita proses. Sistem ini dapat anda realisasikan dalam dunia nyata untuk registrasi suatu form, dll.
Berikut ini langkah pembuatan program aplikasi java menggunakan tipe data dan operator perbandingan yang di namai program Prak4_Latihan2.
- Buat project Prak4 – klik kanan project – pilih New – Klik jFrame Form
- Tambahkan jLabel, jTextField dan jComboBox ke dalam jFrame. Kemudian atur posisinya seperti gambar berikut :
- Ubah properties Text komponen tersebut :
jTextField > Kosong
jButton1 > PROSES
- Sebelum memasukkan script, terlebih dahulu pilih Inspector > Klik kanan Other Components > Pilih Add From Palette > Pilih Swing Windows > Klik Option Pane, seperti gambar berikut ini:
- Akan tampil hasil jOptionPane1 pada Other Components seperti gambar berikut:
- Klik kanan pada jButton1 > Events > Mouse > Mouse Clicked
- Masukkan script berikut ini :
- Compile (F11) dan Jalankan program (F6).
Pembahasan Hasil Program
Analisa : Apabila kita meberi inputan pada jTextField1 dengan angka 111 kemudian mengeklik button PROSES maka akan muncul kotak dialog Message Nilai Angka=111 | Nilai Satuan=1 | Nilai Puluhan=1 | Nilai Ratusan=1 seperti script yang telah kita tanamkan tadi. Apabila kita klik ok maka akan muncul kotak dialog kedua yaitu ‘Anda telah memasukkan 3 angka yang sama’ dengan script perulangan if...else yang berada di dalamnya.
Apabila kita memberi inputan dengan angka berbeda yaitu 123 maka akan tampil seperti diatas dan muncul kotak dialog berbeda yaitu ‘Angka tidak memasukkan 3 angka yang sama.
Cukup mudah bukan? Untuk pengembangan lebih lanjut anda bisa memberikan batasan untuk inputan hanya bisa di inputkan angka saja (huruf/ karakter tidak boleh) dan batasan inputan hanya boleh 3 angka saja (maks 3 karakter).
*** Selamat Mencoba ***
Subscribe to:
Posts (Atom)
Copyright © AIMAGU. Jasa Pembuatan Website. All Rights Reserved
Design by Automattic | Blogger Theme by NewBloggerThemes | Official: www.aimagu.com