twitter

Kenapa Framework CodeIgniter lebih populer di Indonesia?

Kalo dihitung-hitung, setahun belakangan kira-kira ada 5 kali lebih saya melamar kerja di perusahaan software developer, web developer lebih tepatnya. Sebagian memang saya ajukan dengan iseng, sebagian lagi saya ajukan dengan sangat serius. Walaupun pada kenyataannya sebagian besar tidak diterima dengan serius (niat iseng yang dibalas dengan iseng). Beberapa kali saya mengamati, ada yang tidak biasa dalam setiap persyaratan yang diajukan oleh perusahaan kepada calon karyawannya, yaitu kemampuan untuk menggunakan framework PHP yang nantinya bertujuan untuk kemudahan kerja tim dan penyeragaman aplikasi. Tidak ada yang aneh memang dalam keharusan penggunaan framework, tapi ada yang agak unik. Dari requirement yang saya baca, sebagian besar mewajibkan calonnya menggunakan CodeIgniter. Kenapa framework yang digunakan harus CodeIgniter sih? Kenapa bukan Zend Framework, CakePHP, Yii, Kohana, Symfony, DooPHP, GTFW atau framework lainnya? Sering juga saya melihat beberapa lowongan yang mencatumkan requirement serupa. CodeIgniter sudah seperti framework standar yang digunakan oleh suatu perusahaan. Memang, sebenarnya bukan perusahaan yang mutlak menentukan menggunakan framework apa, tapi mengacu kepada penggunaan framework secara mayoritas dan kebijakan programmer itu sendiri.

Jika kita bertanya pada web programmer yang familiar dengan CodeIgniter, sebagian besar akan mengajukan alasan karena dokumentasi CodeIgniter yang begitu lengkap. Faktanya CakePHP dan Zend Framework menyediakan dokumentasi tidak kalah lengkap dibanding CodeIgniter, contoh kasus “hello world” dan guestbook pun dijabarkan dengan jelas. Pranala luar juga disediakan oleh author untuk mendapatkan sumber daya diluar dari web resmi. Setiap developer framework juga menyediakan forum untuk dapat saling bertukar pikiran antara pengguna yang satu dengan pengguna yang lainnya, atau antara pengguna dengan pengembang. Dokuementasi lengkap agaknya bukan alasan mutlak kenapa framework ini lebih familiar.Memang ada beberapa yang hanya menyediakan versi online seperti CakePHP dan Kohana misalnya. Membuat beberapa orang enggan membaca tutorial dokumenastinya dikarenakan keharusan untuk online. Tapi hal ini bisa saja kita akali dengan software web cloning yang memungkinkan kita untuk menyalin semua konten website kedalam file berbentuk HTML. Memudahkan kita membaca artikel/dokumentasi dalam mode offline. Oya, sedikit nilai lebih untuk CakePHP, dokumentasi tersedia dalam berbagai bahasa, termasuk bahasa Indonesia. Cocok bagi programmer yang malas atau phobia dengan bahasa inggris.

Alasan kedua mungkin karena library yang disediakan CodeIgniter lebih lengkap, baik library yang disediakan developer atau library yang dikembangkan komunitas. Lagi-lagi untuk alasan kali ini saya bandingkan dengan Zend, jika kita buka direktori library pada Zend, library yang disediakan oleh Zend saja sudah lebih dari cukup. Tentu saja masih banyak lagi library yang dikembangkan komunitas. Sebagai bahan perbandingan khusus untuk FORM library dan HTML library menggunakan class yang berbeda. Yii, Symfony dan CakePHP pun tidak kalah lengkap menyediakan library dibandingkan dengan Zend. Nah, yang jadi pertanyaan apakah benar library CodeIgniter yang paling lengkap?

Alasan ketiga CodeIgniter merupakan framework terbaik saat ini. Benar begitu? Bisa benar, bisa juga salah. Terbaik itu mempunyai nilai relatif. Bukan berdasar framework yang digunakan, tapi berdasar siapa yang menggunakan framework tersebut. Berdasarkan artikel disini, CodeIgniter merupakan framework terbaik kedua setelah Yii . Tentu saja penilaian ini dilakukan secara menyeluruh dari segi kemudahan, kerapian, kecepatan, keindahan, kenyamanan, keoptimasian dan ke-ke lainnya.

