<<

Seminar Nasional Aplikasi Teknologi Informasi 2008 (SNATI 2008) ISSN : 1907-5022 Yogyakarta, 21 Juni 2008

ANALISIS PERFORMANSI FRAMEWORK PRADO DAN CAKEPHP PADA APLIKASI WEB

Yanuar Firdaus AW,Warih Maharani

Departemen Teknik Informatika Institut Teknologi Telkom Bandung, Indonesia E-mail: { yanuar, rani }@stttelkom.ac.id

Abstraksi Framework berbasis PHP memberi solusi dengan menyertakan dukungan penerapan Ajax pada fitur frameworknya. Dua framework yang banyak digunakan, PRADO dan CakePHP menerapkan dukungan Ajax dengan cara yang berbeda. PRADO dengan ciri khas arsitektur -driven dan component based, mendukung penerapan Ajax melalui penggunaan Active Controls. Sedangkan CakePHP dengan arsitektur Model-View- Controller, menerapkan Ajax melalui penggunaan kelas Helpers, yaitu Ajax Helpers. Paper ini memrbandingkan penerapan aplikasi web Ajax dengan menggunakan framework PRADO dan CakePHP. Parameter yang dibandingkan adalah kemudahan proses pembangunan aplikasi, ketersediaan fitur-fitur Ajax, dan juga kehandalan dari sisi performansi aplikasi web yang dihasilkan. Hasil pengujian menunjukkan performansi aplikasi web yang dihasilkan dengan CakePHP lebih baik dari pada framework PRADO.

Keywords: framework, PRADO, CakePHP, Ajax.

1. PENDAHULUAN pengelolaan database dengan query yang simple, implementasi CRUD (Create, Read, Update, Delete), Framework digunakan agar web lebih mudah bisa digunakan pada PHP4 atau PHP5, kemudahan untuk dibangun dan dikembangkan, terutama untuk validasi inputan, dan konfigurasi yang mudah[11]. aplikasi berskala besar. Selain itu framework dapat Dan yang terpenting adalah kedua Framework ini menghemat waktu dan kebutuhan yang diperlukan kini telah mendukung implementasi web Ajax, dalam pembangunan web[6]. Terdapat banyak dengan cara yang berbeda. Pada PRADO, dukungan framework tersedia untuk pembangunan aplikasi terhadap Ajax telah disertakan langsung dalam web, diantaranya adalah PRADO dan CakePHP penerapan event-driven-nya menggunakan Active yang mendukung penerapan Web 2.0. Kedua Controls, sehingga menjamin penggunaan Ajax framework ini sangat populer digunakan oleh dengan mudah. Sedangkan pada CakePHP, banyak developer (salah satunya adalah CakePHP penerapan Ajax dilakukan dengan memakai fitur yang digunakan oleh Yahoo!) dan memiliki Helpers yang menggunakan tambahan karakteristik berbeda. script.aculo.us dan prototype sebagai library untuk PRADO atau PHP Rapid Application Ajax[12]. Development Object-oriented, adalah framework Paper ini memaparkan bagaimana yang mengutamakan RAD (Rapid Application penerapan Ajax yang telah disediakan oleh Development) dengan arsitektur Component-Based Framework PRADO dan CakePHP, karena pada dan Event-Driven[12]. PRADO mengutamakan dasarnya kedua Framework memiliki karakterisrik reuseability pada setiap komponennya sehingga dasar yang berbeda (Event-Driven dan MVC), mudah digunakan kembali oleh orang lain. Selain itu event-driven memudahkan implementasi konsep utama dari Event-Driven-nya memudahkan asynchronous sedangkan MVC memudahkan dalam pengaturan End-user activities, seperti menekan pembagian tugas pembangunan. Dan fitur dukungan tombol yang akan diterjemahkan menjadi event- terhadap Ajax-nya pun berbeda, namun sama-sama server, sangat mirip dengan yang diterapkan pada menjanjikan kemudahan dalam penerapan Ajax. ASP.NET ataupun . Keunggulan dari PRADO Selain itu dilakukan evaluasi terhadap pembangunan ini telah teruji dengan memenangkan grand prize aplikasi web Ajax dengan menggunakan kedua Zend PHP5 coding contest. framework ini, khususnya dalam hal kemudahan dan Sedangkan CakePHP yang juga memiliki kualitas aplikasi yang dihasilkan. karakter pengembangan RAD, lebih mengutamakan implementasi dari konsep MVC (Model View 2. FRAMEWORK AJAX Control), sehingga dalam pembangunan software akan ada penbagian tugas yang jelas (antara Ajax merupakan teknik pemrograman yang presentasi dan business logic). Selain itu CakePHP menggabungkan penggunaan HTML, Javascript, juga memiliki banyak kemudahan lainnya, seperti DHTML, DOM (Document Object Model) dan

