Anda di halaman 1dari 41

2

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:

Blade Template Blade adalah template engine yang digunakan


Engine untuk mendesain layout yang unik dan dapat
digunakan di tampilan lain sehingga terdapat
konsistensi desain dan struktur selama proses
pengembangan.

Kelebihan yang dimiliki blade, yaitu tidak


adanya batasan penggunaan kode PHP
biasa bagi pengembang dalam tampilan dan
desain tampilan blade akan berada di-cache
hingga adanya modifikasi.

CSRF Laravel membantu melindungi aplikasi dari


serangan lintas situs (CSRF) dimana perintah
yang tidak sah dilakukan atas nama pengguna
yang di autentifikasi. “Token” CSRF otomatis
dihasilkan oleh Laravel untuk memverifikasi
pengguna benar-benar membuat permintaan ke
aplikasi.

Routing Request yang ada pada Laravel dipetakan


dengan bantuan route. Routing merupakan
pemetaan rute request ke kontroler terkait
yang dapat mempermudah dalam
mengembangkan website dan meningkatkan
performanya.

Ada tiga kategori pada routing:


basic routing, route parameters, dan named
routes.

Modularity Pada Laravel terdapat kumpulan modul dan


library yang terkait dengan composer untuk
membantu pengembang dalam
menyempurnakan dan meningkatkan

3
fungsionalitas website yang dibangun, serta
mempermudah proses update.

Testability Laravel memiliki fitur proses pengecekan yang


cukup lengkap. Adanya PHPUnit dan file
phpunit.xml yang membantu proses
pengecekan dengan menyesuaikan aplikasi
web yang sedang dibangun. Laravel dibangun
menggunakan metode pembantu yang nyaman
sehingga memungkinkan pengembang untuk
melakukan pengujian 4 website secara
ekspresif.

Query Builder Laravel database query builder menyediakan


And ORM antarmuka untuk membuat dan menjalankan
(Object database query dapat digunakan untuk
Relational menjalankan berbagai operasi database di
Mapping) dalam website, serta mendukung berbagai
sistem database.

Authentication Seluruh proses konfigurasi otentikasi yang ada


pada Laravel sudah berjalan secara otomatis.
Bisa dilihat pada file konfigurasi otentikasi atau
‘config/auth.php’, di dalamnya terdapat
beberapa opsi otentifikasi yang sudah
terdokumentasikan dengan baik dan dapat
disesuaikan 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 Seluruh file konfigurasi Laravel disimpan di


Management dalam direktori config. Setiap opsi
Features didokumentasikan dengan baik sehingga dapat
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 yang
memungkinkan untuk mengirimkan email
dengan cepat melalui aplikasi lokal atau melalui
layanan cloud.

Redis Server struktur data yang dapat menyimpan key


dengan tipe strings, hashes, lists, sets, dan

4
sorted set atau dikenal dengan redis.

Ini merupakan aplikasi open-source yang


menyimpan key-value dan menghubungkan
antara sesi yang sudah ada dengan cache
general-purpose. Redis terkoneksi dengan
session secara langsung.

Event and Laravel Command Bus menyediakan metode


Command Bus pengumpulan tugas yang dibutuhkan aplikasi
supaya dapat berjalan secara simpel dan
perintah yang mudah dimengerti.

Pada Laravel terdapat root directory yang didalamnya terdapat


beberapa folder inti, di antaranya app, bootstrap, config, database,
public, resources, routes, storage, tests, dan vendor.

Kemudian, ada beberapa file yang berpengaruh terhadap sebuah


pengembangan website menggunakan framework laravel, di
antaranya:

Git ignore Merupakan file teks yang memberitahu Git

5
file atau folder mana yang harus diabaikan
pada suatu proyek, biasanya ditempatkan
pada direktori root proyek.

.env Digunakan untuk mengatur konfigurasi dari


environment. Jika tidak ada, dapat menyalin
file .env.example lalu diberi nama .env dan
pastikan sudah terdapat variabel APP_KEY.
Jika belum ada, dapat melakukan generate
key atau php artisan key:generate.

.htaccess Merupakan file konfigurasi yang digunakan


untuk mengubah pengaturan default dari
Apache.

Artisan Merupakan perintah-perintah yang dijalankan


dalam command line/command prompt,
digunakan untuk membuat Controller,
Model, Middleware, dsb.

composer.json Merupakan file yang berisi pendefinisian


library (Third Party).

composer.lock File yang mencatat versi package yang


terinstal.

