Makalah Framework Yii Kiki

32
MAKALAH PEMOGRAMAN BERBASIS WEB PENGGUNAAN YII FRAMEWORK DALAM PEMBUATAN WEB FORUM SEDERHANA Oleh : Kiki Pramita Oktavia (8113100027/ TI-B) POLITEKNIK KOTA MALANG PROGRAM STUDI TEKNIK INFORMATIKA 2012

Transcript of Makalah Framework Yii Kiki

Page 1: Makalah Framework Yii Kiki

MAKALAH PEMOGRAMAN BERBASIS WEB

PENGGUNAAN YII FRAMEWORK DALAM

PEMBUATAN WEB FORUM SEDERHANA

Oleh :

Kiki Pramita Oktavia (8113100027/ TI-B)

POLITEKNIK KOTA MALANG

PROGRAM STUDI TEKNIK INFORMATIKA 2012

DAFTAR ISI

Page 2: Makalah Framework Yii Kiki

MAKALAH PEMOGRAMAN BERBASIS WEB

YII Framework Page 2

COVER ................................................................................................................... 1

DAFTAR ISI........................................................................................................... 2

Kata Pengantar ...................................................................................................... 3

Pendahuluan ........................................................................................................... 4

Latar Belakang ................................................................................................. 4

Tujuan .............................................................................................................. 4

Rumusan Masalah ............................................................................................ 4

Batasan Masalah ............................................................................................... 4

Tinjauan Pustaka ................................................................................................... 5

Pengertian Framework ......................................................................................... 5

Macam-macam Framework ............................................................................. 5

Framework Yii ................................................................................................. 6

Penggunaan Yii Framework ................................................................................ 9

Proses Pembuatan Website Forum ..................................................................... 13

Screenshoot Hasil ................................................................................................... 27

Penutup .................................................................................................................. 31

Kesimpulan ...................................................................................................... 31

Saran ................................................................................................................ 32

Page 3: Makalah Framework Yii Kiki

MAKALAH PEMOGRAMAN BERBASIS WEB

YII Framework Page 3

KATA PENGANTAR

Puji syukur penulis panjatkan ke hadirat Alloh SWT. Bahwa penulis telah menyelesaikan

tugas mata kuliah pemrograman berbasis web dengan membahas “Penggunaan Yii

Framework dalam Pembuatan Web Forum Sederhana” dalam bentuk makalah.

Dalam penyusunan tugas atau materi ini, tidak sedikit hambatan yang penulis hadapi. Namun

penulis menyadari bahwa kelancaran dalam penyusunan materi ini tidak lain berkat bantuan,

dorongan dan bimbingan orang tua, sehingga kendala-kendala yang penulis hadapi teratasi.

Oleh karena itu penulis mengucapkan terima kasih kepada :

1. Orang tua yang telah turut membantu, membimbing, dan mengatasi berbagai kesulitan

sehingga tugas ini selesai.

2. Teman dan kerabat yang memberikan petunjuk, kepada penulis sehingga penulis

termotivasi dan menyelesaikan tugas ini.

3. Faisal Agus Irianto sebagai semangat penulis.

Semoga materi ini dapat bermanfaat dan menjadi sumbangan pemikiran bagi pihak yang

membutuhkan, khususnya bagi penulis sehingga tujuan yang diharapkan dapat tercapai,

Amiin.

Malang, 8 Agustus 2012

Penulis

Page 4: Makalah Framework Yii Kiki

MAKALAH PEMOGRAMAN BERBASIS WEB

YII Framework Page 4

BAB I

PENDAHULUAN

Latar belakang

Seiring berkembangnya jaman, umumnya dalam pemograman dalam bahasa PHP,

orang cenderung tidak menulis coding dari awal. Orang umumnya lebih memilih

untuk menggunakan CMS, template engine dan/atau framework untuk membuat

pekerjaan mereka lebih ringan.

Tujuan

a. Menggunakan framework Yii versi 1.1.11.

b. Membangun program aplikasi web forum menggunakan framework Yii versi

1.1.11 dan JQuery.

Rumusan masalah

a. Bagaimana menggunakan framework Yii versi 1.1.7 ?

b. Bagaimana membangun program aplikasi web forum menggunakan framework Yii

