Showing posts with label yii. Show all posts
Showing posts with label yii. Show all posts

Wednesday 31 August 2016

Membuat Manajemen Pengguna Menggunakan Yii Framework (User Login)

Standard
Menurut Dave Kearns, 2004 dalam bukunya User Management and Provisioning memaparkan pengertian dari User Management adalah proses penambahan, mengubah, dan menghapus akun pengguna, sandi, otorisasi, dan atribut dari aplikasi, database, situs web, dan perangkat keras atau perangkat lunak lainnya. Jadi manajement pengguna merupakan proses mengelola menambah, mengubah dan menghapus akun yang memiliki sandi dan otorisasi / hak akses tersendiri. Berikut ini akan kami paparkan bagaimana cara membuat manajemen pengguna menggunakan framework Yii dan database MySQL.
Yang perlu disiapkan adalah packet XAMPP untuk proses membuat database di MySQL dan menjalankan program di web server apache. Langkah pertama buatlah database dengan nama "User" teridir dari atribut id_user (int/AI), username (varchar, 32), password (varchar, 32), level (int) seperti gambar berikut ini:
Kemudian buatlah projek Yii atau install yii menggunakan CLI seperti berikut ini:
1. Unduh framework Yii di laman official yiiframework.com kemudian pilih menu download. Pada tutorial ini menggunakan Yii versi 1.1.17
2. Ekstrak file zip yang telah anda unduh ke dalam direktori htdocs, apabila saat anda melakukan instalasi secara default maka direktori anda berada di C:/xampp/htdocs/. Buatlah folder bernama yii.
3. Buka Command Prompt pada windows anda atau bisa anda ketikkan Windows+R pada keyboard kemudian ketik "cmd" <Enter>.
4. Apabila command prompt telah terbuka, silahkan ketik c:\xampp\htdocs\yii\framework\yiic webapp c:\xampp\htdocs\userlogin lalu tekan <Enter>. Pastikan setelah anda menekan tombol enter muncul notifikasi <Yes|No>[no]: maka yang harus anda lakukan adalah mengetik ”y” pada keyboard kemudian tekan enter.
Bersambung ... .

Wednesday 8 April 2015

Website Gratis Berbasis Yii Framework

Standard
Menurut Ann Rockley, dkk dalam bukunya yang berjudul Managing Enterprise Content: A Unified Content Strategy pengertian CMS atau Sistem manajemen konten adalah perangkat lunak yang digunakan untuk menambahkan atau memanipulasi (mengubah) isi dari suatu situs web.
Dari pengertian diatas saya akan memaparkan website gratis berbasis Yii Framework "siap pakai" (CMS). Banyak programer baru atau orang yang berusaha untuk menjadi programer mencoba-coba framework yang sudah banyak ditawarkan di dunia maya. Banyak pula diantara mereka yang kesulitan untuk belajar framework-framework tersebut salah satunya Yii Framework. Dari studi dilapangan yang menggunakan metode angket dan wawancara dari 250 angket yang disebarkan kepada mahasiswa dengan kosentrasi Teknik Informatika, 209 mahasiswa mengatakan kesulitan dalam mempelajari Yii Framework dan sisanya menjawab mudah dalam mempelajarinya. Kesimpulan dari 209 koresponden menyatakan bahwa mereka kesulitan mempelajari Yii Framework karena kurangnya dokumentasi dari Yii Framework dan belum banyaknya contoh-contoh program atau source code yang bisa mereka dapatkan secara cuma-cuma (gratis). Untuk itu saya tertarik untuk memaparkan website gratis berbasis Yii Framework agar dapat membantu mahasiswa dalam mempelajari Yii Framework secara mudah. Berikut website gratis berbasi Yii Framework:

1. HumHub (Demo | Download)
HumHub merupakan perangkat lunak dengan kategori jejaring sosial yang memiliki tujuan membantu sekelompok orang dalam berinteraksi secara mudah dan cepat. Merupakan perangkat lunak yang ringan, cepat dan menawarkan user-friendly atau tampilan yang mudah digunakan. HumHub dapat membantu meningkatkan bisnis Anda, memperbanyak pelanggan Anda, mengajar siswa atau mengatur klub sepak bola Anda. Beberapa fitur yang ditawarkan perangkat lunak ini diantaranya: notifikasi, monitoring komunitas, dashboard, social tools (Post, comment, follow, like and connect with other), profil pengguna, grup, direktori, file, public access, search, support mobile dan beberapa plugin yang siap digunakan.