Sedikit menyinggung awal pembuatan bahasa pemrograman PHP. Tidak seperti Java atau Ruby, PHP dikembangkan pertama kali tidak berorientasi objek. Atau lebih dikenal bahasa prosedural. Namun, semenjak PHP 4 dirilis OOP pada PHP sudah mulai dikenalkan walau saya bilang masih tanggung banget. Di PHP 5 OOP lebih ditingkatkan lagi kualitasnya. Walau PHP 5 (versi terbaru 5.3.2) sudah mendukung OOP, namun sebagain besar dari kita lebih cenderung diajarkan (belajar) sistem prosedural. Hal ini dapat dimaklumi karena memang prosedural lebih mudah dipahami dan dipelajari. Bisa juga sih karena faktor kebiasaan gaya coding PHP 3 kebawah.

Nah, terus apa hubungannya OOP/prosedural dengan framework yang sedang dibahas? Jadi begini, awal-awal saya mulai beralih menggunakan framework (tidak menggunakan engine sendiri). Saya mencoba menggunakan dua buah framework, Zend Framework dan CodeIgniter. Jika kita baca secara seksama dalam dokumentasinya, CodeIgniter tidak pernah menyebutkan kalo framework mereka menggunakan konsep full OOP (Object Oriented Programming). Benul, kenyataannya memang begitu kok, bisa dikatakan CodeIgniter itu tanggung sekali. Setengah OOP setengah prosedural. Yang membuat CodeIgniter tidak OOP itu (halah ribetnya bahasanya) adalah helper itu sendiri. Helper merupakan sebuah fungsi asosiatif, bukan suatu method yang dikelompokkan kedalam class tertentu. Jadi, kita masih menyebutnya prosedural, karena tidak semua diberlakukan sebagai objek. Selain itu penggunan fungsi native PHP juga masih sering berlaku pada CodeIgniter. Yang terbiasa dengan pemrogaram prosedural hampir jarang sekali mengalami masalah ketika beralih menggunakan framework CodeIgniter. Inilah mungkin alasan utama kenapa CodeIgniter lebih cenderung mudah dipelajari ketimbang framework lainnya. Bahkan untuk pemula sekalipun. 

Dibandingkan Zend? Semua diberlakukan sebagai Objek, imbas dari framework full OOP PHP 5 ya begini ini. Bagi yang terbiasa dengan pemrograman prosedural (dan tidak paham sama sekali class dan method pada PHP 5), pasti akan terkaget-kaget ketika menggunakan Zend yang full OOP. Belajar PHP full OOP serasa belajar bahasa pemrograman baru. Butuh waktu agak lama untuk benar-benar paham penggunaan class dan method yang benar. Kasus serupa juga bakal kita alami kalau kita menggunakan framework Symfony, Yii atau Kohana yang merupakan versi strict CodeIgniter. Tapi, yang perlu diingat, penggunaan OOP bukan berarti lebih baik daripada prosedural. Dan pada dasarnya, OOP tidak terlalu sulit untuk dipelajari, toh bahasanya sama, PHP juga kan? Lha wong, orang terbiasa dengan Java aja gampang kok mau pindah ke PHP. Ngomong-ngomong masalah OOP, penjelasan sekilas di wikipedia.

Sebagai catatan tambahan, artikel ini tidak bermaksud untuk menjelekkan atau menjatuhkan atau malah memuja-muja CodeIgniter dengan segala kekurangan dan kelebihannya. Tapi lebih membahas kenapa lebih populer dan lebih nyaman digunakan/dipelajari dibanding framework lainnya. Kita kan tahu sendiri kalo setiap framework memiliki kekurangan dan kelebihan masing-masing. Saya juga tidak bermaksud berkampanye peralihan framework yang digunakan saat ini ke framework lain dengan alasan ini lebih itu, itu lebih ini atau apalah dengan segala ke-keaannya. Framework yang manapun memberikan hasil yang bagus selama digunakan dengan baik sesuai dengan aturan dan logika pemrograman yang baik pula. Kalo memang merasa tidak nyaman dengan framework, menggunakan template parser saja atau engine sendiri bukan sesuatu yang haram kok. 

Sebenarnya, pada saat menulis artikel ini. Pikiran saya jauh melayang-layang memikirkan beberapa topik yang akan dimasukkan kedalam artikel ini. Seperti design patern MVC, kekurangan PHP, template parser dan perbandingan dengan bahasa pemrograman lainnya. Cuman setelah ditimbang-timbang, kok kayaknya panjang banget. Lagian nanti artikelnya bakal campur aduk tidak karuan. Nanti saja saya bahasa pada judul yang berbeda (kalo sempat) -_-‘

2 komentar:

silkum mengatakan...

Owh, gitu yah bos...
Ane lagi mau belajar CI nih.
Baca-baca dulu. :D

Anonim mengatakan...

setuju

Posting Komentar