0% menganggap dokumen ini bermanfaat (0 suara)
407 tayangan34 halaman

Praktikum Laravel: Struktur dan Routing

Dokumen tersebut merupakan laporan praktikum pemrograman web menggunakan framework Laravel. Laporan tersebut meliputi latihan-latihan dasar seperti membuat proyek baru Laravel, membuat direktori dan file view, menambahkan route, serta menampilkan data dari route parameter menggunakan controller. [/ringkasan]

Diunggah oleh

ELYZIA JANARA
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
407 tayangan34 halaman

Praktikum Laravel: Struktur dan Routing

Dokumen tersebut merupakan laporan praktikum pemrograman web menggunakan framework Laravel. Laporan tersebut meliputi latihan-latihan dasar seperti membuat proyek baru Laravel, membuat direktori dan file view, menambahkan route, serta menampilkan data dari route parameter menggunakan controller. [/ringkasan]

Diunggah oleh

ELYZIA JANARA
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd

LATIHAN PRAKTIKUM PEMROGRAMAN WEB

BAB : FRAMEWORK LARAVEL 2


NAMA : ELYZIA JANARA K.
NIM : 215150707111024
ASISTEN : 1. MUKHAMMAD AFAN OKTAFIANTO
TGL PRAKTIKUM: 12 SEPTEMBER 2022

STRUKTUR DIREKTORI VIEW

LATIHAN 1
A. Soal

Buatlah sebuah proyek baru Laravel dengan perintah sbb:

1 laravel new praktikumLaravel2

B. Screenshoot

C. Syntax

1 create-project laravel/laravel praktikumLaravel2

D. Penjelasan
Membuat project Laravel dengan nama praktikumLaravel2
LATIHAN 2
A. Soal

Pada folder resources/views, buatlah direktori baru dengan nama praktikum2. Kemudian

pada direktori tersebut buatlah sebuah file Blade dengan nama index.blade.php dan isi

dengan kode sbb:

1 <!doctype html>
2 <html>
3
4 <head>
5 <title>Praktikum Laravel Ke-2</title>
6 </head>
7
8 <body>
9 <h1>Praktikum Laravel Ke-2</h1>
10 </body>
11
12 </html>

B. Screenshoot

C. Syntax

1 <!doctype html>
2 <html>
3
4 <head>
5 <title>Praktikum Laravel Ke-2</title>
6 </head>
7
8 <body>
9 <h1>Praktikum Laravel Ke-2</h1>
10 </body>
11
12 </html>

D. Penjelasan

Membuat direktori baru dengan nama praktikum2 dan menambahkan file index.blade.php
LATIHAN 3
A. Soal

Pada file web.php dalam folder routes, tambahkan rute sbb:

1 Route::get(‘/praktikum-laravel’, function () {
2 return view(‘praktikum2.index’);
3 });

B. Screenshoot

C. Syntax

1 <?php
2
3 use Illuminate\Support\Facades\Route;
4
5 /*
6 |------------------------------------------------------
7 --------------------
8 | Web Routes
9 |------------------------------------------------------
10 --------------------
11 |
12 | Here is where you can register web routes for your
13 application. These
14 | routes are loaded by the RouteServiceProvider within
15 a group which
16 | contains the "web" middleware group. Now create
17 something great!
18 |
19 */
20
21 Route::get('/', function () {
22 return view('welcome');
23 });
24
25 Route::get('/praktikum-laravel', function () {
26 return view('praktikum2.index');
27 });
28
D. Penjelasan
Menambahkan baris pada web.php yang terletak pada direktori routes

LATIHAN 4
A. Soal

Apakah URL untuk mengakses halaman tersebut?

B. Penjelasan
URL untuk mengakses halaman tersebut adalah http://127.0.0.1:8000/praktikum-
laravel

LATIHAN 5
A. Soal

Mengapa pada method view menggunakan parameter ‘praktikum2.index’?

B. Penjelasan
Pada method view menggunakan parameter ‘praktikum2.index’ karena mengacu pada
index.blade.php yang terletak pada folder praktikum2

