Anda di halaman 1dari 61

EBOOK

Panduan Praktis Laravel 5 #Fundamental


Disusun Oleh : Sugono Galih Aprianto
Founder indosmartdigital.com

indosmartdigital.com | Panduan Praktis Laravel 5 #Fundamental ii


Berkenalan dengan Framework Laravel
Laravel merupakan fra ewoework rk ope
openn sou
source
rce yan
yang
g ccuku
ukup
pppopu
opull r beberapa
tahun
tah un belak
belakang
angan. Sejak dililuuncurkan tahun 2011, membuat we site dengan
an. Seja
Larave
Laravell ban
banyak
yak digem
digemaa i oleh berbagai
berbagai komunitas
komunitas pro
programm
grammeer di Github,
sebelum kemudian me yebar ke seluruh dunia.

Gambar 1 : Logo Laravel


Laravel sangat cocok digunakan untuk pengembangan sistem yang cukup
kompleks. Jika hanya si tem seder
sederha
hana
na dirasa
dirasa tidak
tidak se
seban
bandin
din dengan proses
pengembangannya.
Cara Instalasi Laravel di Windows
Laravel menggunakan omposer untuk mengelgelola depen
pende
dennsinya. Jadi,
sebelum menggunakan Laravel, pastikan Kamu memiliki Com oser yang
terinstall di komputer K mu.

Apa itu Composer?


Composer adalah dependensi manajer untuk library PHP. Kita enggunakan
Composer untuk mengi stal, me
menghapus da
dan me
memperbar aruui p ket PHP.

indosmartdigital.com | Pa duan Praktis Laravel 5 #Fundamental


3

Gambar 2 : Composer

Install Via LARAVEL Installer


Buka Command Prompt lalu tujulah lokasi folder yang akan menampung folder
kerja kita. Bagi pengguna XAMPP dapat menggunakan folder htdocs.
Setelah berada di dalam folder, ketikkan perintah sebagai berikut:
composer global require "laravel/installer"
Tunggulah hingga proses penginstalan selesai. Setelah itu, Kita bisa mulai
membuat project laravel dengan mengetikkan perintah:
laravel new laravelapp
laravelapp: merupakan folder kerja laravel, Kita dapat menggantinya sesuai
laravelapp:
dengan keinginan
Install Via Composer Create-Project
Selain menggunakan cara di atas, Kita dapat melakukan penginstalan laravel
dengan mengetikkan perintah berikut pada command prompt:
composer create-project --prefer-dist laravel/laravel laravelapp

indosmartdigital.com | Panduan Praktis Laravel 5 #Fundamental


4

Menguji Hasil Instalasi Laravel


Setelah proses instalasi Laravel selesai, Kita perlu menguji apakah hasil
instalasi tersebut berjalan dengan baik atau tidak.
Aktifkan Apache server lewat XAMPP Control Panel

Pada browser, ketik alamat http://localhost/laravelapp/public/


Atau Kita dapat menggunakan perintah:
php artisan serve
Kita dapat menjalankan aplikasi LARAVEL di folder manapun dengan
menggunakan perintah di atas sehingga tidak harus selalu berada di dalam
folder htdocs (XAMPP)
Jalankan dengan localhost:8000
Dan pastikan tampilan di browser akan seperti berikut ini :

Gambar 3 : Hasil Instalasi Laravel di Browser

Routing dan View pada Framework Laravel


Lar avel
Mengenal dan membuat route
Setiap request yang datang pada laravel akan diarahkan melalui sebuah
route. Route ini yang akan menentukan respon apa yang akan dikerjakan untuk
membalas request tersebut.

indosmartdigital.com | Panduan Praktis Laravel 5 #Fundamental


5

Halaman homepage default Laravel seperti yang ditampilkan pada Gambar 3


adalah hasil dari script yang terletak pada file laravelapp\routes\web.php
Berikut ini adalah perintah route untuk menampilkan halaman default Laravel
tersebut

Gambar 4 : Perintah route untuk menampilkan halaman default Laravel

Membuat Route Baru di Laravel


