Wednesday, April 11, 2012

045. Apa itu Framework ??

Framework adalah sekumpulan perintah/fungsi dasar yang dapat membantu dalam
menyelesaikan proses-proses yang lebih kompleks
Secara umum, framework menggunakan struktur MVC (Model, View, Controller). Jika
digambar kan, kira-kira seperti ini

Input > Processing > Output = Controller > Model > View

Model
Model mencakup semua proses yang terkait dengan pemanggilan struktur data
baik berupa pemanggilan fungsi, input processing atau mencetak output ke dalam
browser

Controller
Controller mencakup semua proses yang terkait dengan pemanggilan database
dan kapsulisasi proses-proses utama. Jadi semisal di bagian ini ada file bernama
member.php, maka semua proses yang terkait dengan member akan
dikapsulisasi/dikelompokan dalam file ini.

View
View mencakup semua proses yang terkait layout output. Bisa dibilang untuk
menaruh template interface website atau aplikasi.

Untuk lebih memahami apa itu framework, mungkin ilustrasi berikut ini akan sendikit membantu kita untuk memahami apa itu framework.

Agus adalah seorang programmer freelance. Ia baru lulus kuliah dan sedang mencari kerja. Setelah cari sana sini melalui website ia kemudian mendapatkan order proyek pembuatan website. Dengan senang ia kerjakan proyek tersebut.

Ia mendesain sistem dan melakukan coding dari awal, sehingga cukup menguras energi.

Akhirnya proyek selesai dan client senang dengan pekerjaannya. Honor yang diterima lumayan besar. Kemudian client tersebut bersedia merekomendasikannya jika ada perusahaan lain yang ingin membuat website. Mission complete.

Dua minggu kemudian, perusahaan lain memesan pembuatan website dengan permintan fitur yang hampir sama dengan pemesan sebelumnya. Lansung saja proyek itu diterima dan dikerjakannya.

Agus kembali melihat kode program pada proyek pertamanya, mengedit bagian yang perlu dan menggunakannya pada proyek yang kedua, sehingga pada proyek kali ini ia berhasil mengerjakannya lebih cepat dari proyek pertama.

Dalam pembuatan proyek website kedua, Agus menyadari bahwa ada baigan-bagian perogram yang biasanya harus selalu ada untuk digunakan, misalnya kode untuk koneksi ke database MySql, membuat pagination untuk tampilan data, atau email. Dengan demikian, Agus membuat koleksi kode program yang bisa sewaktu-waktu ia gunakan jika ia membutuhkanya. Sehingga bisa menghemat tenaga dan waktunya dalam mengerjakan sebuah website.

Apa yang dilakukan Agus adalah cikal bakal sebuah framework, sehingga dalam pengertian yang sangat sederhana, framework dapat diartikan sebagai koleksi atau kumpulan potongan-potongan program yang disusun atau diorganisasikan sedemikian rupa, sehingga  dapat digunakan untuk membantu membuat aplikasi utuh tanpa harus membuat semua kodenya dari awal.

Menurut pengalaman saya, mengembangkan program yang dibuat oleh orang lain lebih sulit dibandingkan dengan membuat program tersebut dari awal, karena setiap programmer punya style/gaya yang berbeda-beda dalam programming(membuat program), parahnya lagi kebanyakan gaya yang dianut programmer adalah gaya 'langsung hajar', tidak ada dokumentasi dan tidak ada komentar/ keterangan dalam programnya

Bayangkan jika kita harus mengembangkan ulang program seperti itu !!? Misalkan saja kita akan menambahkan modul atau fitur baru, belum lagi kalau harus memperbaiki bug-bug errornya, tentu kita harus menguasai gaya programmingnya programmer tersebut. Celakanya lagi, kebanyakan program diproteksi/disembunyikan agar tidak mudah dimodifiksi, bahkan ada yang pakai enkripsi segala, bisa kriting otak kita mengembangkan program seperti itu, lebih baik membuat dari awal pakai gaya pemograman kita sendiri.

Melihat fenomena tersebut, banyak perusahaan yang mensyaratkan programmernya menguasai framework, faktanya bisa dilihat melalui lowongan kerja programmer, baik dimedia cetak maupun dimedia online. Alasannya jelas, dengan framework, gaya programmingnya sudah ditentukan menurut aturan dari framework tersebut, jadi tidak bisa lagi membuat program dengan gayanya sendiri-sendiri. Karena secara umum, programmer disuatu perusahaan sistemnya kontrak, jadi tingkat turn overnya cukup tinggi (gonta-ganti programmer adalah hal yang lumrah disuatu perusahaan).

Nah apabila program tersebut dikembangkan menggunkan framework, maka siapapun programmernya, asalkan dia menguasai framework, maka bisa dipastikan di bisa mengembangkan prgoram tersebut dengan muda, karena gaya programnya sudah diseragamkan oleh aturan framework, sampai disini saya kira sudah cukup jelas salah satu kegunaan dari framework.

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 didalam framerwork, tentunya cara menggunakan fungsi-fungsi itu sudah ditentukan oleh framework. Beberapa contoh fungsi-fungsi standar yang telah tersedia dalam suatu framework adalah fungsi paging, enkripsi, email, SEO, session, security, kalender, bahasa, manipulasi gambar, grafik, tabel bergaya zebra, validasi, upload, captcha, proteksi terhadap XSS(XSS filtering), template, kompresi, XML dan lain-lain.

Saat ini banyak sekali framework berbasis PHP, diantaranya yang paling populer adalah Zend Framework, Symphony, Prado, CakePHP, CodeIgniter (ini adalah favorit saya) dan lain-lain.

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.




indonesiacraftcenter.com/galleries/catalog/file47dc937797808.pdfhttp://www.agiptek.com/index.php/pemograman/47-php/98-sedikit-pemahaman-tentang-apa-itu-framework.html

0 comments:

:a: :b: :c: :d: :e: :f: :g: :h: :i: :j: :k: :l: :m: :n:

Post a Comment