Skip to content Skip to sidebar Skip to footer

Mengapa dan Bagaimana Saya Ingin Belajar Laravel: Catatan Ngoding

Laravel merupakan framework PHP yang membantu developer membangun sebuah web yang berbasis MVC. MVC sendiri adalah konsep Object Oriented Programming atau yang biasa disingkat dengan OOP dalam membangun sebuah web. MVC menerapkan Model sebagai sistem pengolahan databasenya, View sebagai tampilannya, dan Controller sebagai pengendalinya.

Logo Laravel


Pada dasarnya, artikel ini jauh dari niche blog ini. Dimana blog ini cenderung bertemakan dengan pendidikan. Hanya saja, ini adalah blog pribadi. Jadi, menurut saya, sah-sah saja seandainya saya ingin membagikan pengalaman saya dalam masalah ini. Terutama masalah koding


O, ya. Perlu diketahui bahwa sebelum kepada poin yang akan saya sampaikan nanti, bahwa apa yang saya bicarakan ini akan terkesan omong kosong jika Anda memang belum paham mengenai bahasa pemograman web. 

Latar Belakang

Pada kesempatan lain, saya pernah mengawali artikel bagaimana Cara Efektif Belajar Pemograman Webb HTML. Kemudian, saya menyarankan kepada Anda mendalami semua hal yang berkaitan dengan itu. 


Bagi saya, sebagaimana yang dijelaskan pada link tersebut, belajar pemograman webb dari HTML, CSS, dan Javascript saja sudah cukup. Ditambah kemampuan atau pemahaman bagaimana mengolah data API sebagai basis data-nya.


Saya sudah membuktikan itu. Saya berhasil membangun sebuah web yang hanya bermodal pengetahuan itu. Web tersebut dipublikasikan dan dihosting juga. Bahkan sampai saat ini, salah satunya dipakai sebagai Web Aplikasi pengolahan data yang berbasis MBS (Manajemen Berbasis Sekolah).


Sayangnya, yang saya buat tersebut tidak menerapkan konsep OOP. Banyak celah di sana yang mudah sekali disusupi oleh pengguna yang lebih mahir dari saya dalam membangun web. Sebab, apa yang saya buat sifatnya masih terbuka dan mudah dibaca oleh orang lain.


Dari situlah saya berniat untuk mempelajari bagaimana menyusun dan membangun sebuah webb yang sifatnya berbasis server. Dimana webb yang saya bangun memiliki keamanan yang lebih baik. Seperti Cross-Site Request Forgery, fishing, dan lain-lainnya.


Atau setidaknya, apa yang saya bangun untuk web saya tidak mudah ditiru oleh orang lain, terutama konsep pengolahan datanya. Sebab yang saya bangun sifatnya adalah Front-end.


Disinilah saya mulai belajar jalur pemograman Back-end. Saya ingin orang yang selevel dengan saya tidak mudah untuk meniru dan mengacak-acak database webb saya. Maka dari itu, saya belajar mengenai PHP-- salah satu jalur pemograman Beck-end.


Ketika saya sudah mulai paham PHP, ternyata syntax penulisan pemogramannya masih dirasa tidak rapih. Alhasil, saya kebingungan sendiri. Terbukti saat mulai membuat webb hanya berbekal pengetahuan PHP saja, kodingan saya masih berantakkan.


Dari permasalahan itu, saya menemukan informasi bahwa ada konsep MVC. Models, Views, dan Controllers. Dimana konsep tersebut membantu programmer lebih teratur dalam membuat web. Kodingan yang dibuat pun mulai terlihat rapih dan tidak berantakkan lagi. Setidaknya, ini lebih baik daripada saya tidak menerapkan konsep MVC sama sekali.


Sayangnya, untuk bisa memahami konsep MVC, saya harus memahami terlebih dahulu konsep OOP (Object Oriented Programming) untuk PHP. Konsep OOP PHP sendiri merupakan pondasi utama dalam memahami MVC.


Konsep MVS menerapkan Class, Method, Interface, Configurations, dan banyak lainnya yang sebenarnya itu menerapkan konsep PHP. Tapi ini belum cukup. Karena saya merasa masih belum rapih. Kodinganya saya terus berulang-ulang di satu file PHP yang artinya bakal membingungkan jika Webb Aplikasi semakin lebih kompleks.