Kita dapat menuliskan perintah baru
ba ru untuk membuat route, selain
mengembalikan file view sebagai response, Kita dapat mengembalikan
response berupa string alias teks biasa.
Buka file laravelapp\routes\web.php
laravelapp\routes\web.php,, tambahkan isinya dengan script di
bawah ini :
Route::get
Route:: get(
('hallo', function () {
'hallo',
return "Hallo, Anda sedang mengikuti ebook panduan Laravel
Fundamental";
Fundamental" ;
});

Untuk melihat hasilnya, pada browser, ketikkan alamat


http://localhost:8000/hallo

Gambar 5 : Tampilan halaman di browser

indosmartdigital.com | Panduan Praktis Laravel 5 #Fundamental


6

Pada contoh berikutnya, kita akan mencoba membuat route baru dengan
menampilkan halaman view.
Tambahkan route baru untuk halaman “profil” dengan menambahkan script
berikut:
Route::get
Route:: get(
('profil'
'profil',, function () {
return view
view(
('profil'
'profil');
);
});

Buat file baru bernama profil.blade.php di dalam folder


laravelapp\resources\views\,, ketikkan script berikut ini:
laravelapp\resources\views\
<!DOCTYPE html>
<html>
<head>
<title>Profil Saya</title>
</head>
<body>

<h1>Profil Saya</h1>
<p>Perkenalkan Nama saya Sugono Galih, saya seorang praktisi dibidang
kreatif digital sejak tahun 2008 di Bandar Lampung, Indonesia. </p>
<p>Saya memiliki pengalaman bekerja dibidang Web Development dan
Digital Marketing dan saat ini aktif mengajar untuk berbagi pengalaman di
beberapa program
pro gram kursus, workshop
w orkshop dan pelatihan.
p elatihan. </p>
</body>
</html>

Untuk menampilkan hasilnya, ketikkan alamat http://localhost:8000/profil

Gambar 6 : Tampilan halaman profil di browser


Cara Menggunakan Controller pada Framework Laravel
Pada pembahasan sebelumnya, Kita sudah bisa menampilkan file view
langsung dari Routenya. Tetapi sebuah aplikasi tidaklah sesimpel itu, akan ada

indosmartdigital.com | Panduan Praktis Laravel 5 #Fundamental


7

logika dan data-data yang harus diolah terlebih dahulu. Caranya adalah
dengan menggunakan Controller.
Ada dua cara yang dapat digunakan untuk membuat Controller. Cara
pertama, dengan membuat file controller secara manual dan tuliskan code
untuk extends controller secara manual. Cara kedua, adalah dengan membuat
file Controller lewat Artisan di Laravel.
Kita gunakan cara yang kedua, pada latihan kali ini kita akan membuat
Controller dengan nama CobaController dengan menuliskan di command
prompt / terminal :
php artisan make:controller CobaController
Maka akan terbentuk sebuah file dengan nama CobaController.php pada
folder laravelapp\app\Http\Controllers\

Gambar 7 : Isi file CobaController.php


Ubah route halaman ‘profil’ pada latihan sebelumnya menjadi seperti berikut
Route::
Route::get
get(
('profil'
'profil',, 'CobaController@profil' );

Langkah selanjutnya, tambahkan fungsi / method profil() pada class


CobaController seperti berikut ini:
<?php

namespace App\Http\Controllers
App\Http\Controllers;;

use Illuminate\Http\Request
Illuminate\Http\Request;;

indosmartdigital.com | Panduan Praktis Laravel 5 #Fundamental


8

class CobaController extends Controller


{
public function profil
profil()
()
{
return view
view(('profil'
'profil');
);
}
}

Ketikkan alamat http://localhost:8000/profil,


http://localhost:8000/profil, dan Kita akan mendapatkan hasil
yang sama seperti pada latihan sebelumnya.

Gambar 7 : Tampilan halaman profil di browser via CobaController.php

Memberikan Data Controller kepada View


Dalam sebuah aplikasi, sangat jarang Kita temukan isi dari file view yang
bersifat statis. Pada umumnya, view dipakai untuk menampilkan data,
contohnya adalah data yang berasal dari database.
Namun, karena kita belum sampai pada pembahasan database, maka pada
latihan kali ini kita akan
a kan mencoba menampilkan data dari variabel.

Buat route baru untuk halaman biodata


Route::get
Route:: get(
('biodata'
'biodata',, 'BiodataController@index' );

Buat controller baru dengan nama BiodataController.php


php artisan make:controller BiodataController
Ketikkan script berikut dengan memberikan method / fungsi index pada
laravelapp\app\Http\Controllers\BiodataController.php
<?php

namespace App\Http\Controllers
App\Http\Controllers;;

use Illuminate\Http\Request
Illuminate\Http\Request;;

class BiodataController extends Controller


{

indosmartdigital.com | Panduan Praktis Laravel 5 #Fundamental


9

public function index


index()
() {
$nama = 'Sugono Galih Aprianto';
Aprianto';
return view
view(('biodata' , ['nama' => $nama]);
$nama]);
}
}

Buat file view dengan nama biodata.blade.php pada


laravelapp\resources\views\
<!DOCTYPE html>
<html>
<head>
<title>Biodata</title>
</head>
<body>
<h1>Biodata</h1>
<p>Nama : {{ $nama
$n ama }} </p>
</body>
</html>

Pada browser, ketik alamat http://localhost:8000/biodata


http://localhost:8000/biodata,, maka hasilnya akan
seperti gambar berikut:

Gambar 8 : Tampilan Halaman Biodata


Memberikan Data Array Kepada View

Pada contoh kali ini, Kita coba untuk memberikan data array kepada view.
Tambahkan variabel data array pada BiodataController.php
<?php

namespace App\Http\Controllers
App\Http\Controllers;;

use Illuminate\Http\Request
Illuminate\Http\Request;;

class BiodataController extends Controller


{
public function index
index()
() {
$nama = 'Sugono Galih Aprianto';
Aprianto';
$materi = ["Web Design",
Design", "Web Programming",
Programming", "Digital
Marketing",
Marketing" ,"Graphic Design"];
Design"];
return view
view(
('biodata' , ['nama' => $nama,
$nama, 'materi' => $materi
$materi]);
]);
}
}
indosmartdigital.com | Panduan Praktis Laravel 5 #Fundamental
10

Tambahkan isi file view biodata.blade.php menjadi seperti berikut:


<!DOCTYPE html>
<html>
<head>
<title>Biodata</title>
</head>
<body>
<h1>Biodata</h1>
<p>Nama : {{ $nama
$n ama }} </p>
<p>Materi Mengajar
Menga jar</p>
<ul>
@foreach($materi as $datamateri)
<li>{{ $datamateri }}</li>
@endforeach
</ul>
</body>
</html>

Dan hasilnya akan seperti gambar berikut ini:

Gambar 9 : Tampilan Halaman Biodata setelah diberi data array


Sistem Templating Blade Pada Framework Laravel
Sebelumnya, Kita sudah membuat view sebagai respon untuk menampilkan
data. Sekarang saatnya untuk mengenal Blade.
Pada latihan kali ini, Kita akan menggunakan Bootstrap untuk membuat
tampilan website Kita terlihat lebih cantik.
Langsung saja kita praktekkan.
Persiapan
Download Source Bootstrap dan Jquery di situs resminya.
Mulai membuat template
Buat assets template sederhana dengan bootstrap, persiapkan file bootstrap
ke dalam folder Laravel. Copykan assets template yang sudah Kita siapkan ke
dalam folder laravelapp\public\
indosmartdigital.com | Panduan Praktis Laravel 5 #Fundamental
11

Gambar 10 : File bootstrap dan jquery di dalam folder public\assets\


Buat file Controller dengan nama BlogController pada folder
laravelapp\app\Http\Controllers menggunakan perintah artisan di
command prompt
php artisan make:controller BlogController
Selanjutnya Kita ubah isi script web.php di dalam folder laravelapp\routes\
menjadi seperti berikut:
// Sistem Template Blade
Route::get
Route:: get(
('/blog'
'/blog',
, 'BlogController@home' );
Route::
Route::get
get(
('/blog/tentang'
'/blog/tentang',, 'BlogController@tentang' );
Route::
Route::get
get(
('/blog/kontak'
'/blog/kontak',, 'BlogController@kontak' );

Ketikkan script pada file BlogController.php yang ada di dalam folder


Laravelapp\App\Http\Controllers menjadi seperti berikut:
<?php

namespace App\Http\Controllers
App\Http\Controllers;;

use Illuminate\Http\Request
Illuminate\Http\Request;;

class BlogController extends Controller


{
public function home
home()
()
{
return view
view(('blog.home'
'blog.home');
);
}

public function tentang


tentang()
()
{
return view
view(('blog.tentang'
'blog.tentang');
);
}

public function kontak


kontak()
()
{
return view
view(('blog.kontak'
'blog.kontak');
);
}
}
indosmartdigital.com | Panduan Praktis Laravel 5 #Fundamental
12

Menyiapkan File Master Template


Buat file baru simpan dengan nama template.blade.php pada folder
laravelapp\resources\views\,, ketikkan script berikut :
laravelapp\resources\views\
@include('blog.header')
@yield('intro-header')
@yield('main')
@include('blog.footer')

Menyimpan view di dalam Sub-Folder


Lokasi default untuk menyimpan file-file view adalah di dalam folder
laravelapp\resources\views\.. Namun jika jumlah file view semakin banyak,
laravelapp\resources\views\
maka akan cukup menyulitkan untuk mengaturnya.
Supaya file-file view itu lebih terorganisir maka Kita dapat mengelompokkan ke
dalam sub-folder khusus.
Buat folder blog di dalam folder views, sehingga akan terbentuk path
laravelapp\resources\views\blog\
Buat beberapa file baru dan simpan nama file blade seperti berikut:

blade
Gambar 11 : Nama file bla de yang disimpan
Ketikkan script berikut pada file header.blade.php
<!DOCTYPE html>
<html lang
lang=="en">

<head>

<meta charset
charset=="utf-8" >
<meta name
name=="viewport" content ="width=device-width, initial-scale=1,
content=
shrink-to-fit=no" >
<meta name
name=="description" content ="">
content=
<meta name
name=="author" content=
content="">

<title>@yield('title') </title>

<!-- Bootstrap core CSS -->


<link href
href=="{{ asset('assets/vendor/bootstrap/css/bootstrap.min.css') }}"

rel="stylesheet" >
rel=
<!-- Custom styles -->
indosmartdigital.com | Panduan Praktis Laravel 5 #Fundamental
13

<link href
href=="{{ asset('assets/css/style.css') }}" rel=
rel="stylesheet" >

</head>

<body>

<!-- Navigation -->


class="navbar navbar-expand-lg navbar-light bg-light fixed-top"
<nav class=
id="mainNav" >
id=
<div class ="container" >
class=
<a class ="navbar-brand js-scroll-trigger" href=
class= href="{{ url('/blog'
url('/blog')
)
}}">Belajar Koding</a>
<button class
class=="navbar-toggler" type=
type="button" data-toggle="collapse"
data-target ="#navbarResponsive" aria-controls="navbarResponsive" aria-
data-target=
expanded= "false" aria-label="Toggle navigation">
<span class
class=="navbar-toggler-icon" ></span>
</button>
class="collapse navbar-collapse" id=
<div class= id="navbarResponsive" >
class="navbar-nav ml-auto">
<ul class=
<li class
class=="nav-item" >
class="nav-link js-scroll-trigger" href
<a class= ="{{ url('/blog
href= url('/blog')
')
}}">Home</a>
</li>
<li class
class=="nav-item" >
class="nav-link js-scroll-trigger" href
<a class= ="{{
href=
url('/blog/tentang')
</li> }}">Tentang </a>
<li class
class=="nav-item" >
class="nav-link js-scroll-trigger" href
<a class= href=="{{
url('/blog/kontak') }}">Kontak </a>
</li>
</ul>
</div>
</div>
</nav>
<!-- END : Navigation -->

Ketikkan script berikut pada file footer.blade.php


<!-- Footer -->
class="py-5 bg-info">
<footer class=
class="container" >
<div class=
class="m-0 text-center text-white">Copyright
<p class= &copy; Belajar
Koding 2019</p>
</div>
</footer>
<!-- END : Footer -->

<!-- Bootstrap core JavaScript -->


src="{{ asset('assets/vendor/jquery/jquery.min.js')
<script src=
}}"></script>
src="{{
<script src=
asset('assets/vendor/bootstrap/js/bootstrap.bundle.min.js') }}"></script>
</body>
</html>

Tuliskan script berikut pada file home.blade.php


@extends('template')
@section('title', 'Belajar Koding')

@section('intro-header')
indosmartdigital.com | Panduan Praktis Laravel 5 #Fundamental
14

<!-- Header -->


<header class
class=="intro-header text-white" style="background: url('{{
style=
asset

('assets/images/home-bg.jpg') }}') no-repeat bottom center;" >


<div class
class=="container text-center">
<h1>Belajar Koding Mulai Dari Nol</h1>
<p class
class=="lead" >Bangun karir Kamu di bidang kreatif digital untuk
menjadi seorang
seor ang profesional
profesiona l</p>
</div>
</header>
<!-- END : Header -->
@endsection

@section('main')
<!-- Main -->
class="main" >
<section class=
class="container" >
<div class=
class="row">
<div class=
class="col-lg-8 mx-auto">
<div class=
<h2>Halaman Home</h2>
class="lead" >Lorem ipsum dolor sit amet, consectetur
<p class=
adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore
adipisicing
magna aliqua.
aliqua . Ut enim ad minim
m inim veniam, quis nostrud exercitation ullamco
laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in
reprehenderit
pariatur. in voluptate
Ex cepteur
Excepteur velit esse
sint occaecat
o ccaecat cillum
cupidatat
cupid dolore
atat non eu fugiat
proident,
pro ident, sunt nulla
in culpa
qui officia deserunt mollit anim id est laborum.</p>
</div>
</div>
</div>
</section>
<!-- END : Main -->
@endsection

Tuliskan script berikut pada file tentang.blade.php


@extends('template')
@section('title', 'Tentang Kami')

@section('intro-header')
<!-- Header -->
<header class
class=="intro-header text-white" style="background: url('{{
style=
asset

('assets/images/about-bg.jpg') }}') no-repeat top center;" >


<div class="container text-center">
class=
<h1>Tentang Belajar Koding</h1>
<p class="lead" >Contoh Halaman Tentang di Belajar Koding </p>
class=
</div>
</header>
<!-- END : Header -->
@endsection

@section('main')
<!-- Main -->
class="main" >
<section class=
<div class="container" >
class=

<div
<div ="row"
class=
class >
="col-lg-8
class=
class mx-auto">
<h2>Halaman Tentang Kami</h2>
indosmartdigital.com | Panduan Praktis Laravel 5 #Fundamental
15

class="lead" >Lorem ipsum dolor sit amet, consectetur


