0% found this document useful (0 votes)
16 views35 pages

Project Baru

Uploaded by

A.C Studio
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views35 pages

Project Baru

Uploaded by

A.C Studio
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 35

Tutorial Project Sederhana

1. Install Laravel dengan nama project kampus


2. Buat database dengan nama db_kampus dan konfigurasi .env
3. Migrasikan Database
php artisan migrate
4. Install adminlte
composer require jeroennoten/laravel-adminlte
php artisan adminlte:install
composer require laravel/ui
php artisan ui bootstrap --auth
php artisan adminlte:install --type=full
php artisan adminlte:plugins install

5. Buat tabel lengkap (model, migrasi dan kontroller) untuk mahasiswa,


dosen, matakuliah
php artisan make:model Mahasiswa -mc
php artisan make:model Dosen -mc
php artisan make:model Matakuliah -mc

6. Edit file migrasi Mahasiswa


Schema::create('mahasiswas', function (Blueprint $table) {
$table->id();
$table->string('nama');
$table->string('nim');
$table->string('no_hp');
$table->string('email');
$table->text('alamat')->nullable();
$table->timestamps();
});

7. Edit file migrasi Dosen


Schema::create('dosens', function (Blueprint $table) {
$table->id();
$table->string('nama');
$table->string('nidn');
$table->string('status');
$table->string('email');
$table->text('alamat')->nullable();
$table->timestamps();
});

8. Edit file migrasi Matakuliah


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

9. Migrasikan Database
php artisan migrate

10. Konfigurasi Halaman Admin

Silahkan buka file config/adminlte.php kemudian cari blok :


'menu' => [
# ......
# kode lainnya
# ......
]

Kemudian ganti menjadi


'menu' => [
[
'text' => 'User',
'url' => '/users',
'icon' => 'fa fa-users',
],
],
11. Konfigurasi plugins datatable

Silahkan cari blok ini (di file config/adminlte.php) :


'plugins' => [

# .... kode lainnya ....


'Datatables' => [
# .... kode lainnya ....
],
# .... kode lainnya ....
]

Kemudian Ganti Menjadi


'plugins' => [

# .... kode lainnya ....


'Datatables' => [
'active' => true,
'files' => [
[
'type' => 'js',
'asset' => true,
'location' =>
'/vendor/datatables/js/jquery.dataTables.min.js',
],
[
'type' => 'js',
'asset' => true,
'location' =>
'/vendor/datatables/js/dataTables.bootstrap4.min.js',
],
[
'type' => 'css',
'asset' => true,
'location' =>
'/vendor/datatables/css/dataTables.bootstrap4.min.css',
],
],
],
# .... kode lainnya ....
]

Silahkan Baca Modul AdminLTE Sebelumnya. Buat Crud Untuk Tabel Users.
Untuk Tabel Dosen, Mahasiswa Dan Matakuliah Dimateri Selanjutnya.

12. Tambahkan Menu Di Dashboard adminlte


Edit file adminlte.php dalam folder config kemudian tambahkan kode
berikut.
'menu' => [
// Navbar items:
[
'text' => 'User',
'url' => '/users',
'icon' => 'fa fa-user-friends',
],

[
'text' => 'Dosen',
'url' => '/dosen',
'icon' => 'fa fa-user',
],

[
'text' => 'Mahasiswa',
'url' => '/mahasiswa',
'icon' => 'fa fa-user-graduate',
],

[
'text' => 'Mata Kuliah',
'url' => '/matakuliah',
'icon' => 'fa fa-book-open',
],

13. Buat Controller untuk user


php artisan make:controller UserController

14. Edit file usercontroller


<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\User;

class UserController extends Controller


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

}
15. Buat Rute Users
Route::resource('users', \App\Http\Controllers\
UserController::class)
->middleware('auth');

