Laravel vs Codeigniter, php framework mana yang lebih baik?

Posted on

Tahun 2018 ini PHP masih menjadi bahasa pemrograman web yang paling banyak dipakai. Untuk mempercepat proses development alangkah baiknya jika kita menggunakan PHP framework dibandingkan dengan membuat base code dari PHP native.

Lalu mau pilih framework yang mana?

Kita akan membahas antara Laravel dengan Codeigniter atau kita akan panggil CI. Apa saja kelebihan dan kekurangan dari masing-masing framework ini. Lalu menyimpulkan mana yang lebih cocok kita gunakan untuk projek kita nanti.

Kita lihat dulu perbandingan Laravel vs CI dari google trend.

Trend Laravel dan CI dari Google

Adapun batasan-batasan yang akan kita bahas antara lain soal:

  1. Trend and popularitas
  2. Struktur dan dukungan update
  3. Libraries dan dukungan komunitas
  4. Integrasi database
  5. Dukungan API

Ci pertama kali di buat tahun 2006. Kurang lebih tahun 2018 ini sudah berumur 12 tahun. Waktu 12 tahun tergolong sudah cukup matang untuk ukuran sebuah PHP Framework. Tapi development CI sempat melambat dan stuck di versi 2.x dalam waktu yang lama. Baru di tahun 2015 rilis versi 3.x dan akhirnya bulan September 2018 sudah rilis versi 4 tapi masih alpa. 

Dari changelog versi 4, CI sepertinya berbenah banyak di segala sisi kode. Misalnya mulai implementasi composer dan CLI. Apakah akan meniru Laravel? 😀

Di Indonesia sendiri CI tergolong framework yang termasuk paling banyak digunakan, juga di Asia Selatan.

Framework yang cukup senior.
Umur framework yang sudah cukup lama yang berarti semakin banyak dukungan komunitas jika kamu mengalami kendala dalam proses development seperti di Stackoveflow

Konsep MVC yang mudah dimengerti programmer baru
Untuk yang mau belajar konsep MVC, CI tergolong lebih mudah dipelajari dibandingkan dengan Laravel. Tapi pada versi 3.x, Codeigniter mulai lebih ketat dalam penerapan MVC dibandingkan dengan versi 2.x

Kebebasan dalam penulisan kode
CI versi 2.x dan 3.x belum memiliki template engine. Sisi positifnya kamu bebas menggunakan php code di semua view projek CI yang kamu buat secara langsung walaupun konsekuensinya kode kamu jadi kurang rapi.

Kemudahan Instalasi
Instalasi yang mudah. Kamu bisa langsung mendownload base code CI dan menaruhnya di web server dan web aplikasi sudah siap di running.

Update yang jarang
CI sempat mengalami macet update di versi 2.x walaupun sekarang developmentnya sudah dikebut untuk memasuki versi 4. Ini artinya ada banyak sekali website yang masih menggunakan versi 2.x dan tentu untuk upgrade ke versi 3 atau 4 perlu banyak merombak kode website kamu.

Belum mendukung template engine.
Template engine memungkinkan frontend developer untuk lebih mudah dalam development karena tidak perlu harus tahu sintak-sintak PHP. Karena CI belum memiliki template engine seperti Blade pada Laravel. Maka kamu harus menaruh potongan-potongan kode php secara langsung. Selain harus mengerti PHP, tentunya kodenya jadi lebih berantakan.

Susah untuk integrasi dengan plugin atau package pihak ketiga.
Di versi 2 dan 3, CI belum mengimplementasikan composer untuk package management dari pihak ketiga. Jadi kalau mau memakai package harus mendownload dan meng-include package tersebut secara manual.

Dukungan Database yang cukup terbatas.
Database yang didukung CI secara langsung yaitu MySQL dan PostgreSQL. Jika kamu ingin menggunakan database seperti misalnya Mongo, tentu agak susah karena CI belum mendukung composer. Jadi harus dicopy manual.