<p class=
adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore
adipisicing
magna aliqua.
aliqua . Ut enim ad minim
m inim veniam, quis nostrud exercitation ullamco
laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in
reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
pariatur. Excepteur
Ex cepteur sint occaecat
o ccaecat cupidatat
cupid atat non proident,
pro ident, sunt in culpa
qui officia deserunt mollit anim id est laborum.</p>
</div>
</div>
</div>
</section>
<!-- END : Main -->
@endsection

Tuliskan script berikut pada file kontak.blade.php


@extends('template')
@section('title', 'Kontak Kami')

@section('intro-header')
<!-- Header -->
<header class
class=="intro-header text-white" style="background: url('{{
style=
asset

('assets/images/contact-bg.jpg') }}') no-repeat center center;">


<div class="container text-center">
class=
<h1>Kontak Belajar Koding</h1>
<p class="lead" >Contoh Halaman Kontak di Belajar Koding </p>
class=
</div>
</header>
<!-- END : Header -->
@endsection

@section('main')
<!-- Main -->
class="main" >
<section class=
<div class="container" >
class=
class="row">
<div class=
class="col-lg-8 mx-auto">
<div class=
<h2>Kontak Kami</h2>
class="lead" >Lorem ipsum dolor sit amet, consectetur
<p class=
adipisicing
adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore
magna aliqua.
aliqua . Ut enim ad minim
m inim veniam, quis nostrud exercitation ullamco
laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in
reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
pariatur. Excepteur
Ex cepteur sint occaecat
o ccaecat cupidatat
cupid atat non proident,
pro ident, sunt in culpa
qui officia deserunt mollit anim id est laborum.</p>
</div>
</div>
</div>
</section>
<!-- END : Main -->
@endsection
indosmartdigital.com | Panduan Praktis Laravel 5 #Fundamental
16

Untuk melihat hasil dari template yang telah kita buat, buka halaman
http://localhost:8000/blog pada browser, maka akan tampil seperti gambar
di bawah ini:

Gambar 11 : Tampilan Halaman Home


Hasil tampilan halaman http://localhost:8000/blog/tentang

Gambar 12 : Tampilan Halaman Tentang


indosmartdigital.com | Panduan Praktis Laravel 5 #Fundamental
17

Hasil tampilan halaman http://localhost:8000/blog/kontak

Gambar 13 : Tampilan Halaman Kontak


Latihan CRUD (Create, Read, Update, Delete) pada Laravel dengan Query
Builder
Untuk memulai pembahasan CRUD di laravel, Kita akan mencoba
menggunakan Query Builder.
Langkah Pertama, siapkan database dan table lewat PHPMyAdmin

Gambar 14 : Struktur table member dalam database dblaravel


indosmartdigital.com | Panduan Praktis Laravel 5 #Fundamental
18

Isikan sample data member

Gambar 15 : Sample data member


Buat file Controller dengan
d engan nama MemberController pada folder
laravelapp\app\Http\Controllers menggunakan perintah artisan di
command prompt
php artisan make:controller MemberController
Langkah selanjutnya, Lakukan konfigurasi pada file .env
.env..
Silahkan buka file .env
Bagi pengguna XAMPP, Isikan dblaravel untuk DB_DATABASE
DB_DATABASE,, root untuk
DB_USER,, dan kosongkan untuk DB_PASSWORD
DB_USER DB_PASSWORD..

Gambar 16 : Tampilan Konfigurasi file .env


Selanjutnya Kita tambahkan isi script web.php di dalam folder
laravelapp\routes\ menjadi seperti berikut:
// CRUD : Query Builder
Route::
Route::get
get(
('/member'
'/member',, 'MemberController@index' );
Route::
Route::get
get(
('/member/tambah' , 'MemberController@tambah' );
Route::
Route::post
post(
('/member/store'
'/member/store',
, 'MemberController@store' );
::get
Route::
Route get(
('/member/edit/{id}' , 'MemberController@edit' );
Route::
Route::post
post(
('/member/update'
'/member/update',
, 'MemberController@update' );
::get
Route::
Route get(
('/member/hapus/{id}' , 'MemberController@hapus' );
Route::
Route::get
get(
('/member/cari'
'/member/cari',, 'MemberController@cari' );
indosmartdigital.com | Panduan Praktis Laravel 5 #Fundamental
19

Tuliskan script pada file MemberController.php yang ada di dalam folder


Laravelapp\App\Http\Controllers menjadi seperti berikut:
<?php

namespace App\Http\Controllers
App\Http\Controllers;;

use Illuminate\Http\Request
Illuminate\Http\Request;;
use Illuminate\Support\Facades\DB
Illuminate\Support\Facades\DB;
;

class MemberController extends Controller


{
public function index
index()
()
{
$member = DB
DB::
::table
table(
('member'
'member')->
)->paginate
paginate((10
10);
);

return view
view(('member.index'
'member.index',, ['member' => $member]);
$member ]);
}

public function cari


cari(
(Request $request)
$request )
{
$cari = $request->
$request ->cari
cari;;

$member = DB
DB::
::table
table(
('member'
'member'))
->
->where
->where(('nama'
'nama',
->paginate (); , 'LIKE',
paginate(); 'LIKE' , "%"
"%"..$cari
$cari.."%"
"%"))
return view
view(('member.index'
'member.index',, ['member' => $member]);
$member ]);
}

public function tambah


tambah()
()
{
return view
view(('member.tambah'
'member.tambah');
);
}

public function store


store((Request $request)
$request )
{
$this->
$this->validate
validate(
($request
$request,[
,[
'nama' => 'required'
'required',,
'pekerjaan' => 'required',
'required' ,
'umur' => 'required|numeric' ,
'alamat' => 'required'
]);

DB::
DB::table
table(
('member'
'member')->
)->insert
insert([
([
'nama' => $request
$request->
->nama
nama,,
'pekerjaan' => $request->
$request ->pekerjaan
pekerjaan,
,
'umur' => $request
$request->
->umur
umur,,
'alamat' => $request->
$request ->alamat
alamat
]);

return redirect
redirect(('/member'
'/member');
);
}

public function edit


edit(
($id
$id)
)
{
$member = DB
DB::
::table
table(
('member'
'member')->
)->where
where(
('id'
'id',
, $id)->
$id)->get
get();
();

} return view
view(('member.edit'
'member.edit',
, ['member'
'member'=>
=> $member]);
$member ]);
indosmartdigital.com | Panduan Praktis Laravel 5 #Fundamental
20

public function update


update((Request $request)
$request )
{
DB::
DB::table
table(
('member'
'member')->
)->where
where(
('id'
'id',
, $request
$request->
->id
id)->
)->update
update([
([
'nama' => $request
$request->
->nama
nama,,
'pekerjaan' => $request->
$request ->pekerjaan
pekerjaan,,
'umur' => $request
$request->
->umur
umur,,
'alamat' => $request->
$request ->alamat
alamat
]);

return redirect
redirect(('/member'
'/member');
);
}

public function hapus


hapus(($id
$id))
{
DB::table
DB:: table(
('member'
'member')->
)->where
where(
('id'
'id',
, $id )->delete();
$id)->

return redirect
redirect(('/member'
'/member');
);
}
}

Langkah berikutnya, buat sub-folder member di dalam folder


laravelapp\resources\views
Buat script halaman view berikut di dalam folder member.
Halaman Tampil Data (index.blade.php
(index.blade.php))
<!DOCTYPE html>
<html>
<head>
<title>Data Member</title>
<link rel
rel=="stylesheet" href=
href="{{ asset('/css/app.css') }}">
<style>
body {
margin-top: 15px;
1 5px;
}
.pagination li {
float:left;
list-style-type: none;
margin:5px;
}
</style>
</head>
<body>
<div class
class=="container" >
class="card" >
<div class=
<div class="card-body" >
class=
<h1>Data Member</h1>

<p>Cari Data Member :</p>

<form action
action=="/member/cari" mehod="GET" class
class=="form-
inline">
class="form-control" type=
<input class= type="text" name
name=="cari"
placeholder ="Cari Member" value
placeholder= ="{{ old('cari') }}">
value=
class="btn btn-primary ml-3" type
<input class= type=="submit"
value="CARI" >
value=
</form>
indosmartdigital.com | Panduan Praktis Laravel 5 #Fundamental
21

<br>
href="/member/tambah" class
<a href= ="btn btn-primary">+ Tambah
class=
Member Baru </a>
<br>
<br>
class="table table-bordered table-striped">
<table class=
<tr>
<th>Nama</th>
<th>Pekerjaan </th>
<th>Umur</th>
<th>Alamat </th>
<th>Opsi</th>
</tr>
@foreach($member as $m)
<tr>
<td>{{ $m->nama }}</td>
<td>{{ $m->pekerjaan }}</td>
<td>{{ $m->umur }}</td>
<td>{{ $m->alamat }}</td>
<td>
class="btn btn-warning"
<a class=
href="/member/ed
href="/member/edit/{{
it/{{ $m->id }}">Edit</a>
class="btn btn-danger"
<a class=
href="/member/hapus/{{ $m->id }}">Hapus</a>
href=
</td>
</tr>
@endforeach
</table>
<br>
Halaman : {{ $member->currentPage() }} <br>
Jumlah Data : {{ $member->total() }} <br>
Data per Halaman : {{ $member->perPage()
$member->perPage() }}<br>
<br>

{{ $member->links() }}
</div>
</div>
</div>
</body>
</html>

(tambah.blade.php))
Halaman Form Tambah Data (tambah.blade.php
<!DOCTYPE html>
<html>
<head>
<title>Form Data Member</title>
<link rel
rel=="stylesheet" href=
href="{{ asset('/css/app.css') }}">
<style>
body {
margin-top: 15px;
1 5px;
}
</style>
</head>
<body>
<div class="container" >
class=
class="row">
<div class=
<div class="col-md-12" >
class=
indosmartdigital.com | Panduan Praktis Laravel 5 #Fundamental
22

<div class
class=="card">
<div class
class=="card-body">
<h3>Tambah Data Member</h3>

href="/member" class
<a href= ="btn btn-
class=
primary" >Kembali</a>

<br>
<br>

{{-- menampilkan error validasi --}}

@if(count($errors) > 0)
class="alert alert-dange
<div class= alert-danger"
r">
<ul>
@foreach($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif

<form action
action=="/member/store" method=
method ="post">
{{ csrf_field() }}
class="form-group" >
<div class=
<label>Nama</label>
class="form-control" type
<input class= type=="text"
name="nama" >
name=
</div>
class="form-group" >
<div class=
<label>Pekerjaan </label>
class="form-control" type
<input class= type=="text"
name="pekerjaan">
name=
</div>
class="form-group" >
<div class=
<label>Umur</label>
class="form-control" type
<input class= type=="text"
name="umur" >
name=
</div>
class="form-group" >
<div class=
<label>Alamat </label>
<textarea class
class=="form-control"
name="alamat" ></textarea>
name=
</div>
class="form-group" >
<div class=
class="btn btn-primary"
<input class=
type="submit" value
type= ="Simpan" >
value=
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
indosmartdigital.com | Panduan Praktis Laravel 5 #Fundamental
23

Halaman Form Edit Data (edit.blade.php


(edit.blade.php))
<!DOCTYPE html>
<html>
<head>
<title>Edit Data Member</title>
<link rel
rel=="stylesheet" href=
href="{{ asset('/css/app.css') }}">
<style>

bodymargin-top:
{ 1 5px;
15px;
}
</style>
</head>
<body>
<div class="container">
class=
<div class
class=="row">
class="col-md-12" >
<div class=
<div class
class=="card">
<div class ="card-body" >
class=
<h3>Edit Member</h3>
href="/member" class
<a href= ="btn btn-primary">Kembali </a>
class=
<br>
<br>
{{-- menampilkan error validasi --}}

@if(count($errors) > 0)
<div class="alert alert-dange
class= alert-danger"
r">
<ul>
@foreach($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif

@foreach($member
@foreach($member as $m)
<form action
action=="/member/update" method
method=="post" >
{{ csrf_field() }}
type="hidden" name=
<input type= name="id" value=
value="{{ $m-
>id }}">

class="form-group"
class=
<div<label> Nama</label> >
type="text" class=
<input type= class="form-control"
name="nama" required=
name= required ="required" value=
value="{{ $m->nama }}">
</div>
class="form-group" >
<div class=
<label>Pekerjaan </label>
type="text" class=
<input type= class="form-control"
name="pekerjaan" required
name= required=="required" value=
value="{{ $m->pekerjaan }}">
</div>
class="form-group" >
<div class=
<label>Umur</label>
type="text" class=
<input type= class="form-control"
name="umur" required=
name= required ="required" value=
value="{{ $m->umur }}">
</div>
class="form-group" >
<div class=
<label>Alamat </label>
<textarea class ="form-control"
class=
name="alamat" required
name= required=="required" >{{ $m->alamat }}</textarea>
</div>
indosmartdigital.com | Panduan Praktis Laravel 5 #Fundamental
24

class="form-group" >
<div class=
type="submit" value=
<input type= value="Update"
class="btn btn-primary">
class=
</div>
</form>
@endforeach
</div>
</div>
</div>
</div>
</div>
</body>
</html>

Untuk melihat hasil dari script yang telah kita buat, buka halaman
http://localhost:8000/member pada browser, maka akan tampil seperti
gambar di bawah ini:

Gambar 17 : Halaman Tampil Data Member


indosmartdigital.com | Panduan Praktis Laravel 5 #Fundamental
25

Hasil tampilan halaman http://localhost:8000/member/tambah

Gambar 18 : Halaman Form Tambah Data Member


Hasil tampilan halaman http://localhost:8000/member/edit

Gambar 19 : Halaman Form Edit Data Member


indosmartdigital.com | Panduan Praktis Laravel 5 #Fundamental
26

Database Migration
Migration merupakan fitur yang ada pada laravel yang berfungsi sebagai
Version Control System untuk database.
Dengan fungsi migration maka semua perubahan yang Kita lakukan database
akan dicatat dalam suatu table tersendiri. Sehingga memudahkan Kita untuk
dapat membatalkan / rollback perubahan pada suatu table apabila terdapat
kesalahan ke kondisi semula.
Langkah pertama, ketikkan perintah artisan berikut ini:
php artisan make:migration create_mahasiswa_table --create=mah
--create=mahasiswa
asiswa
Buka folder laravelapp\database\migrations
laravelapp\database\migrations.. Buka file yang namanya
mengandung create_mahasiswa_table.php.
Ubah script file create_mahasiswa_table tersebut menjadi seperti berikut:
<?php

use Illuminate\Support\Facades\Schema
Illuminate\Support\Facades\Schema;;
use Illuminate\Database\Schema\Blueprint
Illuminate\Database\Schema\Blueprint;
;
use Illuminate\Database\Migrations\Migration
Illuminate\Database\Migrations\Migration;;

class CreateMahasiswaTable extends Migration


{
/**
* Run the migrations.
*
* @return void
*/
public function up
up()
()
{
Schema::
Schema ::create
create(('mahasiswa'
'mahasiswa', , function (Blueprint $table)
$table ) {
$table->
$table->bigIncrements
bigIncrements( ('id'
'id');
);
$table->
$table ->string ('nama'
'nama');
);
$table ->string ('jurusan'
$table-> 'jurusan');
);
$table->text
$table-> text( ('alamat'
'alamat');
);
$table->
$table ->timestamps
timestamps();
();
});
}

/**
* Reverse the migrations.
*
* @return void
*/
public function down
down()
()
{
Schema::
Schema ::dropIfExists
dropIfExists(('mahasiswa'
'mahasiswa');
);
}
}
indosmartdigital.com | Panduan Praktis Laravel 5 #Fundamental
27

Konfigurasi File AppServiceProvider.php


Kita perlu melakukan sedikit perubahan pada file AppServiceProvider.php
yang terletak di dalam folder laravelapp\app\Providers agar tidak terjadi
error:

Gambar 20 : Tampilan Error saat proses migration


Bagaimana cara untuk mengatasai jika terjadi error seperti di atas ?
Lakukan perubahan pada AppServiceProvider.php
AppServiceProvider.php,, seperti berikut:
<?php

namespace App\Providers
App\Providers;;

use Illuminate\Support\ServiceProvider
Illuminate\Support\ServiceProvider; ;
use Illuminate\Support\Facades\Schema
Illuminate\Support\Facades\Schema;;

class AppServiceProvider extends ServiceProvider


{
/**
* Register any application services.
*
* @return void
*/
public function register
register()
()
{
//
}

/**
* Bootstrap any application services.
*
* @return void
*/
public function boot
boot()
()
{
Schema::
Schema ::defaultStringLength
defaultStringLength(
(191
191);
);
}
}
indosmartdigital.com | Panduan Praktis Laravel 5 #Fundamental
28

Menjalankan Migration
Pada command prompt, ketikkan perintah berikut:
php artisan migrate
Maka akan menghasilkan output sebagai berikut:

Gambar 21 : Tampilan proses migration

Gambar 22 : Tampilan Hasil migration lewat PHPMyAdmin


Setelah menjalankan migration, di dalam database db laravel akan terbentuk 4
tabel, yaitu:migrations, users, password_resets dan mahasiswa
Kita dapat membatalkan proses migration dengan mengetikkan perintah:

php artisan migrate:rollback


Maka table di dalam database akan
a kan kembali seperti kondisi semula.
indosmartdigital.com | Panduan Praktis Laravel 5 #Fundamental
29

Memanfaatkan Seeder dan Faker di Laravel


Untuk keperluan data sample pada table di dalam
da lam database, laravel
menyediakan fitur yang cukup keren yaitu seeder dan faker.
Untuk memulai menggunakan fitur ini, ketikkan perintah php artisan berikut

pada command prompt:


php artisan make:seeder MemberSeeder
Maka akan terbentuk sebuah file seeder dengan nama MemberSeeder.php di
dalam folder laravelapp\database\seeds\MemberSeeder.php
Pada contoh latihan ini, kita akan memanfaatkan Faker untuk mengisikan data
Member sebanyak 50 data.
Buka file MemberSeeder.php, ketikkan perintah seperti berikut:
<?php

use Illuminate\Database\Seeder;
Illuminate\Database\Seeder;
use Faker\Factory as Faker
Faker;;

class MemberSeeder extends Seeder


{
/**
* Run the database seeds.
*
* @return void
*/
public function run
run()
()
{
$faker = Faker
Faker::
::create
create(
('id_ID'
'id_ID');
);

for($i = 1; $i <= 50
50;; $i
$i++){
++){

DB::table
DB::table(
('member'
'member')->
)->insert
insert([
([

'nama' => $faker


$faker->
'pekerjaan' ->name
name,
=> $faker->
$faker ,jobTitle,
->jobTitle ,
'umur' => $faker
$faker->
->numberBetween
numberBetween((25
25,,40
40),
),
'alamat' => $faker->
$faker ->address
address
]);
}
}
}

Jalankan perintah seeder pada command prompt seperti berikut:


php artisan db:seed --class=MemberSeede
--class=MemberSeederr
Maka data pada table member akan bertambah 50 data seperti ditampilkan
pada halaman browser berikut:
indosmartdigital.com | Panduan Praktis Laravel 5 #Fundamental
30

Gambar 23 : Tampilan data member setelah menggunakan fungsi seeder dan faker
Latihan CRUD (Create, Read, Update, Delete) pada Laravel engan
Eloquent
Pada latihan kali ini, kita akan memanfaaktan fitur eloquent di laravel untuk

enjjalankan query-qu ry database.


men
Persia
Persiapka
pkann tab
table dengan nama pegawai.
le denga
Langkah pertama, ketik an perintah artisan berikut ini:
php artisan make:migr tion create_pegawai_table --create=pe awai
\database\migrations.. Buk
Buka folder laravelapp\database\migrations Buka
a fil yan namanya
filee yan
mengandung create_ egawai_table.php.
Selan ketikkan ssccript berikut ini:
anjjutnya, ke
<?php

use Illuminate\Suppor \Facades\Schema


\Facades\Schema;;
use Illuminate\Database\Schema\Blueprint ;
use Illuminate\Database\Migrations\Migration ;
indosmartdigital.com | Pa duan Praktis Laravel 5 #Fundamental
31

class CreatePegawaiTable extends Migration


{
/**
* Run the migrations.
*
* @return void
*/
public function up
up()
()
{
Schema::
Schema ::create
create(('pegawai'
'pegawai',, function (Blueprint $table
$table)) {
$table->
$table ->bigIncrements
bigIncrements( ('id'
'id');
);
$table ->string ('nama'
$table-> 'nama');
);
$table->
$table ->text
text( ('alamat'
'alamat');
);
$table
$table->
->timestamps
timestamps();
();
});
}

/**
* Reverse the migrations.
*
* @return void
*/
public function down
down()
()
{
Schema::
Schema ::dropIfExists
dropIfExists(('pegawai'
'pegawai');
);
}
}

Jalankan migration
Pada command prompt, ketikkan perintah berikut:
php artisan migrate
Maka akan terbentuk satu table baru bernama pegawai

Gambar 24 : Struktur table pegawai


Langkah selanjutnya, gunakan fitur seeder dan faker untuk membuat sample
data pegawai sebanyak 50 data.
indosmartdigital.com | Panduan Praktis Laravel 5 #Fundamental
32

Pada framework yang menganut konsep MVC, salah satu komponen yang
sangat penting adalah model.
Buka command prompt, ketikkan perintah berikut untuk membuat file model
php artisan make:model Pegawai

Buka class Model Siswa{} yaitu pada file laravelapp\app\Pegawai.php.


Kemudian tambahkan property $table sehingga isi dari file Pegawai.php
menjadi seperti berikut:
<?php

namespace App
App;;

use Illuminate\Database\Eloquent\Model
Illuminate\Database\Eloquent\Model;;

class Pegawai extends Model


{
protected $table = "pegawai";
"pegawai" ;
protected $fillable = ['nama'
'nama',,'alamat'
'alamat'];
];
}

Buat file Controller dengan


d engan nama MemberController pada folder
laravelapp\app\Http\Controllers menggunakan perintah artisan di
command prompt
php artisan make:controller PegawaiController
Selanjutnya Kita tambahkan isi script web.php di dalam folder
laravelapp\routes\ menjadi seperti berikut:
// CRUD : Eloquent ORM
Route::
Route::get
get(
('/pegawai'
'/pegawai',, 'PegawaiController@index' );
::get
Route::
Route get(
('/pegawai/tambah' , 'PegawaiController@tambah' );
Route::
Route::post
post(
('/pegawai/store'
'/pegawai/store',
, 'PegawaiController@store' );
Route::get
Route:: get(
('/pegawai/edit/{id}' ,'PegawaiController@edit' );
Route::
Route::put
put(
('/pegawai/update/{id}' , 'PegawaiController@update' );
::get
Route::
Route get(
('/pegawai/hapus/{id}' ,'PegawaiController@hapus' );

Tuliskan script pada file PegawaiController.php yang ada di dalam folder


Laravelapp\App\Http\Controllers menjadi seperti berikut:
<?php

namespace App\Http\Controllers
App\Http\Controllers;;

use Illuminate\Http\Request
Illuminate\Http\Request;;

use App\Pegawai
App\Pegawai;
;

class DatapegawaiController extends Controller


{
public function index
index()
()
{
indosmartdigital.com | Panduan Praktis Laravel 5 #Fundamental
33

// $pegawai = Pegawai::all();
$pegawai = Pegawai
Pegawai::
::paginate
paginate(
(5);

return view
view(('pegawai.index'
'pegawai.index',[
,['pegawai'
'pegawai'=>
=>$pegawai
$pegawai]);
]);
}

public function tambah


tambah()
()
{
return view
view(('pegawai.tambah' );
}

public function store


store((Request $request)
$request )
{
$this->validate
$this-> validate(
($request
$request,[
,[
'nama' => 'required'
'required',,
'alamat' => 'required'
]);

Pegawai::create
Pegawai:: create([
([
'nama' => $request
$request->
->nama
nama,
,
'alamat' => $request->
$request ->alamat
alamat
]);

return redirect
redirect(('/pegawai'
'/pegawai');
);
}

public function edit


edit(
($id
$id)
)
{
$pegawai = Pegawai
Pegawai::
::find
find(($id
$id);
);
return view
view(('pegawai.edit'
'pegawai.edit',, ['pegawai'
'pegawai'=>
=>$pegawai
$pegawai]);
]);
}

public function update


update(($id
$id,, Request $request)
$request )
{
$this->
$this->validate
validate(
($request
$request,[
,[
'nama' => 'required'
'required',,
'alamat' => 'required'
]);

$pegawai = Pegawai
Pegawai::
::find
find(
($id
$id);
);
$pegawai->
$pegawai ->nama
nama = $request
$request->
->nama
nama;;

$pegawai->
$pegawai
$pegawai ->alamat
$pegawai-> alamat
->save();= $request->
save(); $request ->alamat
alamat;;

return redirect
redirect(('/pegawai'
'/pegawai');
);
}

public function hapus


hapus(($id
$id))
{
$pegawai = Pegawai
Pegawai::
::find
find(($id
$id);
);
$pegawai ->delete ();
$pegawai->

return redirect
redirect(('/pegawai'
'/pegawai');
);
}
}

Langkah berikutnya, buat sub-folder pegawai di dalam folder

laravelapp\resources\views
Buat script halaman view berikut di dalam folder pegawai.
indosmartdigital.com | Panduan Praktis Laravel 5 #Fundamental
34

Halaman Tampil Data (index.blade.php


(index.blade.php))
<!doctype html>
<html lang
lang=="en">
<head>
<!-- Required meta tags -->
<meta charset ="utf-8">
charset=
<meta name ="viewport" content
name= ="width=device-width, initial-scale=1,
content=

shrink-to-fit=no" >
<!-- Bootstrap core CSS -->
<link href
href=="{{ asset('assets/vendor/bootstrap/css/bootstrap.min.css')
}}" rel=
rel="stylesheet" >

<title>Tampil Data Pegawai</title>


</head>
<body>
<div class ="container" >
class=
class="card mt-5">
<div class=
<div class="card-header text-center">
class=
Data Pegawai
</div>
<div class ="card-body" >
class=
href="/pegawai/tambah" class
<a href= ="btn btn-primary">Input
class=
Pegawai Baru</a>
<br>
<br>
class="table table-bordered table-hover table-
<table class=
striped" >
<thead>
<tr>
<th>Nama</th>
<th>Alamat </th>
<th>Aksi</th>
</tr>
</thead>
<tbody>
@foreach($pegawai as $p)
<tr>
<td>{{ $p->nama }}</td>
<td>{{ $p->alamat }}</td>
<td><a href=
href="/pegawai/edit/{{ $p->id }}"
="btn btn-warning">Edit</a>
class=
class
href="/pegawai/hapus/{{
<a href="/pegawai/hapus/{{ $p->id }}"
class="btn btn-danger">Hapus</a>
class=
</td>
</tr>
@endforeach
</tbody>
</table>

<br>

{{ $pegawai->links() }}
</div>
</div>
</div>

<!-- Bootstrap core JavaScript -->


indosmartdigital.com | Panduan Praktis Laravel 5 #Fundamental
35

src="{{ asset('assets/vendor/jquery/jquery.min.js')
<script src=
}}"></script>
src="{{
<script src=
asset('assets/vendor/bootstrap/js/bootstrap.bundle.min.js') }}"></script>
</body>
</html>

Halaman Form Tambah Data (tambah.blade.php


(tambah.blade.php))
<!doctype html>
<html lang
lang=="en">
<head>
<!-- Required meta tags -->
<meta charset ="utf-8">
charset=
<meta name ="viewport" content
name= ="width=device-width, initial-scale=1,
content=
shrink-to-fit=no" >

<!-- Bootstrap core CSS -->


<link href
href=="{{ asset('assets/vendor/bootstrap/css/bootstrap.min.css')
}}" rel=
rel="stylesheet" >

<title>Tambah Data Pegawai</title>


</head>
<body>
<div class="container" >
class=
<div
<div ="card
class=
class mt-5">
="card-header
class=
class text-center">
Tambah Data Pegawai
</div>
class="card-body" >
<div class=
href="/pegawai" class
<a href= ="btn btn-primary">Kembali</a>
class=
<br>
<br>
method ="post" action
<form method= action=="/pegawai/store" >
{{ csrf_field() }}
<div class
class=="form-group" >
<label> Nama</label>
<input class ="form-control" type
class= ="text" name
type= name=="nama"
placeholder ="Nama Pegawai..">
placeholder=
@if($errors->has('nama'))
<div class ="text-danger" >
class=
{{ $error->first('nama') }}
</div>
@endif
</div>

<div class
class=="form-group" >
<label> Alamat </label>
name="alamat" class
<textarea name= class=="form-control"
placeholder ="Alamat Pegawai.."></textarea>
placeholder=
@if($errors->has('alamat'))
<div class
class=="text-danger" >
{{ $errors->first('alamat') }}
</div>
@endif
</div>

<div class="form-group" >


class=
<input type
type=="submit" value=
value="Simpan" class="btn btn-
class=
success" >
</div>
indosmartdigital.com | Panduan Praktis Laravel 5 #Fundamental
36

</form>
</div>
</div>
</div>

<!-- Bootstrap core JavaScript -->


src="{{ asset('assets/vendor/jquery/jquery.min.js')
<script src=
}}"></script>
src="{{
<script src=
asset('assets/vendor/bootstrap/js/bootstrap.bundle.min.js') }}"></script>
</body>
</html>

Halaman Form Edit Data (edit.blade.php


(edit.blade.php))
<!doctype html>
<html lang
lang=="en">
<head>
<!-- Required meta tags -->
<meta charset ="utf-8">
charset=
<meta name ="viewport" content
name= ="width=device-width, initial-scale=1,
content=
shrink-to-fit=no" >

<!-- Bootstrap core CSS -->


<link href
href=="{{ asset('assets/vendor/bootstrap/css/bootstrap.min.css')
}}" rel=
rel="stylesheet" >

<title>Edit Data Pegawai</title>


</head>
<body>
<div class ="container" >
class=
class="card mt-5">
<div class=
class="card-header text-center">
<div class=
Edit Data Pegawai
</div>
class="card-body" >
<div class=
href="/pegawai" class
<a href= class=="btn btn-primary">Kembali</a>
<br>
<br>
<form method=
method = action
action==
}}"> "post" "/pegawai/update/{{ $pegawai->id
{{ csrf_field() }}
{{ method_field('PUT') }}
<div class
class=="form-group" >
<label> Nama</label>
<input class ="form-control" type
class= ="text" name
type= name=="nama"
value="{{ $pegawai->nama }}">
value=
@if($errors->has('nama'))
<div class ="text-danger" >
class=
{{ $error->first('nama') }}
</div>
@endif
</div>

<div class
class=="form-group" >
<label> Alamat </label>
name="alamat" class
<textarea name= class=="form-control" >{{ $pegawai-
>alamat }}</textarea>
@if($errors->has('alamat'))
indosmartdigital.com | Panduan Praktis Laravel 5 #Fundamental
37

<div class
class=="text-danger" >
{{ $errors->first('alamat') }}
</div>
@endif
</div>

<div class="form-group" >


class=
<input type
type=="submit" value=
value="Update" class="btn btn-
class=
success" >
</div>

</form>
</div>
</div>
</div>

<!-- Bootstrap core JavaScript -->


src="{{ asset('assets/vendor/jquery/jquery.min.js')
<script src=
}}"></script>
src="{{
<script src=
asset('assets/vendor/bootstrap/js/bootstrap.bundle.min.js') }}"></script>
</body>
</html>

Untuk melihat hasil dari script yang telah kita buat, buka halaman
http://localhost:8000/pegawai pada browser, maka akan tampil seperti
gambar di bawah ini:

Gambar 25 : Halaman Tampil Data Pegawai


indosmartdigital.com | Panduan Praktis Laravel 5 #Fundamental
38

Hasil tampilan halaman http://localhost:8000/pegawai/tambah

Gambar 26 : Halaman Form Tambah Data Pegawai


Hasil tampilan halaman http://localhost:8000/pegawai/edit

Gambar 27 : Halaman Form Edit Data Pegawai


indosmartdigital.com | Panduan Praktis Laravel 5 #Fundamental
39

Eloquent: Relationship (One-to-One)


Sejauh ini Kita hanya melakukan operasi database terbatas hanya pada satu
table. Pada aplikasi sesungguhnya, tentu akan melibatkan banyak table.
Table-table tersebut memiliki hubungan (relationship) satu sama lain.
Hubungan itu bisa One-to-One, One-to-Many atau Many-to-Many.
Pada pembahasan kali ini Kita akan fokus pada jenis hubungan yang pertama
yaitu One-to-One.
Contoh relasi One-to-One
Buat dua buah table di dalam database dblaravel
dblaravel,, yaitu table pengguna dan
telepon
Langkah pertama, ketikkan perintah artisan berikut ini:
php artisan make:migration create_pengguna_table --create=pe
--create=pengguna
ngguna
Buka folder laravelapp\database\migrations
laravelapp\database\migrations.. Buka file yang namanya
mengandung create_pengguna_table.php.
Selanjutnya, ketikkan script berikut ini:
<?php

use Illuminate\Support\Facades\Schema
Illuminate\Support\Facades\Schema;;
use Illuminate\Database\Schema\Blueprint
Illuminate\Database\Schema\Blueprint;
;
use Illuminate\Database\Migrations\Migration
Illuminate\Database\Migrations\Migration;;

class CreatePenggunaTable extends Migration


{
/**
* Run the migrations.
*
* @return void
*/
public function up
up()
()
{
Schema::
Schema ::create
create(('pengguna'
'pengguna',, function (Blueprint $table)
$table ) {
$table->
$table->bigIncrements
bigIncrements( ('id'
'id');
);
$table ->string ('nama'
$table-> 'nama');
);
$table->
$table ->timestamps
timestamps();
();
});
}

/**
* Reverse the migrations.
*
* @return void
*/
public function down
down()
()
{
Schema::
Schema ::dropIfExists
dropIfExists(('pengguna'
'pengguna');
);
}
indosmartdigital.com | Panduan Praktis Laravel 5 #Fundamental
40

Jalankan migration dengan mengetikkan perintah:


php artisan migrate
Langkah berikutnya, ketikkan perintah artisan berikut ini:

php artisan make:migration create_telepon_table --create=telepon


Lanjutkan dengan file yang namanya mengandung
create_telepon_table.php.
<?php

use Illuminate\Support\Facades\Schema
Illuminate\Support\Facades\Schema;;
use Illuminate\Database\Schema\Blueprint
Illuminate\Database\Schema\Blueprint;
;
use Illuminate\Database\Migrations\Migration
Illuminate\Database\Migrations\Migration;;

class CreateTeleponTable extends Migration


{
/**
* Run the migrations.
*
* @return void
*/
public function up
up()
()
{
Schema::
Schema ::create
create(('telepon'
'telepon',, function (Blueprint $table
$table)) {
$table->
$table ->bigIncrements
bigIncrements( ('id'
'id');
);
$table->
$table ->string ('nomor_telepon'
'nomor_telepon'););
$table ->integer('pengguna_id'
$table-> 'pengguna_id'););
$table
$table->
->timestamps
timestamps();
();
});
}

/**
* Reverse the migrations.
*
* @return void
*/
public function down
down()
()
{
Schema::
Schema ::dropIfExists
dropIfExists(('telepon'
'telepon');
);
}
}

Jalankan migration dengan mengetikkan perintah:


php artisan migrate
indosmartdigital.com | Panduan Praktis Laravel 5 #Fundamental
41

Isikan data pengguna lewat


le wat PHPMyAdmin

Gambar 28 : Sample data pengguna

Isikan data telepon lewat PHPMyAdmin

Gambar 29 : Sample data telepon


Buat file model untuk pengguna
php artisan make:model Pengguna
Buka file laravelapp\app\Pengguna.php
laravelapp\app\Pengguna.php,, tuliskan script berikut:
<?php

namespace App
App;;

use Illuminate\Database\Eloquent\Model
Illuminate\Database\Eloquent\Model;;

class Pengguna extends Model


{
protected $table = "pengguna";
"pengguna" ;

public function telepon


telepon()
()
{
return $this->
$this->hasOne
hasOne(
('App\Telepon'
'App\Telepon');
);
}
}
indosmartdigital.com | Panduan Praktis Laravel 5 #Fundamental
42

Buat file model untuk telepon


php artisan make:model Telepon
Buka file laravelapp\app\Telepon.php
laravelapp\app\Telepon.php,, tuliskan script berikut:
<?php

namespace App
App;;
use Illuminate\Database\Eloquent\Model
Illuminate\Database\Eloquent\Model;;

class Telepon extends Model


{
protected $table = "telepon";
"telepon" ;

public function pengguna


pengguna()
()
{
return $this->
$this->belongsTo
belongsTo(
('App\Pengguna'
'App\Pengguna');
);
}
}

Buat route baru untuk halaman pengguna


Route::get
Route:: get(
('pengguna'
'pengguna',, 'PenggunaController@index' );

Buat controller baru dengan nama PenggunaController.php


php artisan make:controller PenggunaController
PenggunaController
Ketikkan script berikut dengan memberikan method / fungsi index pada
laravelapp\app\Http\Controllers\PenggunaController.php
<?php

namespace App\Http\Controllers
App\Http\Controllers;;

use Illuminate\Http\Request
Illuminate\Http\Request;;
use App\Pengguna
App\Pengguna;
;

class
{ PenggunaController extends Controller
public function index
index()
()
{
// mengambil semua data pengguna
$pengguna = Pengguna
Pengguna::
::all
all();
();
// return data ke view
return view
view(('pengguna.index' , ['pengguna' => $pengguna]);
$pengguna]);
}
}

Langkah berikutnya, buat sub-folder pengguna di dalam folder


laravelapp\resources\views
indosmartdigital.com | Panduan Praktis Laravel 5 #Fundamental
43

Buat script halaman view berikut di dalam folder pengguna.


Halaman Tampil Data (index.blade.php
(index.blade.php))
<!DOCTYPE html>
<html>
<head>
<title>Relasi One To One</title>

<!-- Bootstrap core CSS -->


<link href
href=="{{ asset('assets/vendor/bootstrap/css/bootstrap.min.css')
}}" rel=
rel="stylesheet" >
</head>
<body>