16. Buat file index.blade.php (buat folder users terlebih dahulu di


view
@extends('adminlte::page')
@section('title', 'List User')
@section('content_header')
<h1 class="m-0 text-dark">List User</h1>
@stop
@section('content')
<div class="row">
<div class="col-12">
<div class="card">
<div class="card-body">
<a href="{{route('users.create')}}" class="btn btn-
primary mb-2">
Tambah
</a>
<table class="table table-hover table-bordered
table-stripped" id="example2">
<thead>
<tr>
<th>No.</th>
<th>Nama</th>
<th>Email</th>
<th>Opsi</th>
</tr>
</thead>
<tbody>
@foreach($users as $key => $user)
<tr>
<td>{{$key+1}}</td>
<td>{{$user->name}}</td>
<td>{{$user->email}}</td>
<td>
<a href="{{route('users.edit', $user)}}"
class="btn btn-primary btn-xs">
Edit
</a>
<a href="{{route('users.destroy',
$user)}}" onclick="notificationBeforeDelete(event, this)"
class="btn btn-danger btn-xs">
Delete
</a>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
</div>
</div>
@stop
@push('js')
<form action="" id="delete-form" method="post">
@method('delete')
@csrf
</form>
<script>
$('#example2').DataTable({
"responsive": true,
});
function notificationBeforeDelete(event, el) {
event.preventDefault();
if (confirm('Apakah anda yakin akan menghapus data ? '))
{
$("#delete-form").attr('action', $(el).attr('href'));
$("#delete-form").submit();
}
}
</script>
@endpush

17. Membuat Menu Create / Tambah Users


Edit file users controller terlebih dahulu dan tambahkan kode berikut.

public function create()


{
return view('users.create');
}
public function store(Request $request)
{
$request->validate([
'name' => 'required',
'email' => 'required|email|unique:users,email',
'password' => 'required|confirmed'
]);
$array = $request->only([
'name', 'email', 'password'
]);
$array['password'] = bcrypt($array['password']);
$user = User::create($array);
return redirect()->route('users.index')
->with('success_message', 'Berhasil menambah user baru');
}

18. Buat view untuk tambah users dengan nama create.blade.php


@extends('adminlte::page')
@section('title', 'Tambah User')
@section('content_header')
<h1 class="m-0 text-dark">Tambah User</h1>
@stop
@section('content')
<form action="{{route('users.store')}}" method="post">
@csrf
<div class="row">
<div class="col-12">
<div class="card">
<div class="card-body">
<div class="form-group">
<label for="exampleInputName">Nama</label>
<input type="text" class="form-control
@error('name') is-invalid @enderror" id="exampleInputName"
placeholder="Nama lengkap" name="name"
value="{{old('name')}}">
@error('name') <span class="text-
danger">{{$message}}</span> @enderror
</div>
<div class="form-group">
<label for="exampleInputEmail">Email
address</label>
<input type="email" class="form-control
@error('email') is-invalid @enderror" id="exampleInputEmail"
placeholder="Masukkan Email" name="email"
value="{{old('email')}}">
@error('email') <span class="text-
danger">{{$message}}</span> @enderror
</div>
<div class="form-group">
<label
for="exampleInputPassword">Password</label>
<input type="password" class="form-control
@error('password') is-invalid @enderror"
id="exampleInputPassword" placeholder="Password"
name="password">
@error('password') <span class="text-
danger">{{$message}}</span> @enderror
</div>
<div class="form-group">
<label for="exampleInputPassword">Konfirmasi
Password</label>
<input type="password" class="form-control"
id="exampleInputPassword" placeholder="Konfirmasi Password"
name="password_confirmation">
</div>
</div>
<div class="card-footer">
<button type="submit" class="btn btn-
primary">Simpan</button>
<a href="{{route('users.index')}}" class="btn btn-
default">
Batal
</a>
</div>
</div>
</div>
</div>
@stop
19. Membuat Menu Edit
Edit file user controller , tambahkan koding berikut.
public function edit($id)
{
$user = User::find($id);
if (!$user) return redirect()->route('users.index')
->with('error_message', 'User dengan id'.$id.' tidak ditemukan');
return view('users.edit', [
'user' => $user
]);
}
public function update(Request $request, $id)
{
$request->validate([
'name' => 'required',
'email' => 'required|email|unique:users,email,'.$id,
'password' => 'sometimes|nullable|confirmed'
]);
$user = User::find($id);
$user->name = $request->name;
$user->email = $request->email;
if ($request->password) $user->password = bcrypt($request-
>password);
$user->save();
return redirect()->route('users.index')
->with('success_message', 'Berhasil mengubah user');
}

20. Membuat view untuk edit dengan nama edit.blade.php


@extends('adminlte::page')
@section('title', 'Edit User')
@section('content_header')
<h1 class="m-0 text-dark">Edit User</h1>
@stop
@section('content')
<form action="{{route('users.update', $user)}}"
method="post">
@method('PUT')
@csrf
<div class="row">
<div class="col-12">
<div class="card">
<div class="card-body">
<div class="form-group">
<label for="exampleInputName">Nama</label>
<input type="text" class="form-control
@error('name') is-invalid @enderror" id="exampleInputName"
placeholder="Nama lengkap" name="name" value="{{$user-
>name ?? old('name')}}">
@error('name') <span class="text-
danger">{{$message}}</span> @enderror
</div>
<div class="form-group">
<label for="exampleInputEmail">Email
address</label>
<input type="email" class="form-control
@error('email') is-invalid @enderror" id="exampleInputEmail"
placeholder="Masukkan Email" name="email" value="{{$user-
>email ?? old('email')}}">
@error('email') <span class="text-
danger">{{$message}}</span> @enderror
</div>
<div class="form-group">
<label
for="exampleInputPassword">Password</label>
<input type="password" class="form-control
@error('password') is-invalid @enderror"
id="exampleInputPassword" placeholder="Password"
name="password">
@error('password') <span class="text-
danger">{{$message}}</span> @enderror
</div>
<div class="form-group">
<label for="exampleInputPassword">Konfirmasi
Password</label>
<input type="password" class="form-control"
id="exampleInputPassword" placeholder="Konfirmasi Password"
name="password_confirmation">
</div>
</div>
<div class="card-footer">
<button type="submit" class="btn btn-
primary">Simpan</button>
<a href="{{route('users.index')}}" class="btn btn-
default">
Batal
</a>
</div>
</div>
</div>
</div>
@stop

21. Membuat menu delete untuk user


Edit file user controller dan tambahkan koding berikut.
public function destroy(Request $request, $id)
{
$user = User::find($id);
if ($id == $request->user()->id) return redirect()-
>route('users.index')
->with('error_message', 'Anda tidak dapat menghapus diri
sendiri.');
if ($user) $user->delete();
return redirect()->route('users.index')
->with('success_message', 'Berhasil menghapus user');
}

22. Selesai untuk CRUD User

23. Lanjut untuk CRUD Mahasiswa


24. Buat Rute Mahasiswa
Route::resource('mahasiswa', \App\Http\Controllers\
MahasiswaController::class)
->middleware('auth');
25. Edit Model Mahasiswa
Edit file model mahasiswa
<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Mahasiswa extends Model


{
use HasFactory;
protected $fillable = [
'nama',
'nim',
'no_hp',
'email',
'alamat',
];
}

26. Edit file controller mahasiswa untuk Read Data View Index
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\Mahasiswa;

class MahasiswaController extends Controller


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

}
27. Buat view untuk index mahasiswa
@extends('adminlte::page')
@section('title', 'List Mahasiswa')
@section('content_header')
<h1 class="m-0 text-dark">Data Mahasiswa</h1>
@stop
@section('content')
<div class="row">
<div class="col-12">
<div class="card">
<div class="card-body">
<a href="{{route('mahasiswa.create')}}"
class="btn btn-primary mb-2">
Tambah
</a>
<table class="table table-hover table-bordered
table-stripped" id="example2">
<thead>
<tr>
<th>No.</th>
<th>Nama</th>
<th>Nim</th>
<th>No HP</th>
<th>Email</th>
<th>Alamat</th>
<th>Opsi</th>
</tr>
</thead>
<tbody>
@foreach($mahasiswas as $key => $mahasiswa)
<tr>
<td>{{$key+1}}</td>
<td>{{$mahasiswa->nama}}</td>
<td>{{$mahasiswa->nim}}</td>
<td>{{$mahasiswa->no_hp}}</td>
<td>{{$mahasiswa->email}}</td>
<td>{{$mahasiswa->alamat}}</td>
<td>
<a href="{{route('mahasiswa.edit',
$mahasiswa)}}" class="btn btn-primary btn-xs">
Edit
</a>
<a href="{{route('mahasiswa.destroy',
$mahasiswa)}}" onclick="notificationBeforeDelete(event, this)"
class="btn btn-danger btn-xs">
Delete
</a>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
</div>
</div>
@stop
@push('js')
<form action="" id="delete-form" method="post">
@method('delete')
@csrf
</form>
<script>
$('#example2').DataTable({
"responsive": true,
});
function notificationBeforeDelete(event, el) {
event.preventDefault();
if (confirm('Apakah anda yakin akan menghapus data ? '))
{
$("#delete-form").attr('action', $(el).attr('href'));
$("#delete-form").submit();
}
}
</script>
@endpush
28. Membuat Menu Edit
Tambahkan koding berikut di controller mahasiswa
public function edit($id)
{
$mahasiswa = Mahasiswa::find($id);
if (!$mahasiswa) return redirect()->route('mahasiswa.index')
->with('error_message', 'Mahasiswa dengan id'.$id.' tidak
ditemukan');
return view('mahasiswa.edit', [
'mahasiswa' => $mahasiswa
]);
}
public function update(Request $request, $id)
{
$mahasiswa = Mahasiswa::findOrFail($id);

$mahasiswa->update([
'nama' => $request->nama,
'nim' => $request->nim,
'no_hp' => $request->no_hp,
'email' => $request->email,
'alamat' => $request->alamat
]);
return redirect()->route('mahasiswa.index')->with(['success' =>
'Data Berhasil Diubah!']);
}

29. Buat File Edit Mahasiswa dengan nama edit.blade.php


@extends('adminlte::page')
@section('title', 'Edit Mahasiswa')
@section('content_header')
<h1 class="m-0 text-dark">Edit Data Mahasiswa</h1>
@stop
@section('content')
<form action="{{route('mahasiswa.update', $mahasiswa)}}"
method="post">
@method('PUT')
@csrf
<div class="row">
<div class="col-12">
<div class="card">
<div class="card-body">
<div class="form-group">
<label for="exampleInputName">Nama</label>
<input type="text" class="form-control
@error('nama') is-invalid @enderror" id="exampleInputName"
placeholder="Nama lengkap" name="nama"
value="{{$mahasiswa->nama ?? old('nama')}}">
@error('nama') <span class="text-
danger">{{$message}}</span> @enderror
</div>
<div class="form-group">
<label for="exampleInputName">NIM</label>
<input type="text" class="form-control
@error('nim') is-invalid @enderror" id="exampleInputName"
placeholder="NIM" name="nim" value="{{$mahasiswa->nim ??
old('nim')}}">
@error('nim') <span class="text-
danger">{{$message}}</span> @enderror
</div>
<div class="form-group">
<label for="exampleInputName">No HP</label>
<input type="text" class="form-control
@error('no_hp') is-invalid @enderror" id="exampleInputName"
placeholder="NO HP" name="no_hp" value="{{$mahasiswa-
>no_hp ?? old('no_hp')}}">
@error('no_hp') <span class="text-
danger">{{$message}}</span> @enderror
</div>
<div class="form-group">
<label
for="exampleInputName">Alamat</label>
<input type="text" class="form-control
@error('alamat') is-invalid @enderror" id="exampleInputName"
placeholder="Alamat" name="alamat" value="{{$mahasiswa-
>alamat ?? old('alamat')}}">
@error('alamat') <span class="text-
danger">{{$message}}</span> @enderror
</div>
<div class="form-group">
<label for="exampleInputEmail">Email</label>
<input type="email" class="form-control
@error('email') is-invalid @enderror" id="exampleInputEmail"
placeholder="Masukkan Email" name="email"
value="{{$mahasiswa->email ?? old('email')}}">
@error('email') <span class="text-
danger">{{$message}}</span> @enderror
</div>
</div>
<div class="card-footer">
<button type="submit" class="btn btn-
primary">Simpan</button>
<a href="{{route('users.index')}}" class="btn btn-
default">
Batal
</a>
</div>
</div>
</div>
</div>
@stop