composer.phar Merupakan composer binary. PHAR (PHP


ARCHIVE) yaitu format archive untuk PHP
yang dijalankan pada baris perintah.

index.php File untuk file index yang berisi script PHP.

package.json File yang berisi keterangan project Javascript.

package-lock.json File yang menyimpan data npm, dependency


tree, dan info update package lainnya.

phpunit.xml Sebagai konfigurasi test.

server.php Menampilkan data dari salah satu server nya,


mengetahui alamat IP user, jenis browser dan
OS yang digunakan user, alamat url yang
diakses oleh user, url referal yang digunakan
user untuk mengakses situs.

webpack.mix.js Merupakan titik masuk untuk semua kompilasi


asset. Dapat dianggap sebagai pembungkus
konfigurasi ringan di sekitar Webpack.

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:

php artisan serve Digunakan untuk menjalankan proyek


Laravel di localhost.

php artisan make:migration Digunakan untuk membuat migrasi.

php artisan make:model Digunakan untuk membuat model.

php artisan make:controller Digunakan untuk membuat controller.

php artisan migrate Digunakan untuk mengatur skema


atau relasi tabel pada database
sesuai folder ‘migration’.

php artisan route:list Digunakan untuk melihat list routing


url.

php artisan storage:link Digunakan untuk membuat koneksi


dengan storage local.

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:

Migration akan ditempatkan di direktori database/migrations dengan setiap file yang


dibuat memiliki timestamp. Tampilan dari file migration adalah:

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:

php artisan make:migration Membuat migration dengan


create_namatabel_table --path menentukan jalurnya

php artisan schema:dump Menekan migration menjadi satu file


SQL

php artisan migrate Menjalankan semua migration

php artisan migrate --force Memaksa menjalankan migration

php artisan migrate:rollback Mengembalikan sebuah migration


atau kumpulan migration yang
terakhir dibuat.

php artisan migrate:reset Mengembalikan semua migration

php artisan migrate:refresh Mengembalikan semua migration dan


memuat ulang seluruh migration atau
merefresh kembali database

php artisan migrate:fresh Menghapus semua tabel dari


database dan menjalankan migration

a. Penamaan Migration dan Model:


Mohon diperhatikan dalam penamaan migration, harus plural, contohnya
untuk database buku, dinamai books, apabila dalam menamakan database di
migration menggunakan bahasa selain bahasa inggris, kita bisa melakukan
deklarasi nama tabel di model yang kita gunakan.
Penting: Nama Tabel yang disepakati dalam Laravel Naming Convention
harus berbentuk plural dan menggunakan bahasa inggris, misalnya anda ingin
membuat tabel book dengan migration, maka command yang dijalankan adalah
“php artisan make:migration create_books_table” ( book menjadi books ).

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):

tambahkan baris protected $table = “books”; pada file


app/models/book.php

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:

Dengan menambahkan code $seeder = new NamaSeeder; lalu


$seeder->run(); sebelum di run. seperti contoh:

11
4. Seed

Laravel memberikan metode sederhana untuk melakukan seeding atau


membuat data dummy ke database menggunakan seed classes. Semua seed
classes disimpan di direktori database/seeder. Pada folder seeds terdapat class
DatabaseSeeder yang bisa menggunakan metode call untuk menjalankan class
seed yang ada. Untuk membuat seeder dilakukan dengan cara menuliskan
command di terminal:

Hasilnya akan ada di direktori database/seeders. Contoh dengan isinya


seperti pada gambar berikut:

12
7. CSRF Token

Cross-Site Request Forgeries adalah jenis eksploitasi berbahaya di mana


perintah yang tidak sah dilakukan atas nama pengguna yang diautentikasi.
Untungnya, Laravel memudahkan untuk melindungi aplikasi Anda dari serangan
Cross-site request forgeries (CSRF). Laravel secara otomatis menghasilkan "token"
CSRF untuk setiap sesi pengguna aktif yang dikelola oleh aplikasi. Token ini
digunakan untuk memverifikasi bahwa pengguna yang diautentikasi adalah orang
yang benar-benar membuat permintaan ke aplikasi.

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

Sebagai pengembang yang membuat aplikasi, Anda memiliki kekuatan besar


di ujung jari Anda. Namun, Anda juga dituntut dengan tanggung jawab untuk
menjaga keamanan data yang disimpan aplikasi Anda. Structured Query
Language (SQL) adalah sistem manajemen basis data relasional untuk
pengembangan perangkat lunak. SQL Injection adalah masalah keamanan lama dan
sangat umum di SQL.

Dimungkinkan untuk merasakan rasa aman yang salah saat menggunakan


kerangka kerja atau alat dengan mengasumsikan bahwa pengelola alat telah
mencakup semua yang terkait dengan keamanan. Laravel menyediakan banyak cara

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

Berikut merupakan contoh soal dengan studi kasus CRUD sederhana


menggunakan resource controller

14
a. Buat Project

Gunakan composer untuk membuat project dengan command di


CMD/Powershell/Terminal berikut:

composer create-project laravel/laravel nama-app

b. Setting environment variable pada file .env

File .env berfungsi untuk mengkonfigurasi database, mail, server, dan


sebagainya. File ini berada di dalam project laravel.

c. Pembuatan dan Pemanggilan Template

15
File ini berada pada resources > views > layouts > app.blade.php

File ini berada pada resources > views > home.blade.php

d. Pembuatan Model

Kita bisa membuat model dengan command:


php artisan make:model NamaModel

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

Kita dapat membuat migration dengan command berikut:


contoh : php artisan make:migration create_inventory_table

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

a. Tambahkan route di folder routes -> web.php

Kita bisa menambahkan route ‘resource’ (Route::resource)


untuk mempermudah proses CRUD.

b. Cek Route

Kita dapat melakukan pengecekan routing dengan command:


php artisan route:list

Dapat diperhatikan setelah menambahkan route resource,


semua CRUD memiliki route nya masing-masing. Route inilah
yang akan digunakan dalam proses CRUD. Kita dapat
mengikuti nama-nama function yang ada di route untuk
digunakan di controller. Contoh : InventoryController@create
berarti function create pada controller InventoryController.

g. Membuat view (tampilan) menggunakan Blade Templating

21
Buat view sesuai dengan kebutuhan. Berikut merupakan contoh
dalam mengkonfigurasi templating pada project Laravel.

Gambar tersebut menunjukkan tampilan header, yaitu navbar.

Gambar tersebut berisi konten yang meng-extend tampilan template.

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

Kita dapat membuat controller dengan command:


php artisan make:controller NamaController

i. Pembuatan fungsi Create dan Store di Controller

Tambahkan function create pada controller yang sudah dibuat.

23
function create berfungsi untuk menampilkan tampilan view. Pada
gambar tersebut terdapat contoh menampilkan view addInventory di
folder inventory.

function store berfungsi untuk menambahkan data ke database.


Gambar di atas menggambarkan kodingan yang mengarahkan
variabel view ke variabel database.

j. Pembuatan fungsi Read

Fungsi read/index berfungsi untuk mengambil data dari database.

24
Fungsi read/index digunakan untuk menampilkan data pada tampilan

Catatan: fungsi all() berguna untuk menampilkan semua data dari


database

k. Pembuatan fungsi Update

● 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

2. Pembuatan function update

25
l. Pembuatan fungsi Delete

Tambahkan function pada controller yang sama File ini dibuat di


direktori app > Http > Controllers > InventoryController.php

26
5. MVC (Model-View-Controller)

MVC atau Model-View-Controller adalah pola desain arsitektur


perangkat lunak yang umum digunakan dalam pengembangan aplikasi.
Tujuan utama dari pola desain ini adalah memisahkan tiga komponen
utama dalam aplikasi yaitu Model, View, dan Controller. Pola desain ini
membantu mengorganisir kode dengan lebih terstruktur, meningkatkan
skalabilitas, dan memudahkan pemeliharaan aplikasi.

Dalam aplikasi Laravel yang mengikuti pola desain MVC


(Model-View-Controller), proses berjalannya aplikasi dimulai saat
pengguna melakukan permintaan, seperti mengakses halaman web atau
mengirim formulir. Routing di Laravel mengarahkan permintaan tersebut ke
controller yang sesuai yang mengandung logika aplikasi. Controller dapat
berinteraksi dengan model untuk mengambil atau memodifikasi data
dalam basis data. Data yang dihasilkan atau dimodifikasi oleh controller
akan dikirimkan ke view yang bertanggung jawab untuk menampilkan data
kepada pengguna dalam tampilan yang sesuai yang mana hasil tampilan
ini disampaikan kembali kepada pengguna sebagai respons.

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:

Perintah ini akan membuat file model baru dalam direktori


“app/Models” secara default dengan nama “NamaModel.php”. Mari
kita lihat contoh sederhana kode model dalam Laravel:

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.

Disini kita menggunakan Route::get() untuk