LATIHAN 6
A. Soal
Jalankan halaman tersebut, tempelkan screenshot-nya pada tempat yang telah disediakan
di bawah ini.

B. Screenshoot
PERULANGAN DENGAN SINTAKS BLADE

LATIHAN 1
A. Soal

Ubahlah isi file index.blade.php menjadi sbb:

1 <!doctype html>
2 <html>
3
4 <head>
5 <title>Praktikum Laravel Ke-2</title>
6 </head>
7
8 <body>
9 <ul>
10 <li>Ini adalah urutan ke-1</li>
11 <li>Ini adalah urutan ke-2</li>
12 <li>Ini adalah urutan ke-3</li>
13 <li>Ini adalah urutan ke-4</li>
14 <li>Ini adalah urutan ke-5</li>
15 </ul>
16 </body>
17
18 </html>

B. Screenshoot

C. Syntax

1 <!doctype html>
2 <html>
3
4 <head>
5 <title>Praktikum Laravel Ke-2</title>
6 </head>
7
8 <body>
9 <ul>
10 <li>Ini adalah urutan ke-1</li>
11 <li>Ini adalah urutan ke-2</li>
12 <li>Ini adalah urutan ke-3</li>
13 <li>Ini adalah urutan ke-4</li>
14 <li>Ini adalah urutan ke-5</li>
15 </ul>
16 </body>
17
18 </html>

D. Penjelasan
Mengubah isi file index.blade.php

LATIHAN 2
A. Soal

Kemudian ubahlah lagi menggunakan loop dengan sintaks Blade. Tempelkan kode yang

saudara buat pada tempat yang telah disediakan di bawah ini:

B. Screenshoot

C. Syntax

1 <!DOCTYPE html>
2 <html lang="en">
3
4 <head>
5 <meta charset="UTF-8">
6 <meta name="viewport" content="width=device-width,
7 initial-scale=1.0">
8 <meta http-equiv="X-UA-Compatible"
9 content="ie=edge">
10 <title>Praktikum Laravel Ke-2</title>
11 </head>
12
13 <body>
14 <ul>
15
16 @for ($i = 1; $i < 6; $i++) <li> Ini adalah
17 urutan ke-{{ $i }} </li>
18 @endfor
19 </ul>
20 </body>
21
</html>

D. Penjelasan
Menampilkan list dengan looping

MENAMPILKAN DATA DARI ROUTE PARAMETER

LATIHAN 1
A. Soal

Buatlah sebuah controller baru dengan perintah sbb:

1 php artisan make:controller EventsController

B. Screenshoot

C. Syntax

1 php artisan make:controller EventsController

D. Penjelasan
Menambah controller baru.

LATIHAN 2
A. Soal
Buka file controller yang baru saja di-generate pada folder app\Http\Controllers dan
tambahkan sebuah method pada class controller tersebut seperti kode berikut:

1 public function show($location, $name)


2 {
3 return view(‘events_show’)
4 ->with(‘location’, $location)
5 ->with(‘name’, $name);
6 }

B. Screenshoot

C. Syntax

1 <?php
2
3 namespace App\Http\Controllers;
4
5 use Illuminate\Http\Request;
6
7 class EventsController extends Controller
8 {
9 public function show($location, $name)
10 {
11 return view('events_show')
12 ->with('location', $location)
13 ->with('name', $name);
14 }
15 }

D. Penjelasan
Menambahkan method baru pada EventsController.

LATIHAN 3
A. Soal
Tambahkan rute berikut:

1 Route::get(‘events/{location}/{name}’,
2 [App\Http\Controllers\EventsController::class,
3 ‘show’]);
B. Screenshoot

C. Syntax

1 <?php
2
3 use Illuminate\Support\Facades\Route;
4
5 /*
6 |------------------------------------------------------
7 --------------------
8 | Web Routes
9 |------------------------------------------------------
10 --------------------
11 |
12 | Here is where you can register web routes for your
13 application. These
14 | routes are loaded by the RouteServiceProvider within
15 a group which
16 | contains the "web" middleware group. Now create
17 something great!
18 |
19 */
20
21 Route::get('/', function () {
22 return view('welcome');
23 });
24
25 Route::get('/praktikum-laravel', function () {
26 return view('praktikum2.index');
27 });
28
29 Route::get('events/{location}/{name}',
30 [App\Http\Controllers\EventsController::class,
31 'show']);

