Skip to content Skip to sidebar Skip to footer

Mari Mulai Belajar Laravel

Selama ini, saya membangun beberapa web dengan cara native. Artinya, saya membuat web hanya berdasarkan dari sisi front-end saja. Meski begitu, saya telah berhasil mempelajari dan menerapkan AppScript sebagai API untuk menghubungkan ke sumber datanya. 

Mulai Belajar laravel


Umumnya, web memiliki sumber data yang disebut dengan database. Cara native yang saya lakukan adalah dengan memanfaatkan produk Google SpreedSheet sebagai sumber datanya. 

Google memiliki beberapa produk yang dapat dimanfaatkan untuk membuat semacam sumber data atau database. Seperti yang saya lakukan dalam membuat website itu sendiri. Produk yang dimaksud adalah AppScript dan SpreadSheet. Keduanya saya manfaatkan sebagai database untuk membangun website saya.

SpreadSheet begitu mudah dipahami sebagai sumber data. Karena interface-nya yang memiliki tabsheet bisa diasumsikan sebagai table dalam skema database. SpreadSheet juga dapat dipahami oleh orang awam, karena sifatnya yang tabulasi untuk menyimpan data-datanya.

Awalnya saya berpikir bahwa biarkan sumber data ini bisa diakses dan dibaca oleh orang lain. Sayangnya, berdasarkan pengalaman, pernah ada kasus dimana ada orang lain yang mengacak-acak SpreadSheet itu. Alhasil, website yang saya bangun berantakan.

AppScript menerapkan bahasa pemograman Javascript. Sehingga, bagi saya, cukup untuk digunakan untuk membuat logika pemograman yang diinginkan. 

Sayangnya, penggunaan sumber data dengan menerapkan AppScript dan SpreadSheet kurang begitu aman. Karena metode Request yang diminta siapapun bisa mengaksesnya. Termasuk alamat web yang bukan millik kita. Istilah ini biasa disebut dengan Cross Site Request Forgery (CSRF).

Tanpa keaamanan CSRF, sumber data /database bisa disusupi atau dimasukkan data oleh orang lain tanpa melalui aplikasi kita. Oleh karena itu, saya butuh keaaman yang cukup untuk memproteksi setiap web yang saya bangun.

Selain itu, sumber data yang dibangun dengan menggunakan AppScript dan SpreadSheet tidak bisa dihubungkan relasi antar datanya. Meski bisa saja dibuatkan perintah script untuk membuat itu, tentu ini sangat melelahkan setiap kali membutuhkan relasi antar sumber data. Belum lagi, batasan atau limitasi penggunaan pengambilan data ini (biasanya disebut request API) dibatasi hingga 6 Menit setiap pemanggilan. Sehingga akan mengkhawatirkan ketika pengambilan data ini dalam jumlah yang sangat besar.

Meski sudah 3 tahun menggunakan AppScript dan SpreadSheet sebai sumber data/database, saya selalu menemukan solusi-solusi setiap permasalahan. Misalnya, setiap semester sumber data dialihkan atau dibuat baru. Tentu saja, setiap pembuatan sumber data yang baru, sekaligus membuatkan AppScript-nya.

Bayangkan kalau sudah selama 3 tahun, saya masih tetap menggunakan AppScript dan SpreadSheet, betapa lelahnya saya setiap pergantian semester, selalu membuat skrip-skrip baru.

Oleh karena itu, saya butuh sesuatu yang bisa mengatasi masalah ini. Saya tidak ingin ada kekhawatiran mengenai sumber data website saya bermasalah.  Saya ingin ada kemudahan dalam menghubungkan atau merelasikan antartabel dengan mudah.

Disinilah akhirnya saya memutuskan untuk memilih PHP dan MySQL sebagai pengganti AppScript dan  SpreadSheet. Kemudian saya butuh kerangka kerja/framwork untuk memudahkan saya ketika membangun aplikasi.

Akhirnya, pilihan saya jatuh pada Laravel sebagai framework yang akan saya gunakan dalam membangun sebuah website. Saya berencana membangun sebuah website yang memiliki cakupan yang lebih luas lagi. Tidak hanya dikonsumsi oleh lingkungan kerja saja, tetapi saya ingin membangun website yang dapat diakses oleh siapa saja. Bahkan mungkin, digunakan oleh ribuan atau jutaan orang. Hehe ....