30. Buat controller untuk delete


Tambahkan library use Illuminate\Http\RedirectResponse;

Tambahkan fungsi untuk delete di controller


public function destroy($id): RedirectResponse
{

$mahasiswa = Mahasiswa::findOrFail($id);
$mahasiswa->delete();
return redirect()->route('mahasiswa.index')->with(['success' =>
'Data Berhasil Dihapus!']);
}

Bagi yang ragu.. silahkan copy paste controller mahasiswa lengkap.


<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Http\RedirectResponse;
use App\Models\Mahasiswa;

class MahasiswaController extends Controller


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

public function create()


{
return view('mahasiswa.create');
}
public function store(Request $request)
{
mahasiswa::create([

'nama' => $request->nama,


'nim' => $request->nim,
'no_hp' => $request->no_hp,
'email' => $request->email,
'alamat' => $request->alamat
]);
//redirect to index
return redirect()->route('mahasiswa.index')-
>with(['success' => 'Data Berhasil Disimpan!']);

public function edit($id)


{
$mahasiswa = Mahasiswa::find($id);
if (!$mahasiswa) return redirect()-
>route('mahasiswa.index')
->with('error_message', 'Mahasiswa dengan id'.$id.' tidak
ditemukan');
return view('mahasiswa.edit', [
'mahasiswa' => $mahasiswa
]);
}
public function update(Request $request, $id)
{
$mahasiswa = Mahasiswa::findOrFail($id);

$mahasiswa->update([
'nama' => $request->nama,
'nim' => $request->nim,
'no_hp' => $request->no_hp,
'email' => $request->email,
'alamat' => $request->alamat
]);
return redirect()->route('mahasiswa.index')-
>with(['success' => 'Data Berhasil Diubah!']);
}

public function destroy($id): RedirectResponse


{
$mahasiswa = Mahasiswa::findOrFail($id);
$mahasiswa->delete();
return redirect()->route('mahasiswa.index')->with(['success'
=> 'Data Berhasil Dihapus!']);
}
}
31. Menu Create Mahasiswa
@extends('adminlte::page')
@section('title', 'Tambah Mahasiswa')
@section('content_header')
<h1 class="m-0 text-dark">Tambah Data Mahasiswa</h1>
@stop
@section('content')
<form action="{{route('mahasiswa.store')}}"
method="post">
@csrf
<div class="row">
<div class="col-12">
<div class="card">
<div class="card-body">
<div class="form-group">
<label for="exampleInputName">Nama</label>
<input type="text" class="form-control
@error('name') is-invalid @enderror" id="exampleInputName"
placeholder="Nama lengkap" name="nama"
value="{{old('nama')}}">
@error('name') <span class="text-
danger">{{$message}}</span> @enderror
</div>
<div class="form-group">
<label for="exampleInputName">NIM</label>
<input type="text" class="form-control
@error('name') is-invalid @enderror" id="exampleInputName"
placeholder="NIM" name="nim" value="{{old('nim')}}">
@error('nim') <span class="text-
danger">{{$message}}</span> @enderror
</div>
<div class="form-group">
<label for="exampleInputName">No HP</label>
<input type="text" class="form-control
@error('no_hp') is-invalid @enderror" id="exampleInputName"
placeholder="No HP" name="no_hp" value="{{old('no_hp')}}">
@error('no_hp') <span class="text-
danger">{{$message}}</span> @enderror
</div>
<div class="form-group">
<label for="exampleInputEmail">Email
address</label>
<input type="email" class="form-control
@error('email') is-invalid @enderror" id="exampleInputEmail"
placeholder="Masukkan Email" name="email"
value="{{old('email')}}">
@error('email') <span class="text-
danger">{{$message}}</span> @enderror
</div>
<div class="form-group">
<label for="exampleInputEmail">Alamat</label>
<input type="alamat" class="form-control
@error('alamat') is-invalid @enderror" id="exampleInputEmail"
placeholder="Alamat" name="alamat"
value="{{old('alamat')}}">
@error('alamat') <span class="text-
danger">{{$message}}</span> @enderror
</div>
</div>
<div class="card-footer">
<button type="submit" class="btn btn-
primary">Simpan</button>
<a href="{{route('mahasiswa.index')}}" class="btn
btn-default">
Batal
</a>
</div>
</div>
</div>
</div>
@stop

32. Selesai untuk CRUD Mahasiswa

33. Lanjut CRUD DOSEN


34. Buat Rute Dosen
Route::resource('dosen', \App\Http\Controllers\
DosenController::class)
->middleware('auth');
35. Edit file model dosen
<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Dosen extends Model


{
use HasFactory;
protected $fillable = [
'nama',
'nidn',
'status',
'email',
'alamat',
];
}

36. Edit file lengkap controller dosen


<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Http\RedirectResponse;
use App\Models\Dosen;

class DosenController extends Controller


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

public function create()


{
return view('dosen.create');
}
public function store(Request $request)
{
dosen::create([

'nama' => $request->nama,


'nidn' => $request->nidn,
'status' => $request->status,
'email' => $request->email,
'alamat' => $request->alamat
]);
//redirect to index
return redirect()->route('dosen.index')-
>with(['success' => 'Data Berhasil Disimpan!']);

public function edit($id)


{
$dosen = Dosen::find($id);
if (!$dosen) return redirect()->route('dosen.index')
->with('error_message', 'Dosen dengan id'.$id.' tidak
ditemukan');
return view('dosen.edit', [
'dosen' => $dosen
]);
}
public function update(Request $request, $id)
{
$dosen= Dosen::findOrFail($id);

$dosen->update([
'nama' => $request->nama,
'nidn' => $request->nidn,
'status' => $request->status,
'email' => $request->email,
'alamat' => $request->alamat
]);
return redirect()->route('dosen.index')->with(['success' =>
'Data Berhasil Diubah!']);
}

public function destroy($id): RedirectResponse


{
$dosen = Dosen::findOrFail($id);
$dosen->delete();
return redirect()->route('dosen.index')->with(['success' =>
'Data Berhasil Dihapus!']);
}
}

37. Tambahkan view index


@extends('adminlte::page')
@section('title', 'List Dosen')
@section('content_header')
<h1 class="m-0 text-dark">Data Dosen</h1>
@stop
@section('content')
<div class="row">
<div class="col-12">
<div class="card">
<div class="card-body">
<a href="{{route('dosen.create')}}" class="btn
btn-primary mb-2">
Tambah
</a>
<table class="table table-hover table-bordered
table-stripped" id="example2">
<thead>
<tr>
<th>No.</th>
<th>Nama</th>
<th>NIDN</th>
<th>Status</th>
<th>Email</th>
<th>Alamat</th>
<th>Opsi</th>
</tr>
</thead>
<tbody>
@foreach($dosens as $key => $dosen)
<tr>
<td>{{$key+1}}</td>
<td>{{$dosen->nama}}</td>
<td>{{$dosen->nidn}}</td>
<td>{{$dosen->status}}</td>
<td>{{$dosen->email}}</td>
<td>{{$dosen->alamat}}</td>
<td>
<a href="{{route('dosen.edit',
$dosen)}}" class="btn btn-primary btn-xs">
Edit
</a>
<a href="{{route('dosen.destroy',
$dosen)}}" onclick="notificationBeforeDelete(event, this)"
class="btn btn-danger btn-xs">
Delete
</a>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
</div>
</div>
@stop
@push('js')
<form action="" id="delete-form" method="post">
@method('delete')
@csrf
</form>
<script>
$('#example2').DataTable({
"responsive": true,
});
function notificationBeforeDelete(event, el) {
event.preventDefault();
if (confirm('Apakah anda yakin akan menghapus data ? '))
{
$("#delete-form").attr('action', $(el).attr('href'));
$("#delete-form").submit();
}
}
</script>
@endpush