D. Penjelasan
Menambahkan rute pada web.php
LATIHAN 4
A. Soal
Apakah nama file view (Blade) yang harus dibuat?

B. Penjelasan

Nama view (Blade) yang harus dibuat adalah events_show.blade.php

LATIHAN 5
A. Soal
Pada direktori apakah file view tersebut harus diletakkan?

B. Penjelasan

File view harus diletakkan pada direktori views.

LATIHAN 6
A. Soal
Tuliskan sebuah contoh URL untuk mengakses halaman tersebut.

B. Penjelasan

Contoh URL untuk mengakses halaman tersebut adalah :


localhost/praktikumLaravel2/public/events/Yogyakarta/Chongyun

LATIHAN 7
A. Soal
Buatlah file view (Blade) tersebut sehingga dapat menampilkan nilai variabel location
dan name. Tempel kode yang dihasilkan pada tempat yang telah disediakan di bawah ini:

B. Screenshoot
C. Syntax

1 <!DOCTYPE html>
2 <html lang="en">
3
4 <head>
5 <meta charset="UTF-8">
6 <meta name="viewport" content="width=devicewidth,
7 initial-scale=1.0">
8 <meta http-equiv="X-UA-Compatible"
9 content="ie=edge">
10 <title>Praktikum Laravel ke-2</title>
11 </head>
12
13 <body>
14 <h1> Halo, {{ $name }} selamat datang di Kota {{
15 $location }}!
16 </h1>
17 </body>
18
19 </html>

D. Penjelasan

Location berisi Yogyakarta dan Name berisi Chongyun

MODEL UNTUK MENAMPILKAN DATA DARI DATABASE

LATIHAN 1
A. Soal

Jalankan MySQL dan buatlah database baru dengan nama “praktikumlaravel2”. (Bila saudara
menggunakan XAMPP, jalankan Apache dan MySQL kemudian klik tombol Admin pada
baris MySQL untuk membuka aplikasi phpMyAdmin. Melalui phpMyAdmin, saudara bisa
membuat database baru tersebut).

B. Screenshoot
C. Syntax

D. Penjelasan
Membuat database baru dengan nama praktikumlaravel2

LATIHAN 2
A. Soal
Pada file .env yang berada pada direktori root proyek Laravel, ubahlah nama database
MySQL sesuai nama yang tadi telah dibuat (jika namanya berbeda). Bila diperlukan, atur
pula username, password atau konfigurasi lainnya untuk mengakses MySQL.

B. Screenshoot

C. Syntax

D. Penjelasan
Mengganti nama database, username, dan password sesuai dengan database yang baru
dibuat.

LATIHAN 3
A. Soal
Buatlah model dengan menjalankan perintah sbb:

1 php artisan make:model Event --migration

B. Screenshoot
C. Syntax

D. Penjelasan
Membuat model baru.

LATIHAN 4
A. Soal
Buka file migration yang di-generate oleh Artisan pada direktori “/database/migration”
pilih file yang sesuai dengan model yang baru saja dibuat (nama file berakhiran
...._create_events_table). Kemudian ubah method up() menjadi sbb:

1 public function up()


2 {
3 Schema::create(‘events’, function (Blueprint $table) {
4 $table->increments(‘id’);
5 $table->string(‘location’);
6 $table->string(‘name’);
7 });
8 }

B. Screenshoot

C. Syntax

1 <?php
2
3 use Illuminate\Database\Migrations\Migration;
4 use Illuminate\Database\Schema\Blueprint;
5 use Illuminate\Support\Facades\Schema;
6
7 return new class extends Migration
8 {
9 /**
10 * Run the migrations.
11 *
12 * @return void
13 */
14 public function up()
15 {
16 Schema::create('events', function (Blueprint
17 $table) {
18 $table->increments('id');
19 $table->string('location');
20 $table->string('name');
21 });
22 }
23
24
25 /**
26 * Reverse the migrations.
27 *
28 * @return void
29 */
30 public function down()
31 {
32 Schema::dropIfExists('events');
33 }
34 };