C-47 Seminar Nasional Aplikasi Teknologi Informasi 2008 (SNATI 2008) ISSN : 1907-5022 Yogyakarta, 21 Juni 2008

XML. Sehingga dapat menciptakan teknik b. View pertukaran data antara server dan client secara View melakukan render terhadap data yang asynchronous. Kemampuan ini diyakini dapat diberikan Model dan akan mengirimkan meningkatkan interaksi (rich interaction) sebuah gerak/aktifitas dari user kepada Controller. Sehingga aplikasi web terhadap usernya[2]. Salah satunya View akan menjaga kekonsistenan data tampilan adalah kemampuan melakukan perubahan halaman terhadap perubahan yang terjadi. Dengan web hanya pada bagian yang diperlukan saja, mengelompokkan semua display dan presentation sehingga tidak harus baca ulang web secara code pada satu tempat, akan memudahkan keseluruhan sehingga akan membantu untuk melakukan perubahan tampilan tanpa mempengaruhi pembuatan web yang dinamis dan attraktif[1]. business logic dan data. Framework digunakan oleh developer untuk c. Controller memudahkan pembangunan aplikasi web yang dapat Controller mendefinisikan perilaku yang terjadi berupa sekumpulan library yang berisi fungsi, tools, pada aplikasi, kemudian memetakannya menjadi ataupun class-class, dan digunakan sebagai aksi dari user terhadap Model. Controller akan kerangkan dalam pembangunan aplikasi web. sangat erat hubungannya dengan View, karena setiap Umumnya didalam framework tersebut telah interaksi yang akan dilakukan user akan ditampilkan menyediakan solusi untuk akses database, oleh View untuk kemudian direspon oleh Controller. authentication, templating, controls, dan fungsi- Pada Controller akan terdapat method-method yang fungsi lainnya. Penggunaan framework diharapkan akan menanggapi perilaku dari aplikasi. membuat pengembangan aplikasi menjadi rapi dan bersih, memiliki struktur yang optimal, dan reusable. Berikut ini beberapa keuntungan yang didapatkan dari pembangunan aplikasi web menggunakan framework[8] : a. Struktur aplikasi yang lebih rapi dan teratur, biasanya menggunakan struktur MVC yang melakukan pemisahan antara business logic dengan presentation. b. Menghemat waktu dan biaya, kerena membangun aplikasi tidak dimulai dari awal namun tinggal menggunakan berbagai fitur-fitur yang ada. c. Kemungkinan aplikasi akan lebih secure dan reusable, karena framework dibangun dari Gambar 0.1 Arsitektur dasar Model-View- pengalaman membangun aplikasi. Controller[11] . Mempu menangani banyak hal dengan mudah, seperti templating, database, validation, cache 2.2 Arsitektur Event-Driven management, dan berbagai fitur lainnya. Event-based programming adalah sebuah paradigma pemrograman yang alur programnya 2.1 Arsitektur Model View Controller (MVC) ditentukan oleh aktifitas (aksi) user atau melalui MVC digunakan untuk memisahkan data message yang diberikan oleh program lainnya. access dan business logic dari data presentation dan Untuk bisa menerapkannya dibutuhkan suatu user interaction. Pemisahan dilakukan dengan arsitektur event-driven yang berfokus pada setiap tujuan agar setiap perubahan yang terjadi pada event aktifitas user. Arsitektur ini dirancang untuk presentation logic atau business logic tidak mengimplementasikan aplikasi dengan loosely memberikan pengaruh satu sama lainnya yang coupled antar komponen. Dengan fokus seperti itu, kompleks. Solusi pemisahan MVC ini diharapkan maka arsitektur event-driven juga melakukan dapat meningkatkan flexibility dan reusability suatu pemisahan antara proses bisnis dengan display untuk aplikasi. user interaction[12]. Berikut ini beberapa kelebihan Arsitektur MVC memisahkan aplikasi penggunaan arsitektur event-driven : menjadi 3 bagian, yaitu Model, View dan Controller a. Memudahkan pembuatan aplikasi yang responsif seperti terlihat pada gambar 2.1. dengan proses yang dinamis. a. Model b. Mendukung pembuatan aplikasi yang reusable. Merupakan representasi dari database, meliputi c. Dengan berorientasi pada event, pembangunan design table yang ada sampai dengan relationships aplikasi akan lebih difokuskan pada proses antar table. Fungsi utama dari Model adalah untuk control. menangani data, mengambil data dari database, insert data ke database, manipulasi data sampai Setiap aktivitas yang dilakukan end user akan dengan validasi data. diterjemahkan sebagai event dari server. Dengan begitu control yang dilakukan hanya perlu disesuaikan dengan interaksi yang terjadi tersebut.