versi 1.1.11 dan JQuery ?

Batasan masalah

Program web sederhana ini dibangun dengan menggunakan aplikasi pemograman

bahasa : PHP5 serta framework : Yii versi 1.1.11 dan juga menggunakan Javascript

Library: jquery ui versi 1.8x.

Page 5: Makalah Framework Yii Kiki

MAKALAH PEMOGRAMAN BERBASIS WEB

YII Framework Page 5

BAB II

TINJAUAN PUSTAKA

Pengertian Framework

Framework adalah kerangka kerja. Framework juga dapat diartikan sebagai kumpulan

script (terutama class dan function) yang dapat membantu developer/programmer dalam

menangani berbagai masalah-masalah dalam pemrograman seperti koneksi ke database,

pemanggilan variabel, file,dll sehingga developer lebih fokus dan lebih cepat membangun

aplikasi. Bisa juga dikatakan Framework adalah komponen pemrorgaman yang siap re-use

kapan saja, sehingga programmer tidak harus membuat skrip yang sama untuk tugas yang

sama.

Macam – Macam Framework

1. Framework PHP:

CakePHP

CodeIgniter (CI)

Symphony

Zend

Yii

Kohana

2. Framework Javascript:

JQuery

Mootools

Page 6: Makalah Framework Yii Kiki

MAKALAH PEMOGRAMAN BERBASIS WEB

YII Framework Page 6

3. Framework Ruby:

Ruby on Rails (ROR)

Framework Yii

Yii 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. Yii sendiri merupakan kepanjangan dari “Yes It Is”. Yes It Is sendiri memiliki

makna kalo Yii mampu dan tepat anda pilih untuk mengerjakan project.

Yii merupakan free open source PHP framework terbaru berbasis komponen dengan

performasi tinggi untuk mengembangkan aplikasi web bersekala besar . Ia menyediakan

resuabilitas maksimum dalam pemrograman Web dan bisa mengakselerasi proses

pengembangan secara signifikan. Nama Yii (dieja sebagai/i:/) singkatan dari easy, efficient

dan extensible (mudah, efisien, dan bisa diperluas).

Fitur yang ada pada yii

• Menggunakan pola MVC, pola standart pengembangan aplikasi yang memisahkan

tampilan, logic program, dan modelnya

• Menggunakan database abstraction layer seperti Data Access Objects(DAO) dan

Active Record untuk memudahkan interaksi antar database.

• Terintegrasi dengan JQuery Javascript Framework. Walaupun menggunakan Jquery

sebagai internal javascript library, namun Yii dapat menggunakan librari lain tanpa

terjadi bentrok.

Page 7: Makalah Framework Yii Kiki

MAKALAH PEMOGRAMAN BERBASIS WEB

YII Framework Page 7

• Mendukung Internationalization (I18N) and localization (L10N) untuk memudahkan

pengembangan aplikasi dalam multi bahasa dan lokasi seperti penggunaan waktu dan

tanggal.

• Memiliki layer cache untuk cache data, halaman, sebagian, dan keseluruhan aplikasi

sehingga dapat meningkatan performance dengan beragam pilihan media cache.

Penggunaan media cache seperti database, APC, memcache, dan sebagainya mudah

diatur tanpa melakukan perubahan besar pada kode..

• Fitur penanganan error dan logging, sehingga memudahkan pengembangan dalam

melakukan debuging aplikasi dalam masa pengembangan aplikasi.

• Penggunaan theme, memudahkan pengembangan aplikasi dalam merancang tampilan

aplikasi.

• Console, penggunaan perintah pada console untuk melakukan beragam perintah

otomatis seperti mengenerate struktur dasar aplikasi, model,crud, dan sebagainya.

• Dukungan Authentication dan authorization internal sehingga memudahkan

pengembangan aplikasi dengan fitur autentikasi.

• Widget, semacam kontrol yang memiliki fungsi seperti auto complete,

datapicker,table dan lain – lain. Menggunakan Jquery sebagai javascript client

sidernya.

• Form input dan validasi. . memudahkan pengembangan untuk bekerja sengan form

pda aplikasi dan melakukan validasi input dari form.

• Modular dan mudah ditambahkan dengan dukungan extensi dan komponen tambahan