D. Penjelasan

Mengubah method up()

LATIHAN 5
A. Soal
Lakukan migrasi dengan menjalankan perintah sbb:

1 php artisan migrate

B. Screenshoot
C. Syntax

D. Penjelasan
Melakukan migrasi

LATIHAN 6
A. Soal
Isi tabel events dengan data sebagai berikut (Saudara bisa menggunakan aplikasi
phpMyAdmin atau sejenisnya):
id location name
1 Malang Kerja Bakti
2 Banjarmasin Lomba Melukis
3 Medan Rapat Tahunan

B. Screenshoot

C. Syntax
D. Penjelasan

Mengisi Tabel Events.

LATIHAN 8
A. Soal
Pada class EventsController, tambahkan method index() sbb:

1 public function index()


2 {
3 $events = Event::all();
4 return view(‘events.index’)->with(‘events’, $events);
5 }
B. Screenshoot

C. Syntax

1 <?php
2
3 namespace App\Http\Controllers;
4
5 use Illuminate\Http\Request;
6
7 class EventsController extends Controller
8 {
9 public function show($location, $name)
10 {
11 return view('events_show')
12 ->with('location', $location)
13 ->with('name', $name);
14 }
15
16 public function index()
17 {
18 $events = Event::all();
19 return view('events . index')->with('events',
20 $events);
21 }
22 }

D. Penjelasan
Menambahkan method index() pada EventsController.

LATIHAN 9
A. Soal
Pada kode EventsController.php, tambahkan pula pernyataan untuk import sbb:

1 use App\Models\Event;
B. Screenshoot

C. Syntax

1 <?php
2
3 namespace App\Http\Controllers;
4
5 use Illuminate\Http\Request;
6 use App\Models\Event;
7
8 class EventsController extends Controller
9 {
10 public function show($location, $name)
11 {
12 return view('events_show')
13 ->with('location', $location)
14 ->with('name', $name);
15 }
16
17 public function index()
18 {
19 $events = Event::all();
20 return view('events . index')->with('events',
21 $events);
22 }
23 }

D. Penjelasan
Menambahkan pernyataan import.

LATIHAN 10
A. Soal
Kemudian buatlah view dengan lokasi dan nama sesuai pada method index() di atas, isi
dengan kode sbb:

1 <!doctype html>
2 <html>
3 <head>
4 <title>Events - Praktikum Laravel Ke-2</title>
5 </head>
6 <body>
7 <h1>Events</h1>
8 <ul>
9 @forelse($events as $event)
10 <li>{{ $event->location }} - {{ $event->name }}</li>
11 @empty
12 <li>Belum ada event.</li>
13 @endforelse
14 </ul>
15 </body>
16 </html>

B. Screenshoot

C. Syntax

1 <!DOCTYPE html>
2 <html lang="en">
3
4 <head>
5 <meta charset="UTF-8">
6 <meta name="viewport" content="width=device-width,
7 initial-scale=1.0">
8 <meta http-equiv="X-UA-Compatible"
9 content="ie=edge">
10 <title>Events-Praktikum Laravel 2</title>
11 </head>
12
13 <body>
14 <h1>Events</h1>
15 <ul>
16 @forelse ($events as $event)
17 <li>{{ $event->location }} - {{$event->name
18 }}</li>
19 @empty
20 <li>Belum ada event.</li>
21 @endforelse
22 </ul>
23 </body>
24
25 </html>
D. Penjelasan
File events_index.blade.php berada pada folder views.

LATIHAN 11
A. Soal
Tambahkan rute berikut:

1 Route::get(‘events’,
2 [App\Http\Controllers\EventsController::class,
3 ‘index’]);

B. Screenshoot

C. Syntax

