framework


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.
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 :


CodeIgniter
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


CakePHP
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.


Symfony
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.
Zend
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.


 Akelos
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 :

Previous
Next Post »