<div class="container" >


class=
class="card mt-5">
<div class=
<div class="card-body" >
class=

class="text-cent
<h1 class="text-center
er my-4">Eloquent: One To One
Relationship </h1>
class="table table-bordered table-striped">
<table class=
<thead>
<tr>
<th>Pengguna </th>
<th>Nomor Telepon </th>
</tr>
</thead>
<tbody>
@foreach($pengguna as $p)
<tr>
<td>{{ $p->nama }}</td>
<td>{{ $p->telepon->nomor_telepon }}</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
</div>

</body>
</html>
indosmartdigital.com | Panduan Praktis Laravel 5 #Fundamental
44

Untuk melihat hasil dari script yang telah kita buat, buka halaman
http://localhost:8000/pengguna pada browser, maka akan tampil seperti
gambar di bawah ini:

Gambar 30 : Halaman Tampil Data Pengguna

Eloquent: Relationship (One-to-Many)


Buat dua buah table di dalam database dblaravel
dblaravel,, yaitu table posts dan tags
Langkah pertama, ketikkan perintah artisan berikut ini:
php artisan make:migration create_posts_table --create=post
--create=postss

Buka folder laravelapp\database\migrations


laravelapp\database\migrations.. Buka file yang namanya
mengandung create_posts_table.php.
Selanjutnya, ketikkan script berikut ini:
<?php

