PENGERTIAN FRAMEWORK
Framework Framework adalah kerangka kerangka kerja. Framework Framework juga dapat diartikan diartikan sebagai kumpulan script script (terut (terutama ama class class dan functi function) on) yang yang dapat dapat memban membantu tu develo developer per/pr /progr ogramm ammer er dalam dalam menang menangani ani berbag berbagai ai masala masalah-m h-masa asalah lah dalam dalam pemrog pemrogram raman an seper seperti ti koneksi koneksi ke databa database, se, peman pemanggi ggilan lan variab variabel, el, file, file,dll dll sehing sehingga ga develop developer er lebih lebih fokus fokus dan lebih lebih cepat cepat memban membangun gun aplikasi. Bisa juga dikatakan Framework adalah komponen pemrorgaman yang siap re-use kapan saja, saja, sehing sehingga ga progra programme mmerr tidak tidak harus harus membuat membuat skrip yang yang sama sama untuk untuk tugas tugas yang yang sama. sama. Misalk Misalkan an saat saat anda anda membuat membuat aplika aplikasi si web berbas berbasis is ajax ajax yang yang setiap setiap kali kali harus harus melakuk melakukan an XMLHttpRequest, maka Xajax telah mempurmudahnya untuk anda dengan menciptakan sebuah objek khusus yang siap digunakan untuk operasi Ajax berbasis PHP. Itu adalah salah satu contoh kecil, selebihnya Framework jauh lebih luas dari itu. Secara sederhana bisa dijelaskan bahwa framework adalah kumpulan fungsi (libraries), maka seorang programmer tidak perlu lagi membuat fungsi-fungsi (biasanya disebut kumpulan library) dari awal, programmer tinggal memanggil kumpulan library atau fungsi yang sudah ada didala didalam m framer framerwor work, k, tentun tentunya ya cara cara menggun menggunaka akan n fungsi fungsi-fu -fungs ngsii itu sudah sudah ditent ditentuka ukan n oleh oleh framework. Beberapa contoh fungsi-fungsi standar yang telah tersedia dalam suatu framework adalah fungsi paging, paging, enkripsi, enkripsi, email, SEO, session, security, security, kalender, kalender, bahasa, bahasa, manipulasi manipulasi gambar gambar,, grafik grafik,, tabel tabel bergay bergayaa zebra, zebra, valida validasi, si, upload, upload, captcha captcha,, protek proteksi si terhad terhadap ap XSS(XS XSS(XSS S filtering), template, kompresi, XML dan lain-lain. Macam-macam framework
1. Frame ramewo worrk PHP PHP o
CakePHP
o
Code Igniter (CI)
o
Symphony
o
Zend
o
Yii
o
Kohana
2. Framework Javascript o
JQuery
o
Mootools
3. Framework Ruby o
Ruby on Rails (ROR)
Saat ini banyak sekali framework berbasis PHP, diantaranya yang paling populer adalah Zend Framework, Symphony, Prado, CakePHP, CodeIgniter (ini adalah favorit saya) dan lainlain. Menurut beberapa survei, CodeIgniter adalah framework yang paling mudah dipelajari, karena keserhanaan strukturnya dan kelengkapan dokumentasinya yang baik. Selain itu, kerapian kode (clean and healthy code) dan ukurannya yang ramping membuatnya lebih cepat diakses dibandingkan dengan framework lainya. Perlu diketahui nyaris (bahkan mungkin semua) framework menggunakan konsep yang sama dalam membangun suatu aplikasi, yaitu konsep MVC (Model View Controller). Kesimpulannya, kalau kita memahami MVC, maka secara garis besar kigta sudah menguasai framework, apapun jenis frameworknya. Dan satu lagi kuncinya, pemahaman terhadap OOP (Object Oriented Programming) akan sangat membantu dalam menguasai framework
Sebetulnya berita ini sudah sering di ulang-ulang, tapi karena ranking bersifat dinamis, pastinya setiap bulan urutan kepopulerannya selalu berbeda, sehingga penulis rasa hal ini perlu dikabari lagi. Budaya penghargaan dan pemberian ranking pun terjadi pada Framework PHP yang kini semakin populer digunakan, beberapa bulan lalu, ci (codeIgniter) selalu nongkrong di posisi teratas, menjadi no. 1 paling banyak digunakan para programmer dunia. Namun, selang beberapa bulan, yii muda, yang ide awalnya mengambil dari prado, meski baru lahir, mampu menumbangkan kompetitor yang sudah ada sebelumnya. Perlu diketahui Framework PHP yang menganut konsep MVC (model, view, controller) menjadikan pembuatan aplikasi berskala besar menjadi lebih cepat, dan mudah. Seorang designer tidak perlu lagi merepotkan urusan koding PHP, begitu juga seorang programmer, tidak perlu memikirkan masalah design interface. Benar-benar Framework PHP ini sangat memudahkan. Sampai saat artikel ini ditulis, 10 Framework PHP Terbaik yang populer saat ini : 1. yii 2. Codeigniter 3. CakePHP 4. Zend 5. Symfony 6. PHP Dev Shell
7. Prado 8. Akelos 9. QPHP 10. ZooP Manfaat Framework
Manfaatnya dapat membantu kerja developer dalam membangun aplikasi sehingga aplikasi
bisa selesai dalam waktu yang 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
Dokumentasi, framework dapat mendisiplinkan kita untuk menulis dokumentasi untuk apa
yang kita tulis Contoh:
Di dalam Framework tersedia library “Pagination“ misalnya, yang mana dalam class tersebut terdapat fungsi yang memberikan nilai balik(return) link ke halaman berikutnya, sebelumnya, awal, akir dll. nah dalam pengembangan system kita bisa menggunakan class Pagination ini untuk semua proses yang membutuhkan adanya Pagination. ini adalah sebagian kecil dari contoh library
yang
disediakan
oleh
framework.
Namun framework sendiri kelebihan utamanya bukan dari seberapa banyak library yang di sediakan, meski hal itu tentunya akan sangat membantu proses development. Kelebihan yang bisa kita ambil dari framework adalah kerangka kerja dari framework tersebut dalam menyelesaikan modul-modul yang dikembangkan sehinga mengeluarkan sebuah metode pekerjaan yang lebih effisien, lebih rapi, lebih bersifat general, dan lebih homogen. Kelebihan dari Framework
Pertama kelebihan dengan adanya framework akan lebih mempermudah memahami mekanisme kerja dari sebuah aplikasi. Ini tentunya akan sangat membantu proses pengembangan system yang dilakukan secara team. Semua anggota di wajibkan untuk memahami dari pola kerja framework tersebut selebihnya anggota team hanya mempelajari proses bisnis yang di kehendaki oleh system untuk kemudian di tuangkan kedalam framework tersebut. Dalam artian setiap orang harus mempunyai metode yang sama dalam menyelesaikan applikasi tersebut. Kedua dengan memakai framework akan menghemat waktu pengerjaan suatu applikasi, karena setiap anggota sudah memiliki sebuah acuan dalam menyelesaikan modul. Dalam hal ini misalnya semakin banyak library yang ada semakin mempercepat anggota untuk menemukan solusi karena tidak setiap anggota harus membuat Class atau fungsi untuk kasus yang relatif sama. Berikutnya Team tidak akan di susahkan dengan adanya perputaran anggota dalam artian jika ada anggota yang tidak bisa melanjutkan lagi pekerjaannya anggota yang lain bisa mengcover kekosongan tersebut. Bayangkan jika setiap modul yang dikembangkan mempunyai logika yang berbeda tentunya akan memakan waktu yang banyak untuk proses pemahan akan system tersebut.
Kesekian-kalinya dengan adanya framework akan menjaga integritas dari modul-modul yang dikembangkan. Tentunya hal ini juga tergantung dari metode yang dikembangkan sendiri. framework hanya membantu dan memungkinkan/mempermudah proses integrasi, tidak berarti dengan adanya framework system otomatis akan ter-integrasi. Dan masih ada kelebihankelebihan lain yang dimiliki oleh framework.
Kekurangan Framework
- Para programmer mungkin akan menemukan batasan-batasan ketika merancang aplikasi menggunakan framework - Kemungkinan akan menambah biaya development apabila framework yg digunakan kurang terdokumentasi dan kurang di support - Performa dan kecepatan eksekusi Kesimpulan : Dengan adanya framework akan sangat membantu proses penyelesaian pekerjaan didukung oleh analisa sistem yang baik dan pertimbangan sumberdaya yang ada.
Framework adalah sebuah komponen yang dapat ditambahkan ke sistem operasi Microsoft Windows atau yang telah terintegrasi ke dalam Windows. Kerangka kerja ini menyediakan sejumlah besar solusi-solusi program untuk memenuhi kebutuhan-kebutuhan umum suatu program baru, dan mengatur eksekusi program-program yang ditulis secara khusus untuk framework ini.
Jika dulu kita sering menggunakan cara konvensional dalam menuliskan script PHP dalam membuat sebuah aplikasi web, mungkin sekarang saatnya kita mencoba sesuatu pola scripting yang dengan menggunakan PHP Framework. Apa itu PHP Framework? Sesuai namanya, framework dapat diartikan sebagai sebuah kerangka kerja yang dapat mempermudah kita dalam menyelesaikan sebuah pekerjaan. Dengan pengertian tersebut dapat dianalogikan, framework adalah sebuah kerangka kerja dalam pengembangan website dinamis. Framework berbeda jika kita bandingkan dengan CMS (Content Management System). Jika dengan CMS kita tak terlalu ambil pusing dengan script PHP yang dibuat, akan tetapi tidak demikian dengan Framework. Untuk membangun sebuah aplikasi, framework tetap harus menuliskan kode perintah PHP sesuai dengan lingkungan framework yang kita gunakan. Dalam framework, metode pengembangan yang digunakan berbasis MVC (Model-ViewController). Disinilah letak perbedaan utama antara framework dengan CMS atau PHP konvensional. Dengan metode MVC, bagian tampilan, logika serta query database diletakkan secara terpisah namun tetap sinkron sehingga pembuatan aplikasi menjadi lebih terstruktur dan sederhana.
Model
digunakan
dalam
menuliskan
script
database,
Controller
untuk
mengembangkan logika pemrogramannya, sedangkan View berfungsi dalam menampilkan layout dari aplikasi yang kita buat. Macam-macam dari framework itu sendiri ada banyak, antara lain CodeIgniter , Symfoni , Zend Framework, Yii Framework , DooPHP, dan lain-lain. Framework-framework tersebut memiliki karakteristik yang berbeda antara satu dengan yang lainnya. Kelebihan framework antara lain sebagai berikut :
1. Ringan dan cepat. Framework hanya melakukan pemanggilan pustaka/kelas yang dibutuhkan sehingga meminimalkan resource yang diperlukan sehingga ketika kita meload sebuah halaman akan menjadi ringan dan cepat. 2. Menggunakan metode MVC. Seperti yang telah dijelaskan sebelumnya, dengan metode MVC akan mempermudah kita dalam memahami alur pemrograman karena untuk bagian tampilan, logika dan query database telah dipecah sedemikian rupa. 3. Mayortitas mendukung berbagai jenis database. Kekurangan Framework
Setelah ditinjau dari berbagai ulasan, kekurangan framework sangat jarang sekali. Namun pemilihan framework yang salah akan menjadi bencana. Pemilihan Framework
Ada
beberapa
hal
yang
harus
di
pertimbangkan
dalam
memilih
framework
:
Pertama Documentasi dari framework itu sendiri. Documentasi sangat penting adanya mengingat pada umumnya tidak banyak orang/perusahaan yang membuat framework sendiri dalam membuat applikasi. Nah maka dari itu kita akan sangat tergantung dengan documentasi yang di sediakan oleh framework yang kita pilih. Berikutnya kesesuaian framework tersebut dengan applikasi apa yang hendak kita kembangkan. Mengambil filosofi “tidak perlu membunuh nyamuk dengan meriam”. artinya sebaiknya kita memilih
framework
dengan
fasilitas
yang
pas
dengan
kebutuhan
kita.
Berikutnya lagi perhatikan standar2 standart framework yang ada, misalkan apakah framework tersebut MVC, apakah framework tesebut mendukung versi sekian, apakah mendukung templating dll. Semakin banyak hal yang di support oleh framework tersebut semakin baik.
Karena hal tersebut akan mempengaruhi kualitas dari software yang dikembangkan.
Berikutnya, adalah faktor kemudahan. Tentunya ini sangat tergantung dari sumberdaya yang ada. Standart kemudahan sangat sulit di ukur karena ini berhubungan dengan minat seseorang akan sesuatu. Namun melirik keatas berdasarkan documentasinya kita bisa mengira2 pola kerja framework
tersebut.
Kesimpulan : Dengan adanya framework akan sangat membantu proses penyelesaian pekerjaan
didukung oleh analisa sistem yang baik dan pertimbangan sumberdaya yang ada.
CONTOH-CONTOH FRAMEWORK
1. CodeIgniter
CodeIgniter (CI) sebuah framework untuk programmer yang ingin membangun website
dengan PHP. CI merupakan langkah cepat untuk membuat sebuah website daripada membangun sebuah website dengan alur koding yang biasa. Dengan mempaketkan librarylibrary, alur pemrograman akan terstruktur dan logika bisnis/proses akan lebih mudah dimengerti oleh developer/programmer lain. CI telah mempaketkan itu semua sehingga mampu meminimalisirkan jumlah koding yang dibangun.
Kelebihan dari CodeIgniter
1. Gratis. CodeIgniter dilisensikan dibawah lisensi Apache/BSD style open source license, ini berarti kita dapat menggunakannya sesuai dengan keinginan kita. 2. Berjalan di PHP versi 4 dan 5. Sekarang ini PHP sudah mencapai versi ke 5, meskipun begitu masih banyak orang yang tetap menggunakan PHP versi 4, oleh sebab itu CodeIgniter dikembangkan agar tetap kompatibel dengan PHP versi 4 dan dapat dijalankan pada PHP versi 5.
3. Ringan dan cepat. Secara default CodeIgniter hanya berjalan dengan me load beberapa pustaka saja, dengan demikian hanya membutuhkan resource yang sedikit sehingga ringan dan cepat dijalankan. Pustaka-pustaka lain yang nantinya akan digunakan bisa di load sesuai dengan kebutuhan. 4. Menggunakan MVC. CodeIgniter menggunakan lingkungan pengembangan dengan metode Model View Controller (MVC) yang membedakan antara logika dan presentasi/tampilan, sehingga tugas bisa lebih mudah dipecah-pecah. Ada bagian yang khusus membuat tampilan dan bagian yang membuat core programnya. 5. Dokumentasi. Salah satu hal yang bisa dijadikan barometer apakah sebuah aplikasi benar-benar dikembangkan atau tidak bisa dilihat dari dokumentasinya. Dalam hal ini CodeIgniter
sangat luar biasa, terdapat dokumentasi yang sangat lengkap tentang semua hal yang ada dalam CodeIgniter. Mulai dari langkah instalasi sampai dokumentasi fungsi-fungsi nya tersedia. Adanya dokumentasi sangat memudahkan bagi pemula dalam mempelajari lingkungan pengembangan website dengan CodeIgniter. 6. Pustaka yang lengkap. CodeIgniter dilengkapi dengan berbagai pustaka siap pakai untuk berbagai kebutuhan, misalnya saja koneksi database, email, session dan cookies, keamanan, manipulasi gambar dan banyak lagi. 1. CODEIGNITER
Framework CodeIgniter merupakan framework pengembangan aplikasi web yang menggunakan PHP. Tujuan dari CodeIgniter adalah untuk memberikan kesempatan kepada orang untuk membuat web lebih cepat dibanding apabila dilakukan dari nol ( from scratch), dengan menyediakan sekumpulan library untuk mengerjakan proses-proses yang biasa dilakukan, disertai dengan interface dan struktur logika yang sederhana untuk mengakses library ini. Beberapa keuntungan yang didapat dari CodeIgniter diantaranya adalah: •
CodeIgniter ini merupakan framework yang gratis, dimana kita bisa mengunduh dan menginstallnya tanpa harus membayar.
•
CodeIgniter ini sangat ringan, dimana system utamanya hanya memerlukan sedikit sekali library. Berbeda dengan kebanyakan framework yang membutuhkan resources yang
lebih banyak. Library tambahan dapat ditambahkan secara dnamis berdasarkan permintaan sehingga system dasar sangat kecil dan cepat. •
Framework telah banyak dibuktikan sebagai framework yang cepat dibandingkan kebanyakan framework PHP yang ada.
•
CodeIgniter
menggunakan
pendekatan
konsep Model-Visual-Controller (MVC),
sehingga pengembangan aplikasi menjadi lebih teratur dan terstruktur. •
CodeIgniter dapat menghasilkan URL yang bersih.Contoh URL yang bersih: www.contoh.com/berita/tajuk/1
•
CodeIgniter datang dengan sekumpulan library yang biasanya dibutuhkan untuk mengembangkan website, misalnya untuk mengakses database, mengirim email, memvalidasi form data, memelihara session, memanipulasi gambar, dan sebagainya.
•
CodeIgniter dapat dengan mudah diperluas kemampuannya sesuai dengan yang kita inginkan melalui penggunaan plugin dan helper.
Kekurangannya : •
Tidak mendukung AJAX, dan ORM
•
Meyediakan dan memisahan file-file dalam MVC pattern, tapi masih memberikan kebebasan user untuk melanggar aturan MVC
2. SYMFONY
Symfony adalah framework web yang ditujukan untuk PHP 5. Selain itu Symfony juga kompatibel dengan berbagai sistem database. Sama seperti CakePHP dan CodeIgniter, Symfony juga menganut arsitektur MVC (Model View Controller). Dukungan untuk AJAX juga tersedia di framework Symfony ini. Dokumentasi yang disediakan cukup baik. Mungkin yang menjadi persoalan adalah proses instalasi dan konfigurasi cukup rumit bila dibandingkan dengan framework sebelumnya. Kelebihan •
Dukungan terhadap AJAX, ORM.
•
Kompatibel dengan berbagai macam database.
•
Banyak library dan fungsi symfony yang sudah tersedia. Bahkan hampir mendekati CMS. Sehingga ada yang mengatakan ”Symphony is a CMS with a heart of a framework.” ini menjadi kelebihan sekaligus kekurangan.
Kekurangan •
Tidak mendukung PHP4.
•
Relatif butuh waktu lama untuk mengerti framework ini.
•
Instalasi dan konfigurasinya cukup rumit.
3.
ZEND FRAMEWORK
Zend Framework sebagai media yang memudahkan membuat website. Berdasarkan informasi dari situs resminya, disebutkan bahwa fokus dari Zend Framework ini adalah untuk membangun aplikasi berbasis Web 2.0 dan untuk memudahkan dalam mengakses API dari berbagai vendor seperti Google, Amazon, Yahoo! , dan Flickr. Tidak mengherankan jika Zend Framework menyediakan berbagai modul yang spesifik untuk Web 2.0, seperti AJAX, Syndication, Search, dan Web Services. Kelebihannya : •
Dukungan terhadap AJAX, ORM.
•
Berdasarkan informasi dari situs resminya, disebutkan bahwa fokus dari Zend Framework ini adalah untuk membangun aplikasi berbasis Web dan untuk memudahkan dalam mengakses API dari berbagai vendor seperti Google, Amazon, Yahoo!, dan Flickr.
Kekurangannya : •
Tidak mendukung PHP4.
•
Manual yang ada kurang mengakomodasi kebutuhan.
•
Performanya relatif lambat (mungkin karena banyaknya library).
•
Konon katanya Framework ini hanya cocok untuk orang dengan skill PHP yang sudah sangat tinggi.
•
JQuery
JQuery adalah framework sekaligus kumpulan script-script yang berguna untuk membuat web
menjadi lebih interaktif, terlihat powerfull dan animasi yang bagus. Jquery ditulis dengan menggunakan javascript sebagai sebuah file tunggal. JQuery ini memiliki keunggulan pluginable,artinya JQuery bisa ditambahi dengan berbagai plugin. Sayangnya JQuery ini cukup sulit untuk dipelajari, paling tidak harus mengenal javascript dan konsep OOP.
2.
Ajax
Dengan menggunakan ajax framework anda tidak perlu lagi membuat script ajax. Tetapi apa yang dimaksud dengan ajax framework? adalah lingkungan pengembangan aplikasi ajax, didalamnya berisi sejumlah fungsi yang bisa digunakan untuk membangun aplikasi ajax. misalkan fungsi request data, mengirim data melalui form, meload halaman dll, tergantung skala dan tujuan pembuatan ajax framework tersebut. Ada banyak ukuran ajax framework, dari yang paling sederhana sampai rumit. Jadi dengan menggunakan ajax framework tersebut anda HANYA menggunakan fungsi yang sudah tersedia untuk mengembangkan web anda. Nantinya aplikasi yang dihasilkan akan sesuai dengan kemampuan framworknya. Jika ajax framework yang anda pilih hanya bisa mengirim data lewat form, dan merequest data, maka aplikasi anda hanya mampu menjalankan aksi tersebut, kecuali anda merubah ajax framework nya
Keuntungan Menggunakan ajax framework
Ada banyak keuntungan menggunakan ajax framework , diantara menghemat pikiran dan tenaga, kenapa? anda tidak perlu pusing-pusing hanya karena membuat rutin-rutin ajax, serahkan saja pada ajax framework . Anda tinggal menggunakannya saja. Dan yang perlu diperhatikan ajax framework biasanya sudah dites, artinya kemungkinan ada bug kecil, jika nanti ditemukan,
anda tinggal mengupdate ajax framework nya saja. Keuntungan lain, aplikasi yang anda buat lebih terstruktur, stabil dan mudah dikembangkan. Kekurangan menggunakan ajax framework
Selain kelebihan ada juga kekurangan. Jika anda tidak pintar memilih ajax framework , bukan kecepatan aplikasi yang anda dapatkan, malah aplikasi anda terasa lambat, berat untuk diakses, kenapa? sebagian ajax framework memiliki ukuran yang besar dengan jumlah baris kode yang banyak. file dengan banyak baris tersebut di-include-kan pada halaman awal, maka dibutuhkan waktu khusus untuk mendownload file ajax framework tersebut. Saya sempat ragu ketika menggunakan ajax framework yang melebihi 100kb, karena saya pikir aplikasi saya menjadi lebih lambat. Lebih bagus memang, tetapi bagi saya tujuan penggunakan ajax sendiri adalah untuk mempercepat proses browsing, kalau menggunakan ajax framework malah lebih lambat, ya sama saja.