1 <?php
2
3 use Illuminate\Support\Facades\Route;
4
5 /*
6 |------------------------------------------------------
7 --------------------
8 | Web Routes
9 |------------------------------------------------------
10 --------------------
11 |
12 | Here is where you can register web routes for your
13 application. These
14 | routes are loaded by the RouteServiceProvider within
15 a group which
16 | contains the "web" middleware group. Now create
17 something great!
18 |
19 */
20
21 Route::get('/', function () {
22 return view('welcome');
23 });
24
25 Route::get('/praktikum-laravel', function () {
26 return view('praktikum2.index');
27 });
28
29 Route::get('events/{location}/{name}',
30 [App\Http\Controllers\EventsController::class,
31 'show']);
32 Route::get('events',
33 [App\Http\Controllers\EventsController::class,
34 'index']);

D. Penjelasan
Menambahkan rute baru pada web.php

LATIHAN 12
A. Soal
Buka halaman tersebut pada web browser dan tempelkan screenshot-nya pada tempat yang
disediakan di bawah ini:

B. Screenshoot

C. Syntax
D. Penjelasan

FLASH MESSAGE UNTUK MENAMPILKAN PESAN

LATIHAN 1
A. Soal

Tambahkan rute berikut:

1 Route::get(‘events/validate’,[App\Http\Controllers\Even
2 tsController::class,
3 ‘showValidateForm’])->name(‘validateform.event’);
4 Route::post(‘events/validate’,[App\Http\Controllers\Eve
5 ntsController::class,
6 ‘validateForm’])->name(‘validate.event’);
B. Screenshoot

C. Syntax

1 <?php
2
3 use Illuminate\Support\Facades\Route;
4
5 /*
6 |------------------------------------------------------
7 --------------------
8 | Web Routes
9 |------------------------------------------------------
10 --------------------
11 |
12 | Here is where you can register web routes for your
13 application. These
14 | routes are loaded by the RouteServiceProvider within
15 a group which
16 | contains the "web" middleware group. Now create
17 something great!
18 |
19 */
20
21 Route::get('/', function () {
22 return view('welcome');
23 });
24
25 Route::get('/praktikum-laravel', function () {
26 return view('praktikum2.index');
27 });
28
29 Route::get('events/{location}/{name}',
30 [App\Http\Controllers\EventsController::class,
31 'show']);
32 Route::get('events',
33 [App\Http\Controllers\EventsController::class,
34 'index']);
35
36
37 Route::get('events/validate',[App\Http\Controllers\Even
38 tsController::class,
39 'showValidateForm'])->name('validateform.event');
40 Route::post('events/validate',[App\Http\Controllers\Eve
41 ntsController::class,
42 'validateForm'])->name('validate.event');

D. Penjelasan
Menambahkan rute baru

LATIHAN 2
A. Soal
Pada folder view, buatlah file baru bernama “flash-message.blade.php”, kemudian isi
dengan kode sbb:

1 @if ($message = Session::get(‘success’))


2 <strong>{{ $message }}</strong>
3 @endif
4 @if ($errors->any())
5 <strong>Data tidak valid</strong>
6 @endif

B. Screenshoot

C. Syntax

1 @if ($message = Session::get('success'))


2 <strong>{{ $message }}</strong>
3 @endif
4 @if ($errors->any())
5 <strong>Data tidak valid</strong>
6 @endif

D. Penjelasan
Membuat file dengan nama flash-message.blade.php yang berisi kode diatas.

LATIHAN 3
A. Soal
Pada class EventsController, tambahkan dua method sebagai berikut:
1 public function showValidateForm()
2 {
3 return view(‘events.validate’);
4 }
5 public function validateForm(Request $request)
6 {
7 $request->validate([
8 ‘location’ => ‘required|alpha|min:3|max:50’,
9 ‘name’ => ‘required|string|min:3|max:50’
10 ]);
11 return back()->with(‘success’,’Data valid’);
12 }

B. Screenshoot

C. Syntax