sehingga beragam fitur tambahan dengan mudah dimasukkan.

Page 8: Makalah Framework Yii Kiki

MAKALAH PEMOGRAMAN BERBASIS WEB

YII Framework Page 8

Kelebihan Framework Yii

Ada beberapa keuntungan yang dapat penulis ambil dalam penggunaan framework

PHP Yii berikut. Keuntungannya antara lain adalah:

1. Yii adalah salah satu framework yang sangat ringan dan dilengkapi dengan

solusi caching yang memuaskan.

2. Yii sangat cocok untuk pengembangan aplikasi dengan lalu lintas-tinggi,

seperti portal, forum, sistem manajemen konten (CMS), sistem e-commerce,

dll.

3. Yii didokumentasikan dengan jelas, efisien, dan kaya-fitur.

Kekurangan Framework Yii

Tidak banyak kekurangan yang ditemui pada penggunaan Yii. Yii cukup mencakup

segala macam fitur-fitur yang diperlukan dalam membangun sebuah web. Namun,

bukan berarti Yii tidak mempunyai kekurangan. Salah satu kekurangan Yii yang

cukup signifikan adalah tidak compatible nya Yii dengan PHP 4.

Yii dibandingkan framework lain

Seperti kebanyakan PHP framework, Yii adalah MVC framework. Yii melampaui

PHP framework lain dalam hal efisiensi, kaya-fitur, dan didokumentasikan dengan jelas. Yii

didesain dengan hati-hati dari awal agar sesuai untuk pengembangan aplikasi Web secara

serius. Yii bukan berasal dari produk pada beberapa proyek maupun konglomerasi pekerjaan

pihak-ketiga. Yii adalah hasil dari pengalaman kaya para pembuat pada pengembangan

aplikasi Web dan investigasi serta refleksi kerangka kerja pemrograman Web paling populer

dan aplikasi.

Yii adalah kerangka kerja pemrograman umum Web yang bisa dipakai untuk

mengembangkan semua jenis aplikasi Web. Oleh karena Yii sangat ringan dan dilengkapi

dengan solusi caching yang memuaskan, ia sangat cocok untuk pengembangan aplikasi

dengan lalu lintas-tinggi, seperti portal, forum, sistem manajemen konten (CMS), sistem e-

commerce, dll.

Page 9: Makalah Framework Yii Kiki

MAKALAH PEMOGRAMAN BERBASIS WEB

YII Framework Page 9

Penggunaan Yii Framework

Penggunaan Yii Framework sangatlah mudah. Setelah mendownload yii framework dari

website Yii, pindahkan file tersebut pada direktori yang dapat diakses di web komputer. Lalu

akses framework dengan memasukkan alamat berikut pada browser :

http://localhost/webku/requirements/. Maka pada browser akan tampil halaman seperti

berikut :

Page 10: Makalah Framework Yii Kiki

MAKALAH PEMOGRAMAN BERBASIS WEB

YII Framework Page 10

Pada tampilan ini cek requirement anda masing-masing dan lengkapi requirement tersebut

sesuai kebutuhan. Dan penulis juga bisa melihat beberapa contoh aplikasi demo yang telah

disediakan oleh pengembang Yii Framework yang tentu saja dibuat dengan Yii Framework.

Aplikasi tersebut dengan cara memasukkan alamat berikut pada browser :

http://localhost/webku/demos/.

Cukup banyak contoh aplikasi demo yang ada disana, diantaranya aplikasi “hello word”,

blog, game hangman, hingga contoh penggunaan web service dalam aplikasi phone book,dll.

Cara Instalasi Yii

Cara instalasi Yii mencakup langkah berikut:

1. Download Yii Framework dari yiiframework.com.

2. Extract yii yang telah didownload tadi. Kemudian buka folder yii yang telah diextract,

copy foder framework ke folder mana saja yang mudah diakses. Kali ini penulis

meletakkannya pada folder yii yang telah penulis buat sebelumnya pada xampp.

3. Setelah itu jalankan cmd (command prompt). Masukkan perintah

[webroot]/framework/yiic webapp[webroot]. Seprti gambar di bawah ini :

Page 11: Makalah Framework Yii Kiki

MAKALAH PEMOGRAMAN BERBASIS WEB