APA ITU LARAVEL DAN MENGAPA LARAVEL?

Sebagaimana yang saya sebutkan sebelumnya bahwa Laravel merupakan suatu kerangka kerja/framework untuk membangun website. Framework ini diciptakan oleh Taylor Otwell yang juga merupakan salah satu pendiri Redit juga. 

Saya sebenarnya baru di dunia pemograman PHP dan MySql. Sebab selama ini saya terbiasa dengan pemograman Javascript (vanilla Javascript). Atas tuntutan itu, saya menyelami dulu konsep-konsep yang ditawarkan oleh PHP dan  MySql. Mulai dari pemahaman mengenai cara installasi hingga proses deployment-nya. Kemudian memahami konsep Object Oriented Programming yang ditawarkan PHP sebagai konsep dasar cara kerja framework-framework yang ada.

Laravel memiliki komunitas yang cukup besar untuk dijadikan sumber refrensi. Banyak para programmer yang membagikan tutorialnya dalam menggunakan Laravel. Selain itu, Laravel juga memiliki Starter Kit yang lumayan ampuh untuk membangun aplikasi web. Sehingga saya merasa terbantukan dengan adanya sumber daya ini dari Laravel dalam membangun aplikasi web.

PHP merupakan bahasa pemograman berbasis server. Artinya, pengolahan dan pemograman data diatur di sisi server. Sumber data yang digunakan untuk menyimpan dan menampilkan datanya adalah SQL. Sehingga, untuk masalah relasi antar sumber data tabel cukup mudah dilakukan. Hebatnya lagi, di Laravel menerapkan Eloquent ORM sebagai penanda dan pengatur relationshipnya.

Masih banyak lagi sebenarnya yang ditawarkan oleh Laravel. Selain komunitasnya yang lumayan besar, package-package yang dibutuhkan oleh saya juga lumayan banyak. Sehingga, alasan saya jatuh pada penggunaan framework pertama kali adalah pada Laravel.


KEKHAWATIRAN DI LARAVEL

Sebagai pengguna baru di Laravel tentu saya memiliki kekhawatiran dalam membangun website. Misalnya saja, ketika web dibangun di sisi server, bagaimana kalau nanti website-nya terjadi trafic atau server down. Apakah hosting dan server yang saya sewa cukup memfasilitasi permasalahan trafic atau server down. Begitu juga dengan database sumber data yang saya miliki. Bagaimana tiba-tiba database yang saya miliki rusak/terhapus? Begitu seterusnya mengenai kekhawitran saya ini.

Dari berbagai sumbebr, Laravel cukup bagus untuk di deploy pada hosting yang memiliki kapasitas VPS. Lebih bagus lagi seandainya ditempatkan pada Cloudhosting. Sayangnya, Cloudhosting cukup mahal untuk saya yang hanya sekadar untuk pembuatan aplikasi kecil-kecilan. Sementara itu, saya terbiasa berlangganan hosting yang bertipe Shared Hosting.

Saya berencana untuk menguji tempat penyewaan hosting dan server untuk mendeploy aplikasi website yang memiliki cakupan luas dengan menerapkan Laravel. Apakah kekhawatiran saya ini terbukti atau tidak.

Jika memang terbukti namun website saya cukup berhasil menarik minat target pengguna yang diinginkan, mungkin akan saya pikirkan untuk menggunakan VPS atau sekalian Cloud Hosting.


CARA SAYA BELAJAR LARAVEL

Banyak sekali refrensi untuk belajar Laravel. Di website resminya, Laravel menyediakan dokumentasi yang lengkap bagi penggunanya. Laravel juga memiliki forum resmi bernama Laracast sebagai tempat untuk mengetahui setiap informasi mengenai Laravel.

Belum lagi, banyak programer yang mendedikasikan dirinya untuk membuatkan tutorial penggunaan Laravel melalui kanal Youtube.

Kemudian, dengan alasan bahwa saya berencana membuat sebuah proyek dengan skala yang lebih besar lagi dari sebelumnya, saya akna menyelami lebih jauh mengenai Laravel. Tentu saja beberapa pemahaman dasar sangat dibutuhkan. Harus bisa menyelesaikan banyak studi kasus dari setiap alur pemograman yang ingin dibuat agar dapat menerapkan Laravel sebagai framework dalam membangun website nantinya.

