Post pertama ini saya akan menjelaskan perbedaan antara CMS dan Framework. Sedikit definisi dari CMS, Content Manajemen Sistem
adalah perangkat lunak yang digunakan untuk menambahkan atau
memanipulasi (mengubah) isi dari suatu situs web. Umumnya, sebuah CMS
(Content Management System) terdiri dari dua elemen:
- aplikasi manajemen isi (Content Management Application, CMA)
- aplikasi pengiriman isi (content delivery application, CDA)
Elemen CMA memperbolehkan si manajer isi
-yang mungkin tidak memiliki pengetahuan mengenai HTML (HyperText
Markup Language)-, untuk mengatur pembuatan, modifikasi, dan penghapusan
isi dari suatu situs Web tanpa perlu memiliki keahlian sebagai seorang
Webmaster. Elemen CDA menggunakan dan menghimpun informasi-informasi
yang sebelumnya telah ditambah, dikurangi atau diubah oleh si empunya
situs web untuk meng-update atau memperbaharui situs Web tersebut.
Kemampuan atau fitur dari sebuah sistem CMS berbeda-beda, walaupun
begitu, kebanyakan dari software ini memiliki fitur publikasi berbasis
Web, manajemen format, kontrol revisi, pembuatan index, pencarian, dan
pengarsipan. Wikipedia Indonesia.
Karena CMS memisahkan antara isi dan
desain, konsistensi tampilan dapat senantiasa dijaga dengan baik.Setiap
bagian dari website dapat memiliki isi dan tampilan yang berbeda-beda,
tanpa harus khawatir kehilangan identitas dari website secara
keseluruhan. Oleh karena semua data disimpan dalam satu
tempat,pemanfaatan kembali dari informasi yang ada untuk berbagai
keperluan dapat dengan mudah dilakukan. CMS juga memberikan
kefleksibelen dalam mengatur alur kerja atau ‘workflow’ dan hak akses,
sehingga memperbesar kesempatan berpartisipasi dari pengguna dalam
pengembangan website. Hal ini akan sangat menguntungkan bila website
yang dikelola memiliki kompleksitas yang tinggi dan mengalami kemajuan
yang cukup pesat.
- Manajemen data
- Mengatur siklus hidup website
- Mendukung web templating dan standarisasi
- Personalisasi website
- Sindikasi
CMS pada prinsipnya dapat dipergunakan untuk berbagai macam keperluan dan dalam berbagai kondisi, seperti untuk:
- Mengelola website pribadi.
- Mengelola website perusahaan/bisnis.
- Portal atau website komunitas.
- Galeri foto, dan lain sebagainya.
- Forum.
- Aplikasi E-Commerce.
- Dan lain-lain
Dan juga Content Manajement System
didefenisikan sebagai Sebuah System yang memberikan kemudahan kepada
penggunanya dalam mengelola dan mengadakan perubahan isi sebuah website
dinamis tanpa tanpa sebelumnya dibekali pengetahuan tentang hal – hal
yang bersifat teknis dalam sebuah mendesign sebuah website. Contoh CMS
diantaranya WordPress,Joomla, Mambo, Drupal dll.
CMS (Content Management System) dapat
membantu kita untuk membangun suatu website dengan harga yang relatif
murah dan open source lagi. Menggunakan CMS memang mudah dalam jangka
pendek
Pada saat ini banyak sekali pemanfaatan dari penggunaan cms, diantaranya adalah untuk membuat website perusahaan, bisnis, organisasi atau komunitas. Lalu juga dimanfaatkan untuk Portal, Galeri foto, Aplikasi E-Commerce, dan Mengelola website pribadi / blog serta masih banyak lagi yang bisa kita fungsikan pada penggunaan cms ini.
Pada saat ini banyak sekali pemanfaatan dari penggunaan cms, diantaranya adalah untuk membuat website perusahaan, bisnis, organisasi atau komunitas. Lalu juga dimanfaatkan untuk Portal, Galeri foto, Aplikasi E-Commerce, dan Mengelola website pribadi / blog serta masih banyak lagi yang bisa kita fungsikan pada penggunaan cms ini.
FRAMEWORK
Framework adalah sekumpulan library yang
diorganisasikan pada sebuah rancangan arsitektur untuk memberikan
kecepatan, ketepatan, kemudahan dan konsistensi di dalam pengembangan
aplikasi dari definisi tersebut, framework mengandung unsur-unsur
berikut :
Librari
Arsitektur
Metodologi
Librari
Arsitektur
Metodologi
Framework menyediakan librari yang
lengkap dan terintegrasi. Unsur inilah yang paling banyak memberikan
keuntungan bagi pengembang aplikasi. Sebagai contoh, framework aplikasi
web menyediakan librari-librari dasar berkaitan layanan web, seperti
authentication, database access, html generation, template engine,
session management, caching, searching, email, http, pdf, zip dan ajax.
Framework juga menyediakan sarana extension untuk librari-librari yang
belum tersedia atau librari yang perlu ditingkatkan kemampuannya.
Arsitektur. Sebuah aplikasi membutuhkan
rancangan bagaimana sistem dibangun, yaitu bagaimana elemen-elemen di
dalam aplikasi disusun dan diintegrasikan, seperti pengorganisasian file
dan librari, dan bagaimana librari-librari digunakan. Framework
menyediakan struktur aplikasi dan bagaimana interaksi di dalam struktur
tersebut. MVC [Model View Controller] adalah salah satu pola rancangan
[design pattern] yang banyak digunakan dalam arsitektur aplikasi saat
ini. Jika digambarkan akan seperti berikut :
Input > Processing > Output = Controller > Model > View
Input > Processing > Output = Controller > Model > View
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.
Model mencakup semua proses yang terkait
dengan pemanggilan struktur data baik berupa pemanggilan fungsi, input
processing atau mencetak output ke dalam browser.
View mencakup semua proses yang terkait layout output. Bisa dibilang untuk menaruh template interface website atau aplikasi.
PHP Framework menggunakan metode
pengembangan berbasis MVC. Namun apa itu 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;
- 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.
- View : View adalah bagian yang mengatur tampilan ke user. Bisa di katakan berupa halaman web.
- 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 :
- 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.
- 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.
- Mayortitas mendukung berbagai jenis database.
Secara umum tujuan suatu aplikasi web
adalah menampilkan informasi yang diminta oleh pengguna. Pengguna
mengirimkan permintaannya melalui program browser ke web server, web
server akan melakukan pemrosesan atas permintaan tersebut, kemudian
hasilnya akan dikirimkan kembali dan akan ditampilkan juga di program
browser. Berdasarkan mekanisme ini, aplikasi web dapat dibagi menjadi
tiga bagian:
1. Bagian yang berfungsi untuk mengintepretasikan permintaan dari pengguna (HTTP Request).
2. Bagian yang memodelkan problem domain atau bussines logic.
3. Bagian yang mengelola tampilan yang akan dikirimkan ke pengguna.
2. Bagian yang memodelkan problem domain atau bussines logic.
3. Bagian yang mengelola tampilan yang akan dikirimkan ke pengguna.
Dalam pemrograman aplikasi web yang
menggunakan PHP terkadang ketiga bagian program dicampur menjadi satu
bagian. Aplikasi web merupakan bagian yang sangat sering mengalami
perubahan. Seperti perubahan tampilan, layout, penambahan menu dan
banyak lagi yang tidak ada kaitannya atau tidak memberikan dampak pada
logika dari aplikasi web tersebut. Dengan mencampuradukkan ketiga bagian
tersebut maka setiap kali dilakukan perubahan pada tampilan ada
kemungkinan diperlukan juga perubahan pada bagian logikanya. Hal ini
memperbesar kemungkinan timbulnya kesalahan pada aplikasi.
MVC(Model View Controller) adalah pola
dasar yang memisahkan ketiga bagian program menjadi tiga buah objek yang
terpisah. Interaksi antara ketiga bagian program tersebut dapat
digambarkan seperti dibawah ini:
Controller pada dasarnya merupakan
penerima tamu dari permintaan yang datang (HTTP request). Controller
merupakan bagian yang mengatur hubungan antara bagian model dan bagian
view, controller berfungsi untuk menerima request dan data dari user
kemudian menentukan apa yang akan diproses oleh aplikasi.
View merupakan bagian yang menangani
presentation logic. Pada suatu aplikasi web bagian ini biasanya berupa
file template HTML, yang diatur oleh controller. View berfungsi untuk
menerima dan merepresentasikan data kepada user. Bagian ini tidak
memiliki akses langsung terhadap bagian model.
Model merupakan representasi dari proses
bisnis di dalam setiap aplikasi perangkat lunak. Model adalah bagian
yang bertugas mengolah data mentah menjadi data yang mengandung arti
yang diinginkan oleh pengguna. Model biasanya berhubungan langsung
dengan database untuk memanipulasi data, menangani validasi dari bagian
controller, namun tidak dapat berhubungan langsung dengan bagian view.
Beberapa manfaat yang dapat kita peroleh dengan menggunakan framework dalam pengembangan aplikasi :
* Penggunaan komponen-komponen reusable, waktu pengembangan lebih
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.
Kekurangan Framework
Dari satu sisi framework tidak mempunyai
kekurangan. Namun pemilihan framework yang salah akan menjadi sebuah
bencana bagi penggunanya.
Ada beberapa hal yang harus di pertimbangkan dalam memilih framework :
Pertama dokumentasi dari framework itu
sendiri. Dokumentasi sangat penting adanya mengingat pada umumnya tidak
banyak orang/perusahaan yang membuat framework sendiri dalam membuat
applikasi. Oleh karena itu kita akan sangat tergantung dengan
dokumentasi 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.
Kedua perhatikan standar – standar
framework yang ada, misalkan apakah framework tersebut MVC, apakah
framework tesebut mendukung versi sekian, apakah mendukung templating
dan lain-lain. Semakin banyak hal yang di support oleh framework
tersebut semakin baik. Karena hal tersebut akan mempengaruhi kualitas
dari software yang dikembangkan.
Yang terakhir adalah faktor kemudahan.
Tentunya ini sangat tergantung dari sumberdaya yang ada. Standar
kemudahan sangat sulit di ukur karena ini berhubungan dengan minat
seseorang akan sesuatu. Namun berdasarkan dokumentasinya kita bisa
mengira – ngira pola kerja framework tersebut.
Ada bermacam-macam framework yang dapat digunakan antara lain :
* .NET Framework,* PHP Framework,
* Ruby On Rails (untuk membuat aplikasi web dengan bahasa Ruby),
* Django (untuk membuat aplikasi Web dengan bahasa Python),
* Zend Framework,
* Prado.
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.
Mengapa Framework?
• Mempercepat dan mempermudah pembangunan sebuah aplikasi PHP
• Relatif
memudahkan dalam proses maintenance karena sudah ada pola tertentu
dalam sebuah framework (dengan syarat programmer mengikuti pola standar
yang ada)
• Umumnya framework menyediakan fasilitas-fasilitas
yang umum dipakai sehingga kita tidak perlu membangun dari awal
(misalnya validasi, ORM, pagination, multiple database, scaffolding,
pengaturan session, error handling, dll
• Lebih bebas dalam pengembangan jika dibandingkan CMS
• Mempercepat dan mempermudah pembangunan sebuah aplikasi PHP
• Relatif
memudahkan dalam proses maintenance karena sudah ada pola tertentu
dalam sebuah framework (dengan syarat programmer mengikuti pola standar
yang ada)
• Umumnya framework menyediakan fasilitas-fasilitas
yang umum dipakai sehingga kita tidak perlu membangun dari awal
(misalnya validasi, ORM, pagination, multiple database, scaffolding,
pengaturan session, error handling, dll
• Lebih bebas dalam pengembangan jika dibandingkan CMS
sumber: