Framework |
Framework dapat
diartikan sebagai sebuah kerangka kerja. Kerangka kerja dimana dapat memudahkan
pekerjaan kita. Jika dikaitkan dengan PHP maka dapat diartikan sebagai suatu
kerangka kerja yang telah terpola dan memudahkan pengembang web dalam pembuatan
web yang menggunakan script PHP.
Mempermudah yang dimaksud misalnya, Dalam membuat sebuah aplikasi web kita sering menulis script PHP secara keseluruhan (konvensional) dan itu pun kita ulang pada halaman yang lain. Bukankah itu begitu tidak efesien disamping berat ketika diload ? Dengan PHP Framework semua bisa teratasi. Semuanya sudah diatur menjadi pola-pola tertentu yang disebut dengan class. Pola/class inilah yang meringankan kita dalam penulisan script dan load halaman web.
Mempermudah yang dimaksud misalnya, Dalam membuat sebuah aplikasi web kita sering menulis script PHP secara keseluruhan (konvensional) dan itu pun kita ulang pada halaman yang lain. Bukankah itu begitu tidak efesien disamping berat ketika diload ? Dengan PHP Framework semua bisa teratasi. Semuanya sudah diatur menjadi pola-pola tertentu yang disebut dengan class. Pola/class inilah yang meringankan kita dalam penulisan script dan load halaman web.
PHP Framework berbeda jika
dibandingkan dengan CMS (Content Management System), meski sama-sama
meringankan dalam pembuatan web. Jika menggunakan CMS, kita tidak perlu pusing
menulis script. Semuanya telah dibuat menjadi Fix dan kita hanya perlu mengatur
bagian content dan interfacenya saja. Tidak demikian dengan Framework.
Membangun sebuah aplikasi web dengan menggunakan framework, kita tetap harus
menuliskan kode perintah PHP sesuai dengan ruang lingkungan yang disediakan
oleh framework.
PHP
Framework menggunakan metode pengembangan berbasis MVC.
MVC
merupakan suatu metode untuk memisahkan bagian-bagian dari suatu web aplikasi.
MVC adalah kependekan dari Model View Controller. MVC terdiri dari tiga bagian
yaitu
1. Model : Model mewakili struktur data. Biasanya
model berisi fungsi-fungsi yang membantu kita dalam pengelolaan database
seperti memasukkan data ke database, update data dan lain-lain.
2. View : View adalah bagian yang mengatur
tampilan ke user. Bisa di katakan berupa halaman web.
3. Controller : Controller merupakan bagian yang
menjembatani model dan view. Controller berisi script-script php yang berfungsi
untuk memproses suatu data dan mengirimkannya ke halaman web.
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. 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 me-load
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.
Berikut
beberapa contoh PHP Framework beserta kelebihan yang dibawanya :
Kelebihan
- Mudah digunakan dan tidak memerlukan konfigurasi yang rumit
- Fungsi-fungsi pendukung yang cukup lengkap
- Mendukung PHP4 dan PHP5
- Mungkin merupakan Framework MVC paling populer dan paling banyak digunakan
- Dokumentasi yang sangat bagus, friendly dan didukung oleh forum, wiki, dan komunitas yang besar
Kekurangan
- Tidak mendukung AJAX, dan ORM
- Meyediakan dan memisahan file-file dalam MVC pattern, tapi masih memberikan kebebasan user untuk melanggar aturan MVC
Kelebihan
- Dukungan terhadap AJAX, ORM
- Automagic function seperti validasi input, dll, yang mempercepat coding
- Support PHP4 dan PHP5
- Lebih mencerminkan MVC yang sesungguhnya dibandingkan CI
- Komunitas pengguna yang besar dan forum cukup baik
Kekurangan
- Manual yang ada tidak selengkap CI.
- Butuh waktu belajar yang lebih lama untuk menguasai framework ini dibanding CI. Tapi jika sudah benar-benar mengerti, banyak kelebihan dibanding CI. Beberapa situs menyarankan anda untuk belajar dan terbiasa dulu dengan CodeIgniter baru kemudian mempelajari CakePHP.
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.
Kelebihan
- 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.
Kekurangan
- 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.
Merupakan
Framework yang relatif baru dengan kemampuan yang handal dan lengkap
Kelebihan
- Dukungan terhadap PHP4, PHP5, AJAX, ORM (cukup lengkap dan cukup mengakomodasi semua kebutuhan yang umum dari aplikasi php)
Kekurangan
- Kurang adanya dukungan komunitas. Mungkin karena masih relatif baru
- Beberapa forum mengatakan bahwa framewok ini cukup banyak memakan memory
Alasan Mengapa
Framework Adalah Bahasa Pemrograman Baru
Framework menjadi
perdebatan antar programmer ketika menghadapi proyek pengembangan
software. Contohnya ketika ada proyek sistem informasi berbasis web, maka
pertimbangan programmer ada pada framework apa yang digunakan, bukan lagi
bahasa pemrograman, misalnya Laravel, Zend, CodeIgniter, Ruby on Rails, Django
dan lain-lain --meskipun pada beberapa kasus (mungkin banyak kasus) biasanya
framework yang dipertimbangkan mengacu pada bahasa pemrograman apa yang
dikuasai oleh programmer yang akan mengerjakan proyek tersebut. Tapi dalam hal
ini, framework seolah-olah sudah seperti "bahasa pemrograman"
baru.
Berikut beberapa alasan mengapa
saya katakan framework sudah seperti "bahasa pemrograman" baru.
Bahasa
pemrograman sudah diringkas menjadi API (Application Programming Interface)
Kebanyakan bahasa pemrograman sudah
diringkas menjadi API. Dan berbagai masalah API bisa ditangani dengan compiler dan garbage
collector termutakhir. Otomasi sudah mulai menggantikan trik coding konvensional seperti pointer juggling, bit-banging
dan smart coding.
Kita cukup menjalankan pipelining
antar API untuk menghasilkan output yang kita inginkan.
Hal terpenting yang
harus dipahami adalah bagaimana API tersebut bekerja dan bagaimana kita
mengambil manfaat dari kelebihan API tersebut. Struktur data seperti apa yang
diterima API tersebut? Bagaimana algoritma didalamnya berjalan
ketika ukuran data mulai membesar? Hal-hal semacam inilah yang
mestinya lebih diutamakan untuk dibahas. Selain itu, kini sudah banyak
kakas yang bisa kita manfaatkan untuk memanggil suatu rutin dari suatu bahasa
untuk digunakan di bahasa pemrograman yang lain, seperti memanggil library C ke dalam bahasa Java. Hal tersebut mestinya bisa lebih efektif dibanding bila
kita mempelajari bahasa pemrograman baru dan mengkonversi libary bahasa
pemrograman tersebut ke dalam bahasa pemrograman yang kita
gunakan.
Framework
adalah kerja keras programmer
menggunakan framework berarti
memangkas waktu dan tenaga kita untuk hal-hal dasar yang sudah dilakukan oleh
programmer terdahulu. Kita bisa saja membuat sebuah aplikasi dari nol, membuat
semua fungsi sendiri. Tapi apakah kode yang kita buat sudah lebih optimal
dibanding kode yang sudah dibuat orang lain, dan terlebih lagi, apakah
itu sebanding dengan waktu yang kita keluarkan? Kita mungkin
tidak suka arsitektur yang mereka pilih, tapi akan jauh lebih efisien bila
kita menghargai perbedaan tersebut dan cukup ikuti aturan API mereka bila
memang hal tersebut menjawab persoalan kita.
Dominasi
Algoritma
Berbagai algoritma kini sudah
diringkas dalam API framework. Bila kita membuat
sendiri suatu algoritma satu per satu sebenarnya hanya memperlambat
pengembangan project kita. Mengapa? Karena waktu kita akan terbuang
untuk memahami dan menerapkan algoritma dan struktur data tertentu
dibanding bila kita menggunakan apa yang sudah tersedia dalam
framework, terkecuali bila memang tujuan Kamu adalah memperdalam ilmu. Cara
paling efisien dalam proses produksi adalah dengan mengoptimalkan penggunaan
API framework. Framework sudah diuji bertahun-tahun dan dikembangkan oleh
banyak kontributor sehingga programmer boleh sedikit merasa
aman terkait reliabilitas API.
IDE
(Integrated Development Environment) adalah asisten
Banyak programmer yang masih
menggunakan text editor. Hal itu tidak salah. Namun bila pengembangan project
kita ingin lebih cepat maka gunakanlah IDE.
Dengan IDE, tak peduli kita salah
meletakkan posisi titik koma dimanapun. IDE
akan memberi arahan dan menjelaskan error yang kadangkala luput dari pandangan
bila dideteksi dengan cara manual. Selain itu biasanya IDE juga sudah mendukung
fitur autocomplete atau code
snippets, baik untuk API dari bahasa pemrograman
dasar maupun dari framework yang kita gunakan. Menggunakan IDE akan membantu kita bekerja lebih
efisien.
Drag
and Drop mulai menggantikan sintaks
Framework, pengembangan software
dengan cara drag
and drop sudah mulai bermunculan. Sintaks-sintaks pun mulai
disembunyikan dengan bentuk yang lebih mudah dipahami sehingga bahasa
pemrograman pun tak diperdebatkan. Contoh nyata adalah GUI Builder dan AndroidBuilder.
Kita dapat mengembangkan software dan game hanya dengan drag and drop dari
object fungsi yang diinginkan.
Code
is law
Seperti kita lihat, bahasa pemrograman
bersifat agnostik. Maksudnya ia
dibuat dan diatur seperti apa yang si pembuat inginkan, sehingga bahasa
pemrograman dapat mengerjakan apapun yang dituliskan oleh programmer.
Tentu saja dengan aturan penulisan tertentu sesuai dengan bahasa
pemrograman tersebut. Tapi kita dapat yakin bahwa setiap kode yang
kita tulis akan selalu menghasilkan keluaran yang tepat seperti yang kita
inginkan. Bila tidak, itu artinya kode kita tidak sesuai dengan aturan.
Tapi terkadang di luar hal sintaks,
kita memang perlu menambahkan sedikit pengecekan di sana-sini untuk
meminimalisir munculnya pesan kesalahan. Hal ini masih diperlukan karena
program yang kita buat nantinya akan digunakan oleh pengguna dengan beragam
variabel kondisi seperti sistem operasi yang digunakan, pada device apa ia
dijalankan, dan sebagainya. Nah, dalam hal ini framework ibarat kitab
undang-undang, kumpulan aturan-aturan yang bisa kita aplikasikan sehingga kode
yang kita buat lebih efisien dan bebas kesalahan. Framework sudah menyelesaikan
kebutuhan dasar seperti hal tersebut sehingga kita hanya perlu 'patuh' pada
aturan framework dan biarkan framework yang mengurusi sisanya.
Itulah mengapa saat ini framework
sudah seperti sebuah bahasa pemrograman baru. Sehingga terkadang dalam beberapa
kasus, kita bisa menemukan bahwa ada orang yang mampu menguasai framework
tertentu, sebut saja CodeIgniter atau Laravel, namun tidak mengerti secara
fasih bahasa pemrograman PHP, yang menjadi pondasinya. Hal itu dikarenakan
keduanya memiliki aturan-aturan tertentu dalam penggunaannya, yang terkadang
bisa dipelajari secara terpisah. Seolah seperti mempelajari bahasa pemrograman
baru.
Sumber
:
Sign up here with your email
ConversionConversion EmoticonEmoticon