You are on page 1of 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

DAFTAR ISI

MAKALAH PEMOGRAMAN BERBASIS WEB

COVER ................................................................................................................... DAFTAR ISI........................................................................................................... Kata Pengantar ...................................................................................................... Pendahuluan ........................................................................................................... Latar Belakang ................................................................................................. Tujuan .............................................................................................................. Rumusan Masalah ............................................................................................ Batasan Masalah ............................................................................................... Tinjauan Pustaka ................................................................................................... Pengertian Framework ......................................................................................... Macam-macam Framework ............................................................................. Framework Yii ................................................................................................. Penggunaan Yii Framework ................................................................................ Proses Pembuatan Website Forum ..................................................................... Screenshoot Hasil ................................................................................................... Penutup .................................................................................................................. Kesimpulan ...................................................................................................... Saran ................................................................................................................

1 2 3 4 4 4 4 4 5 5 5 6 9 13 27 31 31 32

YII Framework

Page 2

MAKALAH PEMOGRAMAN BERBASIS WEB

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

YII Framework

Page 3

MAKALAH PEMOGRAMAN BERBASIS WEB

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.

YII Framework

Page 4

MAKALAH PEMOGRAMAN BERBASIS WEB

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

YII Framework

Page 5

MAKALAH PEMOGRAMAN BERBASIS WEB

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.

YII Framework

Page 6

MAKALAH PEMOGRAMAN BERBASIS WEB

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.

YII Framework

Page 7

MAKALAH PEMOGRAMAN BERBASIS WEB

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 ecommerce, dll.

YII Framework

Page 8

MAKALAH PEMOGRAMAN BERBASIS WEB

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 :

YII Framework

Page 9

MAKALAH PEMOGRAMAN BERBASIS WEB

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 :

YII Framework

Page 10

MAKALAH PEMOGRAMAN BERBASIS WEB

YII Framework

Page 11

MAKALAH PEMOGRAMAN BERBASIS WEB

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.

YII Framework

Page 12

MAKALAH PEMOGRAMAN BERBASIS WEB

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.

YII Framework

Page 13

MAKALAH PEMOGRAMAN BERBASIS WEB

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,

YII Framework

Page 14

MAKALAH PEMOGRAMAN BERBASIS WEB

`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 ;

YII Framework

Page 15

MAKALAH PEMOGRAMAN BERBASIS WEB

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;

YII Framework

Page 16

MAKALAH PEMOGRAMAN BERBASIS WEB

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;

YII Framework

Page 17

MAKALAH PEMOGRAMAN BERBASIS WEB

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',

YII Framework

Page 18

MAKALAH PEMOGRAMAN BERBASIS WEB

), 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;

YII Framework

Page 19

MAKALAH PEMOGRAMAN BERBASIS WEB

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'), ); }

YII Framework

Page 20

MAKALAH PEMOGRAMAN BERBASIS WEB

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));

YII Framework

Page 21

MAKALAH PEMOGRAMAN BERBASIS WEB

?> <?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)); ?>

YII Framework

Page 22

MAKALAH PEMOGRAMAN BERBASIS WEB

<?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 -->

YII Framework

Page 23

MAKALAH PEMOGRAMAN BERBASIS WEB

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.

YII Framework

Page 24

MAKALAH PEMOGRAMAN BERBASIS WEB

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; } }

YII Framework

Page 25

MAKALAH PEMOGRAMAN BERBASIS WEB

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.

YII Framework

Page 26

MAKALAH PEMOGRAMAN BERBASIS WEB

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 :

YII Framework

Page 27

MAKALAH PEMOGRAMAN BERBASIS WEB

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.

YII Framework

Page 28

MAKALAH PEMOGRAMAN BERBASIS WEB

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.

YII Framework

Page 29

MAKALAH PEMOGRAMAN BERBASIS WEB

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.

YII Framework

Page 30

MAKALAH PEMOGRAMAN BERBASIS WEB

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 modulmodul 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.

YII Framework

Page 31

MAKALAH PEMOGRAMAN BERBASIS WEB

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.

YII Framework

Page 32