Maka dari itu, saya menemukan Laravel. Sebagai salah satu framework pemograman PHP yang sudah menerapkan MVS. Di situlah saya menemukan kemudahan-kemudahan dalam membuat webb. Di dalam laravel ada perintah artisan yang membantu programmer membuat file PHP sekaligus template-template yang dibutuhkan.


Di laravel juga ada fitur migrations dimana saya hampir tidak menginput atau mengedit data di Database SQL secara manual. Laravel menyediakan fitur tersebut dengan perintah artisan migrate.


Begitu juga dengan kemudahan lainnya. Saya bisa membangun sebuah webb dimana  Laravel sebagai framework, memberikan kemudahan-kemudahan yang menyenangkan.


Kemudahan-kemudahan tersebut kinerja kita dalam membangun sebuah web tidak lagi dipusingkan. Sebab, di Laravel sudah menyediakan perintah pallet sekaligus template yang programmer bisa mengisinya lebih leluasa.


Mungkin kemudahan tersebut sejalan dengan pengertian framework itu sendiri. Adanya framework tujuan dasarnya adalah membantu dan mempersingkat proses kinerja lebih efektif. Tinggal bagaimana framework tersebut tugasnya adalah mempermudah sang programmer.


Barangkali saya tidak bisa membandingkan dengan framework lain. Seperti Codeigneter misalnya. Meski sama-sama framework untuk PHP, tapi Laravel adalah pilihan pertama saya untuk mempelajarinya. Bahkan pemahamannya masih perdana. Sehingga apa yang menjadi kelebihan dan kekurangan dari masing-mamsing framework tersebut tidak bisa saya sandingkan.


Namun, saya yakin bahwa framework bertugas untuk mempermudah programmer untuk membangun sebuah web. Masing-masing framework tentu memiliki prefrences dari tujuan pembangunan webb kita.


Bagaimana Saya Belajar Laravel

Saat ini, banyak sekali tutorial atau panduan untuk belajar Laravel. Entah dari Youtube atau Web. Bahkan Laravel sendiri memiliki dokumentasi sendiri di situs web utamanya. Sehingga saya bisa mempelajarinya pelan-pelan.


Saya belum ada kebutuhan mendesak tentang itu. Tapi saya berencana mulai mengubah cara saya dalam membangun sebuah webb yang sifatnya bekerja dari server.


Prasyarat utama sebenarnya untuk bisa mempelajari Laravel adalah pemahaman yang kokoh mengenai bahasa pemograman PHP.  Dilanjutkan konsep OOP dan MVC. Satu lagi yang tak kalah pentingnya adalah CSS, Laravel menyediakan framework CSS tersendiri yakni Tailwind. Meski programmer bebas menggunakan framework CSS tersebut atau tidak. Akan tetapi, pemahaman CSS membantu saya dalam membuat tampilan yang responsive.


Kebetulan sekali, saya membangu web tanpa tim atau partner. Saya juga belum pernah berkolaborasi dengan orang lain dalam membangun webb. Jadi, tidak ada pengalaman untuk diceritakan. Mungkin saja ketika sudah bekerja dengan tim, ada bagian tertentu yang dikerjakan oleh orang lain yang mungkin saja itu tidak saya kuasai.


Pada dasarnya, hal-hal yang mesti dikuasai dalam membangun webb dengan Laravel adalah:

Konsep tentang Struktur Folder Laravel

Sebagaimana yang saya sebutkan sebelumnya, laravel menerapkan konsep MVC. Dimana laravel menyediakan direktori khusus untuk masing-masing bagian MVC-nya. 

Konsep tentang Route dan Resource

Route atau penjaluran dalam sebuah webb biasanya tampak pada URL yang dituju. Route juga mengatur aksi-aksi atau event seperti CRUD (create, restore, update, delete) yang semuanya dapat diatur oleh Resources

Konsep tentang Views dan Blade Templating

