• CodeIgniter VS CakePHP

    Guys, kali ini Cheyuz bakal ngebahas tentang FW (Framework) PHP… Mungkin ini bermanfaat buat temen-temen semua (khususnya ilkom [ilmu komputer] yang sejurusan, bahkan sekelas denganku di kampus… :)

    Waktu itu kita udah sedikit ngebahas ttg CodeIgniter, walopun blm secara detail dijelasin CodeIgniter (selanjutnya CI) itu apa…

    CodeIgniter (CI) adalah salah satu framework PHP yang cukup populer, bahkan bisa sangat populer karena sering dipakai di kalangan perusahaan IT dalam bidang pengembangan Web (Web Development). Tetapi sebelumnya, apa itu PHP Framework? Gampangnya framework adalah kumpulan fungsi-fungsi dan class untuk tujuan tertentu yang sudah siap pakai sehingga bisa lebih mempermudah pekerjaan pemrograman, tanpa harus reinvent wheel. Untuk lebih lengkapnya anda bisa membacanya di wikipedia atau situs lain yang sejenis (googling aja :) ).

    Nah, kenapa kita harus memakai FW??

    • 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

    Nah, framework yang populer dan sering dipakai di lapangan salah dua-nya adalah CodeIgniter dan CakePHP. Tetapi kalian tau ga keunggulan dan kelebihan kedua framework ini? ok, kita bahas di sini…

    Kalo kalian baca dokumentasi dan bahkan memakai CI, maka terlihat keunggulan CI ini adalah sebagai berikut…\

    Kelebihan CI

    • 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.
    • Mendukung PHP4 dan PHP5
    • 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.
    • Dokumentasi yang sangat lengkap : Setiap paket instalasi codeigniter sudah disertai user guide yang sangat bagus dan lengkap untuk dijadikan permulaan, bahasanya pun mudah dipahami bahkan untuk Cheyuz yang bahasa inggrisnya kurang baik, semoga saja kedepan ada yang mau menerjemahkannya ke bahasa Indonesia. Ditambah lagi oficial video tutorial membuat blog dalam 20 menit yang disediakan di situsnya, untuk mengaksesnya anda bisa menggunakan quick time atau bisa juga mendownload video yang sudah diupload pada youtube.com seperti yang pernah Cheyuz jelaskan di tips belajar pemrograman melalui youtube.com.
    • Mudah dipelajari : Mungkin pengaruh dokumentasi yang bagus sehingga codeigniter mudah untuk dipelajari, atau memang framework ini benar-benar mudah dipelajari. Sebelumnya Cheyuz pernah mencoba-coba mempelajari Zend, Symfony, dan Prado, tiga framework yang memang lebih powerfull daripada codeigniter, tapi juga lebih sulit untuk dipelajari. Inilah alasan terkuat Cheyuz jatuh cinta pada codeigniter.
    • Compatible dengan banyak hosting : tidak seperti kebanyakan framework lain yang hanya bisa berjalan di PHP 5, codeigniter bisa berjalan dengan lancar pada PHP 4, meskipun ini saat ini sudah banyak hosting yang menggunakan PHP 5 tapi Cheyuz pernah mendapati ada beberapa yang masih menggunakan PHP 4. Juga codeigniter tidak menggunakan PEAR atau tool CLI lainnya, sehingga memberi keleluasaan bagi anda yang tidak mempunyai akses ke shell pada hosting anda.

    Kekurangan:

    • Terlalu Fleksibel, aturan yang sedikit, ini sangat mengganggu jika kita ingin mengembangkan aplikasi yang besar oleh banyak programmer dengan waktu yang cepat. Karena terlalu fleksibel, kita bisa memodifikasi core CI dengan mudah, sehingga programmer yang baru perlu waktu untuk belajar terlebih dahulu program yang sebelumnya.
    • Tidak OOP sepenuhnya, karena helper-helper pada CI berupa fungsi-fungsi yang prosedural, tidak berorientasi objek. Dan ini melawan aturan OOP yang sesungguhnya.

    Nah, ini kelebihan dan kekurangan CakePHP:

    Kelebihan:

    • Dukungan terhadap AJAX, ORM, library AJAX di dalam CakePHP sudah disediakan, kita tinggal memakainya aja…
    • Automagic function, seperti adanya validasi input, dll, yang mempercepat coding. Seperti helper untuk form, membuat form dengan menggunakan helper dari CakePHP (yang menurut Cheyuz lebih bagus dari helper CI) sangat berguna buat kita yang sering bekerja dengan banyak form. Banyak contoh lainnya…
    • Mendukung 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. Ini merupakan salah satu kekurangan CakePHP, oleh karena itu CakePHP mungkin bisa dipelajari lebih lama daripada CI.
    • Terlalu banyak aturan, dan tidak sefleksibel CI, seperti nama table harus plural, nama controller harus sama dengan nama folder untuk view… nama view harus sama dengan nama action, dan lain2…
    • 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
    • (http://www.zenperfect.com/2007/07/15/faceoff-codeigniter-vs-cakephp/)

    Kelebihan yang berasal dari kekurangan:

    • Terlalu banyak aturan, dan tidak sefleksibel CI, dibalik kekurangan ini, CakePHP mengajak kita untuk bersama-sama membuat aplikasi yang rapid (cepat) dan dapat dikembangkan secara bersama-sama. Jika dibandingkan dengan CI yang terlalu fleksibel, Cakephp lebih gampang dikembangkan karena programmer sudah tahu aturan-aturan di CakePHP yang baik. Karena CI terlalu fleksibel, maka mengembangkan aplikasi dengan menggunakan CI malah menjadi susah jika dikerjakan oleh banyak orang, karena aturan-aturan setiap pengembang asal CI itu berbeda dengan pengembang selanjutnya. Oleh karena itu, untuk membuat aplikasi dengan developer yang sering berganti-ganti, lebih baik menggunakan CakePHP.
    • Butuh waktu belajar yang lebih lama untuk menguasai framework ini, tetapi jika kita sudah menguasai semua dokumentasi dan menguasai secara penuh penggunaan cakePHP, maka pembangunan aplikasi dengan menggunakan CakePHP bisa lebih cepat dibandingkan CI.
    Selebihnya sih terserah temen2 semua mau belajar yang mana aja… menurut info yang didapat seperti itu.. go go go!

    - Dari berbagai sumber -

    This entry was posted on Tuesday, February 23rd, 2010 at 22:53 and is filed under Article, Code Igniter, PHP, Tutorial, _other. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.
  • 36 Comments

    Take a look at some of the responses we have had to this article.

    1. Feb 23rd

      keren gan artikelnya berguna banget.
      kebetulan ane lagi mau mulai belajar pake FW juga…
      kalau bisa share tutorial2nya ya… :)

    2. Feb 24th

      @takien: hehehe sip… pertama2 saranku belajar CI aja dulu… nanti ke sananya belajar FW lain gampang… :) masih banyak kok FW-FW lain, kayak Kohana, Yii, Symfony, dan laen2… go Indonesia Developer!!

    3. Feb 24th

      Nice Posting kang!!!

      BTW, Kok CI ga di kasih ada kekurangannya ya kang? Ga seimbang nih.. Saya selaku programer yang masih newbie coba mengoreksi ya.. (mohon commentnya di approve)

      Kelebihan CI:

      - Performa sangat cepat

      –> Dari setahun lalu, kecepatan CI dah terlampaui ama Yii, dan Yii udah terlampaui oleh DooPHP, QeePHP, Symfony 2 dan Solar. Jadi Okelah bisa di bilang salah satu framework tercepat, tapi pada urutan ke 6 :D

      - Mendukung PHP4 dan PHP5.
      –> Buat apa ngedukung PHP4 kalo PHP4 udah ga di support ama php.net? Lagian 99.99% Web Hosting udah support PHP 5.

      - Compatable dengan banyak hosting
      Sepertinya masih kurang, karena default url menggunakan INFO_PATH, ada sekitar 5 % web hosting (biasanya sih gratisan) ga mendukung ini. Jadi kalo masalah kompatibelitas, kayak masih kalah ma Yii deh.

      Saya tambahin, kekurangan CI:
      - Fitur terlalu minim
      - Code kotor, campuran PHP 4 dan PHP 5. Campuran Prosedural dan OOP.

      Kelebihan CakePHP:
      - function automagic:
      –> sebenarnya magic itu pisau bermata dua, satu sisi bikin aplikasi cepet jadi, tapi satu sisi bikin aplikasi jadi kaku dan susah di debug.

      Kekurangan CakePHP:

      - Manualnya kurang lengkap.
      –> Kata siapa? Coba gera liat sekarang, banyak mana manual CI ama CakePHP?

      Kalo FW favorit saya sih.. Wicket dan Rails.. :D

    4. Feb 24th

      Mudah dipelajari : Mungkin pengaruh dokumentasi yang bagus sehingga codeigniter mudah untuk dipelajari, atau memang framework ini benar-benar mudah dipelajari. Sebelumnya Cheyuz pernah mencoba-coba mempelajari Zend, Symfony, dan Prado, tiga framework yang memang lebih powerfull daripada codeigniter, tapi juga lebih sulit untuk dipelajari. Inilah alasan terkuat Cheyuz jatuh cinta pada codeigniter.

      Yang penting mudah dipelajari dan cepat dalam pengerjaan…. juga CI lumayan banyak dipakai di lapangan :)

    5. Feb 24th

      Kalo mudah di pelajari saia juga setuju juragan.. (perasaan ga pernah di sanggah deh)

      Mudah di pelajarinya emang karena emang simple dan ga banyak fitur. Beda dengan Symfony dan Zend yang fiturnya seabrek dan udah ready enterprise, emang lebih susah. BTW, framework yang saia pelajari Symfony, dan pain-pain aja tuh.. Yah.. palingan stress.. Tapi setelah itu, semua framework jadi ga ada yang terasa susah.

    6. Feb 24th

      Yup, saya kan bikin blog ini buat pemula mas…. :)
      bukan buat mas yg udah mahir…. :D

    7. Feb 24th
    8. Feb 24th

      Jangan panggil Mas donk.. saya bukan orang jawa. Lagian sapaan resmi buat netter indonesia itu “Agan”

    9. Feb 25th

      hmm, menarik juga…
      seperti banyak yang dibahas orang lain, yang mudah dipelajari itu memang codeigniter dan cakephp. Sebagai masukan saja, kenapa ilustrasinya hanya ada gambar codeigniter saja?, bukan keduanya…
      Lagipula tentang form helper, codeigniter-pun menyertakannya, sedangkan untuk koneksi database, tidak menggunakan ORM, melainkan ActiveRecord, dan itupun bisa diganti menjadi ORM dengan paket library pihak ketiga, begitu juga dengan fungsi Ajax..

      @newbie: codeigniter code kotor apa ah?, itu mah tergantung programmernya aj. Lagipula, kan codeigniter bisa dibuat pure PHP5, kalau memang niat..

      CMIIW

    10. Feb 25th

      @kg Khalifa: Ilustrasi CI soalnya saya lebih ke CI, dan di sini saya mau ngajak temen-temen mempelajari CI, hehe… yup, form helper di CI emank udah ada kang, cuman kurang powerfull, karena di situ labeling terhadap input tidak ada, ga seperti cakephp.. yup, CI pake Active Record dan bisa diganti dgn ORM, CI bisa pake ajax (dengan bantuan JQuery/Ajax for CI, bisa download librarynya) maksudnya defaultnya ga seperti itu kang, hehe… kalo di Cake kan udah ada AJAXnya secara default.. oia ‘Newbie’ itu kang ATA… yup, bener tergantung programmernya, buktinya saya pake CI baik2 aja, malah kerja selalu cepet, mengintegrasiin ajax juga gampang banget….. Hidup CodeIgniter! :)

    11. Mar 17th

      Bisa di buat fure PHP 5? Kayaknya engga deh. tetap saja basenya CI PHP 4. Tapi saya lihat disini CI hanya mencoba mengajak programmer yang belum terbiasa dengan framework untuk menggunakan framework.

      Kalo di bilang gimana programmernya, bisa jadi yang ngebangun aplikasi php dari nol lebih rapih donk ketimbang pake framework. Lalu fungsi framework apa donk kalo gt? Apa hanya mempermudah kerja?

      Sebenarnya, selain berfungsi mempercepat pekerjaan, fungsi lain di framework adalah “memaksa” programmer untuk patuh dengan aturan yang berlaku di framework tersebut, sehingga dengan begitu code menjadi lebih rapih.

      Kalo masalah integrasi ajax, yang penting bisa javascript, ajax pasti bisa. Effordnya, programmer harus menguasai javascript. Dan itu terlepas dari framework.

    12. May 13th

      netter indonesia kebanyakan kaskuser

    13. May 14th

      hehe…

    14. May 28th

      jangan pada brantem pak..mending share tutorialnya ajah
      buat guwe…hehe

    15. May 30th

      haha ada2 aja c agan..

    16. Jun 13th

      apapun FM nya…yang penting powerfull dan lebih secure
      itu intinya…lo masalah mudah apa ngga….itu ya tergantung kemampuan dan kemauan kita…

    17. Jun 15th

      @indrajit: yup, betul sekali… itu tergantung dari keperluan dan kemampuan programmer,, tetapi secara general ya seperti itu,.

    18. Jun 27th

      Nih kalau mau pada pingin buku CI silahkan lihat di sini http://www.bukulokomedia.com/artikel-98-membangun-web-berbasis-php-dgn-framework-codeigniter.html
      lumayan buat di baca-baca kalau masih susah dengan manual yang bahasa asing hihihi

    19. Jun 29th

      alangkah lebih baikknya bila ente bikin blognya langsung pake code ignitter……sekaliah demo mas…he..he…jangan pake wodpress terus …dah bosen…

    20. Jul 3rd

      thankz 4 share :)

    21. Jul 3rd

      @indra: silakan diliat web saya, full CodeIgniter +ajax: http://www.cheyuz.com di sana ada banyak portofolio saya, itu web utama saya, ini BLOG

    22. Jul 15th

      Keren gan ane juga lagi ngulik framework neh

    23. Sep 7th

      gw minta saran nih…. karena memang pemula banget pake framework…
      gw ada proyek buat aplikasi perusahaan berbasis enterprise.. kira2 FM yang paling cocok apaan?? soalnya kemungkinan besar perusahaan yang request ke team kita bakal migrasi total aplikasi ke web……

    24. Sep 17th

      @Jongos: pake Codeigniter aja gan, biasa dipake di perusahaan..

    25. ifliandry
      Mar 11th

      thanks, postingannya menarik, komentarnya bikin makin ok.

      saya newbie, baru mo pake FM. sejauh ini baru pake oop pdo. itu pun masih campur campur sama coding php dasar, kalo kepepet bikin 2 file koneksi, satu untuk pdo satunya lagi php dasar (maaf pake kata php dasar, ngertinya cuma itu).

      kadang ngeri juga gan, kalo pake FM, kalo ilmunya belom cukup, takutnya 1/2 proyek berjalan. ilmunya gak nyampe.

      btw thanks cheyuz. tetap bagi info + ilmu. it’s a nice website.

    26. cocix
      Mar 21st

      tampaknya tidak dibeberkan nih kekurangan dari CI, atau memang tidak ada kekurangannya!! hehehe

      nice info!!

    27. Apr 2nd

      @ifliandry: ok sip gan.. thanks ya.. selamat belajar memakai framework PHP.. :)

    28. Kekurangan CI:
      1. Pengembangan versi sangat lambat
      2. Belum pure OOP, masih pake PHP4
      3. Terlalu sedikit library pada paket original

    29. Jun 20th

      @kang Sandi: hehe thx kang tambahannya… ini postingan February 23rd, 2010, pengen review aja hehe… intinya sih setiap framework punya kelebihan dan kekurangan, ya kan? hehe.. Oia sekarang kan CI udah ga bisa PHP4 kang, minimal 5.1.. CI 2.x

    30. Jun 24th

      waduh, gitu ya sob, bos ane maksa pake cake php neh, padahal ane lebih prefer CI, sebelumnya ane juga blum pernah ngoding pake framework…

    31. Jun 24th

      @rush: ya udah klo disuruhnya pake cake ya pake itu aja gan… tp tergantung juga agan nguasai yg mana :)

    32. rayman
      Aug 11th

      Pertama, salut buat kang cheyuz. Thx buat info tutorialnya ya. Mo share sdikit nih ttg pilihan framework yg ada. Saya juga lagi baru blajar2 FW. Sesudah compare2, akhirnya dgn sgala kekurangan dan kelebihannya, saya memilih CI. Rating terakhir utk 10 PHP framework terbaik kalo gak salah Yii sudah melampaui CI. Jadi tiga besarnya kurang lebih Yii, CodeIgniter, Kohana (kalo gak salah lo yaa). Trus masih ada juga CakePHP (sangat tidak fleksibel katanya) dan Prado (powerful). Saya sudah mendonlot ketiganya. Namun setelah mereview kembali, akhirnya saya pilih CI. Alasanya, pertama karna tutorial dan user guidenya terlengkap. Kedua, komunitasnya lumayan banyak. Jadi kalo stuck,bisa nanya. Awalnya sempet mo sriusin Kohana karna disebut2 Kohana merupakan fork (smacam distribute kalo di linux –> pengembangan oleh developer lain). Namun, tnyata dokumentasi dan tutorialnya sangat minim. Yii juga sperti itu walaupun ternyata Yii lebih powerfull dan lebih OOP. Jadi, gak salah spertinya buat newbie sperti saya utk belajar dulu dgn CI. Skali lagi buat kang cheyuz, salut buat kreasinya ya kang. Keep up the good work bro :)

    33. Ramli
      Oct 30th

      Please Approve This Comment, demi keterbukaan..
      # Terlalu banyak aturan, dan tidak sefleksibel CI, seperti nama table harus plural, nama controller harus sama dengan nama folder untuk view… nama view harus sama dengan nama action, dan lain2…

      gx setuju ah, karena menurut saya tujuan di bangunnya FW adalah membuat bahasa dan aturan2 gaya bahasa yang sama , ibaratnya adalah FW itu Sumpah Pemuda, Bahasa Daerah biar lebih Baku digunakan BAHASA INDONESIA. gitu, gmn mw teratur klo FW nya aja gx Strict…FYI penamaan Table di Cake gx slalu plural koq, tergantung yg pake.

      Mw nambahin aja kekurangan CI, yang menurut saya sudah menjadi nilai minus bagi sebuah FW.
      - Bisa di Coding Asal2an, kodeny kotor..klo udah kotor biasanya impact ke Speed, utk pengembangan orang lain pasti lebih sulit, kenapa..? tanpa kita sadari CI itu bisa jalan tanpa ada model dan view , jadi bisa di bilang MVCnya setengah2. apa buktinya..? gampang aja.. kita bisa buat query / model di view/controller.. aneh tujuan utama MVC jadi berubah gara2 Programmer yang implement CI dari sisi “Yang Penting Gampang Dipelajari”..
      -Fitur sangat minim, yg ini gx perlu dijelasin, pasti udah tau klo pernah pake.

    34. Nov 2nd

      Please Approve This Comment, demi keterbukaan..
      # Terlalu banyak aturan, dan tidak sefleksibel CI, seperti nama table harus plural, nama controller harus sama dengan nama folder untuk view… nama view harus sama dengan nama action, dan lain2…

      gx setuju ah, karena menurut saya tujuan di bangunnya FW adalah membuat bahasa dan aturan2 gaya bahasa yang sama , ibaratnya adalah FW itu Sumpah Pemuda, Bahasa Daerah biar lebih Baku digunakan BAHASA INDONESIA. gitu, gmn mw teratur klo FW nya aja gx Strict…FYI penamaan Table di Cake gx slalu plural koq, tergantung yg pake.

      Mw nambahin aja kekurangan CI, yang menurut saya sudah menjadi nilai minus bagi sebuah FW.
      - Bisa di Coding Asal2an, kodeny kotor..klo udah kotor biasanya impact ke Speed, utk pengembangan orang lain pasti lebih sulit, kenapa..? tanpa kita sadari CI itu bisa jalan tanpa ada model dan view , jadi bisa di bilang MVCnya setengah2. apa buktinya..? gampang aja.. kita bisa buat query / model di view/controller.. aneh tujuan utama MVC jadi berubah gara2 Programmer yang implement CI dari sisi “Yang Penting Gampang Dipelajari”..
      -Fitur sangat minim, yg ini gx perlu dijelasin, pasti udah tau klo pernah pake.

      Sip gan, ane memang setuju pendapat agan… sekarang udah diupdate artikelnya :)

    35. Jan 13th

      wih mantep ni compare ny,,,,

      kalo boleh ane request, next time compare-in jg si CI apa FuelPHP gan, heheheheh..

      nice share thanks. :D

    36. Jan 18th

      sip, sama2 gan :)

  • Leave a Reply

    Let us know what you thought.

  • Name(required):

    Email(required):

    Website:

    Message:

    Spam Protection by WP-SpamFree