Dukungan untuk API yang kurang.
CI belum sepenuhnya mendukung untuk API development. Di CI juga belum ada middleware sehingga perlu usaha lebih jika kamu ingin develop API dengan CI

Belum Sepenuhnya mendukung PHP7
Versi PHP yang dibutuhkan CI khususnya versi 2.x dan 3x dalah versi yang sudah cukup lama seperti versi dibawah 5.6. Sedangkan PHP sekarang sudah ke versi 7 dan memang disarankan untuk memakai versi 7. Tentu jika kamu ingin menikmati update PHP7, sepertinya kamu tidak bisa menggunakan CI kecuali jika nanti versi 4 sudah direlase yang memang mentargetkan PHP versi 7.

Sekarang kita akan membahas tentang Laravel.

Laravel pertama kali dirilis tahun 2011 oleh Taylor Otwell. Umurnya jauh lebih muda dari CI tapi dalam waktu sebentar Laravel sudah menjadi framework yang paling populer.

Disini saya tidak akan menjelaskan panjang lebar tentang laravel karena saya sudah menjelaskan detailnya pada artikel perkenalan dengan laravel. Bagi yang belum baca silahkan dibaca dulu agar lebih mengenal laravel.

Satu fitur yang menarik dari Laravel adalah adanya Artisan. Artisan adalah sebuah command line yang mampu mempercepat proses development mulai dari membuat file route, migration, controller dan lainnya. 

Laravel sudah menerapkan modern programming workflow dengan menerapkan tools-tools kekinian sehingga proses development  menjadi lebih mudah dan singkat seperti composer dan npm.

Kelbihan Laravel

Dokumentasi yang lengkap
Kepopuleran Laravel didukung dengan dokumentasi yang ditulis dengan sangat bagus dan mudah dimengerti. Kamu bisa mendapatkan hampir semua contoh implementasi fitur-fitur laravel di dalam dokumentasi ini. Jika kamu malas membaca, kamu juga bisa mengunjungi situs Laracast untuk melihat tutorial dalam bentuk video yang sangat mudah dimengerti. 

Dukungan komunitas yang besar
Populer berarti banyak orang yang menggunakan Laravel. Ini artinya jika kamu ada masalah, sangat mudah menemukan solusinya di internet seperti di situs stackoverflow ataupun langsung di forum laravel.

Artisan CLI
Seperti namanya, framework for web artisan, Laravel hadir dengan command line tools yang sangat memudahkan kamu mulai dari setup project, setup database, membuat file model dan controller, membuat queue dan banyak lagi. Jadi dengan sebuah command saja maka artisan akan meng-generate file yang kamu mau secara otomatis.

Dukungan Composer
Dengan adanya composer, kamu dengan mudah mengimplementasikan package dari pihak lain ke dalam projek kamu tanpa ribet. Dengan fitur autoloading dari composer, maka class-class dari package lain bisa dipanggil secara langsung tanpa include file secara manual.

Dukungan Template Engine
Laravel memiliki template engine bernama Blade dan juga mendukung template lain seperti Twig. Seperti dibahas sebelumnya, dengan Blade, Frontend developer tidak harus belajar PHP secara langsung. Blade templating juga memudahkan kamu untuk menggunakan ulang beberapa template di template lainnya dengan konsep section. Jadi proses development tentu menjadi semakin cepat dan efisien dan bisa dikerjakan oleh banyak tim.

Mendukung untuk semua jenis Database
Laravel memiliki ORM sendiri dengan nama Eloquent. Dengan ini kamu bisa dengan mudah melakukan CURD pada model tanpa harus menulis query sql secara lengkap. Berpidah dari 1 jenis database ke database lainnya juga sangat mudah dengan hanya mengupdate config file.

