7 0 1 MB
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()