C-48 Seminar Nasional Aplikasi Teknologi Informasi 2008 (SNATI 2008) ISSN : 1907-5022 Yogyakarta, 21 Juni 2008

prototype dan script.aculo.us yang berisi fungsi- 2.3 Framework CakePHP fungsi inti Ajax dan effect untuk web dinamis. Ajax CakePHP adalah salah satu framework Helpers berisi methods yang mengimplementasikan berbasis pemrograman PHP yang mampu digunakan penggunaan library tersebut. untuk membuat aplikasi berskala besar. Framework ini mampu mempermudah pembuatan aplikasi 2.4 Framework PRADO CRUD (Create, Read, Update, Delete) dengan PHP Rapid Application Development karakter pengembangan RAD (Rapid Applicartion Object-Oriented (PRADO), merupakan framework Development). Framework ini memiliki beberapa dengan pemrograman berbasis component dan karakteristik, diantaranya[10] : event-driven yang digunakan untuk membangun a. Mengunakan arsitektur Model View Controller, aplikasi web PHP5. PRADO menjadikan reusability dengan dukungan untuk pemrograman sebagai hal yang utama dalam pemrograman web, berorientasi objek untuk memudahkan penggunaan ulang kode b. Kompatibel dengan PHP 4 dan PHP 5 ditempat yang lain. Untuk itu PRADO menggunakan c. Kemampuan CRUD yang didukung dengan model penulisan component-based untuk interaksi terhadap database dan penggunaan query pembangunan web. Sedangkan konsep dan Asosiasi table dengan mudah pemrograman event-driven diimplementasikan untuk d. Mendukung penggunaan Ajax, Javascript, HTML mengatasi interaksi antar komponen tersebut. Forms, dan sebagainya, dengan menggunakan Sehingga pengembang dapat lebih fokus pada view Helpers business logic dari pada harus dibuat pusing oleh e. Pembuatan template yang cepat dan fleksibel penggunaan POST ataupun GET dalam interaksi. f. Memiliki penanganan Security, Session, dan Mayoritas framework menggunakan MVC sebagai Request Handling arsitekturnya, tapi PRADO berbeda karena lebih memilih konsep event-driven dan component-based, Struktur kerja dari CakePHP digambarkan inilah keunikan yang dimiliki oleh PRADO. sesuai dengan arsitektur MVC pada umumnya PRADO memiliki beberapa karakteristik, yaitu : (gambar 2.2) dimana request dari user digambarkan a. Reusability, dengan didukung oleh konsep sebagai task dari Controller, yang memiliki banyak component-based. methode terhadap request. Controller tersebut akan b. Event-driven programming, yang menjadikan mengambil data pada database dengan melalui aktifitas end-user sebagai event-server yang akan Model. Setiap Model menggambarkan masing table lebih terfokus untuk ditanggapi oleh pengembang yang ada beserta relasi antar tabel lainnya, dan aplikasi. mekanisme validasi data yang ada pada tabel c. Adanya pemisahan antara Presentation dan Logic tersebut. Sedangkan View digunakan untuk dari aplikasi menampilkan data hasil olahan Controller kepada d. Dukungan terhadap Database dengan user sesuai layout yang ada pada template page[9]. menggunakan Active Record atau akses data PDO-based. e. Ajax support, dengan menggunakan komponen active controls.