38. Tambahkan view create


@extends('adminlte::page')
@section('title', 'Tambah Dosen')
@section('content_header')
<h1 class="m-0 text-dark">Tambah Data Dosen</h1>
@stop
@section('content')
<form action="{{route('dosen.store')}}" method="post">
@csrf
<div class="row">
<div class="col-12">
<div class="card">
<div class="card-body">
<div class="form-group">
<label for="exampleInputName">Nama</label>
<input type="text" class="form-control
@error('nama') is-invalid @enderror" id="exampleInputName"
placeholder="Nama lengkap" name="nama"
value="{{old('nama')}}">
@error('nama') <span class="text-
danger">{{$message}}</span> @enderror
</div>
<div class="form-group">
<label for="exampleInputName">NIDN</label>
<input type="text" class="form-control
@error('nidn') is-invalid @enderror" id="exampleInputName"
placeholder="NIDN" name="nidn" value="{{old('nidn')}}">
@error('nidn') <span class="text-
danger">{{$message}}</span> @enderror
</div>
<div class="form-group">
<label for="exampleInputName">Status</label>
<input type="text" class="form-control
@error('status') is-invalid @enderror" id="exampleInputName"
placeholder="Status" name="status" value="{{old('status')}}">
@error('status') <span class="text-
danger">{{$message}}</span> @enderror
</div>
<div class="form-group">
<label for="exampleInputEmail">Email
address</label>
<input type="email" class="form-control
@error('email') is-invalid @enderror" id="exampleInputEmail"
placeholder="Masukkan Email" name="email"
value="{{old('email')}}">
@error('email') <span class="text-
danger">{{$message}}</span> @enderror
</div>
<div class="form-group">
<label for="exampleInputEmail">Alamat</label>
<input type="alamat" class="form-control
@error('alamat') is-invalid @enderror" id="exampleInputEmail"
placeholder="Alamat" name="alamat"
value="{{old('alamat')}}">
@error('alamat') <span class="text-
danger">{{$message}}</span> @enderror
</div>
</div>
<div class="card-footer">
<button type="submit" class="btn btn-
primary">Simpan</button>
<a href="{{route('dosen.index')}}" class="btn btn-
default">
Batal
</a>
</div>
</div>
</div>
</div>
@stop