use Illuminate\Support\Facades\Schema
Illuminate\Support\Facades\Schema;;
use Illuminate\Database\Schema\Blueprint
Illuminate\Database\Schema\Blueprint;
;
use Illuminate\Database\Migrations\Migration
Illuminate\Database\Migrations\Migration;
;

class CreatePostsTable extends Migration


{
/**
* Run the migrations.
*
* @return void
*/
public function up
up()
()
indosmartdigital.com | Panduan Praktis Laravel 5 #Fundamental
45

{
Schema ::create
Schema:: create(('posts'
'posts',, function (Blueprint $table)
$table ) {
$table
$table->
->bigIncrements
bigIncrements( ('id'
'id');
);
$table->
$table ->string ('judul'
'judul'););
$table->
$table->timestamps
timestamps();
();
});
}

/**
* Reverse the migrations.
*
* @return void
*/
public function down
down()
()
{
Schema::
Schema ::dropIfExists
dropIfExists(('posts'
'posts');
);
}
}

Jalankan migration dengan mengetikkan perintah:


php artisan migrate

selanjutnya, ketikkan perintah pada command prompt


php artisan make:migration create_tags_table --create=tag
--create=tagss
Lanjutkan dengan menulis script pada file yang namanya mengandung
create_tags_table.php.
<?php