YII Framework Page 11

Page 12: Makalah Framework Yii Kiki

MAKALAH PEMOGRAMAN BERBASIS WEB

YII Framework Page 12

4. Setelah menginstalasi Yii, bisa memverifikasi apakah server sesuai dengan semua

persyaratan pemakaian Yii. Dengan cara memasukkan alamat berikut pada browser.

http://localhost/webku/index.php/.

Berikut tampilan web dengan yii yang telah berhasil penulis buat :

Tampilan home.

Page 13: Makalah Framework Yii Kiki

MAKALAH PEMOGRAMAN BERBASIS WEB

YII Framework Page 13

Proses Pembuatan Website Forum Sederhana

Menggunakan Yii Frame Work dan JQuery.

Berikut fitur-fitur dari aplikasi yang akan penulis buat :

User dapat melakukan register dan login

Jika belum login, semua orang bisa melihat forum tetapi tidak bisa membuat

postingan baru atau membuat komentar pada suatu postingan

Jika telah berhasil melakukan login, user dapat membuat postingan baru dan

menambahkan komentar

Tiap postingan dikelompokkan berdasarkan kategori

Halaman pertama akan memperlihatkan top member, list postingan user dan berita

(news) yang diposting oleh admin

User terdiri dari 3 level yaitu Admin, moderator, dan member biasa

Admin dan moderator dapat menambah, mengedit, dan menghapus “posting”

Admin dan moderator dapat mengelola “kategori” dan “berita”

User yang telah melakukan login dapat memberi komentar pada suatu thread

User dapat memberikan reputasi pada user lain.

Page 14: Makalah Framework Yii Kiki

MAKALAH PEMOGRAMAN BERBASIS WEB

YII Framework Page 14

Berikut SQL database di atas yang telah penulis buat :

CREATE TABLE IF NOT EXISTS `comment` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`judul` varchar(255) DEFAULT NULL,

`isi` text NOT NULL,

`user_id` int(11) NOT NULL,

`thread_id` int(11) NOT NULL,

`tanggalPost` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON

UPDATE CURRENT_TIMESTAMP,

PRIMARY KEY (`id`),

KEY `user_id` (`user_id`),