39. Tambahkan view edit


@extends('adminlte::page')
@section('title', 'Edit Dosen')
@section('content_header')
<h1 class="m-0 text-dark">Edit Data Dosen</h1>
@stop
@section('content')
<form action="{{route('dosen.update', $dosen)}}"
method="post">
@method('PUT')
@csrf
<div class="row">
<div class="col-12">
<div class="card">
<div class="card-body">
<div class="form-group">
<label for="exampleInputName">Nama</label>
<input type="text" class="form-control
@error('nama') is-invalid @enderror" id="exampleInputName"
placeholder="Nama lengkap" name="nama" value="{{$dosen-
>nama ?? old('nama')}}">
@error('nama') <span class="text-
danger">{{$message}}</span> @enderror
</div>
<div class="form-group">
<label for="exampleInputName">NIDN</label>
<input type="text" class="form-control
@error('nidn') is-invalid @enderror" id="exampleInputName"
placeholder="NIDN" name="nidn" value="{{$dosen->nidn ??
old('nidn')}}">
@error('nidn') <span class="text-
danger">{{$message}}</span> @enderror
</div>
<div class="form-group">
<label for="exampleInputName">Status</label>
<input type="text" class="form-control
@error('status') is-invalid @enderror" id="exampleInputName"
placeholder="Status" name="status" value="{{$dosen-
>status ?? old('status')}}">
@error('status') <span class="text-
danger">{{$message}}</span> @enderror
</div>
<div class="form-group">
<label
for="exampleInputName">Alamat</label>
<input type="text" class="form-control
@error('alamat') is-invalid @enderror" id="exampleInputName"
placeholder="Alamat" name="alamat" value="{{$dosen-
>alamat ?? old('alamat')}}">
@error('alamat') <span class="text-
danger">{{$message}}</span> @enderror
</div>
<div class="form-group">
<label for="exampleInputEmail">Email</label>
<input type="email" class="form-control
@error('email') is-invalid @enderror" id="exampleInputEmail"
placeholder="Masukkan Email" name="email"
value="{{$dosen->email ?? old('email')}}">
@error('email') <span class="text-
danger">{{$message}}</span> @enderror
</div>
</div>
<div class="card-footer">
<button type="submit" class="btn btn-
primary">Simpan</button>
<a href="{{route('dosen.index')}}" class="btn btn-
default">
Batal
</a>
</div>
</div>
</div>
</div>
@stop