Oleh karena itu, saya mengarsipkan beberapa pemahaman saya mengenai Laravel melaui catan ini. Mungkin saja saya hasil pemahaman saya itu akan didokumentasikan dalam bentuk video lalu diunggah di kanal Youtube agar mudah dipahami. 

Namun, sebelum semua itu dilakukan saya mencoba mensiasati diri dalam menguasai Laravel dengan cara belajar berikut ini:


1. SELALU MERUJUK PADA DOKUMENTASI RESMI LARAVEL


Dokumentasi resmi Laravel berisi informasi yang cukup untuk memahami bagaimana Laravel bekerja. Best Practice dalam penulisan dan pemograman yang disarankan oleh Laravel akan menjadi tolok ukur keberhasilan dalam mempelajari Laravel.

Mungkin beberapa dokumentasi membutuhkan penjelasan lebih mendalam. Seperti yang sudah saya alami sebelumnya. Saya pernah mengalami kesulitan dalam memahami dokumentasi resmi di beberapa dokumentasi. 

Misalnya, pada awal mula mempelajari Laravel saya kesulitan mengenai dokumentasi pada masalah Eloquent ORM/Relationship. Saya hanya memiliki pemahaman singkat saja mengenai ini. Bahwa Relationship berkaitan dengan database dan relasinya. Lalu, saya bertanya-tanya dalam diri saya mengenai bagaimana caranya mengambil data relasi ini. Bagaimana proses penginputannya, bagaimana dengan validasi-nya, dan lain sebagainya.

Sampai dimana saya mencari rujukan lain agar dapat memahami semua itu. Tentu saja dengan memanfaatkan mesin pencarian sudah cukup membantu mengatasi masalah ini. 

Oleh karena itu, tidaklah cukup jika hanya melihat dokumentasi resmi saja. Kita butuh informasi lain agar pemahaman mengenai bagian dokumentasi itu lebih kokoh. 


2. YOUTUBE, STAKEOVERFLOW, GOOGLE

Sudah menjadi hal umum bagi setiap orang bahwa setiap informasi yang kita butuhkan dapat dicari di internet melaui mesin pencarian seperti Google. Jika ingin mencari tutorial, umunya orang akan mencari informasi dalam bentuk video dan Youtube sudah cukup familiar dengan kita. Stakeoverflow merupakan forum diskusi terbesar bagi para programmer untuk mencari pemecahan masalah mereka.

Saya sendiri melakukan semua itu untuk menambahkan pemahaman saya mengenai Laravel. Di Youtube misalnya, ada banyak sekali kanal Youtube yang benar-benar membahas Laravel. Bahkan Laravel memiliki kanal Youtube resminya sendiri. 

Tidak hanya Youtuber dari luar negeri, youtuber dari Indonesia pun cukup banyak membahas mengenai Laravel ini. Dari berbagai pengalaman setiap pencarian informasi tambahan mengenai Laravel, saya berlangganan (subcribe) beberapa kanal youtube sebagai pembahasan tambahan mendalami Laravel. Berikut adalah rujukan kanal youtube yang biasa saya kunjungi:

  1. Parsinta
  2. Web Programming Unpas
  3. Programming Zaman Now
  4. Cara Fajar
  5. Programming Di Rumah Rafif
  6. Mulai dari Null
  7. Laravel Daily
  8. Dan masih banyak lagi sebenarnya, akan saya update jika perlu


3. MENDOKUMENTASIKAN CARA BELAJAR SAYA

Seperti yang Anda baca di catatan ini. Ini adalah salah satu bentuk saya belajar. Saya  mendokumentasikan segala hal mengenai informsi tentang Laravel di sini. Catatan di artikel ini adalah catatan perdana. Namun, tidak menutup kemungkinan akan saya buatkan artikel-artikel lain dalam membahas Laravel.

Selain dalam bentuk catatan di Ms Word, saya juga mendokumentasikan pemahaman saya dalam bentuk slide di Powerpoint. Dokumentasi dalam bentuk slide cukup untuk mendokumentasikan dalam bentuk visualisasi sederhana mengenai konsep yang ada di Laravel.

Saya juga tertarik untuk mendokumentasikan dalam bentuk video. Alih-alih untuk mengarsipkan hasil pemahaman saya mengenai Laravel, tentu ada keuntungan tersendiri untuk membangun kanal Youtube pribadi agar tidak terlalu sepi. Bisa jadi jika memang beruntung, cukup untuk mendatangkan sponsor, bukan? Hehe....