1 <?php
2
3 namespace App\Http\Controllers;
4
5 use Illuminate\Http\Request;
6 use App\Models\Event;
7
8 class EventsController extends Controller
9 {
10 public function show($location, $name)
11 {
12 return view('events\show')
13 ->with('location', $location)
14 ->with('name', $name);
15 }
16
17 public function index()
18 {
19 $events = Event::all();
20 return view('events\index')->with('events',
21 $events);
22 }
23
24 public function showValidateForm()
25 {
26 return view(‘events . validate’);
27 }
28
29 public function validateForm(Request $request)
30 {
31 $request->validate([
32 'location' =>
33 'required|alpha|min:3|max:50',
34 'name' => 'required|string|min:3|max:50'
35 ]);
36 return back()->with('success', 'Data valid');
37 }
38 }

D. Penjelasan
Menambahkan dua method pada EventsController.php yang berguna untuk menampilkan
session sementara berupa peringatan data valid atau data tidak valid

LATIHAN 4
A. Soal
Jelaskan validasi apa saja yang dilakukan pada data location dan name.

B. Screenshoot
C. Syntax
D. Penjelasan
Pada location terdapat validasi required yang mengharuskan penggunaan huruf
dengan minimal karakter 3 dan maksimal 50. Pada name, menggunakan validasi
yang sama seperti location tetapi pada name menggunakan String.

LATIHAN 5
A. Soal
Sesuai isi method showValidateForm yang baru saja ditambahkan, buatlah file Blade
dengan isi sbb:

1 <!doctype html>
2 <html>
3 <head>
4 <title>Event Validation</title>
5 </head>
6 <body>
7 @include(‘flash-message’)
8 <form action=“{{ route(‘validate.event’) }}”
9 method=“post”>
10 @csrf
11 Location: <input type=“text” name=“location”><br>
12 Name: <input type=“text” name=“name”><br>
13 <input type=“submit” value=“Validate”>
14 </form>
15 </body>
16 </html>

B. Screenshoot

C. Syntax

1 <!doctype html>
2 <html>
3
4 <head>
5 <title>Event Validation</title>
6 </head>
7
8 <body>
9 @include('flash-message')
10 <form action="{{ route('validate.event') }}"
11 method="post">
12 @csrf
13 Location: <input type="text"
14 name="location"><br>
15 Name: <input type="text" name="name"><br>
16 <input type="submit" value="Validate">
17 </form>
18 </body>
19
20 </html>

D. Penjelasan
Menambah file pada direktori view/events/ dengan nama yang sesuai dengan
method showValidateForm. Yaitu events_validate.blade.php

LATIHAN 6
A. Soal
Pada formulir di atas, apakah fungsi @csrf? Apa yang terjadi jika baris tersebut (@csrf)
dihapus?
B. Screenshoot
C. Syntax
D. Penjelasan
@csrf berfungsi untuk melindungi form dari serangan cross-site request forgery
yang memaksa pengguna untuk melakukan Tindakan yang tidak diinginkan
pada web saat proses autentikasi

LATIHAN 7
A. Soal
Jalankan aplikasi, tempelkan tiga buah screenshot, yaitu: screenshot formulir validasi,
screenshot ketika data tidak valid, dan screenshot ketika data valid.

B. Screenshoot

C. Syntax
D. Penjelasan

MENAMBAHKAN AUTHENTICATION DENGAN BREEZE

LATIHAN 1
A. Soal
Pastikan MySQL Server dalam keadaan berjalan.

B. Screenshoot
C. Syntax
D. Penjelasan
MySQL server dalam keadaan berjalan.

LATIHAN 2
A. Soal
Buatlah salinan file rute (web.php) untuk mengantisipasi hilangnya rute-rute yang telah
didefinisikan sebelumnya.
B. Screenshoot
C. Syntax
D. Penjelasan

LATIHAN 3
A. Soal
Buka CMD/Terminal dan jalankan perintah-perintah berikut secara berurutan pada project
root directory:

1 composer require laravel/breeze –-dev


2 php artisan breeze:install
3 npm install
4 npm run dev
5 php artisan migrate

B. Screenshoot
C. Syntax
D. Penjelasan
Menjalankan serangkaian perintah pada command prompt

LATIHAN 4
A. Soal
Buka file web.php pada folder routes, periksa apakah rute-rute yang sebelumnya dibuat
telah hilang atau masih ada. Bila hilang, maka tambahkan kembali rute-rute yang hilang
tersebut.
B. Screenshoot

C. Syntax
D. Penjelasan
Memasukkan Kembali rute yang hilang

LATIHAN 5
A. Soal

Jalankan aplikasi, lakukan registrasi pengguna baru melalui path /register.

B. Screenshoot

C. Syntax
D. Penjelasan

LATIHAN 6
A. Soal
Tempelkan screenshot halaman Dashboard yang tampil setelah proses registrasi berhasil.
B. Screenshoot

C. Syntax
D. Penjelasan

LATIHAN 7
A. Soal
Lakukan proses logout melalui menu yang ada pada halaman Dashboard tersebut.

B. Screenshoot
C. Syntax
D. Penjelasan

LATIHAN 8
A. Soal
Selanjutnya kita akan melindungi halaman validasi yang sebelumnya telah kita buat
(validateform.event dan validate.event) sehingga hanya bisa diakses oleh
pengguna yang sedang logged in. Sisipkan kode yang bertanda khusus berikut ini pada rute:

1 Route::get(‘events/validate’,[App\Http\Controllers\Even
2 tsController::class,
3 ‘showValidateForm’])->middleware([‘auth’])-
4 >name(‘validateform.event’);
5 Route::post(‘events/validate’,[App\Http\Controllers\Eve
6 ntsController::class,
7 ‘validateForm’])->middleware([‘auth’])-
8 >name(‘validate.event’);

B. Screenshoot

C. Syntax

1 <?php
2
3 use App\Http\Controllers\ProfileController;
4 use Illuminate\Support\Facades\Route;
5
6 /*
7 |-------------------------------------------------------
8 -------------------
9 | Web Routes
10 |-------------------------------------------------------
11 -------------------
12 |
13 | Here is where you can register web routes for your
14 application. These
15 | routes are loaded by the RouteServiceProvider within a
16 group which
17 | contains the "web" middleware group. Now create
18 something great!
19 |
20 */
21
22 Route::get('/', function () {
23 return view('welcome');
24 });
25
26 Route::get('/dashboard', function () {
27 return view('dashboard');
28 })->middleware(['auth', 'verified'])->name('dashboard');
29
30 Route::middleware('auth')->group(function () {
31 Route::get('/profile', [ProfileController::class,
32 'edit'])->name('profile.edit');
33 Route::patch('/profile', [ProfileController::class,
34 'update'])->name('profile.update');
35 Route::delete('/profile', [ProfileController::class,
36 'destroy'])->name('profile.destroy');
37 });
38
39 require __DIR__.'/auth.php';
40
41 Route::get('/praktikum-laravel', function () {
42 return view('praktikum2.index');
43 });
44 Route::get('events/{location}/{name}',
45 [App\Http\Controllers\EventsController::class, 'show']);
46 Route::get('events',
47 [App\Http\Controllers\EventsController::class,
48 'index']);
49 Route::get('events/validate',[App\Http\Controllers\Event
50 sController::class, 'showValidateForm'])-
51 >name('validateform.event');
52 Route::post('events/validate',[App\Http\Controllers\Even
53 tsController::class, 'validateForm'])-
54 >name('validate.event');
55
56 Route::get('events/validate',[App\Http\Controllers\Event
57 sController::class, 'showValidateForm'])-
58 >middleware(['auth'])->name('validateform.event');
59 Route::post('events/validate',[App\Http\Controllers\Even
60 tsController::class, 'validateForm'])-
61 >middleware(['auth'])->name('validate.event');

D. Penjelasan
LATIHAN 9
A. Soal

Dalam posisi tidak logged in, akses halaman formulir validasi. Apa yang terjadi?

B. Screenshoot

C. Syntax
D. Penjelasan
Ketika mengakses events/validate akan langsung menuju ke halaman login.

LATIHAN 10
A. Soal
Dalam posisi logged in, akses halaman formulir validasi. Apa yang terjadi?

B. Screenshoot
C. Syntax
D. Penjelasan
Ketika mengakses events/validate dalam kondisi sudah login maka akan langsung mengakses
halaman validate.

Anda mungkin juga menyukai