40. Selesai CRUD Dosen

41. Lanjut CRUD Matakuliah


42. Buat Rute Matakuliah
Route::resource('matakuliah', \App\Http\Controllers\
DosenController::class)
->middleware('auth');

43. Edit Model Matakuliah


<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Matakuliah extends Model


{
protected $fillable = [
'kode',
'nama',
'sks',
];
}

44. Edit Controller Matakuliah


<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Http\RedirectResponse;
use App\Models\Matakuliah;

class MatakuliahController extends Controller


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

public function create()


{
return view('matakuliah.create');
}
public function store(Request $request)
{
matakuliah::create([

'kode' => $request->kode,


'nama' => $request->nama,
'sks' => $request->sks,

]);
//redirect to index
return redirect()->route('matakuliah.index')-
>with(['success' => 'Data Berhasil Disimpan!']);

public function edit($id)


{
$matakuliah = Matakuliah::find($id);
if (!$matakuliah) return redirect()-
>route('matakuliah.index')
->with('error_message', 'Matakuliah dengan id'.$id.' tidak
ditemukan');
return view('matakuliah.edit', [
'matakuliah' => $matakuliah
]);
}
public function update(Request $request, $id)
{
$matakuliah= Matakuliah::findOrFail($id);
$matakuliah->update([
'kode' => $request->kode,
'nama' => $request->nama,
'sks' => $request->sks
]);
return redirect()->route('matakuliah.index')-
>with(['success' => 'Data Berhasil Diubah!']);
}
public function destroy($id): RedirectResponse
{

$matakuliah = Matakuliah::findOrFail($id);
$matakuliah->delete();
return redirect()->route('matakuliah.index')-
>with(['success' => 'Data Berhasil Dihapus!']);
}

45. Buat View Index


@extends('adminlte::page')
@section('title', 'List Mata Kuliah')
@section('content_header')Mata Kuliah</h1>
@stop
@section('content')
<div class="row">
<div class="col-12">
<div class="card">
<div class="card-body">
<a href="{{route('matakuliah.create')}}"
class="btn btn-primary mb-2">
Tambah
</a>
<table class="table table-hover table-bordered
table-stripped" id="example2">
<thead>
<tr>
<th>No.</th>
<th>KODE</th>
<th>NAMA</th>
<th>SKS</th>
</tr>
</thead>
<tbody>
@foreach($matakuliahs as $key => $matakuliah)
<tr>
<td>{{$key+1}}</td>
<td>{{$matakuliah->kode}}</td>
<td>{{$matakuliah->nama}}</td>
<td>{{$matakuliah->sks}}</td>
<td>
<a href="{{route('matakuliah.edit',
$matakuliah)}}" class="btn btn-primary btn-xs">
Edit
</a>
<a href="{{route('matakuliah.destroy',
$matakuliah)}}" onclick="notificationBeforeDelete(event, this)"
class="btn btn-danger btn-xs">
Delete
</a>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
</div>
</div>
@stop
@push('js')
<form action="" id="delete-form" method="post">
@method('delete')
@csrf
</form>
<script>
$('#example2').DataTable({
"responsive": true,
});
function notificationBeforeDelete(event, el) {
event.preventDefault();
if (confirm('Apakah anda yakin akan menghapus data ? '))
{
$("#delete-form").attr('action', $(el).attr('href'));
$("#delete-form").submit();
}
}
</script>
@endpush