4. BELAJAR BANYAK DARI STUDI KASUS ATAU PROYEK

Biasanya, saya tertantang untuk mempelajari suatu hal itu karena ada proyek yang ingin saya kerjakan/buat. Seperti saat ini, saya tertantang untuk membuat aplikasi web berbasis Laravel. Proyek ini tentu memiliki skenario pemograman yang ingin dijalankan. Jika skenario pemograman itu kompleks, tentu saya harus memahami betul mengenai studi kasus yang saya pecahkan.

Misalnya, proyek saya itu menginginkan sistem login dengan skenario harus melalui verifikasi email. Maka saya butuh pemahaman mendalam mengenai best practice¬ mengenai masalah ini. Kemudian, dengan cara belajar yang sebelumnya saya sebutkan sebelumnya, saya mencoba menelusuri berbagai macam contoh atau studi kasus. Dalam hal ini, saya mencoba mendalami Laravel Breeze.

Setelah dirasa cukup memahaminya, saya mendokumentasikan hasil pemahaman saya itu dalam bentuk catatan atau bentuk lainnya.


5. BUAT FLOWCHART SETIAP PERJALANAN ALUR LARAVEL

Bagi saya,, memahami suatu alur atau perjalanan dari mana atau bagaimana aplikasi itu bekerja lebih mudah dipahami dengan membuat FlowChart-nya. FlowChart merupakan sistem visuasliasi dalam bentuk diagram/bagan untuk menjelaskan suatu proses. Setiap bentuk bangun menandai suatu proses atau keterangan dari sistem tersebut.

Oleh karena itu, ketika saya ingin mempelajari salah satu konsep di dalam Laravel, saya buatkan FlowChart-nya. Kemudian dibuatkan deskripsi dari FlowChart tersebut.

Ada beberapa aturan dalam membuat bagan ini. Saya mengambil beberapa rujukan yang nantinya akan menjadi sesuatu yang akan terus ditampilkan di setiap catatan saya nantinya.

 

PREREQUESITE DAN SOFTWARE YANG DIBUTUHKAN

Sebelum memahami dan menerapkan Laravel, ada beberapa pemahaman dan software yang dibutuhkan. Istilah Prerequest Site merupakan istilah programer untuk menjelaskan pemahaman apa yang dibutuhkan sebelum memahami suatu program atau framework.

Menurut Sandika Galih melalu kanal youtube-nya Web Programming Unpas, beberapa persyaratan atau prerequest site sebelum memahami Laravel pernah disebutkan di salah satu playlist-nya. Di sini, dengan menambhkan informasi dari Pak Sandhika Galih, saya membuatkan prerequestsite sebagai berikut:

  1. HTML, CSS, Javascript
  2. PHP
  3. OOP PHP
  4. MySQL
  5. Node js
  6. Preprocessor Style (SASS)
  7. Git & Gitbash (Git Lab)
  8. SSH (kepentingan deployment di hosting/server)

Software yang harus terinstall di komputer kita untuk bekerja dengan Laravel adalah (contoh ini di OS Windows):

  1. PHP (pastikan yang terbaru)
  2. XAMPP
    • a. MySQL
    • b. Apache
  3. Node JS/NPM
  4. Composer
  5. Git & Gitbash
  6. Visual Studio Code (Text Editor)
    • a. Plugin PHP Intelephens
    • b. Namespace resolver
    • c. Dll
  7. Putty (SSH connector) / Termiux

Selain itu, agar terkoneksi dengan beberapa fitur Laravel sangat disarankan memiliki bebearapa akun di beberapa penyedia layanan web.

1. Akun Github

2. Akun Putty/Termiux

3. Akun Pusher/Ably

4. Akun Mail (GMail, MailTrap, dll)

5. Akun SSH Hosting

6. Akun Firebase (jika perlu)

Pengaturan lainnya:

Ada beberapa pengaturan tambahan bagi saya yang menggunakan Sistem Operasi Windows (Sebenarnya tidak hanya OS Windows saja, OS lainnya pun sama). Misalnya, mensetting Variable Environtment di komputer kita. Hal ini digunakan untuk mengatur proses pengaturan server lokal sebagai proses untuk menjalankan Laravel.


Syahandrian Eda
Syahandrian Eda Seorang pelajar yang tak berhenti untuk belajar

Post a Comment for "Mari Mulai Belajar Laravel"