menentukan rute HTTP GET yang akan menampilkan view. Di
dalam closure (fungsi anonim) yang diberikan sebagai
argumen, kita menggunakan view('nama_view') untuk
memanggil view dengan nama ‘nama_view’. Kalian harus
menggantikan ‘nama_view’ dengan nama tampilan yang
sebenarnya yang ingin kalian tampilkan. Setelah kalian
menentukan rute ini, pengguna dapat mengakses “/contoh” di
aplikasi kalian, dan view dengan nama ‘nama_view’ akan
ditampilkan kepada pengguna. Pastikan bahwa view dengan
nama yang sesuai sudah ada dalam direktori
“resources/views”.

30
Berikut ini adalah contoh kode untuk sebuah view
Blade sederhana yang menampilkan daftar produk:

Kita menggunakan @extends('layout.app') untuk


meng-extend (memperluas) view dari layout “app.blade.php”.
Ini memungkinkan kita untuk menggunakan layout yang sama
di beberapa halaman. @section('content') digunakan untuk
menandai bagian konten dalam layout yang akan diisi dengan
konten dari view ini. Kita menggunakan sintaks Blade
@foreach untuk melakukan perulangan melalui array $produk
dan menampilkan nama setiap produk dalam daftar.

● Beberapa sintaks penting dalam Blade


1. @extends('layout.app')
Perintah @extends digunakan untuk
meng-extend (memperluas) layout utama yang akan
digunakan oleh view ini. Kalian dapat menggantinya
dengan layout yang sesuai dengan kebutuhan view
kalian.
2. @section('content') ... @endsection
Perintah @section digunakan untuk
menentukan area yang akan diisi dengan konten dari
view saat view ini di-extend ke dalam layout utama.

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.

Berikut adalah contoh penggunaan @yield dalam


layout utama:

Dalam contoh di atas, @yield('content') adalah tempat


di mana konten dari view yang di-extend akan ditampilkan
dalam layout utama. Jika view tidak mengisi section ini, maka
konten default tidak akan ada.

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:

Ini akan membuat file controller baru dalam direktori


“app/Http/Controllers”.
● Struktur Dasar Controller
Sebuah controller di Laravel biasanya terdiri dari
metode-metode yang menangani berbagai permintaan HTTP.
Berikut adalah contoh struktur dasar controller:

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”.

Dalam contoh di atas, saat pengguna mengakses


/produk, metode index dalam NamaController akan
dijalankan.
● Mengirim Data dari Controller ke View
Kalian dapat mengirim data dari controller ke view
menggunakan metode view() dan variabel.

Di dalam view, kalian dapat mengakses data tersebut


dengan menggunakan variabel seperti {{$produk}}.
● Method Routes

35
Berikut adalah beberapa contoh metode rute (routes)
dalam Laravel:
1. GET

Metode GET digunakan untuk mengambil


informasi dari server. Permintaan GET biasanya
digunakan saat kalian ingin membaca
(mengambil) data dari server tanpa melakukan
perubahan pada sumber daya tersebut. Metode
ini hanya membaca data dan tidak
mengubahnya.
2. POST

Metode POST digunakan untuk mengirim data


ke server untuk membuat atau memperbarui
sumber daya. Permintaan POST digunakan
untuk mengirim data yang akan disimpan oleh
server. Ini adalah metode yang paling umum
digunakan untuk mengirim data form.
3. PUT

Metode PUT digunakan untuk memperbarui


sumber daya yang ada di server. Metode ini
meminta server untuk menggantikan sumber
daya yang ada dengan versi baru yang
dikirimkan dalam permintaan.

36
4. PATCH

Metode PATCH juga digunakan untuk


memperbarui sumber daya yang ada di server,
tetapi berbeda dari PUT karena PATCH hanya
menggantikan bagian-bagian tertentu dari
sumber daya, sementara PUT menggantikan
seluruh sumber daya.
5. DELETE

Metode DELETE digunakan untuk menghapus


sumber daya yang ada di server. Permintaan
DELETE menginstruksikan server untuk
menghapus sumber daya yang ditentukan dari
basis data atau penyimpanan server.
HTML forms tidak mendukung method PUT, DELETE,
dan PATCH sehingga kita harus melakukan method spoofing.
Untuk melakukan method spoofing sendiri terbilang cukup
mudah, kalian hanya perlu menambahkan
@method('NamaMethod') ke dalam form kalian.

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

Laboratorium Enterprise Application Development (EAD). (2021). Modul 5


WAD: CRUD DENGAN LARAVEL TANPA AUTHENTICATION. Bandung:
Laboratorium Enterprise Application Development (EAD).

41

Anda mungkin juga menyukai