Isi

18
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 1

Transcript of Isi

Page 1: 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

Page 2: Isi

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

Page 3: Isi

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

Page 4: Isi

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

Page 5: Isi

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

Page 6: Isi

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

Page 7: Isi

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

Page 8: Isi

(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

Page 9: Isi

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

Page 10: Isi

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

Page 11: Isi

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

Page 12: Isi

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

Page 13: Isi

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