Don’t Reinvent the Wheel

Kembali ke masa lima atau enam tahun yang lalu waktu saya merilis Content Management System (CMS)* versi terakhir saya untuk www.its.ac.id yang saya beri codename fitri (v3). Saat itu saya tidak menggunakan CMS yang sudah jadi — yang terkenal waktu itu Mamboo — tetapi mengembangkan CMS sendiri berbasis PHP dari awal. Jadi saya membuat satu per satu modul tampilan, dinamisasi konten melalui manipulasi database, hingga manajemen user dan hak aksesnya. Themes atau tampilannya belum bisa dinamis, karena antara kode untuk tampilan dengan kode untuk data tercampur menjadi satu.

Tujuan saya waktu itu hanya satu: belajar. Sebagaimana mahasiswa teknik yang seharusnya. Website-website akademis semacam ITS sebaiknya harus secara aktif berubah secara radikal, karena di sana lah tempat bereksplorasi, belajar, dan bermain. Ngoprek, istilah geek-nya. Tampilan jelek, rusak, dan kacau harus dimaklumi karena untuk belajar. Makanya saya terkejut ketika dikabari bahwa versi obrak-abrik besar yang terakhir dari website ITS itu masih versi kembangan dari fitri itu, setelah sekian tahun.

Zaman sekarang, saya pikir bukan saatnya lagi membuat sebuah CMS dari awal, bahkan untuk kebutuhan belajar sekalipun. CMS-CMS modern sudah sedemikian modular dan dinamisnya sehingga apapun bisa dibuat di atas CMS tersebut. Don’t reinvent the wheel. Sekarang saatnya mempelajari dengan detail salah satu CMS tersebut agar kita bisa dengan maksimal memanfaatkannya. Ketimbang menghabiskan waktu untuk membuat operasi-operasi dasar seperti memasukkan, update, dan hapus data, manajemen user, lebih baik kita memanfaatkan yang sudah disediakan CMS, kemudian memodifikasinya untuk kebutuhan kita.

Gambarannya bisa saya jelaskan dalam diagram di bawah ini:

Secara garis besar, pada umumnya CMS modern memiliki arsitektur seperti diagram di atas. Layer terbawah mengurusi operasi dasar seperti manajemen data, pengguna, session, dan koneksi melalui berbagai protokol (web services, chatting, dll). Di atasnya kemudian ada pengaturan untuk dinamisasi tampilan (themes), dan modul-modul. CMS yang baik selalu dibangun dari modul-modul kecil untuk menjaga agar dia bisa fleksibel untuk kebutuhan yang berbeda-beda. Layer paling atas adalah bagian pengaturan yang spesifik untuk kebutuhan setiap website.

Jika seorang progammer akan membangun CMS sendiri, mau tidak mau ia harus membuat itu semua. Ibaratnya, dia akan membangun sebuah rumah, dia membuat sendiri batu batanya, mengolah pasir untuk menjadi semen, membelah kayu untuk dijadikan pintu dan jendela, dst.Baru dari bahan-bahan itu, dia mulai membangun rumah sesuai dengan desainnya. Sebaliknya, dengan menggunakan CMS yang sudah jadi, ibaratnya dalam membangun rumah sudah disediakan semen, jendela, batu, bahkan hingga pintu, lemari, dan atap. Dia tinggal merakit, merangkai, menyusun, dan menyesuaikan warna, peletakannya sesuai dengan selera. Tentu saja ia harus mengerti cara merakit pintu dan kawan-kawannya itu. Tetapi paling tidak, ia tidak harus mulai membuat pintu dulu untuk membuat rumah.

Bayangkan berapa banyak waktu yang bisa dihemat untuk membuat sebuah website jadi yang lengkap. Kesulitan utama mungkin ada pada mempelajari CMS itu sendiri sebagai framework. Bagaimana cara memodifikasi modul dan mengaplikasikan desain tampilan HTML dan CSS ke dalam theme engine CMS tersebut. Tetapi jika learning curve itu sudah dicapai, saya kira semuanya akan menjadi mudah.

Ada banyak CMS modern yang populer, misalnya WordPress, Joomla, dan Drupal. WordPress adalah yang paling sederhana dan paling mudah dipelajari, tetapi kurang dalam fleksibilitas. Jika Anda akan membangun sebuah website yang tidak hanya melulu tentang publikasi teks, mungkin Anda bisa mempertimbangkan Drupal atau Joomla. Saya sendiri sekarang sedang tertarik untuk memahami Drupal, setelah sekian lama saya tidak mendapatkan feeling dengan Joomla.

*) Content Management System (CMS) dalam ini merujuk pada Web Content Management System.

Author: Galih Satriaji

Bookaholic, Workaholic. Chubby. That's me!

5 thoughts

    1. Sebenarnya custumize CMS tidak hanya “tinggal diedit dikit”, bisa juga diedit banyak. Yang jelas fungsi CMS sekarang tidak hanya sekadar sebagai CMS, tetapi sudah sebagai framework dalam aplikasi web.

  1. kalo bikin sendiri itu kesannya keren gimana gitu bro.. :d

    [padahal mengulang penemuan yang pernah ditemukan sebelumnya oleh orang lain, jadinya gak “standing on the shoulder of giants”]

  2. kebetulan selain di deBlogger, gw juga admin di portal arumbai.org. Waktu itu mereka ngusulin portalnya pake CMS bikinan sendiri krn:

    1. gue takut gak aman
    2. gak user friendly buat para kontributor

    jadi gimana ya? gue juga bingung mau komentar/tanya apa sih. jadinya malah curcol 😛

Leave a Reply

Your email address will not be published. Required fields are marked *