2. LimeSurvey (Demo | Download)
LimeSurvey merupakan perangkat lunak yang bergerak dibidang survey untuk mengumpulkan informasi pada hubungan bisnis atau aktifitas Anda. Memiliki slogan "the open source survey application, refreshingly easy and free" dengan tujuan membantu anda dalam membuat suatu survey atau angket dengan mudah, cepat dan gratis. Beberapa fitur dari LimeSurvey diantaranya: Unlimited jumlah survei pada saat yang sama, Unlimited jumlah pertanyaan dalam survei (hanya dibatasi oleh database Anda), Unlimited jumlah peserta untuk survei, Survei multi-bahasa, User-manajemen, Editor WYSIWYG HTML, Manajemen Kuota, Integrasi gambar dan film ke survei, Penciptaan versi survei dicetak, Kondisi pertanyaan tergantung pada jawaban sebelumnya (Logic / Percabangan), Dapat digunakan kembali atau mengubah jawaban, Import pertanyaan, Survei penilaian, Anonymous dan Tidak-Anonymous survei, Kelompok terbuka dan tertutup survei peserta, Pendaftaran publik Opsional untuk survei, Mengirim undangan, pengingat dan token melalui email, Pilihan bagi peserta untuk buffer jawaban untuk melanjutkan survei di lain waktu, Penggunaan cookie dan session, Template editor untuk membuat tata letak halaman Anda sendiri, Tampilan administrasi yang user-friendly, Back-office, Otomatisasi survey tanggal kadaluarsa, Peningkatan fungsi impor dan ekspor untuk teks, CSV, PDF, SPSS, R, queXML dan MS Excel Format, Analisis statistik dan grafis dasar dengan fasilitas ekspor, Layar Pembaca Accessiblity, W3C, Mendukung lebih dari 50 bahasa, Panduan atau dokumentasi.

3. Cartnex (Demo | Download)
Cartnex yang memiliki website resminya di laman cartnex.org merupakan perangkat lunak yang bergerak di bidang toko online (eCommerce) dengan tujuan membantu Anda dalam menjual produk yang Anda miliki dan mempeluas pelanggan Anda. Beberapa fitur cartnex dari sisi pembuatan diantaranya: menggunakan platform Yii Framework, desain profesional, sangat interaktif dan sederhana. CMS ini masih tergolong baru karena di rilis awal April 2015 sehingga belum memiliki dokumentasi.

4. EasyiiCMS (Demo | Download)
EasyiiCMS merupakan perangkat lunak yang bergerak dibidang web portal berita. Perangkat lunak ini memiliki slogan "Easy cms for easy websites" dengan tujuan memudahkan Anda dalam menyampaikan informasi kepada masyarakat. Beberapa fitur dari EasyiiCMS diantaranya: Cepat (Fast engine), Mengubah informasi berita secara langsung (Live edit), mudah dan dibangun menggunakan platform Yii Framework 2.

Tuesday 23 December 2014

Tema Gratis YII Framework

Standard
Hebo! Free Responsive Yii Framework and HTML5 theme
Merupakan themes responsive yang cocok untuk website portfolio dan portal. Banyak programer yang menggunakan themes yii yang satu ini karena memiliki banyak fitur yang disediakan, diantara fitur tersebut yaitu Responsive design makes it look good on every device, HTML5 version, Yii Framework version, PHP version, Styles switcher, Powered on Bootstrap, Over 3000 Icons, jQuery enhanced, 6 Homepage styles, 6 Color variations, 2 different blog layouts, Nivo slider, Flexislider2, Carousal, Fancybox (Responsive Lightbox), Pricing Tables, CSS Dropdown Menu, 16 HTML pages, Sidebar Left/Right.

Abound – Responsive Yii Framework Theme theme

Abound themes yii merupakan tema responsive yang cocok untuk mengelola halaman administrator. Tema ini memiliki banyak fitur diantaranya Graphs & Charts, forms, table, interface dan typography, Tema ini juga menggunakan modul dari bootstrap.

Shadow Dancer – Yii Framework Theme

Shadow themes yii merupakan tema responsive yang cocok untuk mengelola halaman backend. Tema ini memiliki beberapa fitur yang sangat umum digunakan oleh pengguna diantaranya: memiliki 1400 icons, Blueprint CSS Framework, Amazing charts and graphs, Multiple widget styles, Easy theming for CGridview, Pretty dropdown menu, Upto 5000 button variations, fullCalendar support.

AdminLTE -Yii 2 Framework Theme
AdminLTE merupakan themes yii2 yamg menggunakan fitur bootsrap. Halaman backend ini menyediakan banyak fitur yang bisa anda gunakan secara cuma-cuma (gratis). Beberapa fitur dari adminLTE yaitu Dashboard, Mailbox, Calendar, Invoice, Lockscreen, Login, Register, 404 Error, 500 Error, Blank page, Boostrap Slider, Icon slider, Bootstrap WYSIHTML5, CKEditor, Bootstrap Colorpicker, Bootstrap Date range Picker, Bootstrap Time Picker, Data Tables, Flot, Morris.js Sparkilne, Full Calendar, iCheck, jQuery input mask, jQuery Knob, jVector Map, Slim Scroll Pace.

Monday 17 November 2014

Yii2 Behaviour untuk Input Field Otomatis

Standard
Oleh: Hafid Mukhlasin
Mungkin sama dengan Yii 1 (I force forget it), Yii2 juga mengenalkan Behaviour pada Models.
Misal kita punya tabel activity (id, name, created_at [datetime], created_by, update_at[datetime], update_by) maka field created_at, created_by, update_at, update_by bisa diisi otomatis oleh aplikasi kita. Dua behaviours ini yang akan membantu kita.
use yii\behaviors\TimestampBehavior;
use yii\behaviors\BlameableBehavior;
Pada models, tambahakn function behaviours.
public function behaviors(){
return [
'timestamp' => [
'class' => TimestampBehavior::className(),
'attributes' => [
ActiveRecord::EVENT_BEFORE_INSERT => ['created','updated'],
ActiveRecord::EVENT_BEFORE_UPDATE => 'updated',
],
'value' => new Expression('NOW()'),
],
'blameable' => [
'class' => BlameableBehavior::className(),
'attributes' => [
ActiveRecord::EVENT_BEFORE_INSERT => ['created_by','updated_by'],
ActiveRecord::EVENT_BEFORE_UPDATE => 'updated_by',
],],];
}
Lalu pastikan pada models function rules, ke empat field tersebut tidak masuk dalam required.
public function rules()
{
return [
[['name'], 'required'],
...
}
Empat buat field yaitu field created_at, created_by, update_at, update_by tidak perlu diinputkan karena sudah otomatis input dari sistem jadi tidak memerlukan validasi.
Banyak orang yang mengalami permasalahan yaitu mengira kode yang dituliskan sudah benar tetapi ketika proses penyimpanan gagal. Solusinya anda dapat menampilkan kesalahan atau error ketika proses menyimpan, berikut contoh kode:
if($model->save()) {
Yii::$app->getSession()->setFlash('success', 'Data have updated.');
}
else{
$error = implode(', ',$model->errors);
Yii::$app->getSession()->setFlash('error', 'Data is not updated. Because '.$error);
}
Selamat berkreasi.

Tuesday 11 November 2014

Tips Belajar Yii Framework 2.0 Untuk Pemula

Standard
yii2-aimagu
Yes It Is atau lebih dikenal dengan sebuta yii merupakan salah satu framework yang menggunakan bahasa pemrograman PHP OOP yang berarti sederhana dan evolusi. Pada bulan Oktober 2014 yii telah meluncurkan framework versi 2.0 yang menggunakan PHP 5.4.0 keatas. Untuk anda yang tertarik belajar yii framework pada tahapan pemula berikut tips dari salah seorang master yii yaitu Hafid Mukhlasin, berikut tipsnya:
  1. Yii 2.0 itu PHP Framework, untuk menguasainya maka anda diharuskan menguasai PHP, yaitu dengan banyak belajar dan mencoba. Dengan kemampuan yang sedikit di PHP maka anda tidak bisa maksimal dalam membangun sebuah aplikasi.
  2. Yii 2.0 PHP 5.4, full OOP, anda dianjurkan untuk belajar OOP di PHP. Lebih baik lagi apabila anda pernah belajar Java atau Dot net, itu sangat membantu.
  3. Pemahaman yang baik tentang web technology lain seperti HTML, CSS, JS, Jquery, Json merupakan nilai tambah yang akan sangat membantu.
  4. Guide dari website Yii itu sudah lebih dari cukup, hanya kelemahan orang Indonesia adalah malas membaca (apabila tidak bisa bahasa inggris dianjurkan menggunakan google translate, walaupun proses translatenya belum sempurna)
Berikut ini pengalaman saya (Hafid Mukhlasin) belajar Yii2 setengah tahun ini:
  1. Berdoa (Wajib)
  2. Ambil Guru, guru saya banyak bertebaran di grup ini (Yii PHP Framework Indonesia), setiap orang baru yang kelihatannya menguasai sebagian ilmu Yii2 saya selalu izin mengambil ilmunya.
  3. Baca guide dengan baik, tidak perlu semua bagian dibaca, cukup pokok atau intinya saja. Asal bisa install dan topik terpenting adalah sistem CRUD, selebihnya bisa dipelajari sambil jalan.
  4. Siklusnya Baca => Coba => Gugling => Tanya Master/Forum => Problem Solving.
  5. Masuk ke zona yang tidak nyaman, pelajari apa yang kita duga materi paling sulit. 
  6. Usahakan sharing apa yang anda fahami, jangan malu jangan pelit, karena memberi itu pasti mendapat yang lebih banyak (ini rahasianya dan cara ini sangat cepat melejitkan kemampuan kita). Sharing Tulisan (Saya sering kan? Ini cara saya mempercepat pemahaman saya), Sharing Code, membuat extension, dll
  7. Buat kondisi dimana anda terpaksa belajar cepat dan banyak misal menerima project dari client.

Anda dapat bergabung dengan grup YII Framework Indonesia dengan menekan link "Gabung"

Login dan Manajemen User YII Framework Siap Pakai

Standard
http://creationgears.com
Berikut ini lima extension terbaik mengenai autentifikasi dan manajemen user di yii framework. Extension ini bisa anda gunakan cuma-cuma alias gratis dengan lisensi dan aturan yang tersedia.
1. YII User (Demo | Download)
Extension ini dibuat oleh mishamx pada 12 Februari 2010 mendapatkan like 262 voters, diunduh sebanyak 61.927 kali dan sudah 7 kali revisi. YII User memiliki fitur diantaranya: Login from User, Name or Email, Registration, Activation accounts (verification email, administrator or not), Recovery password (send recovery key to user email), User profile page, Manage Users, Manage Profile Fields, Profile field widget for view, edit and save data, Date widget (jQueryUI datepicker), File upload widget, Profile Relation Widget, API.

2. YII Rights (DemoDownload)
Chris83 merupakan pembuat dari yii rights ini, orang yang sudah tidak asing lagi dalam dunia pemrograman. Orang ini terkenal sebagai pembuat bootstrap. Extension ini mendapatkan like 229 voters, diunduh sebanyak 47,756 kali dan sudah mengalami 2 kali revisi. Untuk revisi selanjutnya chris mengubah nama extensionnya menjadi yii auth. Diterbitkan pada 22 Juli 2010. Memiliki fitur: User interface optimized for usability, Role, task and operation management, View displaying each role's assigned tasks and operations, Assigning authorization items to users, Sorting of authorization items by dragging and dropping, Installer for easy and quick set up, Authorization item generation, Controller filter for checking access, Support for business rules (and data), Runtime caching to increase performance, Internationalization (I18N), Cross-browser and cross-database compatibility, Easy to extend.

3. SRBAC (Demo | Download)
Extension yang dibuat oleh Spyros ini terbit pada 5 Juli 2009 mendapatkan 71 like, diunduh sebanyak 33,865 kali dan mengalami perbaikan sebanyak 3 kali. Extension SRBAC memiliki fitur diantaranya: You can select if demo data will be created in install, All assignments calls are made in ajax, You can set the name of the Authorizer authItem, You can update the names of the auth Items, Delete authItems, Ajax based web interface for administrating auth items at index.php?r=srbac/authItem/manage, View Roles / Tasks / Operations assigned to users at index.php?r=srbac/authItem/assignments, Srbac can be installed as a child module too, Custom cssFile support, Custom layout for srbac (layout must be in default application's layout folder), Add ajax indicators, Spanish translation (Ricardo Obregon), Russian translation (idle sign), Added autocomplete textbox for searching in users assignments.

4. Auth (Demo | Download)
Extension lanjutan dari yii Rights dengan pembuat yang sama yaitu Chris83 rilis pada 29 Desember 2012 mendapatkan 67 like dan diunduh sebanyak 7814 kali sudah mengalami revisi sebanyak 10 kali. Fitur utama yang terlihat dari extension ini adalah penggabungan rights dengan bootstrap terlihat sangat responsive pada tampilannya.

5. Usergroups (Demo | Download)
Extension ini dibuat oleh Nickcv pada 24 Maret 2012 mendapatkan 52 like dan telah diunduh sebanyak 12775 kali. Fitur diantaranya: groups: let's you decide what group the user has to belong to perform an action, levels: you can decide what level the user needs to perform an action, permissions: you can decide that just users with a certain permission on that controller or another can perform a certain action

Monday 10 November 2014

Membuat User Online di YII Framework

Standard
Pada posting ini akan saya paparkan bagaimana cara membuat user online pada yii framework. Fungsi dari user online adalah untuk mengetahui berapa user yang sedang aktif pada sistem informasi yang kita buat.
Berikut langkah membuat user online di yii framework:
1. Membuat user login
Anda bisa membuat user login sendiri atau menggunakan beberapa extension yang disediakan pada laman yii framework (rights, RBAC, yii user) atau bisa langsung klik LINK.
2. Extension DbHttpSession (UNDUH)
Silahkan mengunduh extension DbHttpSession kemudian ekstrak kedalam path: protected/components pada aplikasi anda.
3. Tambahkan code berikut ini pada component dalam file config/main.php

'session' => array (
  'class' => 'application.components.DbHttpSession',
  'connectionID' => 'db',
  'sessionTableName' => 'session',
  'userTableName' => 'user'
),
4. Tambahkan query berikut kedalam database anda. Query ini akan menambahkan field user_id, last_ip, last_activity pada tabel user anda. 

ALTER TABLE user ADD user_id INT(11) NOT NULL, ADD last_ip VARCHAR(100) NOT NULL, ADD last_activity DATETIME NOT NULL
5. Tambahkan method getOnlineUsers pada model user aplikasi protected/model/user.php

public static function getOnlineUsers()
    {
        $sql = "SELECT session.user_id, user.username FROM session LEFT JOIN user ON user.id=session.user_id";
        $command = Yii::app()->db->createCommand($sql);
 
        return $command->queryAll();
    }
6. Pada protected/view/site/index.php tambahkan kode berikut

foreach (User::getOnlineUsers() as $user) {
        echo $user["username"];
    }

Monday 14 July 2014

Set Value dari Pilihan Dialog Pada YII Framework

Standard
Pernahkan anda menjumpai permasalahan saat menginputkan data pada suatu text dengan ketentuan data itu harus benar berasal dari tabel tertentu? Kemudian dengan cara apa anda menyikapi permasalahan seperti ini? Menggunakan dropdownlist atau autocomplete? Benar, itu merupakan salah satu jalan keluar yang baik tetapi pernahkan anda berfikir apabila data dalam tabel tersebut ada ribuan? Tentu saja akan memusingkan apabila harus memilih data yang ribuan tersebut dalam suatu inputan dropdownlist.
Beberapa tutorial dalam wiki Yii Framework membuat panduan berupa select data dari kotak dialog yang didalamnya itu nanti muncul data dari tabel lain dan terdapat suatu inputan pencarian. Pada contoh berikut ini saya akan membuat tutorial dengan studi kasus aplikasi jurnal dengan data tabel master Dosen sebagai pelaku yang mengisikan data pada aplikasi jurnal tersebut. Berikut ini langkah pembuatannya:
Buatlah form yang terdiri dari textfield NIDN, Nama dan Program Studi seperti pada gambar berikut:

Kemudian buatlah tombol "ubah" untuk memunculkan data tabel dosen dalam dialog seperti pada gambar diatas.
Apabila data Dosen berasal dari tabel yang lain yaitu tabel dosen maka renderlah model tersebut. Contoh disini saya akan merender model dosen dalam action create sebagai berikut:
<?php public function actionCreate()
 {
  $model=new Jurnal;
  $model2=new Dosen('search');
  $model2->unsetAttributes();
  if(isset($_GET['Dosen']))
   $model2->attributes=$_GET['Dosen'];
  if(isset($_POST['Jurnal']))
  {
   $model->attributes=$_POST['Jurnal'];
   $model->save();
  }

  $this->render('create',array(
   'model'=>$model,
   'model2'=>$model2,
  ));
 }
?>
Kemudian pada file protected/view/jurnal/_form.php buatlah form dialog yang berasal dari model dosen sebagai berikut:
<?php 
    $this->beginWidget('zii.widgets.jui.CJuiDialog',array(
 //Nama selector/id
    'id'=>'mydialog',
    // additional javascript options for the dialog plugin
    'options'=>array(
        'title'=>'Klik tanda <code>+</code> untuk memilih NIDN!',
        'autoOpen'=>false,
  //Fokus atau modal diaktifkan
  'modal' => true,
     'show'=>array(
       'effect'=>'blind',
       'duration'=>1000,
       ),
     'hide'=>array(
       'effect'=>'explode',
       'duration'=>500,
     ),
  'width' => 640, 
  'height' => 480
    ),
));?>
<?php $this->widget('bootstrap.widgets.TbGridView',array(
 'id'=>'dosen-grid',
 'dataProvider'=>$model2->search(),
 'type'=>'striped bordered condensed',
 'filter'=>$model2,
 'columns'=>array(
  array(
   'name'=>'nidn',
   'filter'=> CHtml::activeTextField($model2, 'nidn', array('placeholder'=>'Cari NIDN dosen')),
  ),
  array(
   'name'=>'nama',
   'filter'=> CHtml::activeTextField($model2, 'nama', array('placeholder'=>'Cari nama dosen')),
  ),
  array(
          'name'=>'program_studi',
          'type'=>'raw',
    'filter'=>CHtml::listData(Dosen::model()->findAll(array(
    'distinct' => true,
    'order' => 'program_studi ASC'
   )), 'program_studi', 'program_studi'),
        ),
  array(
    'header'=>'PILIH',
    'type'=>'raw',
    'value'=>'CHtml::Button(
          "+"
          , array(
    "class" => "btn submit"
          , "id" => "get_link"
          , "onClick" => "$(\"#mydialog\").dialog(\"close\");$(\"#Jurnal_nidn \").val(\"". $data->nidn."\");
    $(\"#Dosen_nama \").val(\"". $data->nama."\");
    $(\"#Dosen_program_studi \").val(\"". $data->program_studi."\");
    "))',
  ),
 ),
)); ?>
<?php $this->endWidget('zii.widgets.jui.CJuiDialog'); ?>
Pada source code diatas merupakan code untuk membuat pilihan dialog data dari dosen kemudian apabila user sudah memilih salah satu data maka otomatis langsung mengset textfield NIDN, Nama dan Program Studi seperti pada gambar berikut ini:
Setelah button [+] di pilih maka akan menset textfield sebagai berikut ini:
Pada textfield NIDN terdapat button "ubah" source codenya sebagai berikut:
<?php echo $form->textFieldRow($model, 'nidn', array('disabled'=>true, 'class'=>'span2', 'hint' => '<i class="text-info" id="nidn">Klik <a href="#" onclick=$("#mydialog").dialog("open"); return false;><code>ubah</code></a> untuk memilih NIDN.</i>')); ?>
Pada textfield NIDN dipasang action onclick bernama #mydialog untuk menampilkan dialog tersebut.

Apabila muncul pesan error "Undefined variable: model2" maka definisikan model2 dalam file create.php di folder protected/view/jurnal/create.php

Pada contoh ini menggunakan struktur tabel sebagai berikut:

Live Demo

Pastikan anda menggunakan extension bootstrap atau booster.

Monday 26 May 2014

Membuat Barcode pada YII Framework dengan QR Code Generator

Standard

Bila kita mengunjungi suatu supermarket atau swalayan sering kita jumpai kode barcode ini pada kemasan suatu produk, dari yang kecil sampai yang besar memiliki kode barcode. Untuk mengetahui isi identitas dari produk tersebut (yang biasanya berbentuk angka) biasanya menggunakan mesin barcode.
Menurut salah satu sumber website wiki terkenal wikipedia menyatakan bahwa barcode atau kode batang adalah suatu kumpulan data optik yang dibaca mesin. Sebenarnya, kode batang ini mengumpulkan data dalam lebar (garis) dan spasi garis paralel dan dapat disebut sebagai kode batang atau simbologi linear atau 1D (1 dimensi). Tetapi juga memiliki bentuk persegi, titik, heksagon dan bentuk geometri lainnya di dalam gambar yang disebut kode matriks atau simbologi 2D (2 dimensi). Selain tak ada garis, sistem 2D sering juga disebut sebagai kode batang.
Dalam YII Framework sudah ada yang membuat extension barcode ini, tinggal kita menggunakannya saja. Ada 2 macam extension (Mei 2014) tentang barcode dalam yii framework salah satunya yaitu qr-code-generator. Extension ini bekerja pada yii versi 1.1 ke atas dan sangat mudah dalam penggunaanya.
Langkah pertama unduh extension tersebut pada alamat: http://www.yiiframework.com/extension/qr-code-generator kemudian ekstrak pada direktori protected/extensions/qrcode.

Sunday 18 August 2013

7 LANGKAH BELAJAR YII FRAMEWORK

Standard
Bagi banyak orang yang baru saja mengenal YII Framework mungkin terasa sulit karena belum mengenal dan baru saja mengetahui sintak-sintak apa saja yang dapat di gunakan pada framework canggih ini. Sebenarnya yii framework itu apa dan bagaimana cara penggunaanya, seperti inilah pertanyaan yang selalu terlontarkan pada orang-orang yang akan memulai belajar yii.
Mari kita kupas bagaimana kiat belajar yii framework yang baik. Sebelum menginjak ke inti permasalahan mari kita ulas kembali pengertian dari yii framework.
Di kutip dari laman resmi yii framework adalah framework (kerangka kerja) PHP berbasis-komponen, berkinerja tinggi untuk pengembangan aplikasi Web berskala-besar. Yii menyediakan reusability maksimum dalam pemrograman Web dan mampu meningkatkan kecepatan pengembangan secara signifikan. Nama Yii (dieja sebagai /i:/) singkatan dari "Yes It Is!".
Kiat belajar yii framework di kutip dari forum yii framework Indonesia yaitu:
  1. Unduh Yii Framework --> install --> test requirementnya, untuk lebih lengkapnya baca pada docs http://www.yiiframework.com/doc/guide/1.1/en/quickstart.installation
  2. Tes demo yang di sediakan dalam yii framework dan yang terpenting adalah sample blog. Pelajari pola kode didalamnya dan  baca dokumentasinya pada alamat http://www.yiiframework.com/doc/blog/
  3. Saatnya membuat aplikasi Yii sendiri, buat skeleton Yii Framework dengan mengikuti tutorialnya pada alamat http://www.yiiframework.com/doc/guide/1.1/en/quickstart.first-app aplikasi ini sudah bisa digunakan, meskipun masih skeleton.
  4. Melalui MySQL atau database lainnya (PostGreSQL, Oracle, dll), anda dapat membuat database sesuai yang anda butuhkan. Setiap tabel wajib mempunyai Primary Key. Setelah itu setup koneksi database-nya ke Yii (app/protected/config/main.php. Ikuti petunjuk pada alamat http://www.yiiframework.com/doc/ guide/1.1/en/database.dao
  5. Saatnya membuat aplikasi CRUD dengan tabel-tabel di database yang sudah kita buat melalui Auto Generation Code Yii dengan mengikuti petunjuk pada alamat http://www.yiiframework.com/doc/guide/1.1/en/topics.gii
  6. Sisanya tinggal berjalan bersama Yii, pelajari semua class, componen, db, gii, loging, validation, Filter, Form, zii Widget, extension, module, behaviour, theme, layout, captha, authentication, internationalization, localization, webservices, unit testing, dan integrasi dengan third party, framework lain, encapsulate yang ada dalam yii. Semua sudah built-in di Yii, tinggal menggunakan saja.
  7. Pelajari Wiki dan gunakan Extension sesuai kebutuhan anda.
Semoga bermanfaat, selamat mencoba.

Saturday 17 August 2013

CMS MANAJEMEN SEKOLAH DASAR BERBASIS YII FRAMEWORK

Standard
ISIMS (Sistem Informasi Manajemen Sekolah Dasar) merupakan perangkat lunak untuk mengelola nilai siswa, absensi siswa, jurnal mengajar, kenaikan kelas dan monitoring pembelajaran. Perangkat lunak ini bersifat open source dan di bangun menggunakan YII Framework.

FEATURES
  • Manajemen Monitoring Pembelajaran
  • Pengaturan Website Dinamis
  • Manajemen Nilai dan Raport
  • Manajemen Jurnal Mengajar
  • Manajemen Kenaikan Kelas
  • Manajemen Absensi Siswa
  • Manajemen User
  • Kalkulator
REQUIREMENTS
  • Yii 1.13 or above
  • PHP 5.3 or above
  • PostGreSQL 8.1 or above
INSTALLATION
  • Download master yii framework (http://www.yiiframework.com/download/)
  • Ekstrak file master yii framework ke dalam webserver (Ex: localhost/yii/master/)
  • Ekstrak file isims dalam cd ke webserver (Ex: localhost/yii/isims/)
  • Buka File index pada main direktori isims
  • Ubah baris ke-4 menjadi $yii=dirname(__FILE__).'/../master/framework/yii.php';
  • Import database /isims/protected/data/isims-db.sql (PostGreSQL 8.1 or above)
  • Buka konfigurasi .../isims/protected/config/main.php
  • Ubah baris 111-121 sesuai kebutuhan
  • 'db'=>array( 'connectionString' => 'pgsql:host=localhost;port=5432;dbname=NAMA_DATABASE', 'emulatePrepare' => true, 'username' => 'USERNAME', 'password' => 'PASSWORD', 'charset' => 'utf8', 'enableProfiling'=>true, 'enableParamLogging' => true, 'schemaCachingDuration' => 180, ),
  • Buka Browser --> localhost/yii/isims/ atau www/yii/isims/
  • Website siap digunakan
USER MANAJEMEN
  • Admin (Username: ocim | Password: ocim)
TRY OUT DEMO
REPO
  • Github (Download) - Database No Include
DATABASE
Database Only (Apply via Google Form atau Telp. +6285742974933)
  • Harga : Rp 50.000,-
  • File Format : SQL (MySQL atau PostgreSQL)
  • Availability : Ready Stock
Full Packet (Apply via Google Form atau Telp. +6285742974933)
  • Harga : Rp 200.000,-
  • File Format : Aplikasi Full Version, Database, Ebook, Panduan Instalasi, Lisensi Jangka Panjang.
  • Availability : Ready Stock

Dapat melakukan pemesanan melalui Google Form dibawah

Monday 5 August 2013

Page Caching Pada YII Framework

Standard
Sumber Gambar: http://microsoft.com
Dalam laman resmi yii di http://yiiframework.com memberikan review tentang page caching. Sebenarnya apa itu page caching dan apakah fungsinya? Berikut gambaran tentang page caching atau penembolokan halaman.
Penembolokan halaman merujuk pada caching isi seluruh halaman. Penembolokan halaman bisa terjadi di berbagai tempat. Misalnya, dengan memilih tajuk halaman(page header) yang sesuai, penjelajah klien(client browser) mungkin menembolok halaman yang sedang dilihat untuk jangka waktu tertentu. Aplikasi Web sendiri juga dapat menyimpan isi halaman dalam cache. Dalam subbab ini, fokus kita pada pendekatan ini.
Penembolokan halaman bisa dipertimbangkan sebagai kasus khusus caching fragmen. Karena isi halaman sering dihasilkan dari dari penerapan tata letak(layout) pada sebuah tampilan, caching halaman tidak akan berfungsi jika kita hanya memanggil beginCache() dan endCache() dalam tata letak. Alasannya dikarenakan tata letak diterapkan dalam metode CController::render() SETELAH tampilan konten dievaluasi.
Untuk menembolok seluruh halaman, kita harus melewatkan eksekusi aksi penghasil isi halaman. Kita bisa menggunakan COutputCache sebagai aksi filter untuk menyelesaikan tugas ini. Kode berikut akan memperlihatkan bagaimana kita mengkonfigurasi filter cache:

public function filters(){
    return array(
        array(
            'COutputCache',
            'duration'=>100,
            'varyByParam'=>array('id'),
        ),
    );
}
Konfigurasi filter di atas akan menjadikan filter diterapkan ke semua aksi dalam controller. Kita dapat membatasinya ke satu atau beberapa aksi hanya dengan menggunakan operator plus. Lebih jelasnya bisa ditemukan dalam filter.
Tip: Kita dapat menggunakan COutputCache sebagai filter karena kelas tersebut diturunkan dari CFilterWidget, yang artinya COutputCache dapat berupa widget dan juga filter. Sebenarnya, cara kerja widget mirip dengan filter: widget (filter) dimulai sebelum isi yang dilampirkan (aksi) dievaluasi, dan widget (filter) berakhir setelah isi yang dilampirkan (aksi) dievaluasi.
Kesimpulan:
Yii punya beberapa level cache, dari db cache, fragment cache sampe full cache.
Jika anda punya halaman index (actionIndex) di controller tertentu yang contentnya dinamis (diambil dari database) tapi tidak sering2 diupdate, gunakan full page cache di controller-nya (Peter Jack Kambey, 2013)

Sunday 2 June 2013

YII FRAMEWORK 15 WEBSITE INDONESIA BERBASIS YII

Standard
Mungkin banyak orang awam beranggapan penggunaan Yii Framework masih sulit di gunakan karena documentnya belum lengkap dan masih terbatas. Dari situlah banyak orang awam pesimis bagaimana cara membuat website yii yang berkualitas. Disini saya akan memberikan contoh beberapa website yii framework buatan anak bangsa yang sudah berkualitas.

1. Website Dikti (DEMO)
Website milik pemerintah di bidang beasiswa pendidikan untuk jenjang sekolah menenganh menuju bangku kuliah ini sudah berbasis yii Framework.

Friday 31 May 2013

YII FRAMEWORK URL REWRITER GOOD SEO!

Standard
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 24 May 2013

YII Mencegah Input Redudance Data (Data Ganda/ Double)

Standard

Pernahkan 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 Model
Step-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-2
Tambahkan 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 database
Step 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.

Copyright © AIMAGU. Jasa Pembuatan Website. All Rights Reserved
Design by Automattic | Blogger Theme by NewBloggerThemes | Official: www.aimagu.com