Secara umum dalam pembuatan aplikasi web dengan menggunakan PRADO, aplikasi dibagi dalam 2 bagian. Bagian pertama untuk mengatasi business logic yang berisi method-method untuk melakukan pemrosesan aplikasi web. Dan bagian kedua untuk menangani presentation logic, seperti tampilan dari web dan juga untuk menerima inputan dari user.

3. ANALISIS SISTEM Untuk mengimplementasikan Aplikasi Web Ajax paper ini melakukan pembangunan Aplikasi blog system dengan masing-masing

Gambar 0.2 Struktur Kerja Framework framework. Pembangunan aplikasi ini digunakan CakePHP[9] sebagai bahan pembanding untuk menganalisis penerapan Ajax. Aplikasi blog system yang Penerapan Ajax pada CakePHP dilakukan dibangun memiliki kemampuan untuk akses dengan bantuan Helpers Ajax dan Javascript. database, login admin, CRUD, admin area, link CakePHP juga membutuhkan library tambahan dari artikel serta layout template.

C-49 Seminar Nasional Aplikasi Teknologi Informasi 2008 (SNATI 2008) ISSN : 1907-5022 Yogyakarta, 21 Juni 2008

Untuk PRADO dilakukan penerapan ajax justru dapat menyulitkan penggunaan code, karena sesuai dengan pendekatan component-based dari terlalu banyak yang harus disetting. Berbeda halnya kelas Active Controls[12]. Sedangkan untuk dengan CakePHP yang rata-rata memiliki 3 CakePHP penerapannya dilakukan pada bagian parameter pada setiap method yang digunakan pada View dengan menggunakan fasilitas Helpers[11]. kelas Helpers, yaitu parameter $action, $type, dan Penerapan Ajax tersebut disesuaikan dengan $options. Kalau dilakukan penghitungan penerapan penerapan yang umumnya disediakan oleh aplikasi code Ajax secara umum, maka CakePHP masih web Ajax saat ini, diantaranya untuk kebutuhan tergolong lebih ringkas dibandingkan dengan dynamic link, validation form, dragable dan PRADO. Kelemahan lain yang dimiliki PRADO droppable. Hal ini merujuk dari kesamaan fitur-fitur dikarenakan belum seluruh fungsionalitas Ajax telah yang umumnya disediakan oleh library Javascript diterapkannya, seperti drag & drop, sortable, seperti prototype dan script.aculo.us, Dojo Tools observe, dan redirect page. Sehingga dalam Kit, JQuery maupun Yahoo! UI. melakukan analisis dilakukan penambahan komponen baru untuk bisa menerapkan 4. EVALUASI PERFORMANSI fungsionalitas drag & drop. Evaluasi perbandingan performasi sistem Bagian ini membahas perbandingan dilakukan untuk melihat kualitas dari aplikasi web performansi framework PRADO dan CakePHP yang dihasilkan dengan framework. Hasil pengujian dilihat dari perbandingan pra-pembangunan aplikasi, terhadap besaran file web, file CakePHP jauh lebih perbandingan saat pembangunan aplikasi dan kecil dibandingkan dengan PRADO. Sehingga perbandingan performansi sistem. berpengaruh pada lamanya waktu download file dan Hasil perbandingan framework PRADO dan menampilkan data dilayar browser (browse time). CakePHP sebelum proses pembangunan aplikasi Sedangkan untuk kompatibilitas terhadap 4 macam menunjukkan bahwa framework PRADO memiliki browser yang diujikan, PRADO tergolong lebih ukuran file yang lebih besar karena PRADO telah stabil dalam menangani perbedaan browser tersebut. menyertakan berbagai library maupun tools yang Hal ini akan mempermudah penggunaan aplikasi nantinya akan digunakan, seperti library prototype web pada berbagai macam browser yang berbeda. untuk pada Ajax. Framework CakePHP Namun ketika dilakukan proses penanganan memiliki fitur yang menjadi kelebihan, yaitu CRUD kegagalan layanan Javascript ternyata beberapa dengan dukungan database yang mudah dan aplikasi fungsionalitas Ajax pada masing-masing aplikasi scaffolding yang membantu pembuatan web dengan tidak berjalan dengan baik. Hanya CakePHP yang cepat menggunakan command-line script. CakePHP masih mampu menangani proses seperti validasi juga masih mendukung pembangunan aplikasi login, dan link artikel, selebihnya tidak dapat dengan PHP4 atau PHP5. Namun untuk masalah berfungsi. instalasi, PRADO masih tergolong lebih praktis dibandingkan dengan CakePHP. 5. KESIMPULAN Untuk perbandingan kedua framework selama proses pembangunan system, bertujuan Paper ini menunjukkan hasil perbandingan untuk melihat kegunaan dari framework dalam hal performansi antara framework PRADO dan kemudahan pembangunan aplikasi. Kemudahan CakePHP pada aplikasi web Ajax. PRADO dan dilihat dari aspek penulisan code, banyaknya CakePHP menerapkan Ajax dengan cara yang penggunaan code, dan kelengkapan fitur yang berbeda, yaitu dengan komponen Active Controls diberikan framework pada penerapan fungsionalitas pada PRADO kelas Helpers pada CakePHP. Ajax. Untuk dapat membandingkannya akan Performansi aplikasi web yang dihasilkan dengan diterapkan fungsionalitas Ajax pada aplikasi web CakePHP lebih baik dari pada framework PRADO. yang telah dibangun dengan menggunakan masing- masing framework. REFERENSI

[1] Garret, Jesse James., 2005, AJAX: A New Tabel 3.1 Perbandingan jumlah line code Approach to ,USA, Adaptive Penerapan Ajax PRADO CakePH P Path. Code Konfigurasi 1 5 [2] Batra, Sudhir. 2006. AJAX – Asynchronous Code View article 1 2 Script and XML, University of Applied Science Code Login form 6 3 and Technology – Salzburg ITS – Information Code Livesearch 6 5 Technology and Systems Management. Edit layout/ draggable 8 4 [3] Mamlouk, Tarek Madany.2006.Thesis:Concept, Total line code 22 19 Design, and Implementation of an Asynchronous JavaScript and XML (AJAX) based Extensible Engine for Desktop-like User PRADO memiliki attribute dan yang Interface Generation.Technical University of sangat banyak pada setiap komponennya. Hal ini .

C-50 Seminar Nasional Aplikasi Teknologi Informasi 2008 (SNATI 2008) ISSN : 1907-5022 Yogyakarta, 21 Juni 2008

[4] Ramsey, Ben.2005. Framing The Frameworks, what are they and do I need one?. International PHP 2005 conference. [5] Anglin, Todd. 2007.The Ajax Papers. www.telerik.com. [6] Eckstein, Robert.2007. Java SE Application Design with MVC. http://java.sun.com [7] O’Brien, Duane.2006. Cook up Web sites fast with CakePHP (Part 1-5).IBM [8] Mahemoff, Michael.2007.Choosing an Ajax Framework. http://ajaxian.com/archives/choosing-an-ajax- framework [9] Gokhale, Rajendra.2007. Performance Testing for Ajax-based Applications. http://itest.aztecsoft.com [10] Fowler, Martin., 2005. UML Distilled: A Brief Guide to the Standard Object Modeling Language, Third Edition. USA. Addison Wesley. [11] Gaia.2007.10 things to consider when choosing an Ajax Framework. http://ajaxwidgets.com [12] Smashing Magazine.2007. Browser test, services and compatibility test suites. http://www.smashingmagazine.com/2007/10/02 /browser-tests-services-and-compatibility-test- suites/

C-51 Seminar Nasional Aplikasi Teknologi Informasi 2008 (SNATI 2008) ISSN : 1907-5022 Yogyakarta, 21 Juni 2008

C-52