Karena Laravel adalah sebuah Framework PHP, maka kita harus membahas terlebih dahulu apa yang dimaksud dengan framework.
Pengertian Framework
Framework adalah kumpulan kode program dengan aturan penulisan tertentu yang bertujuan untuk memudahkan serta mempercepat pembuatan aplikasi.
Framework pada awalnya berasal dari kebutuhan programmer untuk mengurangi pembuatan kode yang sama berulang kali.
Sebagai contoh, misalkan saya bekerja sebagai programmer di sebuah perusahaan software. Project pertama disuruh membuat sistem informasi sekolah, dimana perlu fitur pendaftaran siswa dan login siswa.
Setelah selesai, lanjut ke project kedua untuk membuat aplikasi perpustakaan yang diantaranya perlu halaman pendaftaran karyawan serta login karyawan. Selanjutnya project ketiga membuat sistem informasi akademik kampus yang juga perlu fitur pendaftaran dosen dan login dosen.
Sampai di sini bisa dilihat bahwa untuk ketiga project kita perlu membuat fitur pendaftaran dan login. Besar kemungkinan untuk project keempat dan seterusnya juga butuh fitur serupa. Daripada membuat dari awal terus menerus, akan lebih efisien jika kita menyiapkan sebuah kode dasar untuk halaman pendaftaran dan login. Maka pekerjaan selesai dengan lebih cepat.
Seiring bertambahnya pengalaman, kode dasar ini kita modifikasi dengan tambahan berbagai fitur baru agar semakin lengkap, misalnya menambah cara koneksi ke database, validasi form, dan sebagainya. Akhirnya, jadilah sebuah framework.
PHP Framework
Jadi sederhananya PHP Framework adalah framework yang dibuat menggunakan bahasa pemrograman PHP.
PHP framework dibuat sebagai sebuah Model View Controller (MVC), yaitu perangkat yang dapat membagi arsitektur pemrograman ke dalam bagian-bagian yang lebih spesifik sehingga masing-masing komponen bisa dimodifikasi tanpa mengubah komponen lainnya.
Dengan MVC, pengubahan fungsi dalam aplikasi tidak akan berpengaruh terhadap komponen antarmukanya. Hal ini bisa terjadi karena perangkat tersebut membagi pemrograman ke dalam tiga area yaitu Model, View, dan Controller.
- Model mengacu pada data aplikasi
- View mengacu pada komponen visual antarmuka
- Controller mengacu pada fungsi atau logika aplikasi
Terdapat berbagai pilihan framework php seperti CodeIgniter, Symfony, Yii, Zend dan tentu saja Laravel.
PHP Framework vs PHP Native
Selain menggunakan php framework kita juga bisa membangun aplikasi dengan PHP Native. Untuk mempelajari php native ini relatif lebih mudah di banding framework.
Native berarti membangun sendiri dari awal. Artinya kita membuat aplikasi mulai dari nol. Dengan Native kita bisa membuat sebuah system yang “Just What We Need“, sistem yang benar-benar dipakai khusus untuk tujuan tertentu saja.
Berikut Alasan kenapa kita tidak perlu menggunakan framework dan cukup dengan php native adalah:
Aplikasi yang dibuat cukup sederhana. Kurang pas jika menggunakan framework hanya untuk membuat program menghitung luas segitiga. Untuk yang seperti ini sebaiknya pakai PHP native saja karena akan jauh selesai lebih cepat.
Ingin mengejar performa. Menggunakan Native running time jauh lebih cepat sehingga cocok untuk kondisi yang Low Resource atau menangani Big Data, sedangkan Framework tentu saja lebih boros, karena banyak dari Resource yang disediakan framework ternyata tidak kita gunakan.
Kenapa Harus Framework
Kemudian apa alasan sebaiknya menggunakan framework?
Tujuan utama kenapa menggunakan framework adalah untuk mempercepat pembuatan aplikasi, karena di dalam framework sudah tersedia berbagai fitur siap pakai. Kita tinggal menggunakan fitur ini tanpa perlu membuat semuanya dari nol. Selain itu aturan penulisan di framework akan memaksa kita menggunakan cara penulisan yang baik.
Selain mempercepat proses pembuatan aplikasi, penggunaan PHP framework juga memberi sejumlah manfaat , yaitu:
- Tersedia fitur siap pakai. Framework sudah menyediakan berbagai komponen siap pakai untuk membantu kita dalam merancang aplikasi. Sebagai contoh, di Laravel dengan 1 perintah sederhana kita bisa meng-generate form register lengkap dengan fitur login dan logout. Jika menggunakan PHP native, membuat fitur ini bisa butuh waktu seharian penuh. Tidak hanya itu, umumnya framework PHP menyediakan cara singkat untuk membuat fitur-fitur lain, seperti pembuatan form, validasi, menampilkan pesan error, mengakses database, pembuatan layout, dsb.
- Mengikuti best practice. Framework memiliki aturan penulisan baku yang tidak bisa diubah. Dengan demikian kita akan “dipaksa” mengikuti cara penulisan framework. Cara penulisan ini sudah dipikirkan oleh ribuan programmer profesional yang merancang framework tersebut. Sebagai contoh, sebagian besar framework PHP menggunakan konsep MVC, yakni singkatan dari Model, View dan Controller. Konsep MVC bertujuan untuk memisahkan 3 bagian program: kode untuk mengakses database (disebut sebagai model), kode untuk tampilan (view) dan kode untuk mengatur alur logika program (controller). Dengan pemisahan ini, aplikasi kita menjadi lebih rapi dan mudah di kelola.
- Mudah untuk kolaborasi. Menggunakan framework juga memudahkan pembuatan kode program yang dibuat oleh tim. Framework memiliki aturan penulisan yang sudah baku sehingga setiap anggota tim bisa dengan mudah membaca alur kode program yang dibuat oleh programmer lain. Misalnya jika ada masalah dengan database, maka problem utama kemungkinan besar ada di model (bagian ‘M’ dari MVC). Selain itu, konsep MVC juga membuat pemisahan antara front-end dan back-end yang lebih baku. Tim front-end yang mengembangkan design web bisa fokus ke sisi tampilan saja (view), sedangkan tim back-end bisa fokus ke alur logika aplikasi (controller dan model).
- Mudah membaca kode program. Konsep yang sudah baku juga bermanfaat jika ada pergantian anggota tim. Tanpa framework, butuh waktu lama bagi programmer baru untuk memahami kode program yang sudah ada. Sangat mungkin konsep berfikir programmer sebelumnya berbeda jauh dengan programmer yang akan menggantikan. Namun jika aplikasi tersebut dibuat dengan framework, setiap programmer harus mengikuti cara yang sudah diatur oleh framework tersebut. Misalnya kode program untuk pengaturan tampilan ada di View, pengaturan database ada di Model, dsb. Sehingga lebih mudah bagi programmer baru untuk melakukan modifikasi.
- Keamanan Aplikasi. Sebagai contoh, ada celah kelemahan web yang dikenal sebagai CSRF atau Cross-Site Request Forgery, yakni teknik mengisi form (seperti form login), dengan kode program yang bukan berasal dari website kita. Celah ini bisa dimanfaatkan untuk membuat bot atau program yang terus-menerus mencoba mengisi form login. Mayoritas framework PHP (termasuk Laravel), sudah menyediakan cara untuk mengatasi masalah ini, yaitu dengan memaksa kita untuk membuat sebuah CSRF token. Laravel akan menampilkan error jika sebuah form tidak memiliki CSRF token. Cara input token ini juga sangat sederhana, hanya perlu satu perintah singkat.Fitur keamanan seperti ini sudah lebih dahulu dipikirkan oleh tim pengembang Laravel,sehingga aplikasi yang kita buat relatif lebih aman.
Apa Itu Laravel?
Sekarang kita akan bahas Pengertian Laravel.
Laravel adalah framework web PHP gratis open source yang dikembangkan oleh Taylor Otwell. Laravel ditujukan untuk pengembangan aplikasi berbasis web, khususnya bagi mereka yang mengikuti pola arsitektur MVC (Model View Controller).
Saat ini Laravel menjadi salah satu framework PHP yang paling banyak digunakan di dunia. Karena kemudahan penggunaannya, banyaknya dukungan seperti dokumentasi yang baik dan dukungan library yang lengkap, sehingga bisa kita sebut jika “Laravel seperti memanjakan penggunanya”.
Laravel juga menggunakan metode MVC (Model, View, Controller). Apa itu MVC ? MVC merupakan suatu metode untuk memisahkan bagian-bagian web aplikasi.
Yang disebut dengan MODEL biasanya bagian yang berurusan dengan database. VIEW adalah bagian antarmuka atau bagian depan aplikasi, segala sesuatu yang diproses dalam sistem akan ditampilkan pada view, sedangkan CONTROLLER adalah bagian yang menangani atau penghubung antar model dan view, jadi controller lah yang berperan sebagai pengendali dari sebuah sistem.
Manfaat Laravel untuk Pengembangan Website
Kepopuleran Laravel juga bisa dilihat dari kebutuhan industri. Jika anda mencari lowongan kerja programmer, maka besar kemungkinan lowongan tersebut mensyaratkan harus menguasai PHP hingga framework Laravel. Ini juga salah satu alasan untuk belajar Laravel.
Laravel menawarkan beberapa keuntungan apabila kita menggunakan laravel sebagai framework dasar dalam mengembangkan website.
- Pembuatan aplikasi menjadi lebih cepat.
- Developer lebih mudah untuk membuat perencanaan, pembuatan aplikasi dan juga maintenance nya.
- Aplikasi yang dibuat lebih stabil serta handal karena Framework Laravel sudah teruji stabilitas dan kehandalannya.
- Developer lebih mudah membaca kode program sehingga bugs lebih cepat ditemukan.
- Lebih aman karena Laravel mengantisipasi celah keamanan yang mungkin timbul.
- Membuat dokumentasi aplikasi lebih mudah
- Mudah dan Dokumentasi (tutorial) Lengkap
Fitur-Fitur Laravel
Laravel mempunyai berbagai macam fitur yang tidak semua framework menyediakannya. Apalagi Laravel adalah framework yang modern sehingga Anda dapat melakukan berbagai hal menggunakan framework ini seperti proses otentifikasi terbaru.
Berikut ini fitur-fitur Laravel yang perlu Anda ketahui:
Composer | Composer merupakan tool yang di dalamnya terdapat dependencies dan kumpulan library. Seluruh dependencies disimpan menggunakan format file composer.json sehingga dapat ditempatkan di dalam folder utama website. Inilah mengapa composer terkadang dikenal dengan dependencies management. |
Artisan | Artisan merupakan command line interface yang dimiliki oleh Laravel. Artisan mencakup sekumpulan perintah yang membantu Anda untuk membangun sebuah website atau aplikasi web. |
Blade Template Engine | Laravel menggunakan Blade. Blade merupakan template engine untuk mendesain layout yang unik. Layout yang didesain dapat digunakan di tampilan lain sehingga menyediakan konsistensi desain dan struktur selama proses pengembangan. Dibandingkan dengan template engine lain, Blade mempunyai kelebihan: tidak membatasi pengembang untuk menggunakan kode PHP biasa di dalam tampilan; desain tampilan blade akan tetap di-cache sampai dengan ada modifikasi. |
Routing | Di Laravel, semua request dipetakan dengan bantuan rute. Dasar dari routing adalah merutekan request ke kontroler terkait. Routing ini dianggap dapat mempermudah pengembangan website dan meningkatkan performanya. Setidaknya ada tiga kategori routing di Laravel, yaitu basic routing, route parameters, dan named routes. |
Modularity | Seperti yang sudah dibahas di bagian sebelumnya, di dalam Laravel terdapat kumpulan modul dan library yang terkait dengan composer. Fitur ini membantu Anda untuk menyempurnakan dan meningkatkan fungsionalitas dari website yang dibangun, serta mempermudah proses update. |
Testability | Laravel dibangun dengan fitur proses pengecekan yang cukup lengkap. Framework ini mendukung proses pengecekan dengan PHPUnit dan file phpunit.xml yang dapat disesuaikan dengan aplikasi web yang sedang dibangun. Framework ini juga dibangun menggunakan metode pembantu yang nyaman. Metode ini memungkinkan Anda untuk menguji website secara ekspresif. |
Query Builder and ORM | Laravel database query builder menyediakan antarmuka yang lancar untuk membuat dan menjalankan database query. Fitur ini dapat digunakan untuk menjalankan berbagai operasi database di dalam website dan mendukung berbagai sistem database. |
Authentication | Laravel membuat pengimplementasian otentikasi menjadi sangat sederhana. Seluruh proses konfigurasi otentikasi sudah berjalan secara otomatis. Anda bisa menemukan file konfigurasi otentikasi ini di ‘config/auth.php’. Di dalam file ini terdapat beberapa opsi otentifikasi yang sudah terdokumentasikan dengan baik dan sewaktu-waktu dapat Anda sesuaikan dengan kebutuhan sistem. |
Schema Builder | Class Laravel Schema menyediakan database agnostic untuk memanipulasi tabel. Schema ini berjalan baik di berbagai tipe database yang didukung Laravel dan mempunyai API yang sama di seluruh sistem. |
Configuration Management Features | Seluruh file konfigurasi Laravel disimpan di dalam direktori config. Setiap opsi didokumentasikan dengan baik. Jadi Anda tidak perlu khawatir untuk mengubah setiap konfigurasi yang tersedia. |
E-mail Class | Laravel menyediakan API beberapa library SwiftMailer yang cukup populer dengan koneksi ke SMTP, Postmark, Mailgun, SparkPost, Amazon SES, dan sendmail. Fitur ini memungkinkan Anda untuk mengirimkan email dengan cepat melalui aplikasi lokal maupun layanan cloud. |
Redis | Laravel menggunakan Redis untuk menghubungkan antara sesi yang sudah ada dengan cache general-purpose. Redis terkoneksi dengan session secara langsung. Redis merupakan aplikasi open source yang menyimpan key-value. Redis juga sering dikenal dengan server struktur data yang dapat menyimpan key dengan tipe strings, hashes, lists, sets, dan sorted sets. |
Event and Command Bus | Laravel Command Bus menyediakan metode pengumpulan tugas yang dibutuhkan aplikasi supaya dapat berjalan secara simpel dan perintah yang mudah dimengerti. |
Catatan Penting!
Sampai pada saat tutorial ini dibuat, pengembangan laravel sudah mencapai versi 7.x dan pasti akan rilis versi yang lebih terbaru, tapi jangan khawatir jika pada saat Anda membaca tutorial ini versi laravel sudah lewat dari versi 7.x, Anda tetap masih bisa mengikuti tutorial ini, karena perbedaan dari versi pengembangan laravel tidak akan jauh berdeda dari setiap versi rilisnya.
Tutorial Selanjutnya:
Tutorial Laravel #2: Install Laravel Menggunakan Composer (Windows)
Tutorial Laravel #3: Cara Install Laravel di Linux Mint (Linux)
Leave a Reply