Laman

Minggu, 23 Maret 2014

FRAMEWORK PHP UNTUK PEMROGRAMAN WEB

Pada umunya, ada banyak sekali framework berdasarkan bahasa pemrograman. Untuk PHP sendiri, ada framework: Yii, CodeIgniter, CakePHP, Zend, Symphony, PHP Dev Shell, Prado, Akelos, dan mungkin masih banyak lagi tapi admin belum nemu jenis lainnya hehehe. Untuk pemrograman Java, ada framework: Jquery, MooTools, DoJo Toolkits, Prototype, ExtJS, dan masih banyak lagi yg admin belum  nemu juga. Nah, khusus pemrograman Ruby On Rails (ROR), ada framework: Merb, Camping, Ramaze, Vintage, Halcyon, Nitro/Og, Wuby, Sinatra, Ruby WAF, Webby, dll mungkin ada yg bisa bantu admin? Hehehe
Banyak sekali developer-developer muda tumbuh di tanah air. Beberapa diantaranya fokus pada pemrograman web. Dan banyak juga kampus-kampus yang beralih ke pemrograman berbasis web sebagi salah satu fokus mata kuliah.
Tapi sayang, terjun di dunia pemrograman web(khususnya php) hanya berbekal pemrograman dasar. Dan hanya fokus pada pembuatan hello word(*ups). Jarang sekali mereka dibekali atau bahkan belajar tentang framework. Saat ditanya "Pake framework apa waktu buat applikasinya?". Dan sering jawabannya adalah"Apa itu framework?". Dari jawaban itu, dipastikan belum tahu manfaat framework dalam pembuatan applikasi berbasis web.
Kenapa harus pake framework? Mungkin ini salah satu pertanyaan yang bagus untuk mengetahui manfaat framework lebih jauh. 
Pertama, dengan adanya framework akan lebih mempermudah memahami mekanisme kerja dari sebuah applikasi. 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 sistem untuk kemudian di tuangkan kedalam framework tersebut. Dalam artian setiap orang harus mempunyai metode yang sama dalam menyelesaikan applikasi tersebut.
Framework memiliki manfaat mempercepat dan mempermudah pembangunan sebuah aplikasi web, tanpa harus membuat fungsi atau class dari awal. Oleh karenanya, 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 meng-cover 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 kelebihan-kelebihan lain yang dimiliki oleh framework. 
Web Appliaction framework adalah sebuah kerangka kerja perangkat lunak yang dirancang untuk mendukung pengembangan situs Web dinamis. Didalam framework ini sendiri sudah terkandung beberapa fitur yang sangat membantu dalam membuat web applikasi. Diantaranya:
1. Security
Beberapa framework sudah memiliki feature otentikasi (Authentication) dan otorisasi (Authorization), yang memungkinkan web server untuk mengidentifikasi pengguna aplikasi, dan membatasi akses ke fungsi berdasarkan beberapa kriteria yang ditetapkan.
o Authentication 
Otentikasi adalah tindakan membentuk atau menyatakan sesuatu (seseorang) sebagai otentik, yaitu bahwa klaim yang dibuat oleh sesuatu (seseorang) atau tentang subjek adalah benar.
o Authorization
Otorisasi adalah fungsi menentukan hak akses terhadap sumber daya, yang berhubungan dengan keamanan informasi dan keamanan komputer pada umumnya dan kontrol akses pada khususnya.
2. Database access and mapping
Banyak aplikasi web kerangka menciptakan API bersatu ke backend database, memungkinkan aplikasi web untuk bekerja dengan berbagai database tanpa perubahan kode, dan memungkinkan programmer untuk bekerja dengan konsep tingkat yang lebih tinggi. Contoh : lib adodb
3. URL mapping 
Sebuah pemetaan sistem URL yang menggunakan pencocokan pola atau penulisan ulang URL yang memungkinkan lebih "ramah" digunakan, meningkatkan kesederhanaan situs dan memungkinkan untuk mengindeks lebih baik oleh search engine.URL dengan akhiran "/page.cgi?cat=science&topic=physics" dapat di ganti menjadi lebih simple seperti "/page/science/physics"
4. Web template system 
Sebuah sistem template Web menggambarkan perangkat lunak dan metodologi yang digunakan untuk menghasilkan halaman web dan untuk ditempatkan di situs Web dan pengiriman melalui Internet. Seperti proses sistem web template, menggunakan mesin template.
Contoh Template engine untuk php antara lain:
o Smarty
o patTemplate
o Mytemplate
o TinyButStrong
o VlibTemplate 
5. Caching
Web cache adalah cache dari dokumen web (misalnya, halaman HTML, gambar) untuk mengurangi penggunaan bandwidth, server load, dan lag dirasakan.
6. Ajax
Ajax, singkatan dari "Asynchronous JavaScript dan XML", adalah teknik pengembangan web untuk menciptakan aplikasi web interaktif.
7. Web services
A web service (webservice) didefinisikan oleh W3C sebagai sebuah sistem software yang dirancang untuk mendukung interaksi interoperable (kemampuan menghubungkan operasi) mesin-ke-mesin melalui jaringan
8. SOAP
SOAP (Simple Object Access Protocol) adalah standar untuk bertukar pesan-pesan berbasis XML melalui jaringan komputer atau sebuah jalan untuk program yang berjalan pada suatu sistem operasi (OS) untuk berkomunikasi dengan program pada OS yang sama maupun berbeda dengan menggunakan HTTP dan XML sebagai mekanisme untuk pertukaran data.
9. WSDL
WSDL (Web Services Description Language) adalah fromat XML yang diterbitkan untuk menerangkan web service.
Dari sekian banyak feature, tidak semua framework memilikinya. Paling tidak beberapa feature tersebut terdapat didalamnya.
Macam-macam Framework PHP:
1. Yii
Yii adalah kerangka kerja(framework) PHP berbasis-komponen dengan performa tinggi untuk pengembangan aplikasi Web berskala-besar. Yii menyediakan penggunaan ulang (reusability) maksimum dalam pemrograman Web dan mampu mempercepat proses pengembangan secara signifikan. Nama Yii (dieja sebagai /i:/) singkatan dari easy, efficient dan extensible (mudah,efisien, dan bisa diperluas). Untuk menjalankan aplikasi Web yang diperkuat Yii, Anda memerlukan server Web yang mendukung PHP 5.1.0 atau lebih tinggi. Bagi para pengembang yang ingin menggunakan Yii, mengerti Object Oriented Programming (OOP) akan sangat membantu, karena Yii merupakan kerangka kerja OOP murni. Yii adalah kerangka kerja pemrograman umum Web yang bisa dipakai untuk mengembangkan semua jenis aplikasi Web. Dikarenakan sangat ringan dan dilengkapi dengan solusi caching yang canggih, Yii sangat cocok untuk pengembangan aplikasi dengan lalu lintas-tinggi, seperti portal, forum, sistem manajemen konten (CMS), sistem e-commerce, dan lain-lain. Seperti kebanyakan PHP framework, Yii adalah MVC framework. Yii melampaui framework PHP lain dalam hal efisiensi, kekayaan fitur, dan kejelasan dokumentasi. Yii didesain dengan hati-hati dari awal agar sesuai untuk pengembangan aplikasi Web secara serius. Yii bukan berasal dari produk pada beberapa proyek maupun konglomerasi pekerjaan pihak-ketiga. Yii adalah hasil dari pengalaman kaya para pembuat pada pengembangan aplikasi Web dan investigasi serta refleksi kerangka kerja pemrograman Web dan aplikasi yang paling populer.
2. Codeigniter
Ada beberapa kelebihan CodeIgniter (CI) dibandingkan dengan Framework PHP lain,
Performa sangat cepat : salah satu alasan tidak menggunakan framework adalah karena eksekusinya yang lebih lambat daripada PHP from the scracth, tapi Codeigniter sangat cepat bahkan mungkin bisa dibilang codeigniter merupakan framework yang paling cepat dibanding framework yang lain.
Konfigurasi yang sangat minim (nearly zero configuration) : tentu saja untuk menyesuaikan dengan database dan keleluasaan routing tetap diizinkan melakukan konfigurasi dengan mengubah beberapa file konfigurasi seperti database.php atau autoload.php, namun untuk menggunakan codeigniter dengan setting standard, anda hanya perlu merubah sedikit saja file pada folder config.
Banyak komunitas: dengan banyaknya komunitas CI ini, memudahkan kita untuk berinteraksi dengan yang lain, baik itu bertanya atau teknologi terbaru.
Dokumentasi yang sangat lengkap : Setiap paket instalasi codeigniter sudah disertai user guide yang sangat bagus dan lengkap untuk dijadikan permulaan, bahasanya pun mudah dipahami. Beberapa website yang menggunakan CodeIgniter ini antara lain: TvOne.co.id, Kompas.com dan banyak lagi yang lainnya. Anda bisa membaca secara lengkap tentang CI ini dibeberapa alamat di bawah:
3. CakePHP
CakePHP merupakan sebuah rapid development framework yang gratis dan sumber terbuka untuk PHP. CakePHP merupakan struktur pondasi bagi programer untuk membuat aplikasi web. Tujuan utamanya adalah mempermudah programer bekerja secara terstruktur dan cepat tanpa kehilangan fleksibilitas. CakePHP membuang proses monoton dalam pengembangan aplikasi web. CakePHP menyediakan semua alat bantu yang diperlukan untuk memulai tugas coding yang perlu diselesaikan: yaitu logika aplikasi. Daripada membuat sesuatu yang baru setiap memulai proyek baru, Anda bisa meninjau unduhan CakePHP dan mulai fokus kepada logik aplikasi yang hendak dibangun. CakePHP memiliki tim pengembang (developer) dan komunitas yang aktif (membawa nilai tambah ke proyek). Selain menjaga Anda dari melakukan hal yang membuang waktu, penggunaan CakePHP juga berarti inti (core) aplikasi Anda yang sudah teruji dengan baik dan secara periodik terdapat peningkatan/perbaikan.
Berikut ini adalah daftar fitur yang dapat dinikmati apabila menggunakan CakePHP:

* Komunitas yang aktif dan bersahabat
* Lisensi yang fleksibel
* Kompatibel dengan PHP versi 4 dan 5
* Operasi CRUD yang terintegrasi untuk interaksi dengan database
* Scaffolding aplikasi
* Otomatisasi pembuatan code (code generation)
* Arsitektur MVC
* Request dispatcher dengan URL yang kustom, rapih dan adanya route
* Validasi data yang terintegrasi
* Sistem templating yang cepat dan fleksibel (sintaks PHP, tersedia helpers)
* View Helpers untuk AJAX, JavaScript, HTML Forms dan banyak lagi
* Email, Cookie, Keamanan, Session, dan komponen Request Handling
* ACL yang fleksibel
* Sanitasi Data
* Caching yang fleksibel
* Lokalisasi
* Dapat bekerja dari direktori web dimana saja, dengan sedikit atau bahkan tanpa perlu melibatkan konfigurasi Apache
4. Zend
Zend adalah salah satu framework bahasa pemrograman PHP yang berbasis OOP (Oject Oriented Programming), sederhana, dan open source. Zend Framework difokuskan untuk membangun aplikasi Web 2.0 dan Web Service yang lebih aman, reliabel dan modern. Framework ini juga telah mendukung API untuk beberapa vendor seperti Google, Amazon,Yahoo!, Flickr
beberapa fiur terbaru Zend Framework antaralain : AJAX support through JSON, Search – Lucene, Syndication, Web Services, High-quality, object-oriented PHP 5, dll..
5. Symfony
Symfony adalah sebuah framework lengkap yang didesain untuk mengoptimalkan pengembangan aplikasi berbasis web dengan menyuguhkan beberapa fitur-fitur andalan. Untuk pemula, symfony mengelompokkan aturan-aturan bisnis aplikasi (business rules), lokiga server, dan tampilan presentasi. Symfony menyediakan bermacam-macam alat dan kelas-kelas yang ditujukan untuk memperpendek waktu pengembangan sebuah aplikasi web yang komplek. Sebagai tambahan, symfony mengotomatisasi tugas-tugas umum sehingga pengembang dapat memfokuskan diri pada spesifikasi aplikasi secara keseluruhan. Sebagai hasil akhir, dengan kelebihan-kelebihan ini berarti bahwa tidak perlu lagi menemukan (reinvent the wheel) ketika sebuah aplikasi web baru akan dibangun!
Symfony secara keseluruhan ditulis menggunakan PHP 5. Symfony telah diuji secara sepenuhnya dalam bermacam-macam proyek dalam dunia nyata, dan sesungguhnya symfony telah digunakan pada website e-business dengan kunjungan yang padat. Symfony kompatibel dengan kebanyakan database engine, seperti MySQL, PostgreSQL, Oracle, dan Microsoft SQL Server.Symfony berjalan di atas platform *nix dan Windows. Berikut fitur-fitur detail symfony.
Fitur Symfony
Symfony dibangun untuk memenuhi kebutuhan-kebutuhan berikut:
Mudah untuk di-install dan dikonfigurasi pada kebanyakan platform (dan dijamin dapat bekerja pada platform standar *nix dan Windows).
Tidak tergantung pada Database engine tertentu (Database engine-independent).
Dalam banyak pemakaian mudah digunakan, tetapi tetap cukup fleksibel jika digunakan pada pemakaian yang komplek.
Didasarkan pada konvensi pemikiran atas konfigurasi--pengembang perlu mengkonfigurasi hanya pada yang diluar aturan.
Mengacu pada kebanyakan standar web dan pola-pola desain yang ada.
Enterprise-ready--dapat disesuaikan dengan kebijakan dan arsitektur teknologi informasi (TI) yang sudah ada, dan cukup stabil bila digunakan pada proyek jangka panjang.
Kode yang mudah dibaca, dengan komentar phpDocumentor, untuk kemudahan perawatan.
Mudah untuk dikembangkan, dengan disediakannya integrasi dari vendor library yang lain.
6. PHP Dev Shell
PHPDevShell merupakan kepanjangan dari PHP Development Shell. Fungsinya adalah bekerja sebagai shell pada script PHP. aplikasi ini dtujukan untuk orang yang sudah terbiasa bekerja dengan PHP, dan ingin secara cepat membuat aplikasi standalone tanpa harus disusahkan dengan membuat menu,tampilan,gaya bahasa dan lain sebagainya.
PHPDevShell sudah memiliki kemanan yang memadai. Segala urusan yang menyangkut admin dapat ditulis dan dibuat dengan tampilan berbasis web.sehingga sangat memudahkan kita dalam urusan interface. Mungkin untuk lebih mengetahui nya anda harus mencobanya sendiri, saya yakin anda akan cukup berani untuk mencobanya. Untuk keterangan lebih mendalam silahkan lihat situs resminya www.phpdevshell.org .Dengan lisensi GPL, dan harus di ingat software ini bukan buat windows tapi buat system operasi linux
7. Prado
Prado adalah framework yang bersifat component-based dan event-driven di PHP5. PRADO sendiri merupakan singkatan dari PHP Rapid Application Development Object-oriented. PRADO bukanlah MVC-model framework.
Inspirasi pembuatan PRADO berasal dari Apache Tapestry (framework JSP). Selama desain dan implementasi, PRADO banyak mengambil ide-ide dari Delphi dan ASP.NET. Versi pertama dari PRADO akhirnya keluar pada Juni 2004 dan menggunakan PHP4. Tergiur untuk ikut Zend PHP5coding contest, PRADO ditulis ulang ke PHP5, yang akhirnya membawa PRADO memenangkan grand prize di kontes itu.
Kelebihan PRADO?
Reuseability - Semua yang ada di PRADO adalah komponen yang reuseable.
Event-driven programming – aktivitas End-user, seperti menekan tombol submit diterjemahkan menjadi event server sehingga developer dapat lebih fokus ke interaksiuser.
Team integration – Presentation dan logic terpisah.
Powerful Web controls – ‘Dipersenjatai’ dengan komponen yang dapat membantu kita untuk membuat aplikasi web yang sangat interaktif.
AJAX support – mulai v3.1
XHTML compliance – Wep page yang digenerate oleh PRADO merupakan XHTML-compliant
8. 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 
Menurut beberapa survei, CodeIgniter adalah framework yang paling mudah dipelajari,karena keserhanaan strukturnya dan kelengkapan dokumentasinya yang baik. Selain itu, kerapiankode (clean and healthy code) dan ukurannya yang ramping membuatnya lebih cepat diaksesdibandingkan dengan framework lainya.Perlu diketahui nyaris (bahkan mungkin semua) framework menggunakan konsep yangsama dalam membangun suatu aplikasi, yaitu konsep MVC (Model View Controller).Kesimpulannya, kalau kita memahami MVC, maka secara garis besar kita sudah menguasaiframework, apapun jenis frameworknya. Dan satu lagi kuncinya, pemahaman terhadap OOP (Object Oriented Programming)akan sangat membantu dalam menguasai framework.

Sumber : http://lpk-unigama.com/berita-204-framework-php-untuk-pemrograman-web.html

[+/-] Selengkapnya...