46. Buat View Create


@extends('adminlte::page')
@section('title', 'Tambah matakuliah')
@section('content_header')
<h1 class="m-0 text-dark">Tambah Data matakuliah</h1>
@stop
@section('content')
<form action="{{route('matakuliah.store')}}"
method="post">
@csrf
<div class="row">
<div class="col-12">
<div class="card">
<div class="card-body">
<div class="form-group">
<label for="exampleInputName">Kode</label>
<input type="text" class="form-control
@error('kode') is-invalid @enderror" id="exampleInputName"
placeholder="Kode Matakuliah" name="kode"
value="{{old('kode')}}">
@error('kode') <span class="text-
danger">{{$message}}</span> @enderror
</div>
<div class="form-group">
<label for="exampleInputName">Nama</label>
<input type="text" class="form-control
@error('nama') is-invalid @enderror" id="exampleInputName"
placeholder="Nama Matakuliah" name="nama"
value="{{old('nama')}}">
@error('nama') <span class="text-
danger">{{$message}}</span> @enderror
</div>
<div class="form-group">
<label for="exampleInputName">sks</label>
<input type="text" class="form-control
@error('sks') is-invalid @enderror" id="exampleInputName"
placeholder="sks" name="sks" value="{{old('sks')}}">
@error('sks') <span class="text-
danger">{{$message}}</span> @enderror
</div>
</div>
<div class="card-footer">
<button type="submit" class="btn btn-
primary">Simpan</button>
<a href="{{route('matakuliah.index')}}" class="btn
btn-default">
Batal
</a>
</div>
</div>
</div>
</div>
@stop

47. Buat View Edit


@extends('adminlte::page')
@section('title', 'Edit Mata Kuliah')
@section('content_header')
<h1 class="m-0 text-dark">Edit Data Mata Kuliah</h1>
@stop
@section('content')
<form action="{{route('matakuliah.update', $matakuliah)}}"
method="post">
@method('PUT')
@csrf
<div class="row">
<div class="col-12">
<div class="card">
<div class="card-body">
<div class="form-group">
<label for="exampleInputName">Kode</label>
<input type="text" class="form-control
@error('kode') is-invalid @enderror" id="exampleInputName"
placeholder="Kode Mata Kuliah" name="kode"
value="{{$matakuliah->kode ?? old('kode')}}">
@error('kode') <span class="text-
danger">{{$message}}</span> @enderror
</div>
<div class="form-group">
<label for="exampleInputName">Nama</label>
<input type="text" class="form-control
@error('nama') is-invalid @enderror" id="exampleInputName"
placeholder="Nama Matakuliah" name="nama"
value="{{$matakuliah->nama ?? old('nama')}}">
@error('nama') <span class="text-
danger">{{$message}}</span> @enderror
</div>
<div class="form-group">
<label for="exampleInputName">SKS</label>
<input type="text" class="form-control
@error('sks') is-invalid @enderror" id="exampleInputName"
placeholder="SKS" name="sks" value="{{$matakuliah->sks ??
old('sks')}}">
@error('sks') <span class="text-
danger">{{$message}}</span> @enderror
</div>
</div>
<div class="card-footer">
<button type="submit" class="btn btn-
primary">Simpan</button>
<a href="{{route('matakuliah.index')}}" class="btn
btn-default">
Batal
</a>
</div>
</div>
</div>
</div>
@stop

48. Selesai CRUD Matakuliah

49. Lanjutan
50. Buat query tabel dosen dengan matakuliah
51. Tambahkan field id_dosen di table matakuliah (bisa manual bisa
artisan)
52. Edit ulang file model matakuliah dan dosen untuk membuat
relasi
53. Custum ulang CRUD matakuliah

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy