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 ...................................................................................................................
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
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 :
beginWidget('CActiveForm', array( 'id'=>'user-form', 'enableAjaxValidation'=>false, 'htmlOptions'=>array('enctype'=>'multipart/form-data'), )); ?>
Fields with <span class="required">* are required.
errorSummary($model); ?>
labelEx($model,'username'); ?> textField($model,'username',array('size'=>20,'maxlength'=>20));
YII Framework
Page 21
MAKALAH PEMOGRAMAN BERBASIS WEB
?> error($model,'username'); ?>
labelEx($model,'password'); ?> passwordField($model,'password',array('size'=>50,'maxlength'=>50) ); ?> error($model,'password'); ?>
labelEx($model,'password2'); ?> passwordField($model,'password2',array('size'=>50,'maxlength'=>50 )); ?> error($model,'password2'); ?>
labelEx($model,'email'); ?> textField($model,'email',array('size'=>50,'maxlength'=>50)); ?> error($model,'email'); ?>
labelEx($model,'avatar'); ?> fileField($model,'avatar',array('size'=>30,'maxlength'=>30)); ?>
YII Framework
Page 22
MAKALAH PEMOGRAMAN BERBASIS WEB
error($model,'avatar'); ?>
widget('CCaptcha'); ?>
Ketik tulisan yang ada pada gambar .
Tulisan tidak case sensitive
isNewRecord ? 'Create' : 'Save'); ?>
endWidget(); ?>
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