Isi
Transcript of Isi
BAB I
PENDAHULUAN
1.1 Latar Belakang
Framework dalam dunia software dapat diartikan sebagai sebuah abstraksi
dimana di dalamnya terdapat kode-kode program yang menyediakan fungsi
generik yang dapat dikustomisasi oleh pengguna framework sesuai dengan
kebutuhannya. Penggunaan framework dapat memberikan berbagai keuntungan,
misal:
Dapat dilakukan standarisasi proses pengembangan atau development
Developer dapat berkonsentrasi pada masalah-masalah bisnis yang spesifik
Mencegah pekerjaan yang berulang (redundant)
Meningkatkan produktivitas
1.2 Rumusan Masalah
Dalam makalah ini yang akan dibahas adalah pengenalan tentang Web
Framework :
MVC
Fitur
Teknologi
Contoh PHP Framework
Tips memilih PHP Framework
Testimoni dari beberapa PHP Framework
1.3 Tujuan Pembahasan
Tujuan dari pembahasan-pembahasan diatas adalah agar kita lebih
memahami hal tentang Web Framework, mengetahui metode penggunaan MVC,
mengetahui jenis Web Framework dan perkembangannya.
1
BAB II
PEMBAHASAN
2.1 Pengenalan Web Framework
Web framework biasa dikenal dengan web application framework. Web
application framework adalah suatu software framework yang didesain untuk
mendukung pengembangan web dinamis, aplikasi web dan web service.
(wikipedia). Pemrograman web berbasis framework didasarkan pada konsep OOP
(Object Oriented Programming).
2.2 MVC (Model-View-Controller)
Arsitektur Model-View-Controller adalah sebuah pola yang terbukti
membangun proyek secara lebih efektif. Hal itu dilakukan dengan
memilah komponen antara Model, View dan Controller pada bagian – bagian
dalam proyek. MVC berhubungan erat dengan arsitektur dari Web Framework.
Diagram di atas menunjukkan 3 komponen yang terdapat dalam
pola MVC dan interaksi yang terjadi.
2
2.2.1 Model
Pola MVC memiliki layer yang disebut dengan Model yang
merepresentasikan data yang digunakan oleh aplikasi sebagaimana
proses bisnis yang diasosiasikan terhadapnya. Dengan memilahnya
sebagai bagian terpisah, seperti penampungan data, persistence, serta proses
manipulasi, terpisah dari bagian lain aplikasi.
Terdapat beberapa kelebihan dalam pendekatan ini. Pertama, membuat
detail dari data dan operasinya dapat ditempatkan pada area yang
ditentukan (Model) dibanding tersebar dalam keseluruhan lingkup
aplikasi. Hal ini memberikan keuntungan dalam proses maintenance aplikasi.
Kedua, dengan pemisahan total antara data dengan
implementasi interface, komponen model dapat digunakan kembali oleh
aplikasi lain yang memiliki kegunaan yang hampir sama.
2.2.2 View
Layer ini mengandung keseluruhan detail dari implementasi user
interface. Disini, komponen grafis menyediakan representasi proses
internal aplikasi dan menuntun alur interaksi user terhadap aplikasi. Tidak ada
layer lain yang berinteraksi dengan user, hanya View.
Penggunaan layer View memiliki beberapa kelebihan : Pertama,
memudahkan pengabungan divisi desain dalam development team. Divisi
desain dapat berkonsentrasi pada style, look & feel, dan sebagainya, dalam
aplikasi tanpa harus memperhatikan lebih pada detail yang lain.
Dan juga, memiliki layer View yang terpisah memungkinkan ketersediaan
multiple interface dalam aplikasi. Jika inti dari aplikasi terletak pada
bagian lain (dalam Model), multiple interfaces dapat dibuat (Swing, Web,
Console), secara keseluruhan memiliki tampilan yang berbeda namun
mengeksekusi komponen Model sesuai fungsionalitas yang diharapkan.
3
2.2.3 Controller
Terakhir, arsitektur MVC memiliki layer Controller. Layer ini menyediakan
detail alur program dan transisi layer, dan juga bertanggungjawab akan
penampungan events yang dibuat oleh user dari View dan melakukan update
terhadap komponen Model menggunakan data yang dimasukkan oleh user.
Kelebihan dalam penggunaan layer Controller secara terpisah :
Pertama, dengan menggunakan komponen terpisah untuk menampung
detail dari transisi layer, komponen view dapat didesain tanpa harus
memperhatikan bagian lain secara berlebih. Hal ini memudahkan team
pengembang multiple interface bekerja secara terpisah dari yang lain secara
simultan. Interaksi antar komponen View terabstraksi dalam Controller.
Kedua, dengan menggunakan layer terpisah yang melakukan
update terhadap komponen Model, detail tersebut dihapus dari layer
presentasi. Layer presentasi kembali pada fungsi utamanya untuk menampilkan
data kepada user. Detail tentang bagaimana data dari user mengubah
ketetapan aplikasi disembunyikan oleh Controller. Hal ini
memisahkan dengan jelas antara presentation logic dengan business
logic.
Tidak dapat disimpulkan bahwa pola MVC hadir dengan kelebihan –
kelebihan tanpa ada efek samping. Pembagian aplikasi dalam 3
bagian terpisah meningkatkan kompleksivitas. Pada aplikasi kecil yang
tidak membutuhkan loose coupling pada Model, hal ini dapat menjadi
blok penghalang dalam penggunaan pola ini. Bagaimanapun,
yang terbaik adalah untuk meyakini bahwa sebuah aplikasi
umumnya dimulai dari aplikasi sederhana, dan berkembang menjadi
sistem yang kompleks., sehingga factor loose coupling harus selalu diutamakan
dan diperhatikan.
4
2.3 Fitur
Security : berhubungan dengan authentication dan authorization
Database access and mapping : berhubungan dengan pengaksesan
database.
URL mapping : pemetaan URL dari URL “real” ke URL “virtual”.
Contoh : /page.cgi?cat=science&topic=physics menjadi
/page/science/physics.
Web template system : minimalisasi coding.
Caching : dokumen/data disimpan sebagai cache untuk meminimalkan
bandwidth.
Ajax (Asynchronous JavaScript and XML) : membuat aplikasi web lebih
interaktif.
Automatic configuration : konfiggurasi otomatis pada objek atau
komponen.
Web services : berhubungan dengan integritas data dan aplikasi.
2.4 Teknologi
A. Bahasa Pemrograman
Java- ColdFusion- Perl, Python, Ruby, Lua
TCL
JavaScript
C# and VB.NET- PHP
Common Lisp
Smalltalk
B. Sistem Operasi
Windows
Linux
Mac
5
2.5 Contoh PHP Framework
10 Php Framework Terbaik (2/1/2009)
Versi : www.phpframeworks.com
1. PHPDevShell (avg: 4.6)
2. Symfony Project (avg: 4.5)
3. Akelos (avg: 4.5)
4. CodeIgniter (avg: 4.3)
5. ZooP (avg: 4.3)
6. Prado (avg: 4.2)
7. CakePHP (avg: 4.2)
8. Yii (avg: 3.6)
9. Zend (avg: 3.5)
10. Seagull (avg: 3)
Download PHP Framework
CodeIgniter 1.5.4 (codeigniter.com/download.php)
Prado 3.1.1 (pradosoft.com/download)
6
PHPDevShell 0.7.0 (sourceforge.net/project/showfiles.php?
group_id=184502)
Zend 1.0.2 (framework.zend.com/download)
CakePHP 1.2.0.5875 (cakephp.org/downloads)
Symfony Project 1.0.9 (symfony-project.org/content/download)
Seagull 0.6.5 (seagullproject.org/download)
PHP on TRAX 0.14.0 (phpontrax.com/downloads)
ZooP 1.3b1 (sourceforge.net/project/showfiles.php?group_id=154726)
2.6 Tips Singkat Memilih PHP Framework
1. Ketika kita dihadapkan pada sebuah project web yang memang
memerlukan pengerjaan dari awal dan CMS yang ada tidak memenuhi
requirement, pilihannya adalah:
buat semuanya dari awal, termasuk fungsi-fungsi, class-class dsb
menggunakan fungsi-fungsi dan class-class yang udah ada
menggunakan PHP framework
2. Tips :
Jangan hanya berdasarkan fitur tapi sesuaikan dengan kebutuhan project
dan kemampuan individu
Seberapa banyak waktu yang dimiliki
Dokumentasi & Komunitas
Third Party Support
Jangan terpengaruh pendapat orang lain, karena kebutuhan masing-masing
individu berbeda-beda.
3. Pilihan framework yang cukup terkenal (menurut : okto.silaban.net):
Prado - PHP (contoh : website Univertias Indonesia)
CodeIgniter - PHP(contoh : OkeZone.com)
Ruby On Rails - Ruby (contoh : SharingFoto.com)
CakePHP - PHP (contoh : OwnCafe.com) : Salah seorang yang sangat
aktif dalam edukasi CakePHP di Indonesia adalah Sunu Wibirama
7
(alumni Teknik Elektro UGM). Situs lokal cake-php bisa dilihat di
idcake.web.id.
Symfony (PHP), Django (Python), dll
2.7 Testimonial
Kohana - Framework PHP CodeIgniter Versi Komunitas
(okto.silaban.net)
CI ini bukanlah dikembangkan oleh komunitas, tetapi oleh sebuah
perusahaan (vendor), yang bernama EllisLab.
CakePHP yang cukup strict (Convention over Configuration)
Solusi : Kohana (KohanaPHP.com)
Keterbatasan : Kohana hanya bisa berjalan dengan PHP5 (tidak support
PHP4).
Perbedaan Kohana dan Ci selengkap di:
http://thislab.com/2008/02/23/notes-on-choosing-a-phpframework-a-
quick-comparison-of-codeigniter-and-kohana/
CodeIgniter (igorpanggabean.wordpress.com)
Sangat mudah dipahami untuk orang yang baru pertama kali menggunakan
framework.
Konsep MVC. Konsep ini memudahkan untuk membentuk susunan
programnya. Jelas bentuknya. Controller tugasnya mengatur akses untuk
setiap file. Modeller murni mengurusi urusan dengan database. Viewer
hanya berupa tampilan yang siap dipanggil dengan diberikan data
tambahan oleh controller.
OOP based
Tutorial lengkap
Dokumentasi lengkap
Symfony - PHP Framework (blog.dark-ipl.com)
mencoba framework Symfony yang katanya salah satu framework PHP
terbaik
8
Setelah membaca buku dokumentasi dan sumber lain yang kukumpulkan
saya jadi mengoreksi pemahaman saya tentang framework tersebut, karena
ternyata bahasannya lebih luas.
saya telah memilih framework ini sebagai bahan uji coba untuk
pendalaman pemahaman tentang programming framework.
Yii Framework (www.thinkrooms.com)
Menggunakan pola MVC
Menggunakan database abstraction layer seperti Data Access Objects
(DAO) dan active Record untuk memudahkan interaksi dengan
database
Terintegrasi dengan JQuery Javascript Framework.
Mendukung Internationalization (I18N) and localization (L10N)
Memiliki layer cache untuk cache data, halaman, sebagian, dan
keseluruhan aplikasi
Fitur penanganan error dan logging
Penggunaan theme
Console, penggunaan perintah pada console untuk melakukan beragam
perintah otomatis
Dukungan authentication dan authorization internal
Widget, semacam kontrol yang memiliki fungsi tertentu seperti
autocomplete, datapicker, table, dan lain-lain
Dukungan form input dan validasi
Modular dan mudah ditambahkan
BAB III
9
PENUTUP
3.1 Kesimpulan
Web Framework yang biasa dikenal Web Apllication Framework yaitu
suatu software framework yang didesain untuk pengembangan web diamnis,
aplikasi web, dan web service. Framework sendiri adalah abstraksi kode-kode
program yang menyediakan fungsi generik yang dapat dikustomisasi oleh
pengguna framework sesuai dengan kebutuhannya.
Framework menyediakan librari yang lengkap dan terintegrasi. Unsur inilah
yang paling banyak memberikan keuntungan bagi pengembang aplikasi. Sebagai
contoh, framework aplikasi web menyediakan librari-librari dasar berkaitan
layanan web, seperti authentication, database access, html generation, template
engine, session management, caching, searching, email, http, pdf, zip dan ajax.
Framework juga menyediakan sarana extension untuk librari-librari yang belum
tersedia atau librari yang perlu ditingkatkan kemampuannya.
Beberapa manfaat yang dapat kita peroleh dengan menggunakan framework
dalam pengembangan aplikasi :
Penggunaan komponen-komponen reusable, waktu pengembangan lebih
singkat
Penerapan design patterns memudahkan dalam rancangan, pengembangan
dan pemeliharaan sistem
Stability dan reliability, aplikasi yang kita bangun lebih stabil dan handal
karena berbasis pada framework yang sudah teruji stabilitas dan
kehandalannya.
Coding style konsisten, memudahkan dalam membaca kode dan dalam
menemukan bugs
Security concern, framework mengantisipasi dan memasang perisai
terhadap adanya berbagai masalah keamanan yang mungkin timbul
10
Dokumentasi, framework dapat mendisiplinkan kita untuk menulis
dokumentasi untuk apa yang kita tulis
Aplikasi apapun, bagian dalam kode yang sering mengalami
perubahan adalah bagian user interface. User interface adalah bagian yang
paling terlihat oleh user dan bagaimana ia berinteraksi dengan aplikasi,
membuatnya menjadi titik fokus pengubahan berdasar kemudahan penggunaan.
Business-logic yang rumit pada user-interface membuat pengubahan
pada user interface menjadi lebih kompleks dan mudah terjadi kesalahan.
Perubahan pada satu bagian memiliki potensi keterkaitan dengan keseluruhan
aplikasi.
Pola MVC menyediakan sebuah solusi terhadap permasalahan
tersebut dengan membagi aplikasi menjadi bagian – bagian tersendiri,
Model, View dan Controller, memisahkan antar bagian tersebut dan membuat
tata interaksi diantaranya.
Fitur-fitur pada web framework, yaitu :
Security
Database access and mapping
URL mapping
Web template system
Caching
Ajax (Asynchronous JavaScript and XML)
Automatic configuration
Web services
3.2 Saran
11
Untuk menghindari salah pilih, beberapa kriteria perlu dipertimbangan sebelum
memutuskan memilih salah sebuah framework. Pertanyaan-pertanyaan berikut
bisa menjadi acuan:
Apakah fitur-fitur framework sesuai dengan apa yang kita butuhkan
Apakah framework mudah untuk dikembangkan fitur-fiturnya atau
ditambahkan fitur baru
Apakah coding style-nya cocok dengan anda
Apakah memiliki komunitas dan forum diskusi yang aktif
Apakah framework sudah cukup stabil untuk digunakan dalam produksi
Apakah mudah dipelajari dan dokumentasinya baik dan lengkap
Apakah terdapat contoh-contoh aplikasi yang menggunakan framework
tersebut
Apakah framework digunakan secara luas
Bagaimanakah performanya, sesudah dilakukan pengetesan
Apakah framework dapat dengan mudah diterapkan pada team/perusahaan
anda, dengan mempertimbangan kesiapan resources yang ada
Daftar Pustaka
12
http://hasan.staff.uad.ac.id/new/attachments/108_Temuan10-pengenalan-web-
framework.pdf
http://poss.ipb.ac.id/files/JENI-Web%20Programming-Bab%207-Pengenalan
%20MVC.pdf
http://id.wikipedia.org
http://phpframeworks.com
http://phpug.or.id
http://okto.silaban.net
http://ex3me.org
http://blog.dark-ipl.com
http://igorpanggabean.wordpress.com
http://thinkrooms.com
http://infernoblast.com
http://sigit.staf.uajy.ac.id
13