Laravel merupakan sebuah kerangka kerja (framework) berbasis PHP. Agar bisa memahaminya, kita perlu membahas terlebih dahulu apa yang dimaksud dengan framework.
Secara sederhana, framework adalah kumpulan kode program yang telah disiapkan dengan aturan penulisan tertentu, bertujuan untuk memudahkan dan mempercepat proses pembuatan aplikasi. Lebih rinci lagi, framework PHP adalah framework yang dibuat dengan menggunakan bahasa pemrograman PHP.
Tujuan utama penggunaan framework adalah untuk mempercepat proses pembuatan aplikasi, karena dalam framework sudah tersedia berbagai fitur siap pakai. Kita dapat langsung menggunakan fitur-fitur ini tanpa perlu membuat semuanya dari awal. Selain itu, aturan penulisan dalam framework akan mengarahkan kita untuk mengadopsi praktik penulisan yang baik (mengikuti standar praktik terbaik).
Pada awalnya, konsep framework muncul dari kebutuhan para pengembang perangkat lunak untuk mengurangi pengulangan penulisan kode yang serupa. Misalnya, jika kita bekerja sebagai pengembang di sebuah perusahaan perangkat lunak, pada proyek pertama kita diminta untuk membuat sistem informasi sekolah. Proyek tersebut memerlukan fitur pendaftaran mahasiswa, pendaftaran dosen, serta sistem login bagi mahasiswa dan dosen. Begitu proyek pertama selesai, kita kemudian berlanjut ke proyek kedua, yakni pembuatan aplikasi perpustakaan. Proyek ini juga memerlukan fitur-fitur seperti pendaftaran karyawan dan sistem login karyawan. Pada proyek ketiga, yakni pembuatan situs berita, diperlukan fitur pendaftaran editor serta sistem login bagi editor.
Dari contoh ini, terlihat bahwa pada setiap proyek, kita perlu membuat fitur pendaftaran dan sistem login. Kemungkinan besar, proyek-proyek selanjutnya juga akan memerlukan fitur serupa.
Daripada terus-menerus membuat segalanya dari awal, akan lebih efisien jika kita menyiapkan kode dasar untuk fitur pendaftaran dan sistem login. Ketika ada proyek baru yang membutuhkan fitur yang sama, kita hanya perlu menyalin kode dasar ini dan melakukan sedikit pengubahan pada bagian tertentu. Dengan demikian, pekerjaan dapat diselesaikan dengan lebih cepat.
Seiring berjalannya waktu dan peningkatan pengalaman, kita dapat memodifikasi kode dasar ini dengan menambahkan berbagai fitur baru agar semakin lengkap. Misalnya, kita bisa menambahkan cara untuk terhubung dengan basis data, menangani kuki (cookie), melakukan validasi formulir, dan sebagainya. Akhirnya, inilah yang menjadi dasar terbentuknya sebuah framework.
Beberapa waktu kemudian, kita merasa bahwa framework ini sangat membantu dan ingin berbagi dengan para pengembang lainnya. Selain berbuat baik (karena banyak yang akan mendapat manfaat), kita juga berharap bahwa pengembang lain akan memberikan koreksi dan menambahkan fitur-fitur baru.
Sebenarnya, siapa pun dapat membuat framework (tentu saja dengan memiliki keterampilan yang sesuai), namun di antara banyak framework yang ada, ada yang lebih populer daripada yang lain. Ini bisa disebabkan oleh jumlah fitur yang lebih banyak, kemudahan penggunaannya, serta adanya komunitas yang aktif.
Apabila sebuah framework dibangun dengan struktur yang teratur dan mudah digunakan, lambat laun semakin banyak pengembang lain yang turut berkontribusi. Sebagian besar framework juga merupakan bagian dari proyek sumber terbuka (open source), sehingga dapat digunakan secara gratis.
Terdapat beragam framework yang sesuai dengan keperluan yang berbeda-beda. Sebagai contoh, Bootstrap adalah framework CSS yang berisi koleksi kode CSS untuk mempercepat proses desain web. Selain Bootstrap, terdapat pula berbagai framework CSS lain seperti Tailwind CSS, Materialize, Bulma, dan Semantic UI.
Hal yang sama juga berlaku dalam dunia PHP, dengan berbagai pilihan framework seperti Code Igniter, Symfony, Yii, Zend, dan tentu saja Laravel.
Dengan menggunakan framework, kita seolah-olah memanfaatkan pengetahuan dan pengalaman ribuan pengembang yang telah lebih dulu memikirkan apa yang perlu dibuat dan bagaimana cara terbaik untuk melakukannya.
Framework (Kerangka Kerja): Definisi: Framework adalah kerangka kerja yang mencakup struktur, aturan, dan alat-alat yang telah ditentukan untuk memandu proses pengembangan website. Ini adalah sebuah rangkaian konsep dan standar yang membantu mengatur bagaimana kode program harus ditulis dan diatur. Ketergantungan: Ketika Anda menggunakan sebuah framework, Anda sepenuhnya mengadopsi arsitektur dan pola yang telah ditetapkan oleh framework tersebut. Anda akan mengikuti struktur dan alur kerja yang telah didefinisikan, termasuk pengaturan folder, pola desain, dan alur kerja pengembangan. Penggunaan: Framework biasanya menyediakan fungsi-fungsi dasar dan modul-modul yang siap pakai, termasuk fitur-fitur umum seperti manajemen rute, pengolahan formulir, manajemen sesi, dan interaksi dengan basis data. Dengan kata lain, framework menyediakan dasar yang lebih lengkap untuk membangun aplikasi web. Keterampilan: Pengembang yang menggunakan framework harus memahami konsep-konsep dan aturan yang ada dalam framework tersebut. Ini memerlukan pembelajaran tentang struktur dan logika yang ada dalam framework tertentu. Contoh Framework: Laravel, Symfony, CodeIgniter, Django (untuk Python), Ruby on Rails (untuk Ruby). Library: Definisi: Library adalah kumpulan fungsi dan alat yang dapat digunakan oleh pengembang untuk melakukan tugas-tugas tertentu dalam pembuatan website. Library tidak memiliki struktur yang mengikat seperti framework, dan pengembang dapat memilih menggunakan fungsi-fungsi tertentu sesuai kebutuhan mereka. Ketergantungan: Penggunaan library adalah lebih fleksibel daripada framework. Anda dapat memilih menggunakan fungsi-fungsi tertentu dari library tanpa harus mengikuti struktur yang telah ditetapkan. Penggunaan: Library menyediakan fungsi-fungsi khusus yang dapat diintegrasikan ke dalam aplikasi sesuai kebutuhan. Sebagai contoh, library JavaScript dapat digunakan untuk menambahkan efek animasi, validasi form, atau interaksi dengan API. Keterampilan: Pengembang hanya perlu memahami cara menggunakan fungsi-fungsi yang ada dalam library. Mereka tidak perlu belajar konsep keseluruhan dari library tersebut. Contoh Library: jQuery (untuk JavaScript), Bootstrap (untuk CSS dan komponen UI), Axios (untuk HTTP requests). Dalam banyak kasus, pengembang akan memutuskan apakah menggunakan framework atau library berdasarkan kompleksitas proyek dan preferensi pribadi. Framework sering digunakan untuk proyek yang lebih besar dan kompleks, sementara library digunakan untuk menambahkan fitur-fitur tertentu pada proyek yang lebih sederhana |