Salah satu konsep MVC adalah Views. Kita harus tahu dimana direktory dan file Views pada Laravel. Views menerapkan Blade Templating dimana ini semacam compiler syntax PHP dalam menampilkan atau mendeklarasikan suatu variabel. Misalnya syntax {{ $variable }} akan dicompiller menjadi <?php echo;?>

Konsep tentang Models, Database, dan Migration

Konsep ini mulai rumit jika kita mempelajarinya tanpa praktek secara langsung. Models berkaitan dengan pengolahan database dari DBMS SQL kita. Models merupakan salah satu kelas dari masing-masing tables dalam Database. Uniknya, dalam Laravel menyediakan Migration sebagai alternatif programmer membuatkan skema table tanpa harus bekerja di DBMS-nya, misalnya PHP My Admin.

Masih tentang models, database, dan migrations. Pemahaman mengenai factory dan seeder juga akan membantu kita bagaimana membuatkan sebuah analisis data jika data yang kita miliki belum ada. Dengan factory dan seeder menyediakan berbagai alternatif data dummy untuk diinsert pada database. Hal ini sangat berguna bagi kita yang ingin tahu seberapa fungsi atau algoritma yang kita buat untuk data yang lebih banyak.

Konsep tentang Tabel Relationship, Eloquent, Query Clause

Aplikasi web yang pernah saya bikin adalah aplikasi pengolahan data dimana data tersebut memiliki keterhubungan dengan data lain. Data yang saya maksud di sini adalah data yang direprensentasikan dalam bentuk tabel. Kebetulan sekali, saya membuat data dalam bentuk SpredSheet, bukan pengolah data (DBMS SQL).


Disinilah kesabaran kita diuji. Bagi saya yang belum memiliki basic mengenai SQL, tentu akan membingungkan. Meski Laravel menyediakan konsep mengenai Table Relationship, Eloquent, dan Query Clause-nya, tapi pemahaman yang kokoh  mengenai SQL benar-benar diperlukan.


Apalagi seandainya aplikasi webb yang dibangun tersebut berfokus pada sistem pengolahan data. Tentu banyak sekali fungsi atau algoritma yang dibuat, yang pastinya Laravel hanya menyediakan syntax baku untuk saya sesuaikan berdasarkan fungsi atau algoritma yang saya inginkan.


Konsep tentang Authentication dan Authorizations

Karena aplikasi web yang saya buat berbasis pengolahan data. Mau tidak mau, ada hak akses untuk masing-masing user. Alhasil ada beberapa fitur yang boleh diakses dan tidak. Disinilah pemahaman konsep tentang authentication dan authorizations sangat diperlukan.

Belum lagi kalau saya berencana webb aplikasi ini ditautkan dengan monetisasi. Perlu pemahaman ekstra untuk dapat mengakses keseluruhan route yang telah dibuat. Padahal, masing-masing route pada halaman-halaman yang diauthorisasi memiliki konten yang berbeda-beda pula.

Pemahaman mengenai cara memonetisasi webb aplikasi semacam ini pasti perlu pemahaman mendalam. Jika perlu saya harus berkonsultasi pada orang yang mahir di dalamnya.

Namun, apapun itu, entah bertujuan untuk dimonetisasi atau tidak, Authentication dan Authorizations sangat penting untuk dipahami.

Konsep tentang Deploy ke Server/Hosting

Disinilah konsep final itu berakhir. Sampai saat ini, saya belum pernah mendeploy webb Laravel di hosting. Pemahaman mengenai cara menghosting sebuah webb pun masih perdana. 

Banyak sekalil pertanyaan pada diri saya ketika nanti mendeploy Laravel di Hosting. Apakah aplikasi Laravel yang saya bangun kompatibel untuk Shared Hosting atau harus VPS?

Namun, dari berbagai sumber yang saya dapatkan, ada juga yang mendeploy Webb Laravel dengan Shared Hosting.


Sebenarnya masih banyak konsep-konsep yang harus dipelajari lebih mendalam. Saya menyusun konsep yang harus saya pahami lebih mendalam agar saya bisa membangun sebuah webb lebih berguna.

Syahandrian Eda
Syahandrian Eda Seorang pelajar yang tak berhenti untuk belajar

Post a Comment for "Mengapa dan Bagaimana Saya Ingin Belajar Laravel: Catatan Ngoding"