Catatan Rilis
Laravel dan paket pihak pertama lainnya mengikuti versi semantik. Rilis kerangka kerja
utama dirilis setiap enam bulan (~ Maret dan ~ September), sementara rilis minor dan patch
mungkin dirilis setiap minggu. Rilis minor adan patch tidak boleh berisi perubahan yang
menggangu.
Untuk rilis LTS, seperti laravel 6, perbaikan bug disedikan selama 2 tahun dan perbaikan
keamanan disediakan selama 3 tahun. Rilis ini memberikan masa dukungan dan pemeliharaan
terlama. Untuk rilis umum, perbaikan bug disediakan selama 7 bulan dan perbaikan keamanan
Saat materi laravel ini dibuat, versi terakhir dari laravelnya adalah versi 8. Sehingga seluruh
materi yang akan dipelajari menggunakan aturan dari versi 8. Laravel 8 melanjutkan
penyempurnaan yang dibuat di laravel 7.x dengan memperkenalkan laravel jetstream, class model,
peningkatan layanan artisan, komponen blade dinamis, perbaikan bug lainnya serta peningkatan
kegunaan.
Setelah anda berhasil install composer, langkah selanjutnya adalah install laravel. Untuk
install laravel ada 2 cara :
1) Via laravel installer
Lakukan install laravel terlebih dahulu.
Apabila muncul versi laravel maka anda sudah berhasil install laravelnya. Untuk laravel
versi 8, installer laravelnya adalah versi 4. Setelah berhasil install laravel, kita sudah bisa
menggunakan laravel. Untuk membuat projek laravel, silahkan anda masuk ke dalam folder htdocs
terlebih dahulu dengan menggunakan perintah cd c:/xampp/htdocs, setelah itu baru jalankan
perintah laravel new ptl. ptl adalah nama folder yang ingin kita buat sebagai nama projek kita, bisa
saja diganti sesuai dengan keinginakan kita, contohnya jika kita sedang membuat aplikasi pustaka,
bisa saja kita ganti ptl tadi dengan nama pustaka, laravel new pustaka. Jadi perintah setelah new
menyesuaikan dengan nama projek yang akan kita buat.
Jika sudah muncul started, berarti kita sudah berhasil menjalankan local server laravelnya.
Silahkan buka browser dan ketikan localhost:8000.
Arsitektur Laravel
Laravel menggunakan konsep model view controller (MVC) dalam pengembangan
aplikasinya. Dengan menggunakan MVC maka antara kode logika, kode tampilan dan kode untuk
mengambil data ke database itu dipisahkan. Pada laravel versi 8 folder model sudah langsung
disertakan ketika anda berhasil melakukan instalasi framework laravel.
Model merupakan komponen dalam aplikasi yang bertanggungjawab mengelola akses
langsung dengan sumber data dan logika pengelolaan data tersebut. View merupakan komponen
dalam aplikasi yang bertanggungjawab untuk membuat tampilan untuk pengguna. Controller
merupakan komponen dalam aplikasi yang bertanggungjawab untuk menerima input (request) dan
memberikan ouput (response), baik berupa data atau view berisi data dari model.
Semua proses dalam sistem laravel berawal dari routing. Routing itu sendiri berfungsi
sebagai jalur akses. Routing dalam laravel ada 4 kelompok:
1. Web.php berfungsi untuk mendefinisikan jalur akses untuk penggunaan web standar.
2. Api.php berfungsi untuk mendefenisikan jalur akses web service / api service.
3. Console.php berfungsi untuk mendefenisikan jalur akses melalui command line.
4. Channel.php berfungsi untuk memberikan jalur akses untuk broadcast channel melalui
websocket.
Konfigurasi file routing ada di dalam folder routes. Dimana ketika anda membuka folder
routes maka anda akan menemukan 4 buah file yaitu web.php, api.php, console.php dan
channel.php.
Maka secara otomatis akan ada sebuah file controller dengan nama LatihanController.php
Ketika diakses pesan errornya masih tetap ada dan belum hilang. Itu artinya kita masih
belum bisa mengakses controller yang sudah dibuat tadi.
Pada laravel 8 ada perubahan dalam namespace. Jadi kita harus menuliskan terlebih dahulu
namespace pada routes. Beda dari laravel 7 kebawah, secara default namespacenya sudah tersedia.
Kita bisa cek namespace tersebut dalam file RouteServiceProvider.php yang berada dalam folder
app/Providers
Pada laravel 8 namespace tidak disediakan lagi secara default jadi kita harus definisikan
pada routes. Ketika kita akses sudah tidak ditemukan lagi errornya, dan controller kita sudah bisa
diakses
Redirect Routes
Jika kita menentukan rute yang mengalihkan ke URI lain, kita dapat menggunakan metode
Route::redirect. Metode ini menyediakan pintasan yang nyaman sehingga kita tidak perlu
menentukan rute controller untuk melakukan pengalihan sederhana.
Route::redirect('/here', '/there', 301);
View Routes
Jika rute kita hanya perlu mengembalikan tampilan, kita dapat menggunakan metode
Route::view. Seperti metode redirect routes, metode ini menyediakan pintasan sederhana sehingga
kita tidak perlu menentukan rute controller. Metode tampilan menerima URI sebagai argumen
pertamanya dan nama tampilan sebagai argumen keduanya. Selain itu, kita dapat menyediakan data
untuk diteruskan ke tampilan sebagai argumen opsional ketiga.
Route::view('/welcome', 'welcome');
Route::view('/welcome', 'welcome', ['name' => 'Taylor']);
Route Parameters
Terkadang kita perlu menangkap segmen URI dalam rute kita. Misalnya kita mungkin perlu
mengambil ID pengguna dari URL. Kita dapat melakukannya dengan menentukan parameter rute.
Terkadang kita perlu menangkap segmen URI dalam rute kita. Misalnya kita mungkin perlu
mengambil ID pengguna dari URL. Kita dapat melakukannya dengan menentukan parameter rute.
Basic Controller
Controller merupakan bagian yang menjebatani model dan view. Controller berisi perintah-
perintah yang berfungsi untuk memproses suatu data dan mengirimkannya ke halaman web. Jadi
ketika kita akan berhubungan dengan database, seperti mengambil data, simpan data, ubah data, dan
hapus data, maka kita akan melewati controller terlebih dahulu. Begitu juga ketika kita ingin
menampilkan sesuatu ke halaman web, maka kita akan melewati controller. Folder controller pada
laravel terletak di dalam folder app, didalamnya ada folder http, dan setelah itu akan kita temukan
folder bernama controllers. Didalam folder controllers itulah kita akan menyimpan file controller
yang kita buat.
Sebuah controller berisi fungsi-fungsi yang kita buat untuk menyelesaikan suatu permintaan.
Penamaan dari fungsi di sebuah controller bisa kita buat bebas saja sesuai dengan keinginan kita.
Akan tetapi kita disarankan untuk menggunakan resource controller yang sudah ditetapkan oleh
laravel terkait dengan sistem CRUD (create, read, update, delete).
Sekarang kita akan coba terlebih dahulu membuat fungsi di controller bukan berdasarkan
resource controllers laravel. Untuk membuat controller bisa kita buat secara manual dengan
membuat sebuat file php, di dalam folder controllers.
Silahkan buat file dengan nama LatihanController.php, dan simpan di dalam folder
controllers.
Maka secara otomatis akan kita temukan sebuah file dengan nama ContohController.php
didalam folder controllers. Jika kita buka file ContohController.php tersebut maka kita akan
menemukan langsung tertulis struktur dasar controller. Jadi kita tidak perlu lagi menuliskan struktur
dasarnya.
Sekarang kita akan coba buat sebuah fungsi pada ContohController, dengan nama fungsi
tampil. Fungsi tersebut ketika diakses akan menampilkan tulisan ini adalah latihan controller.
Penulisan sebuah fungsi diawali dengan public function setelah ini baru nama fungsinya
dan diikuti dengan tanda (), serta tanda {}. Untuk bisa mengakses fungsi tampil yang baru saja kita
buat, maka kita harus tambahkan sebuah routes.
Kita bisa akan coba tambahkan fungsi baru lagi pada ContohController. Nama fungsinya
adalah index.
Agar bisa diakses oleh user, maka kita harus tambahkan kembali routes nya.
Controller ke View
Sebelumnya kita sudah coba membuat sebuah controller dengan beberapa fungsi
didalamnya. Sekarang kita akan coba buat sebuah controller, yang mengarah ke sebuah view. Jadi
jika kita ingin menampilkan sesuatu di browser maka kita buatnya di dalam folder view. Bukan
langsung kita tulis di dalam controller, karena controller fungsinya bukan untuk menampilkan data.
Silahkan buat sebuah controller baru dengan nama ContohViewController
Silahkan buat file view dengan nama datacontoh.blade.php, di dalam folder views.
Controller Resource
Ketika membuat sebuah aplikasi maka hal dasar yang akan ada dalam aplikasi tersebut
adalah CRUD (create, read, update, delete).
• Create berguna untuk menyimpan data.
• Read berguna untuk menampilkan data.
• Update berguna untuk mengubah data.
• Delete berguna untuk menghapus data.
Dalam sebuah controller harus memiliki beberapa action standar, seperti index, create, show,
edit, update, dan destroy. Action standar tersebut adalah sebagai action resource. Controller yang
memiliki beberapa action tersebut disebut controller resource.
Kegunaan masing-masing action resource:
• index, digunakan untuk menampilkan list atau daftar data dari sebuah controller.
• Create, digunakan untuk menampilkan view yaitu berupa form untuk membuat data baru.
• Store, digunakan untuk menerima data yang diinputkan melalui form dari action create
sebelumnya.
• Show, digunakan untuk menampilkan data tertentu, bukan daftar.
• Edit, digunakan untuk menampilkan view yaitu berupa form untuk mengubah data. Form
tersebut bukan form kosong lagi, tapi sudah berisi data yang akan diubah.
• Update, digunakan untuk menerima data yang diinputkan melalui form dari action edit
sebelumnya. Fungsi ini untuk mengubah data.
• Destroy, digunakan untuk menghapus data tertentu.
Untuk membuat controller dengan semua action resource, perintahnya php artisan
make:controller namacontroller -r. Silahkan buat controller baru dengan nama
BiodataMahasiswaController
Ketika kita buka file BiodataMahasiswaController.php maka akan otomatis tertulis semua
action resource. Jadi kita tinggal isi saja masing-masing action atau fungsi yang sudah ada sesuai
dengan aplikasi yang kita buat.
View merupakan bagian yang mengatur tampilan ke pengguna. Jadi ketika kita akan
menampilkan sesuatu ke pengguna maka kita akan menuliskan kode programnya di dalam view,
bukan lagi di route atau di controller. View pada laravel dapat di temukan di dalam folder resouces.
Untuk menampilkan data ke pengguna, kita akan buat sebuah file view dengan nama
biodatamahasiswa.blade.php. Menampilkan data diapit oleh dua kurung kurawal
{{ $namavariabel }}
Layout
Dalam sebuah aplikasi tentu akan ada tampilan utamanya, dimana tampilan utama ini tidak
akan berubah posisinya. Perubahan yang terjadi hanyalah isi dari tampilan utama tersebut. Kita
akan membuat tampilan utama website kita. Silahkan buat view baru dengan nama file
layout.blade.php
Silahkan buka file database.php untuk melihat konfigurasi dari database. Dalam materi ini
kita akan menggunakan database mysql. Sebenarnya kita bisa dengan mudah untuk mengganti
database yang kita gunakan. Jadi jika awalnya kita menggunakan mysql, dan ingin beralih ke
postgree, kita bisa dengan mudah untuk melakukan peralihan tersebut tanpa harus merubah coding
aplikasi yang sudah kita buat.
Kita akan membuat sebuah sistem informasi penjualan, dimana nama database yang akan
kita buat adalah penjualan. Silahkan buat terlebih dahulu database penjualannya. Serta buat satu
buah tabel dengan nama tabel adalah pelanggan. Setelah tabel anda buat, silahkan entrikan 2 record
pada tabel pelanggan.
Raw SQL
Raw SQL adalah salah satu cara berinteraksi dengan database pada laravel. Kita akan coba
menampilkan data dari tabel pelanggan menggunakan cara Raw SQL. Silahkan buat controller
dengan nama PelangganController.
Eloquent ORM
Eloquent ORM adalah salah satu cara yang digunakan untuk mengakses database. Silahkan
buat controller baru dengan nama PelangganEloquent.
Dalam penggunaan eloquent kita harus membuat sebuah file model untuk bisa berinteraksi
dengan tabel dalam database. Kita bisa membuat model dengan menggunakan perintah php artisan.
Nama file model yang dibuat sama dengan nama tabel yang sudah dibuat. Dalam
penggunaan eloquent secara default ketika kita membuat sebuah tabel, maka kita harus
menambahkan s setelah nama tabelnya, contohnya tadi kita buat nama tabelnya adalah pengguna,
maka seharusnya kita buat nama tabelnya menjadi penggunas. Tapi kita bisa saja tidak mengikuti
default penulisannya. Dengan menuliskan protected table pada model.
Menampilkan data
Sebelumnya kita sudah berhasil untuk menampilkan data dari database. Sekarang kita akan
menggabungkan data yang akan kita tampilkan dengan template atau layout aplikasi kita, serta akan
kita integrasi dengan framework css bootstrap.
Silahkan buat file view dengan nama layout.blade.php
Create
Kita sudah berhasil menampilkan data dalam layout dan juga sudah terintegrasi dengan
bootstrap. Sekarang kita akan membuat form tambah data dan akan menyimpan data tersebut ke
dalam database.
Silahkan buka file ProdukController
Silahkan buka route pada web.php, kita buat route nya post karena kita mengirim data untuk
disimpan ke dalam database.
Membuat Menu
Pada materi sebelumnya kita sudah berhasil membuat layout, menampilkan data pada layout
tersebut serta sudah berhasil membuat form login dan berhasil menyimpan datanya ke dalam
database. Sekarang kita akan membuat menu pada layout yang sudah kita buat.
Silahkan buka file layout.blade.php
Selanjutnya kita akan membuat form edit data. Untuk itu kita harus buat sebuah route yang
akan mengarahkan ke form edit dan update datanya di database.
Delete
Silahkan buka file view daftarproduk.blade.php
Selanjutnya kita akan membuat sebuah route yang akan mengarahkan ke hapus datanya di
database.
Resource Controller
Sebuah sistem memiliki create, read, update, dan delete. Pada laravel fungsi itu sudah
disediakan jadi kita bisa ubah di bagian web.php menjadi lebih singkat. Asalkan kita mengikuti
aturan dari laravelnya.
Eloquent relationship digunakan untuk menghubungkan antara satu tabel dengan tabel yang
lainnya yang saling berelasi. Sebelum kita menggunakan relasi pada eloquent pastikan terlebih
dahulu kita tahu relasi antar tabel yang akan kita relasikan, karena jika kita salah dalam menentukan
relasinya maka kita juga akan mendapatkan hasil yang berbeda. Relasi pada eloquent memiliki
beberapa tipe utama yaitu one to one, one to many, dan many to many.
One to one
Relasi one to one adalah relasi yang terjadi jika data A hanya boleh memiliki satu data B dan
data B hanya boleh dimiliki oleh data A.
Contoh: $this->hasOne(‘model’);
One to many
Relasi one to many adalah relasi yang terjadi jika data A boleh memiliki lebih dari satu data
B dan data B hanya boleh dimiliki oleh data A.
Contoh: $this->hasMany(‘model’);
Many to many
Relasi many to many adalah relasi yang terjadi jika data A boleh memiliki lebih dari satu
data B dan data B juga boleh memiliki lebih dari satu data A.
Pada latihan kita sebelumnya, kita sudah memiliki tabel produk. Sekarang kita akan
tambahkan satu buah tabel dengan nama kategori. Dimana tabel kategori ini akan berelasi dengan
tabel produk. Relasi yang terjadi adalah one to many, dimana satu kategori bisa memiliki lebih dari
satu produk dan satu produk hanya dimiliki oleh satu kategori.
Silahkan buat tabel kategori:
Setelah kita menambahkan tabel kategori dan menambahkan field baru pada tabel produk.
Selanjutnya kita buat terlebih dahulu model untuk tabel kategori.
Authentication adalah salah satu fitur dari laravel dimana fitur ini membantu kita dalam
mengelola pembatasan akses user. Pada laravel versi dibawah 8, kita kenal paket auth. Setelah
muncul laravel 8 ada beberapa tambahan pilihan paket authentication yang bisa kita gunakan,
seperti breeze, fortify, jetstream. Kita bebas memilih mau menggunakan paket yang mana untuk
proses authenticationnya. Kita akan coba bahas paket-paket authentication pada laravel. Setiap
paket authentication yang akan kita gunakan, kita akan installkan pada project laravel kita yang
baru, jadi ini belum melanjutkan materi project kita yang sebelumnya kita buat, yaitu perusahaan.
A) Laravel ui auth
Paket ini cukup populer digunakan untuk sistem authentication. Kita bisa lihat dokumentasi
pada https://github.com/laravel/ui
Ketika kita menggunakan laravel ui, maka framework css yang digunakan adalah boostrapt.
Untuk memulainya kita harus download terlebih dahulu laravel ui auth. Tapi sebelum kita download
kita install terlebih dahulu project laravel kita yang baru. Kita akan beri nama foldernya authui.
• composer create-project laravel/laravel authui.
• Composer require laravel/ui
• npm install
Setelah selesai install laravel ui auth, silahkan jalakan php artisan serve dan buka
browsernya. Maka akan ada menu login dan register.
• npm install
Ketika kita pilih login maka akan muncul tampilan form login
• npm install