1. Pengenalan Laravel
Laravel merupakan salah satu Framework PHP yang open
source dengan tujuan mengembangkan aplikasi berbasis web
ber-arsitektur MVC (Model-View-Controller). Fitur yang dimiliki oleh
laravel yaitu desain yang modular, memiliki berbagai cara yang bisa
digunakan untuk mengakses database sehingga memudahkan
developer dalam mengembangkan aplikasinya atau maintenance
hanya dengan sintaks yang pendek dan mudah dipahami. Fitur utama
yang ada pada Laravel:
3
fungsionalitas website yang dibangun, serta
mempermudah proses update.
4
sorted set atau dikenal dengan redis.
5
file atau folder mana yang harus diabaikan
pada suatu proyek, biasanya ditempatkan
pada direktori root proyek.
6
yarn.lock Memudahkan user dalam menambahkan
modul baru. Package management yarn.lock
adalah yarn.
2. Syntax Laravel
Syntax pada Laravel dapat dilihat dengan mengetikkan atau
menulis ‘php artisan list’ pada terminal. Terdapat beberapa syntax
yang sering digunakan, diantaranya:
7
3. Migration
Migration dapat dikatakan sebagai kontrol versi database karena memungkinkan untuk
mengubah skema atau relasi database aplikasi sesuai dengan apa yang ada di folder migration.
Untuk membuat migration dapat menggunakan command artisan:
8
Untuk tipe data pada migrations untuk schema dapat dilihat pada
https://laravel.com/docs/9.x/migrations#available-column-types. Selain artisan
command untuk membuat migration, terdapat beberapa artisan command yang lain
terkait dengan migration, diantaranya:
9
Sedangkan untuk penamaan Model, nama yang disepakati adalah berbentuk
Singular, sehingga untuk tabel buku tadi, nama kelas model yang dibuat adalah
Book, tiap Model dalam laravel mencerminkan atau mewakili nama tabel yang
ada di database, dengan pengaturan bawaan sebagai berikut: Jika nama class
Model adalah Book, maka tabel yang diwakili oleh class Model tersebut adalah
tabel dengan nama books (Nama class model + huruf s plural).
Jika terdapat kasus dimana nama model tidak sesuai dengan diatas (misal
nama table di database adalah books namun class model yang terbentuk
adalah book tanpa tambahan s plural), gambaran ketika execute php artisan
make:model book (usahakan untuk menggunakan huruf kapital dalam
pembuatan model):
10
b. Penamaan Migration dengan Seeder:
Jika semisal memang anda menggunakan seeder pada migrations, kalian
dapat menggunakan php artisan migrate:refresh --seed untuk melakukan
generate pada database. Seperti contoh:
11
4. Seed
12
7. CSRF Token
Karena token ini disimpan dalam sesi pengguna dan berubah setiap kali sesi
dibuat ulang, aplikasi berbahaya tidak dapat mengaksesnya. Setiap kali Anda
menentukan formulir HTML "POST", "PUT", "PATCH", atau "DELETE" dalam aplikasi
Anda, Anda harus menyertakan bidang token CSRF tersembunyi dalam formulir
sehingga middleware perlindungan CSRF dapat memvalidasi permintaan. Untuk
kenyamanan, Anda dapat menggunakan direktif @csrf Blade untuk menghasilkan
bidang input token tersembunyi:
8. SQL Injection
13
aman untuk bekerja dengan SQL. Namun, masih ada baiknya belajar tentang apa
yang tidak tercakup. Teruslah membaca untuk mempelajari tentang beberapa kasus
penggunaan dan fitur di Laravel yang dapat membuat aplikasi Anda terkena SQL
Injection.
SQL injection terjadi ketika ada input pengguna yang tidak difilter masuk ke
dalam query SQL. Tujuannya untuk mengakses,memodifikasi atau bahkan merusak
data dan terkadang mengganggu fungsi normal dari aplikasi. Input pengguna ini bisa
berasal dari cookie, variabel server, dan yang paling sering, melalui nilai input GET
atau POST. Salah satu yang rawan yaitu menggunakan DB::raw ketika kita ingin
membuat query yang lebih kompleks misal :
Untuk melindungi query ini dari SQL injection, gunakan parameter dengan
tanda tanya pada query kemudian melewati value dalam array sebagai argumen
kedua pada metode raw.
9. Contoh Soal
14
a. Buat Project
15
File ini berada pada resources > views > layouts > app.blade.php
d. Pembuatan Model
16
Lokasi model berada di app/Http/Models
17
Catatan: guarded adalah kolom yang tidak dapat diisi, sedangkan
fillable adalah kolom yang dapat diisi.
e. Pembuatan Migrations
18
Di sini kita dapat mengkonfigurasi data apa saja yang ingin kita buat
yang nantinya akan ditambahkan di database
19
Kemudian, jalankan command: php artisan migrate
20
Setelah di-migrate, maka akan ada kolom yang otomatis akan
ditambahkan di database.
f. Menambahkan Route
b. Cek Route
21
Buat view sesuai dengan kebutuhan. Berikut merupakan contoh
dalam mengkonfigurasi templating pada project Laravel.
22
Gambar tersebut contoh susunan folder pada views
TIPS :
1. Pilih kerangka file yang tidak berubah contohnya adalah
tampilan navbar untuk dijadikan layoutnya
2. Gunakan folder untuk memisahkan file template dengan file
view lainnya
h. Membuat Controller
23
function create berfungsi untuk menampilkan tampilan view. Pada
gambar tersebut terdapat contoh menampilkan view addInventory di
folder inventory.
24
Fungsi read/index digunakan untuk menampilkan data pada tampilan
● View
File ini dibuat di direktori resource > views > layouts >
editInventory.blade.php
● Controller
File ini dibuat di direktori app > Http > Controllers >
InventoryController.php
1. Pembuatan function edit
25
l. Pembuatan fungsi Delete
26
5. MVC (Model-View-Controller)
27
A. Model
Model adalah komponen yang bertanggung jawab atas
pemrosesan data dan interaksi dengan basis data. Model digunakan
untuk mengelola operasi-operasi dasar seperti pengambilan,
penyimpanan, pembaruan, dan penghapusan data. Model juga dapat
berisi aturan validasi untuk memastikan data yang dimasukkan ke
dalam basis data memenuhi persyaratan tertentu.
Laravel menyediakan perintah Artisan yang memudahkan
pembuatan model. Kalian dapat menggunakan perintah berikut
menggunakan terminal pada direktori projek Laravel kalian untuk
membuat model baru:
28
● Di dalam model, kita mendefinisikan nama tabel yang sesuai
dengan model ini menggunakan $table.
● $fillable mengizinkan kita untuk menentukan kolom mana yang
dapat diisi secara massal, yang berguna saat menyimpan data dari
formulir.
● $rules adalah aturan validasi yang digunakan saat memvalidasi
data sebelum disimpan ke basis data.
● Terdapat contoh relasi model dengan model lain menggunakan
metode hasMany. Dalam contoh ini, satu produk dapat memiliki
banyak ulasan (Review).
Model dalam Laravel sering kali memiliki hubungan atau relasi
dengan model lain dalam basis data. Berikut adalah beberapa jenis
relasi yang dapat didefinisikan dalam model:
1) One-to-One (Satu-satu): Ketika setiap baris dalam model
memiliki satu baris terkait dalam model lain.
2) One-to-Many (Satu-ke-Banyak): Ketika setiap baris dalam
model memiliki banyak baris terkait dalam model lain.
3) Many-to-Many (Banyak-ke-Banyak): Ketika banyak baris
dalam model memiliki banyak baris terkait dalam model lain.
Dalam contoh sebelumnya, kita menggunakan relasi hasMany
untuk menunjukkan bahwa model “Product” memiliki banyak ulasan
(Review). Ini memungkinkan kita untuk dengan mudah mengakses
ulasan yang terkait dengan produk tertentu.
B. View
View adalah komponen yang bertanggung jawab untuk menampilkan
data dan antarmuka pengguna kepada pengguna akhir. View dalam
Laravel menggunakan Blade (templating engine bawaan) yang
memungkinkan Anda untuk membuat tampilan yang dinamis dengan
mudah. Blade sendiri adalah tipe file gabungan antara HTML dengan
PHP.
● Membuat view
Buat file Blade baru dalam direktori
“resources/views”. Misalnya, jika kalian ingin membuat view
29
untuk halaman beranda, buat file bernama “home.blade.php”
dalam direktori tersebut. Dalam file view, kalian dapat
menentukan tampilan HTML, CSS, dan JavaScript yang ingin
kalian tampilkan kepada pengguna. Kalian juga dapat
menggunakan sintaks Blade untuk menambahkan logika
dinamis ke dalam tampilan.
● Memanggil view
Untuk memanggil view dapat dilakukan di dalam file
“web.php” yang ada di direktori “resources/routes”. Kalian
dapat menggunakan fungsi view() yang fungsinya untuk
mengembalikan objek view yang kemudian dapat digunakan
untuk menampilkan tampilan ke pengguna.
30
Berikut ini adalah contoh kode untuk sebuah view
Blade sederhana yang menampilkan daftar produk:
31
Nama 'content' adalah nama dari section, yang harus
sesuai dengan nama yang telah didefinisikan dalam
layout.
3. @yield('nama_section', 'default_content')
Perintah @yield digunakan dalam layout utama
untuk menentukan area yang akan diisi dengan konten
dari view yang sedang di-extend. Kalian juga dapat
memberikan konten default yang akan digunakan jika
tidak ada view yang mengisi area ini.
32
C. Controller
Controller adalah komponen yang bertanggung jawab atas
mengendalikan logika aplikasi. Controller berperan sebagai perantara
antara model (untuk mengakses dan memanipulasi data) dan view
(untuk menampilkan data kepada pengguna). Controller mengatur alur
aplikasi dan menangani permintaan HTTP dari pengguna. Untuk
membuat controller baru di Laravel, kalian dapat menggunakan
perintah Artisan berikut pada terminal:
33
Mari kita bahas penjelasan lebih lanjut untuk struktur
dasar controller di atas:
1) Namespace
Pada baris pertama, kita mendefinisikan
namespace yang menunjukkan lokasi controller ini
dalam struktur direktori aplikasi kita. Dalam contoh ini,
controller berada dalam namespace
“App\Http\Controllers”, yang sesuai dengan direktori
“app/Http/Controllers” dalam proyek Laravel standar.
2) Ekstensi Controller
Pada baris ke-5, controller ini meng-extend
(mewarisi) kelas dasar Controller yang disediakan oleh
Laravel. Ini memberikan akses ke berbagai fitur dan
metode yang berguna yang dibutuhkan dalam
pengembangan web, seperti metode view() dan
redirect(). Ekstensi ini juga mengatur berbagai fitur
lainnya yang dibutuhkan untuk mengelola permintaan
HTTP.
3) Metode Controller
Setiap metode dalam controller mewakili
tindakan yang akan dijalankan saat rute tertentu
diakses. Dalam contoh di atas dari baris ke-8 sampai
26, terdapat empat metode yang menangani jenis
permintaan HTTP yang berbeda:
A. index(): Metode ini digunakan untuk menangani
permintaan HTTP GET. Biasanya, ini digunakan
untuk menampilkan data atau tampilan
halaman.
B. store(Request $request): Metode ini
digunakan untuk menangani permintaan HTTP
POST, yang biasanya digunakan untuk
menyimpan data yang dikirimkan dari sebuah
form.
34
C. update(Request $request, $id): Metode ini
digunakan untuk menangani permintaan HTTP
PUT atau PATCH, yang digunakan untuk
memperbarui data dengan ID tertentu. $id
adalah parameter yang digunakan untuk
mengidentifikasi data yang akan diperbarui.
D. destroy($id): Metode ini digunakan untuk
menangani permintaan HTTP DELETE, yang
digunakan untuk menghapus data dengan ID
tertentu.
● Routing ke Controller
Untuk menghubungkan rute (URL) dengan
metode-metode dalam controller, kalian dapat mendefinisikan
rute dalam file “routes/web.php” atau “routes/api.php”.
35
Berikut adalah beberapa contoh metode rute (routes)
dalam Laravel:
1. GET
36
4. PATCH
37
6. CRUD (Create - Read - Update - Delete)
CRUD adalah singkatan dari Create, Read, Update, dan Delete, yang
merupakan empat operasi dasar dalam pengelolaan data dalam aplikasi.
Dalam konteks pengembangan web dengan Laravel, CRUD merujuk pada
proses membuat, membaca, memperbarui, dan menghapus data dari basis
data. CRUD dalam Laravel berada di dalam sebuah Controller.
A. CREATE
Proses "Create" melibatkan penambahan data baru ke dalam
basis data. Biasanya sering terjadi melalui formulir yang diajukan oleh
pengguna.
B. READ
Proses "Read" melibatkan penampilan data yang sudah ada
kepada pengguna. Ini mencakup operasi pencarian dan tampilan
data.
38
C. UPDATE
Proses "Update" melibatkan perubahan data yang sudah ada
dalam basis data. Pengguna dapat mengedit data yang ada dan
menyimpan perubahan tersebut.
39
D. DELETE
Proses "Delete" melibatkan penghapusan data dari basis data.
Data yang tidak lagi diperlukan atau diinginkan dapat dihapus.
40
Daftar Pustaka
41