KEY `thread_id` (`thread_id`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

CREATE TABLE IF NOT EXISTS `kategori` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`kategori` varchar(100) NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

CREATE TABLE IF NOT EXISTS `level` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`level` varchar(50) NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

CREATE TABLE IF NOT EXISTS `news` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`judul` varchar(200) NOT NULL,

`isi` text NOT NULL,

Page 15: Makalah Framework Yii Kiki

MAKALAH PEMOGRAMAN BERBASIS WEB

YII Framework Page 15

`foto` varchar(200) NOT NULL,

`user` int(11) NOT NULL,

PRIMARY KEY (`id`),

KEY `user` (`user`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

CREATE TABLE IF NOT EXISTS `raputation` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`tanggal` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE

CURRENT_TIMESTAMP,

`jenis` tinyint(1) NOT NULL,

`pemberi_id` int(11) NOT NULL,

`penerima_id` int(11) NOT NULL,

PRIMARY KEY (`id`),

KEY `pemberi_id` (`pemberi_id`),

KEY `penerima_id` (`penerima_id`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

CREATE TABLE IF NOT EXISTS `thread` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`judul` varchar(255) NOT NULL,

`isi` text NOT NULL,

`user_id` int(11) NOT NULL,

`kategori_id` int(11) NOT NULL,

`tanggalPost` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON

UPDATE CURRENT_TIMESTAMP,

PRIMARY KEY (`id`),

KEY `user_id` (`user_id`),

KEY `kategori_id` (`kategori_id`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

Page 16: Makalah Framework Yii Kiki

MAKALAH PEMOGRAMAN BERBASIS WEB

YII Framework Page 16

CREATE TABLE IF NOT EXISTS `threadstar` (

`is` int(11) NOT NULL AUTO_INCREMENT,

`nilai` int(11) NOT NULL,

`user_id` int(11) NOT NULL,

`thread_id` int(11) NOT NULL,

PRIMARY KEY (`is`),

KEY `user_id` (`user_id`),

KEY `thread_id` (`thread_id`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

CREATE TABLE IF NOT EXISTS `user` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`username` varchar(20) NOT NULL,

`password` varchar(50) NOT NULL,

`saltPassword` varchar(50) NOT NULL,

`email` varchar(50) NOT NULL,

`joinDate` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON

UPDATE CURRENT_TIMESTAMP,

`level_id` int(11) NOT NULL,

`avatar` varchar(30) DEFAULT NULL,

PRIMARY KEY (`id`),

UNIQUE KEY `username` (`username`),

KEY `level_id` (`level_id`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

ALTER TABLE `comment`

ADD CONSTRAINT `comment_ibfk_1` FOREIGN KEY (`user_id`)

REFERENCES `user` (`id`) ON UPDATE CASCADE,

ADD CONSTRAINT `comment_ibfk_2` FOREIGN KEY (`thread_id`)

REFERENCES `thread` (`id`) ON UPDATE CASCADE;

Page 17: Makalah Framework Yii Kiki

MAKALAH PEMOGRAMAN BERBASIS WEB

YII Framework Page 17

ALTER TABLE `news`

ADD CONSTRAINT `news_ibfk_1` FOREIGN KEY (`user`) REFERENCES

`user` (`id`) ON UPDATE CASCADE;

ALTER TABLE `raputation`

ADD CONSTRAINT `raputation_ibfk_1` FOREIGN KEY (`pemberi_id`)

REFERENCES `user` (`id`),

ADD CONSTRAINT `raputation_ibfk_2` FOREIGN KEY (`penerima_id`)

REFERENCES `user` (`id`);

ALTER TABLE `thread`

ADD CONSTRAINT `thread_ibfk_3` FOREIGN KEY (`user_id`)

REFERENCES `user` (`id`) ON UPDATE CASCADE,

ADD CONSTRAINT `thread_ibfk_4` FOREIGN KEY (`kategori_id`)

REFERENCES `kategori` (`id`) ON UPDATE CASCADE;

ALTER TABLE `threadstar`

ADD CONSTRAINT `threadstar_ibfk_3` FOREIGN KEY (`user_id`)

REFERENCES `user` (`id`) ON UPDATE CASCADE,

ADD CONSTRAINT `threadstar_ibfk_4` FOREIGN KEY (`thread_id`)

REFERENCES `thread` (`id`) ON UPDATE CASCADE;

ALTER TABLE `user`

ADD CONSTRAINT `user_ibfk_1` FOREIGN KEY (`level_id`) REFERENCES

`level` (`id`) ON UPDATE CASCADE;

Page 18: Makalah Framework Yii Kiki

MAKALAH PEMOGRAMAN BERBASIS WEB

YII Framework Page 18

Setelah selesai membuat database, membuat aplikasi Yii Framework baru dengan nama

“forum”. Setelah itu hubungkan aplikasi tersebut dengan database yang telah dibuat

tadi, dan aktifkan fitur Gii pada Yii Framework. Dengan mengubah file konfigurasi

aplikasi pada WebRoot/testdrive/protected/config/main.php

Pertama-tama membuat fungsi untuk melakukan “register”. Operasi ini adalah operasi

yang dilakukan apabila user ingin mendaftar pada aplikasi ini. Setelah dia melakukan

pendaftaran, maka data user akan disimpan ke database pada tabel “user”. Untuk menginput

data ke tabel user, menggunakan action pada UserController dan actionCreate(). Berikut hak

akses yang terdapat pada UserController :

public function accessRules()

{

return array(

array('allow',

'actions'=>array('create','captcha'),

'users'=>array('*'),

),

array('allow',

'actions'=>array('update','view'),

'users'=>array('@'),

),

array('allow',

'actions'=>array('admin','index','delete'),

'expression'=>'$user->getLevel()<=1',

Page 19: Makalah Framework Yii Kiki

MAKALAH PEMOGRAMAN BERBASIS WEB

YII Framework Page 19

),

array('deny',

'users'=>array('*'),

),

);

}

Action “Create” adalah menu register, action ini dapat diakses oleh semua pengunjung

yang mengunjungi aplikasi web ini. Captcha juga diizinkan untuk semua jenis pengunjung,

captcha sendiri adalah class yang mengizinkan penulis untuk menggunakan captcha pada

form register. Captcha sendiri digunakan sebagai konfirmasi pada saat pendaftaran. Update

dan view adalah menu agar user dapat memperbaharui profilenya dan melihat profilenya.

Untuk melakukan action ini, maka user harus login terlebih dahulu. Admin, index dan delete

adalah menu yang hanya dapat oleh admin.

Pada saat login, penulis akan meminta user memasukkan password dua kali. Jika antara

password1 dan password2 berbeda, maka user diminta mengulangi lagi proses memasukkan

password. Lalu penulis meminta user menginput captcha konfirmasi kepada user. Maka dari

itu penulis perlu menambah dua buah variabel,yaitu variabel password2 dan captcha yang

penulis beri nama verifyCode. Maka dari itu tambahkan attribute berikut pada model anda :

class User extends CActiveRecord

{

public $password2;

public $verifyCode;

Page 20: Makalah Framework Yii Kiki

MAKALAH PEMOGRAMAN BERBASIS WEB

YII Framework Page 20

Setelah itu penulis buat validasi pada model user sesuai dengan aturan bisnis yang sudah

penulis tentukan :

public function rules()

{

return array(

array('username, password,

email,password2,verifyCode', 'required','message'=>'{attribute}

Tidak Boleh Kosong'),

array('verifyCode', 'captcha',

'allowEmpty'=>!extension_loaded('gd')),

array('level_id', 'numerical', 'integerOnly'=>true),

array('username', 'length', 'max'=>20),

array('password, saltPassword, email', 'length',

'max'=>50),

array('avatar','file', 'types'=>'gif,png,jpg'),

array('id, username, password, saltPassword, email,

joinDate, level_id, avatar, isActive', 'safe', 'on'=>'search'),

);

}

Page 21: Makalah Framework Yii Kiki

MAKALAH PEMOGRAMAN BERBASIS WEB

YII Framework Page 21

Aturan pertama : attribute username, password, email, password2, verivyCode

wajib diisi.

Aturan kedua : VerifyCode harus sesuai dengan sama dengan kode yang ditampilkan

oleh captcha.

Aturan ketiga : level_id harus berupa angka

Aturan keempat : Panjang maksimal karakter username adalah 20

Aturan kelima : Panjang maksimal password, saltPassword dan email maksimal 50

Karena sudah menambahkan attribute baru pada aturan register di model user, maka penulis

juga perlu melakukan konfigurasi pada tampilan penulis agar sesuai dengan aturan tersebut :

<div class="form">

<?php $form=$this->beginWidget('CActiveForm', array(

'id'=>'user-form',

'enableAjaxValidation'=>false,

'htmlOptions'=>array('enctype'=>'multipart/form-data'),

)); ?>

<p class="note">Fields with <span class="required">*</span>

are required.</p>

<?php echo $form->errorSummary($model); ?>

<div class="row">

<?php echo $form->labelEx($model,'username'); ?>

<?php echo $form-

>textField($model,'username',array('size'=>20,'maxlength'=>20));

Page 22: Makalah Framework Yii Kiki

MAKALAH PEMOGRAMAN BERBASIS WEB

YII Framework Page 22

?>

<?php echo $form->error($model,'username'); ?>

</div>

<div class="row">

<?php echo $form->labelEx($model,'password'); ?>

<?php echo $form-

>passwordField($model,'password',array('size'=>50,'maxlength'=>50)

); ?>

<?php echo $form->error($model,'password'); ?>

</div>

<div class="row">

<?php echo $form->labelEx($model,'password2'); ?>

<?php echo $form-

>passwordField($model,'password2',array('size'=>50,'maxlength'=>50

)); ?>

<?php echo $form->error($model,'password2'); ?>

</div>

<div class="row">

<?php echo $form->labelEx($model,'email'); ?>

<?php echo $form-

>textField($model,'email',array('size'=>50,'maxlength'=>50)); ?>

<?php echo $form->error($model,'email'); ?>

</div>

<div class="row">

<?php echo $form->labelEx($model,'avatar'); ?>

<?php echo $form-

>fileField($model,'avatar',array('size'=>30,'maxlength'=>30)); ?>

Page 23: Makalah Framework Yii Kiki

MAKALAH PEMOGRAMAN BERBASIS WEB

YII Framework Page 23

<?php echo $form->error($model,'avatar'); ?>

</div>

<?php if (extension_loaded('gd')): ?>

<div class="row">

<?php echo CHtml::activeLabelEx($model, 'verifyCode')

?>

<div>

<?php $this->widget('CCaptcha'); ?><br/>

<?php echo

CHtml::activeTextField($model,'verifyCode'); ?>

</div>

<div class="hint">Ketik tulisan yang ada pada gambar .

<br/>Tulisan tidak case sensitive</div>

</div>

<?php endif; ?>

<div class="row buttons">

<?php echo CHtml::submitButton($model->isNewRecord ?

'Create' : 'Save'); ?>

</div>

<?php $this->endWidget(); ?>

</div><!-- form -->

Page 24: Makalah Framework Yii Kiki

MAKALAH PEMOGRAMAN BERBASIS WEB

YII Framework Page 24

Diatas terdapat kode untuk menggunakan captcha dan untuk mengaktifkan captcha penulis

harus menambahkan kode berikut pada controller user :

public function actions()

{

return array(

'captcha'=>array(

'class'=>'CCaptchaAction',

'backColor'=>0xFFFFFF,

),

);

}

Sekarang penulis akan membuat action untuk melakukan login. Saat pertama kali penulis

melakukan generate code aplikasi Yii, Yii secara otomatis telah menyediakan form dan

action login. Daripada membuat dari awal, lebih baik penulis modifikasi action login yang

sudah disediakan oleh Yii. Anda bisa lihat code yang memproses action login di

“protected/controllers/SiteController.php”,“protected/view/site/login.php”,

“protected/models/LoginForm.php”, dan “protected/Components/UserIdentify.php”. Walau

ada banyak file yang terkait action login, namun yang akan penulis modifikasi hanya

UserIdentify.php.

Page 25: Makalah Framework Yii Kiki

MAKALAH PEMOGRAMAN BERBASIS WEB

YII Framework Page 25

class UserIdentity extends CUserIdentity

{

private $_id;

public function authenticate()

{

$username = strtolower($this->username);

$user = User::model()->find('LOWER(username)=?',

array($username));

if($user===null)

$this->errorCode=self::ERROR_USERNAME_INVALID;

else if(!$user->validatePassword($this->password))

$this->errorCode = self::ERROR_PASSWORD_INVALID;

else

{

$this->_id = $user->id;

$this->username = $user->username;

$this->errorCode = self::ERROR_NONE;

}

return $this->errorCode == self::ERROR_NONE;

}

public function getId()

{

return $this->_id;

}

}

Page 26: Makalah Framework Yii Kiki

MAKALAH PEMOGRAMAN BERBASIS WEB

YII Framework Page 26

Yang dilakukan kode di atas adalah mengambil nilai dari tabel user dan mencocokkan

username dan password yang telah diinput oleh user. Tentunya password yang akan di

cocokkan adalah password yang telah di enkripsi. Jika username dan password yang diinput

user sudah sesuai dengan username dan password yang ada pada database, maka user berhasil

melakukan login. Selesai sudah penulis membuat menu register, login, dan logout. Menu

logout sudah tersedia langsung dari Yii dan tidak perlu penulis modifikasi lagi.

Page 27: Makalah Framework Yii Kiki

MAKALAH PEMOGRAMAN BERBASIS WEB

YII Framework Page 27

APLIKASI FORUM DENGAN YII FRAMEWORK

Halaman utama aplikasi yang akan menampilkan berita terkini dalam bentuk slide, list nama

user yang paling banyak membuat thread dan paling banyak membuat komentar, list thread

yang paling banyak dikomentari dan thread terbaru yang telah di posting oleh user. Tampilan

di atas adalah tampilan halaman utama aplikasi ketika diakses dengan member biasa. Apabila

aplikasi diakse oleh user dengan level admin, maka akan tampil halaman seperti gambar

berikut :

Page 28: Makalah Framework Yii Kiki

MAKALAH PEMOGRAMAN BERBASIS WEB

YII Framework Page 28

Yang berbeda dengan halaman yang aplikasi diakses oleh user adalah menu yang disediakan.

Jika penulis login sebagai admin, maka penulis diizinkan melakukan pengelolaan

kategori forum, thread, komentar, dan berita.

Tampilan ini menampilkan semua kategori forum yang ada pada aplikasi beserta total thread

yang ada pada kategori tersebut.

Page 29: Makalah Framework Yii Kiki

MAKALAH PEMOGRAMAN BERBASIS WEB

YII Framework Page 29

Halaman kelola kategori hanya dapat diakses oleh user dengan level admin. Selain

melakukan pengelolaan kategori, admin juga dapat disediakan menu untuk melakukan

pengelolaan thread, komentar, dan berita.

Ketika user membuka salah satu halaman kategori, maka akan ditampilkan list semua thread

yang ada pada kategori tersebut. User akan melihat informasi judul thread, rating, pembuat

thread, dan total komentar yang ada pada thread tersebut. Jika user ingin melihat thread

secara detail, user cukup melakukan klik pada judul thread tersebut. User juga bisa membuat

thread baru pada forum tersebut.

Halaman di atas merupakan halaman yang akan muncul jika user ingin membuat thread baru.

Page 30: Makalah Framework Yii Kiki

MAKALAH PEMOGRAMAN BERBASIS WEB

YII Framework Page 30

Halaman ini adalah halaman profile seorang user. Pada halaman ini akan diperlihatkan

informasi user. Tiap user dapat memberikan penilaian pada seorang user dengan memilih

menu “Berikan Reputasi” yang tersedia pada halaman profile user.

Halaman ini adalah halaman untuk memberikan reputasi kepada user. Itulah sedikit mengenai

gambaran aplikasi yang penulis buat. Aplikasi itu sendiri merupakan aplikasi sederhana yang

masih jauh jika ingin dibilang kompleks.

Page 31: Makalah Framework Yii Kiki

MAKALAH PEMOGRAMAN BERBASIS WEB

YII Framework Page 31

PENUTUP

KESIMPULAN

Pada bagian penutup ini penulis mencoba mengambil beberapa kesimpulan dari makalah

yang penulis susun ini, antara lain :

Pertama kelebihan dengan adanya framework akan lebih mempermudah memahami

mekanisme kerja dari sebuah aplikasi. Ini tentunya akan sangat membantu proses

pengembangan system yang dilakukan secara team. Semua anggota di wajibkan untuk

memahami dari pola kerja framework tersebut selebihnya anggota team hanya mempelajari

proses bisnis yang di kehendaki oleh system untuk kemudian di tuangkan kedalam

framework tersebut. Dalam artian setiap orang harus mempunyai metode yang sama dalam

menyelesaikan applikasi tersebut.

Kedua dengan memakai framework akan menghemat waktu pengerjaan suatu

applikasi, karena setiap anggota sudah memiliki sebuah acuan dalam menyelesaikan modul.

Dalam hal ini misalnya semakin banyak library yang ada semakin mempercepat anggota

untuk menemukan solusi karena tidak setiap anggota harus membuat Class atau fungsi untuk

kasus yang relatif sama.

Berikutnya Team tidak akan di susahkan dengan adanya perputaran anggota dalam

artian jika ada anggota yang tidak bisa melanjutkan lagi pekerjaannya anggota yang lain bisa

meng-cover kekosongan tersebut. Bayangkan jika setiap modul yang dikembangkan

mempunyai logika yang berbeda tentunya akan memakan waktu yang banyak untuk proses

pemahan akan system tersebut.

Kesekian-kalinya dengan adanya framework akan menjaga integritas dari modul-

modul yang dikembangkan. Tentunya hal ini juga tergantung dari metode yang

dikembangkan sendiri. framework hanya membantu dan memungkinkan/mempermudah

proses integrasi, tidak berarti dengan adanya framework system otomatis akan ter-integrasi.

Dan masih ada kelebihan-kelebihan lain yang dimiliki oleh framework.

Page 32: Makalah Framework Yii Kiki

MAKALAH PEMOGRAMAN BERBASIS WEB

YII Framework Page 32

SARAN

Makalah yang penulis susun mengenai program aplikasi ini sendiri mungkin belumlah

cukup tanpa penjelasan lebih lanjut dari Dosen pengajar Mata Kuliah Pemograman Berbasis

Web.