Tujuan utama dari framework (di bahasa pemrograman apapun) adalah untuk menghindari kebiasaan pemrograman yang buruk. Dengan menggunakan framework, secara tidak langsung kita telah dipaksa untuk mengikuti aturan coding yang telah ditetapkan oleh si pembuat framework, misal : mekanisme login, interaksi dengan database, menampilkan data ke layer presentasi dan lain-lain. Seluruh aspek tersebut tidak bisa dibuat sesuka hati dan format Gue lagi, melainkan wajib mengikuti aturan framework.

Beberapa kebiasaan pemrograman buruk, antara lain : copy-paste baris kode yang sama berulang kali untuk modul yang sama, tidak memberlakukan validasi data sehingga user bisa bebas meng-input karakter HTML entities, tidak menerapkan prepared statements sehingga aplikasi web yang dibangun menjadi rawan terhadap serangan SQL Injecion dan masih banyak lagi. Memang benar, hal tersebut dapat diatasi tanpa framework, tapi masalahnya, butuh waktu berapa lama untuk membangun fondasi yang benar-benar stabil dan aman? Kalau saya, mending memilih framework yang populer dan jelas teruji-nya.

Tidak hanya soal kebiasaan pemrograman yang buruk, aturan baku pemrograman dari framework juga dapat membantu pekerjaan yang dilakukan secara tim. Setiap developer yang tergabung di dalam tim akan lebih mudah memahami alur dan struktur project aplikasi karena pola pemrograman yang diterapkan seragam, tidak mungkin berbeda antara satu developer dengan developer lainnya. Hal ini tentunya diharapkan mampu meningkatkan produktivitas secara keseluruhan.

Mengenal Laravel

Sebagai bahasa pemrograman yang tergolong tua tapi masih populer (bahkan sangat populer), tidak heran jika PHP memiliki banyak pilihan framework, sebut saja Symfony, CodeIgniter, Yii, Zend, Cake PHP, Phalcon PHP, Slim dan Laravel. Namun di antara ke delapan framework tersebut, saat ini Laravel “mungkin” adalah yang paling terang sinarnya, hal tersebut setidaknya tercermin dari jumlah rating bintang di GitHub dan grafik Google Trends. Mayoritas lowongan kerja programmer PHP yang sering saya temukan pun juga tidak jauh-jauh dari kalimat “Wajib Menguasai Laravel”.

Laravel dibuat oleh Taylor Otwell (seorang veteran .NET yang tidak perlu diragukan rekam jejaknya), pertama kali diperkenalkan ke publik pada tanggal 9 Juli 2011. Laravel mengusung arsitektur MVC (Model – View – Controller) yang memisahkan “secara ketat” antara business logic dengan user interface. Model mengacu ke data, View mengacu ke lapisan presentasi / tampilan, sedangkan Controller mengacu ke business logic. Mudahnya, goal utama dari MVC adalah agar perubahan kode yang dilakukan pada satu elemen tidak akan berpengaruh sama sekali ke elemen lainnya.

Beberapa fitur unggulan Laravel, antara lain : Dependency Management, Modularity, Authentication, Caching, Routing, Restful Controllers, Testing – Debugging, Template Engine, Database Query Builder, Eloquent ORM, File System, Security, Artisan, Migration System, Envoy dan Localization. Selain fitur-fitur tersebut, hal yang kalah penting lainnya adalah Laravel memiliki syntax yang expressive (mudah diartikan maksud penulisan kode-nya) dan dokumentasi super lengkap yang juga mudah dipahami (bagi yang sudah familiar dan paham cara kerja framework maksudnya).

Belajar Laravel

Sebelum mulai, mungkin ada yang bertanya, apakah harus mahir PHP kalau ingin belajar Laravel? Sebenarnya memang akan lebih baik jika sudah menguasainya terlebih dahulu, tapi jika belum pun, tidak masalah. Asalkan Anda tahu beberapa hal-hal dasar dari PHP seperti : penulisan syntax, deklarasi variabel, echo, tipe data, string, operator, if-else-elseif, looping, fungsi dan juga array. Sekali lagi, tidak wajib fasih, minimal sekedar tahu dulu maksud dari dasar-dasar tersebut. Saya rasa itu sudah cukup sebagai modal awal untuk belajar Laravel.

Setelah sedikit perkenalan tentang PHP dan Laravel, saya yakin Anda pasti sudah semakin tidak sabar untuk segera mulai belajar Laravel. Tapi tunggu dulu, ada yang perlu digaris-bawahi sebelumnya. Di sini kita tidak akan belajar cara membangun aplikasi web secara keseluruhan dengan MVC-nya Laravel, melainkan Laravel hanya digunakan sebagai REST API di sisi backend, lalu frontend alias view-nya menggunakan framework Javascript bernama Vue.js (tidak ada hubungannya sama sekali dengan PHP). Konsep pemisahan backend dan frontend ini dikenal sebagai pola desain BFF (The Backend for Frontend).

Loh memangnya REST API itu apa? Lalu apalagi itu BFF? Wah banyak banget sih istilah-istilah seramnya? Tenang, jangan khawatir, untuk sementara simpan dulu semua pertanyaan Anda. Sebab untuk memahami konsep dari REST API dan BFF dibutuhkan contoh yang cukup komprehensif. Lebih baik, sekarang siapkan hal-hal berikut untuk mulai belajar :

  • Editor (favorit saya untuk PHP adalah Sublime Text)
  • PHP versi 7.2 ke atas dan PHP Composer.
  • Postman untuk mengecek output API dari Laravel.
  • Web Browser (favorit saya adalah Google Chrome)
  • Sistem Operasi (disarankan Linux / MacOS)

Materi Dasar Belajar Laravel

Semua materi tahap dasar (Laravel versi 6) yang saya susun disertai contoh kode program dan gambar (beberapa dalam animasi GIF). Pembahasan materi akan terus saya perbarui mengikuti versi Laravel terbaru (jika diperlukan).

  1. Cara Install Apache, PHP, MySQL di macOS dan Linux
  2. Cara Install Laravel dengan Composer
  3. Lumen Laravel untuk Pembuatan REST API di Sisi Backend
  4. Menggunakan Router dan Controller di Lumen Laravel
  5. Membuat Database Schema dengan Migrations Lumen Laravel
  6. Menggunakan Eloquent ORM Lumen Laravel

Praktek Membuat Single Page Application

Untuk dapat mempelajari materi ini, sangat disarankan Anda telah memiliki dasar pengetahuan teknologi frontend yang memadai. Salah satu teknologi frontend yang sangat populer dan sedang naik daun selama dua tahun terakhir adalah Vue.js – disebabkan oleh pertumbuhan pengguna-nya yang terus melesat tajam. Jika tertarik, ada lebih dari dua puluh materi dasar tentang Vue.js yang telah saya tulis dan dapat Anda baca di Belajar Vue.js.

  1. Membuat Single Page Application dengan Vue.js Lumen
  2. Autentikasi Vue.js dengan JWT Lumen