use Illuminate\Support\Facades\Schema
Illuminate\Support\Facades\Schema;;
use Illuminate\Database\Schema\Blueprint
Illuminate\Database\Schema\Blueprint;
;
use Illuminate\Database\Migrations\Migration
Illuminate\Database\Migrations\Migration;;

class CreateTagsTable extends Migration


{
/**
* Run the migrations.
*
* @return void
*/
public function upup()
()
{
Schema::
Schema ::create
create(('tags'
'tags',, function (Blueprint $table)
$table) {
$table->
$table->bigIncrements
bigIncrements( ('id'
'id');
);
$table->
$table ->string ('tag'
'tag');
);
$table->
$table ->biginteger
biginteger(('post_id'
'post_id')->
)->unsigned
unsigned();
();
$table->foreign
$table-> foreign(
('post_id'
'post_id') )
->references
-> references(('id'
'id')->
)->on
on(
('posts'
'posts')
)
->onDelete
-> onDelete(
('cascade'
'cascade'););
$table
$table->
->timestamps
timestamps();
();
});
}
/**
* Reverse the migrations.
indosmartdigital.com | Panduan Praktis Laravel 5 #Fundamental
46

*
* @return void
*/
public function down
down()
()
{
Schema ::table
Schema:: table(
('tags'
'tags',,function (Blueprint $table)
$table) {
$table->dropForeign
$table-> dropForeign(('tags_post_id_foreign' );
});

Schema::
Schema ::dropIfExists
dropIfExists(('tags'
'tags');
);
}
}

Jalankan kembali migration dengan mengetikkan perintah:


php artisan migrate

Isikan data posts lewat PHPMyAdmin

Gambar 31 : Sample data posts


indosmartdigital.com | Panduan Praktis Laravel 5 #Fundamental
47

Isikan data tags lewat PHPMyAdmin

Gambar 32 : Sample data tags


Buat file model untuk posts
php artisan make:model Post

Buka file laravelapp\app\Post.php,


laravelapp\app\Post.php, tuliskan script berikut:
<?php

namespace App
App;;

use Illuminate\Database\Eloquent\Model
Illuminate\Database\Eloquent\Model;;

class Post extends Model


{
public function tags
tags(){
(){
return $this->
$this->hasMany
hasMany(
('App\Tag'
'App\Tag');
);
}
}
indosmartdigital.com | Panduan Praktis Laravel 5 #Fundamental
48

Buat file model untuk tags


php artisan make:model Tag
Buka file laravelapp\app\Tag.php, tuliskan script berikut:
<?php

namespace App
App;;

use Illuminate\Database\Eloquent\Model
Illuminate\Database\Eloquent\Model;;

class Tag extends Model


{
public function posts
posts(){
(){
return $this->
$this->belongsTo
belongsTo(
('App\Post'
'App\Post');
);
}
}

Buat route baru untuk halaman posts


Route::get
Route:: get(
('posts'
'posts',
, 'PostController@index' );

Buat controller baru dengan nama PenggunaController.php


php artisan make:controller PostController
Ketikkan script berikut dengan memberikan method / fungsi index pada
laravelapp\app\Http\Controllers\PostController.php
<?php

namespace App\Http\Controllers
App\Http\Controllers;;

use Illuminate\Http\Request
Illuminate\Http\Request;;
use App\Post
App\Post;;

class PostController extends Controller


{
public
$posts function
= Post
Post::index(){
index
::all (){
all();
();
return view
view(
('posts.index'
'posts.index',[
,['posts'
'posts' => $posts]);
$posts]);
}
}

Langkah berikutnya, buat sub-folder posts di dalam folder


laravelapp\resources\views
Buat script halaman view berikut di dalam folder posts.
(index.blade.php))
Halaman Tampil Data (index.blade.php
<!DOCTYPE html>
<html>
<head>
<title>Relasi One To Many</title>
indosmartdigital.com | Panduan Praktis Laravel 5 #Fundamental
49

<!-- Bootstrap core CSS -->


<link href
href=="{{ asset('assets/vendor/bootstrap/css/bootstrap.min.css')
}}" rel=
rel="stylesheet" >
</head>
<body>

<div class="container" >


class=
class="card mt-5">
<div class=

<div<h1
class="card-body"
class=
class=
class > er my-4">Eloquent: One To Many
="text-cent
"text-center
Relationship </h1>
class="table table-bordered table-striped">
<table class=
<thead>
<tr>
<th>Judul Article</th>
<th>Tag</th>
width="15%" class=
<th width= class="text-center">Jumlah
Tag</th>
</tr>
</thead>
<tbody>
@foreach($posts as $post)
<tr>
<td>{{ $post->judul }}</td>
<td>
@foreach($post->tags as $tag)
{{$tag->tag}},
@endforeach
</td>
class="text-center" >{{ $post->tags-
<td class=
>count() }}</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
</div>

</body>
</html>
indosmartdigital.com | Panduan Praktis Laravel 5 #Fundamental
50

Untuk melihat hasil dari script yang telah kita buat, buka halaman
http://localhost:8000/posts pada browser, maka akan tampil seperti gambar
di bawah ini:

Gambar 33 : Halaman Tampil Data Posts


Eloquent: Relationship (Many-to-Many)
Buat tiga buah table di dalam database dblaravel
dblaravel,, yaitu table siswa
siswa,, hobi
dan hobi_siswa
Langkah pertama, ketikkan perintah artisan berikut ini:
php artisan make:migration create_siswa_table --create=siswa

Buka folder laravelapp\database\migrations


mengandung laravelapp\database\migrations.
create_siswa_table.php. . Buka file yang namanya

Selanjutnya, ketikkan script berikut ini:


<?php

use Illuminate\Support\Facades\Schema
Illuminate\Support\Facades\Schema;;
use Illuminate\Database\Schema\Blueprint
Illuminate\Database\Schema\Blueprint;
;
use Illuminate\Database\Migrations\Migration
Illuminate\Database\Migrations\Migration;;

class CreateSiswaTable extends Migration


{
/**
* Run the migrations.
*
* @return void
*/
public function up
up()
()
{
indosmartdigital.com | Panduan Praktis Laravel 5 #Fundamental
51

Schema ::create
Schema:: create(('siswa'
'siswa',, function (Blueprint $table)
$table ) {
$table
$table->
->bigIncrements
bigIncrements( ('id'
'id');
);
$table ->string ('nama'
$table-> 'nama'););
$table->
$table ->timestamps
timestamps();
();
});
}

/**

*
* Reverse the migrations.
* @return void
*/
public function down
down()
()
{
Schema::
Schema ::dropIfExists
dropIfExists(('siswa'
'siswa');
);
}
}

Jalankan migration dengan mengetikkan perintah:


php artisan migrate

selanjutnya, ketikkan perintah pada command prompt


php artisan make:migration create_hobi_table --create=ho
--create=hobi
bi
Lanjutkan dengan menulis script pada file yang namanya mengandung
create_hobi_table.php.
<?php

use Illuminate\Support\Facades\Schema
Illuminate\Support\Facades\Schema;;
use Illuminate\Database\Schema\Blueprint
Illuminate\Database\Schema\Blueprint;
;
use Illuminate\Database\Migrations\Migration
Illuminate\Database\Migrations\Migration;;

class CreateHobiTable extends Migration


{
/**
* Run the migrations.
*
* @return void
*/
public function up
up()
()
{
Schema::
Schema ::create
create(('hobi'
'hobi',, function (Blueprint $table)
$table) {
$table->
$table->bigIncrements
bigIncrements( ('id'
'id');
);
$table ->string ('nama_hobi'
$table-> 'nama_hobi'); );
$table->
$table ->timestamps
timestamps();
();
});
}

/**
* Reverse the migrations.
*
*
*/@return void
public function down
down()
()
{
indosmartdigital.com | Panduan Praktis Laravel 5 #Fundamental
52

Schema::
Schema ::dropIfExists
dropIfExists(('hobi'
'hobi');
);
}
}

