analisis perbandingan modifikasi smarty template engine dan

advertisement
Tugas Akhir - 2009
ANALISIS PERBANDINGAN MODIFIKASI SMARTY TEMPLATE ENGINE DAN
FRAMEWORK CAKEPHP PADA MODEL VIEW CONTROLLER(MVC) UNTUK
APLIKASI WEB
Muhammad Aditia Rahman¹, Yanuar Firdaus A.w.², Dana Suliyo Kusumo³
¹Teknik Informatika, Fakultas Teknik Informatika, Universitas Telkom
Abstrak
Model-View-Controller (MVC) merupakan arsitektur yang sangat populer pada pengembangan
aplikasi web, namun arsitektur MVC tidak dapat langsung dipetakan menjadi kode program
sehingga perlu adanya pembentukan bagianbagian yang membangun MVC tersebut. Dengan
semakin populernya penggunaan AJAX, suatu arsitektur MVC tidak hanya dapat
diimplementasikan pada sisi server, namun dapat juga diimplementasikan pada sisi client, untuk
menerapkan Client Side MVC, Smarty Template Engine membutuhkan suatu template function,
sedangkan Framework CakePHP membutuhkan Helpers.
Pada tugas akhir ini akan dilakukan analisis penerapan Server Side MVC dan Client Side MVC
dengan menggunakan Smarty Template Engine yang dimodifikasi untuk membentuk arsitektur
MVC dan Framework CakePHP. Halhal yang akan dianalisis mencakup ukuran kode program,
ketersediaan komponen, kelas yang harus dibuat oleh seorang developer, aturan penamaan kelas,
organisasi file dan performansi dari aplikasi yang dihasilkan.
Hasil yang didapat dari hasil implementasi dan analisis yang dilakukan adalah dengan
menggunakan Smarty Template Engine yang dimodifikasi, performansi yang dimiliki oleh suatu
aplikasi web lebih baik dibandingkan menggunakan Framework CakePHP, namun dalam
implementasi MVC, penggunaan Framework CakePHP dapat lebih mempermudah penamaan
kelas, organisasi file.
Kata Kunci : CakePHP, Smarty, Server Side MVC, Client Side MVC
Abstract
Model-View-Controller is a famous architecture on web application development, but MVC cannot
mapped directly into source code, it need to build some component to create an MVC
architecture. With the popularity of AJAX, an MVC architecture not only can be implemented on
Server Side but it also can be implemented on Client Side, to implement Client Side MVC, Smarty
Template Engine need some template function, and CakePHP Framework need Helpers.
This final project analyze the implement of Server Side MVC and Client Side MVC using the
modification of Smarty Template Engine to implement MVC and CakePHP Framework. Some of
parameters to be analyzed are measuring source code, component availability, custom has to be
made by a developer, class name conventions, file organization and application performance that
has been built.
The result from the implementation and analyisis is with modified Smarty Template Engine, web
application have better performance than using CakePHP Framework, but in MVC
implementation, using CakePHP Framework will make easier in implementing class name
conventions, file organization.
Keywords : CakePHP, Smarty, Server Side MVC, Client Side MVC
Fakultas Teknik Informatika
Powered by TCPDF (www.tcpdf.org)
Program Studi S1 Teknik Informatika
Tugas Akhir - 2009
1. Pendahuluan
1.1 Latar belakang masalah
Model View Controller (MVC) merupakan design pattern yang sangat
populer yang digunakan pada aplikasi berbasis web, MVC memisahkan antara
model yang mencakup business logic, view yang mencakup presentation logic dan
controller yang menghubungkan dan mengatur antara model dan view tersebut.
Template Engine pada aplikasi web dapat berupa suatu software, library
ataupun sekumpulan kode program yang berfungsi untuk mengenerate suatu web
content dan web template yang kemudian membuat output berupa file dokumen
web. Template Engine dirancang untuk memisahkan pengembangan aplikasi web
berdasarkan kemampuan developernya, yaitu web programmer yang membangun
business logic dan web designer yang membangun presentation logic. Pada
Smarty Template Engine terdapat fungsi-fungsi khusus yang dapat digunakan
untuk merepresentasikan data secara khusus dan memodifikasi bagian model,
sehingga untuk merubah suatu bagian content, view dapat berperan sebagai
controller, ini merupakan suatu keuntungan pada Template Engine, namun tidak
dapat memisahkan dengan tegas bagian-bagian yang membangun MVC.
Web framework merupakan suatu library, script ataupun software lain yang
dapat digunakan untuk membantu pengembangan aplikasi web, beberapa web
framework yang ada pada saat ini menawarkan fitur dan konsep yang berbeda,
salah satu framework yang menerapkan konsep MVC adalah CakePHP. CakePHP
merupakan framework yang memisahkan dengan tegas antara bagian model, view
dan controller sehingga pembagian tugas dapat dengan jelas diketahui.
Perkembangan aplikasi web saat ini telah memungkinan bagi client side
scripting, seperti JavaScript untuk dapat mengakses data yang ada pada server,
metode seperti ini dapat menggunakan AJAX (Asynchronous JavaScript and
XML), ini memungkinkan bagian client side scripting dan server side scripting
untuk memiliki model MVC yang berbeda pada suatu aplikasi web[9]. Dengan
menggunakan AJAX suatu Aplikasi Web memungkinkan untuk mengambil suatu
data tanpa perlu mengambil keseluruhan halaman web, artinya data dari Model
(business logic) yang akan ditampilkan tidak melalui digenerate melalui template
engine, dapat dikatakan client side scripting yang ada pada bagian presentation
logic melakukan modifikasi terhadap business logic. Dalam tugas akhir ini akan
dibahas bagaimana penggunaan Smarty Template Engine pada beberapa macam
MVC yang berbeda untuk aplikasi web yang dibandingkan dengan Framework
CakePHP.
1.2 Perumusan Masalah
Beberapa perumusan pada Tugas Akhir ini adalah:
1. Pemanfaatan Smarty Template Engine dan Framework CakePHP pada aplikasi
web untuk mempermudah implementasi MVC.
2. Melakukan analisis perbandingan penerapan Smarty Template Engine dan
Framework CakePHP pada pembuatan aplikasi web.
1
Fakultas Teknik Informatika
Program Studi S1 Teknik Informatika
Tugas Akhir - 2009
3. Memanfaatkan Smarty Template Engine dan Framework CakePHP pada
aplikasi web dengan menggunakan konsep MVC yang berbeda yaitu, Server
Side MVC, Mixed Server Side and Client Side MVC.
Batasan masalah dalam mengerjakan Tugas Akhir ini adalah:
1. Aplikasi yang dibangun merupakan aplikasi yang sama fungsionalitasnya,
yaitu situs berita, dengan beberapa fungsionalitasnya menggunakan AJAX.
2. Implementasi AJAX menggunakan library Javascript yaitu JQuery.
3. Tidak membahas masalah Design Pattern yang membentuk masing-masing
bagian Model, View maupun Controller.
1.3 Tujuan
Tujuan dari tugas akhir ini adalah:
1. Implementasi Smarty Template Engine dan Framework CakePHP dalam
membangun suatu aplikasi web pada arsitektur MVC.
2. Menganalisis ukuran kode program yang dibutuhkan dalam suatu arsitektur
MVC, yang dibangun menggunakan Smarty Template Engine dan Framework
CakePHP.
3. Membandingkan performansi dari kedua aplikasi yang dibangun dengan
Smarty Template Engine dan Framewok CakePHP.
1.4 Metodologi penyelesaian masalah
Metodologi pembahasan yang digunakan dalam penelitian Tugas Akhir ini adalah:
1. Mengumpulkan bahan-bahan referensi yang akan menunjang proses
penelitian, seperti jurnal-jurnal, artikel-artikel, paper tentang Smarty Template
Engine, Framework CakePHP, dan Model View Controller. Studi literatur
yang merupakan tahap pendalaman materi. Menganalisis dan mempelajari API
yang disediakan oleh Smarty Template Engine (http://smarty.net) dan
CakePHP (http://cakephp.org).
2. Membangun Aplikasi Web dari Smarty Template Engine dan Framework
CakePHP, dengan tahapan:
1. Analisis Kebutuhan
Mempelajari dan memahamai fitur yang terdapat pada situs berita.
2. Perancangan
Membuat pemodelan situs berita yang akan dibuat, proses pengiriman
data, berdasarkan konsep MVC.
3. Implementasi
Membangun Aplikasi menggunakan Smarty Tempate Engine dan
Framework CakePHP dengan menggunakan bahasa scripting PHP dan
MySQL, berdasarkan perancangan yang telah dibuat.
4. Pengujian dan Analisis Hasil
Menganalisis penggunaan Smarty Template Engine yang dibandingkan
dengan Framework CakePHP, berdasarkan konfigurasi, organisasi file,
code reusability, fitur-fitur yang disediakan, plugins, dan penggunaan
kode program dari Smarty Template Engine dan Framework CakePHP.
Melakukan benchmark performansi dengan utilitas yang sudah
tersedia.
3. Penarikan kesimpulan dan pembuatan laporan.
2
Fakultas Teknik Informatika
Powered by TCPDF (www.tcpdf.org)
Program Studi S1 Teknik Informatika
Tugas Akhir - 2009
5. Kesimpulan dan Saran
5.1 Kesimpulan
Dari hasil implementasi dan analisis yang dilakukan terhadap aplikasi web
yang dibangun berdasarkan arsitektur MVC, dengan menggunakan Smarty
Template Engine dan Framework CakePHP, dapat diambil beberapa kesimpulan,
yaitu :
1. Untuk penerapan arsitektur Server Side MVC, penggunaan Framework
CakePHP memiliki penanganan dalam penamaan file dan organisasi file yang
lebih baik daripada menggunakan Smarty Template Engine yang sudah
dimodifikasi
2. Penanganan model pada CakePHP lebih baik dibandingkan menggunakan
modifikasi Smarty Template Engine, ini dikarenakan CakePHP memiliki
built-in API pada bagian model yang mendukung CRUD(Create, Read,
Update, Delete). Hal dapat lebih mempermudah bagi programmer dalam
melakukan manipulasi data pada database dengan mengurangi penggunaan
kode SQL, sehingga dapat mempersingkat waktu dalam pembangunan
program.
3. Dengan modifikasi, Smarty lebih baik dalam penggunaan jumlah kode
program pada bagian controller untuk Mixed MVC, sedangkan CakePHP
lebih baik dalam penggunaan jumlah kode program pada bagian controller
untuk Server Side MVC.
4. Performansi aplikasi web pada Server Side MVC maupun Mixed MVC yang
dihasilkan oleh Smarty Template Engine yang dimodifikasi lebih baik
daripada CakePHP. Hal ini dikarenakan pada bagian model CakePHP
memiliki lebih banyak fungsi yang harus diturunkan dari object model, selain
itu karena penggunaan HTML helpers yang memiliki banyak fungsi untuk
merepresentasikan kode HTML.
5.2 Saran
Saran yang dapat penulis sampaikan untuk dapat melanjutkan pembahasan ini
yaitu :
1. Perlu diterapkannya best practice dalam penerapan MVC dengan
menggunakan Smarty Template Engine terutama dalam menangani bagian
front controller dan model.
2. Perlu adanya penerapan Client Side MVC dengan menggunakan kode
Javascript tradisional.
3. Perlu diterapkannya pada arsitektur RIA MVC pada framework CakePHP,
untuk lebih mengurangi penggunaan object yang berlebih dan dapat
mengurangi penggunaan bandwidth.
4. Analisis implementasi MVC lebih lanjut dengan menggunakan web
framework yang lain, seperti PRADO, Zend Framework, Code Igniter, dll.
32
Fakultas Teknik Informatika
Powered by TCPDF (www.tcpdf.org)
Program Studi S1 Teknik Informatika
Tugas Akhir - 2009
6. Daftar Pustaka
[1]
Azis, M. Farid, 2005, Object Oriented Programming dengan PHP5,
Jakarta, PT. Elex Media Komputindo.
[2]
Bell, Donald, 2004, UML’s Sequence Diagram, http://www106.ibm.com/developerworks/rational/library/3101.html, IBM
Corporation
[3]
Dommy, 2007, COCOMO (COnstructive, COst, MOdel), BLOG tentang
Matakuliah Rekayasa Perangkat Lunak ITS.
[4]
Ghica van Emda Boas, 2005, Generative and Model-Driven Approaches
for PHP, Bronstee.com, the Netherlands.
[5]
Jason E. Sweat, 2005, php | architech’s Guide to Design Patterns, Marco
Tabini & Associated, Inc.
[6]
Krasner, Glenn E., Pope, Stephen T., 1988, A Description of the ModelView-Controller User Interface Paradigm in the Smalltalk-80 System,
ParcPlace Systems, Inc.
[7]
Marston, Tony, 2004, The Model-View-Controller (MVC) Design Pattern
for PHP, http://www.tonymarston.net/php-mysql/model-viewcontroller.html
[8]
Masters, Larry E, 2006, CakePHP Programmer’s Reference Guide, Cake
Software Foundation Inc.
[9]
Morales-Carparro, R., Linaje, M., Preciado, J. C., Sanchez-Figueroa, F.,
2007, MVC Web design patterns and Rich Internet Application,
QUERCUS Software Engineeering Group.
[10]
Ohrt, M., Zmievski, A., 2006, Smarty Manual, New Digital Group, Inc.
[11]
Parr, Terence, 2004, Enforcing Strict Model-View Separation in Template
Engine, New York, WWW2004.
[12]
Template Engine, http://en.wikipedia.org/wiki/Template_engine_(web).
33
Fakultas Teknik Informatika
Powered by TCPDF (www.tcpdf.org)
Program Studi S1 Teknik Informatika
Download