Update yang rutin dan memiliki TLS version
Saat artikel ini ditulis laravel sudah berada di versi 5.7. Laravel merupakan salah satu PHP Framework yang memiliki update yang lumayan cepat. Ini berarti masa depan Laravel masing panjang dan tentunya di setiap update yang paling baru akan perbaikan-perbaikan yang membuat framework ini menjadi lebih baik. Jika kamu mau menggunakan versi yang stabil, maka dapat memilih versi TLS dengan dukungan update yang lama.

Mendukung PHP7 
Di terbaru 5.x, Laravel memiliki minimal requirement PHP7. Ini berarti laravel sudah secara penuh mendukung semua fitur-fitur PHP7. Dengan PHP 7 webiste menjadi 2x lebih cepat dari PHP5.x dan memory usage yg lebih kecil 50%

Kekurangan Laravel

Instalasi yang lebih rumit.
Dibandingkan dengan CI, Instalasi laravel harus menggunakan composer yang artinya kamu butuh koneksi internet saat proses instalasi berlangsung. Tapi kamu masih bisa mengcopy project laravel dari komputer lainnya tanpa harus menggukan composer.

Proses belajar yang lebih susah.
Dibandingkan dengan CI, Laravel menerapakan konsep clean code. Artinya jika kamu tidak terbiasa dengan konsep MVC yang terstruktur, tentu kamu harus dipaksa untuk mengikuti pola MVC dari laravel dengan struktur yang lebih baik.
Tapi jika sudah terbiasa, maka project kamu akan menjadi lebih rapi dan terstruktur.

Susah instalasi di shared hosting.
Susah bukan berarti tidak bisa. Jika kamu ingin mengupload aplikasi Laravel ke shared hosting, kamu harus menyesuaikan beberapa hal seperti public folder dan tentunya kamu tidak bisa menggunakan fitur artisan cli kecuali shared hosting kamu memberikan akses ssh. 

Ukuran project yang cukup besar.
Laravel memiliki ukuran sekitar 100-200MB saat pertama kali diinstall dan masih bisa bertambah sesuai dengan package-package apa saja yang kamu install.

Nah dari masing-masing perbandingan di atas, saya bisa simpulkan beberapa hal tentang mau memilih Laravel atau CI,

  • Jika kalian ingin framework yang lebih simple dan mudah untuk dipelajari maka CI bisa menjadi pilihan yang cocok. Ini bukan berarti Laravel tidak lebih simple, tapi penulisan dan konsep MVP di CI lebih umum untuk para programmer PHP.
  • Jika kalian ingin menjadi web artisan, maka mulailah dengan Laravel. Belajar konsep MVC minded yang terlihat susah diawal, tapi jika sudah menjadi kebiasaan tentu akan sangat mengasikkan.
  • Jika kalian ingin framework yang powerful, scope yang besar, mempertimbangkan clean code, struktur yang rapi dan akan dikembangkan oleh banyak tim, maka Laravel sangat saya sarankan. Dengan adanya blade templating, kerja sama antara tim frontend dan backend lebih mudah untuk dilakukan. ORM, Migration, Artisan CLI tentu akan sangat membantu mempercepat proses development.
  • Jika kamu ingin lebih mudah untuk meng-integrasikan package pihak ketiga, maka Laravel sangat mendukung karena sudah memakai composer dengan autoloading-nya. Tentu hal ini masih sulit dilakukan dalam CI versi 2.x dan 3.x

Jadi itulah perbandingan antara Laravel dan CI menurut admin. Semoga bisa memberikan pencerahan untuk teman-teman dalam memilih framework yang cocok. 

Ingat saja, framework akan berfungsi dengan maksimal jika kalian punya system design yang bagus dan tentu ditunjang oleh server yang bagus juga.

Selamat memilih!

Please follow and like us:
Agus Yusida

Hello, perkenalkan saya Agus Yusida, seorang freelancer programmer, pernah membuat startup dan suka mencoba hal-hal baru. Jika ada pertanyaan bisa DM saya di IG @yusidajohn untuk fast respond. Jangan lupa like facebook ngide.net ya!


Related Article