Jalankan kembali migration dengan mengetikkan perintah:


php artisan migrate

langkah selanjutnya, kita perlu membuat table ketiga yang berperan sebagai
pivot table. ketikkan perintah pada command prompt
php artisan make:migration create_hobi_siswa_table --create=h
--create=hobi_siswa
obi_siswa
Lanjutkan dengan menulis script pada file yang namanya mengandung
create_hobi_siswa _table.php.
<?php

use Illuminate\Support\Facades\Schema
Illuminate\Support\Facades\Schema;;
use Illuminate\Database\Schema\Blueprint
Illuminate\Database\Schema\Blueprint;
;
use Illuminate\Database\Migrations\Migration
Illuminate\Database\Migrations\Migration;;
class CreateHobiSiswaTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function upup()
()
{
Schema::
Schema ::create
create(('hobi_siswa'
'hobi_siswa',, function (Blueprint $table)
$table ) {
$table->bigIncrements
$table-> bigIncrements(
('id'
'id');
);
$table
$table->
->biginteger
biginteger(
('siswa_id'
'siswa_id')->
)->unsigned
unsigned();
();
$table->
$table ->foreign
foreign(
('siswa_id'
'siswa_id'))
->
->references
references(
('id'
'id')->
)->on
on(
('siswa'
'siswa')
)

->onDelete
->
-> onDelete(
->onUpdate (
('cascade'
onUpdate('cascade')
'cascade');
'cascade' )
);
$table
$table->
->biginteger
biginteger(
('hobi_id'
'hobi_id')->
)->unsigned
unsigned();
();
$table->foreign
$table-> foreign(
('hobi_id'
'hobi_id'))
->references
-> references(
('id'
'id')->
)->onon(
('hobi'
'hobi')
)
->
->onDelete
onDelete(
('cascade'
'cascade') )
->onUpdate
-> onUpdate(
('cascade'
'cascade'););

$table->
$table ->timestamps
timestamps();
();
});
}

/**
* Reverse the migrations.
*
* @return void
*/
public function down
down()
()
{
Schema::
Schema ::dropIfExists
dropIfExists(('hobi_siswa'
'hobi_siswa');
);
indosmartdigital.com | Panduan Praktis Laravel 5 #Fundamental
53

}
}

Jalankan kembali migration dengan mengetikkan perintah:


php artisan migrate

Isikan data siswa lewat PHPMyAdmin

Gambar 34 : Sample data siswa


Isikan data hobi lewat PHPMyAdmin

Gambar 35 : Sample data hobi


indosmartdigital.com | Panduan Praktis Laravel 5 #Fundamental
54

Isikan data hobi_siswa lewat


l ewat PHPMyAdmin

Gambar 36 : Sample data hobi_siswa


Buat file model untuk siswa
php artisan make:model Siswa
Buka file laravelapp\app\Siswa.php
laravelapp\app\Siswa.php,, tuliskan script berikut:
<?php

namespace App
App;;

use Illuminate\Database\Eloquent\Model
Illuminate\Database\Eloquent\Model;;

class Siswa extends Model


{
protected $table = "siswa";
"siswa" ;

public function hobi


hobi()
()
{
return $this->
$this->belongsToMany
belongsToMany(
('App\Hobi'
'App\Hobi');
);
}
}

Buat file model untuk hobi


php artisan make:model Hobi
Buka file laravelapp\app\Hobi.php, tuliskan script berikut:
<?php

namespace App
App;;

use Illuminate\Database\Eloquent\Model
Illuminate\Database\Eloquent\Model;;
indosmartdigital.com | Panduan Praktis Laravel 5 #Fundamental
55

class Hobi extends Model


{
protected $table = "hobi";
"hobi";

public function siswa


siswa()
()
{
return $this->
$this->belongsToMany
belongsToMany(
('App\Siswa'
'App\Siswa');
);
}
}

Buat route baru untuk halaman hobi


Route::get
Route:: get(
('hobi'
'hobi',, 'HobiController@index' );

Buat controller baru dengan nama PenggunaController.php


php artisan make:controller HobiController
Ketikkan script berikut dengan memberikan method / fungsi index pada
laravelapp\app\Http\Controllers\HobiController.php
<?php

namespace App\Http\Controllers
App\Http\Controllers;;
use Illuminate\Http\Request
Illuminate\Http\Request;;
use App\Siswa
App\Siswa;;
use App\Hobi
App\Hobi;;

class HobiController extends Controller


{
public function index
index()
()
{
$siswa = Siswa
Siswa::
::all
all();
();
return view
view(('siswa.index'
'siswa.index',
, ['siswa' => $siswa]);
$siswa]);
}
}

Langkah berikutnya, buat sub-folder siswa di dalam folder


laravelapp\resources\views
Buat script halaman view berikut di dalam folder siswa.
(index.blade.php))
Halaman Tampil Data (index.blade.php
<!DOCTYPE html>
<html>
<head>
<title>Relasi Many To Many </title>
<!-- Bootstrap core CSS -->
<link href
href=="{{ asset('assets/vendor/bootstrap/css/bootstrap.min.css')
}}" rel=
rel="stylesheet" >
</head>
<body>
<div class="container">
class=
<div class="card mt-5">
class=
indosmartdigital.com | Panduan Praktis Laravel 5 #Fundamental
56

class="card-body" >
<div class=
class="text-cente
<h1 class="text-center
r my-4">Eloquent: Many To Many
Relationship </h1>
class="table table-bordered table-striped">
<table class=
<thead>
<tr>
<th>Nama Siswa </th>
<th>Hobi</th>

</tr> width="1%">Jumlah </th>


<th width=
</thead>
<tbody>
@foreach($siswa
@foreach($siswa as $s)
<tr>
<td>{{ $s->nama }}</td>
<td>
<ul>
@foreach($s->hobi as $h)
<li> {{ $h->nama_hobi }} </li>
@endforeach
</ul>
</td>
class="text-center" >{{ $s->hobi->count()
<td class=
}}</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
</div>

</body>
</html>
indosmartdigital.com | Panduan Praktis Laravel 5 #Fundamental
57

Untuk melihat hasil dari script yang telah kita buat, buka halaman
http://localhost:8000/hobi pada browser, maka akan tampil seperti gambar
di bawah ini:

Gambar 37 : Halaman Tampil Data Hobi Siswa

Authentication (Login dan Register di Laravel)


Pada sebuah aplikasi, biasanya ada area yang hanya bisa diakses oleh
pengguna yang telah terdaftar. Jadi untuk masuk ke bagian itu harus login
terlebih dahulu.
Tanpa berlama-lama lagi, mari Kita mulai membuat sistem autentikasi yang
akan digunakan untuk login/logout user.
Buka Command prompt, ketikkan perintah berikut:
php artisan make:auth

Gambar 38 : Perintah artisan untuk membuat autentikasi


indosmartdigital.com | Panduan Praktis Laravel 5 #Fundamental
58

Setelah muncul tampilan seperti pada gambar 38, itu artinya Laravel sudah
berhasil membuat scaffolding autentikasi. Laravel akan secara otomatis
membuatkan semua file yang diperlukan untuk autentikasi.
Jalankan localhost:8000

Gambar 30 : Muncul menu login dan register pada halaman welcome


Klik Menu Register
Register,, maka akan muncul halaman pendaftaran user baru, isikan
data sebagai sample.

Gambar 31 : Halaman form register


indosmartdigital.com | Panduan Praktis Laravel 5 #Fundamental
59

Klik Register, maka data user tersimpan dan Kita akan diarahkan ke halaman
Dashboard User

Gambar 32 : Halaman Dashboard User


Untuk keluar / logout sistem, klik pada nama di sebelah kanan, maka akan
tampil menu Logout.

Gambar 33 : Menu Logout


indosmartdigital.com | Panduan Praktis Laravel 5 #Fundamental
60

Untuk masuk kembali ke dalam sistem, Kita dapat mengklik menu Login, maka
akan muncul halaman Login User.

Gambar 34 : Halaman Login User

Anda mungkin juga menyukai