US WEB MENGGUNAKAN LARAVEL 8.5
US WEB KELAS XII SMK DM
Aplikasi : laravel 8.5
Editor : sublime text3
Db : xampp 7.3.11
1. Buat
Project Baru di htdocs: " UsUser"
(tanpa tanda petik)
composer create-project --prefer-dist laravel/laravel UsVina (contoh)
2.
Aktifkan xampp panel. Buat database usvina (contoh)
3.
Atur Database .env dan config/database.php seperti gb berikut:
4. Kalau sudah lakukan migrate.
5. Buat Model : php artisan make:model SiswaModel -m (perintah membuat model dan migration)
Buka model. app\Models\SiswaModel. masukan kode berikut:
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class SiswaModel extends Model
{
use HasFactory;
protected
$table = 'siswa';
protected $fillable =
['nama','nis','alamat','jenis_kelamin','tgl_lahir','foto'];
}
Buka Migration. database\migrations\2021_04_26_140331_create_siswa_models_table.php
Masukan dan ubah sesuai kebutuhan kode
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateSiswaModelsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('siswa', function (Blueprint $table) {
$table->id();
$table->string('nama',50);
$table->string('nis',10);
$table->text('alamat');
$table->string('jenis_kelamin',10);
$table->date('tgl_lahir');
$table->string('foto');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('siswa');
}
}
kalau sudah lakukan migrate lagi
6. Buat controller: php artisan make:controller SiswaController --resource
Buka controller yang barusan dibuat. app\Http\Controllers\SiswaController.php
masukan kode berikut:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\SiswaModel;
class SiswaController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$siswadms = SiswaModel::latest()->paginate(5);
return view('siswadm.index',compact('siswadms'))
->with('i', (request()->input('page', 1) - 1) * 5);
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public
function create()
{
return view('siswadm.create');
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$request->validate([
'nama' => 'required',
'nis' => 'required',
'alamat' => 'required',
'jenis_kelamin' => 'required',
'tgl_lahir' => 'required',
'foto' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
]);
$input = $request->all();
if ($foto = $request->file('foto')) {
$destinationPath = 'image/';
$profileImage = date('YmdHis') . "." .
$foto->getClientOriginalExtension();
$foto->move($destinationPath, $profileImage);
$input['foto'] = "$profileImage";
}
SiswaModel::create($input);
return redirect()->route('siswadm.index')
->with('success','Siswa Berhasil Ditambah.');
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show(SiswaModel $siswadm)
{
return view('siswadm.show',compact('siswadm'));
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public
function edit(SiswaModel $siswadm)
{
return view('siswadm.edit',compact('siswadm'));
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public
function update(Request $request, $id)
{
$request->validate([
'nama' => 'required',
'nis' => 'required',
'alamat' => 'required',
'jenis_kelamin' => 'required',
'tgl_lahir' => 'required'
]);
$data = \App\Models\SiswaModel::findOrFail($id);
$data->nama = $request->input('nama');
$data->nis = $request->input('nis');
$data->alamat = $request->input('alamat');
$data->jenis_kelamin = $request->input('jenis_kelamin');
$data->tgl_lahir = $request->input('tgl_lahir');
if (empty($request->file('foto'))){
$data->foto = $data->foto;
}
else{
unlink('image/'.$data->foto); //menghapus foto lama
$foto = $request->file('foto');
$ext = $foto->getClientOriginalExtension();
$newName = rand(100000,1001238912).".".$ext;
$foto->move('image/',$newName);
$data->foto = $newName;
}
$data->save();
return redirect()->route('siswadm.index')
->with('success','Siswa
updated successfully');
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public
function destroy( $id)
{
$image = \DB::table('siswa')->where('id', $id)->first();
$file= $image->foto;
$filename = public_path().'/image/'.$file;
\File::delete($filename);
$siswa = SiswaModel::find($id);
$siswa->delete();
return redirect()->route('siswadm.index')
->with('success','Data berhasil dihapus!');
}
}
6. Buka rooter: routes\web.php
Masukan kode berikut:
<?php
use\App\Http\Controllers\SiswaController;
use Illuminate\Support\Facades\Route;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::get('/', function () {
return view('welcome');
});
Route::resource('siswadm',SiswaController::class);
7. Buat folder siswadm di resources/views. seperti gb berikut:
Buat file didalam folder
siswadm.
create.blade.php
@extends('siswadm.layout')
@section('content')
<div
class="row">
<div class="col-lg-12
margin-tb">
<div class="">
<h3 style="text-align:
center;">Add Siswa</h3>
</div>
</div>
</div>
@if ($errors->any())
<div class="alert
alert-danger">
<strong>Whoops!</strong>
There were some problems with your input.<br><br>
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error
}}</li>
@endforeach
</ul>
</div>
@endif
<form action="{{
route('siswadm.store') }}" method="POST"
enctype="multipart/form-data">
@csrf
<div
class="container">
<div
class="form-group">
<strong>Nama:</strong>
<input type="text"
name="nama" class="form-control"
placeholder="Nama">
</div>
</div>
<div
class="container">
<div
class="form-group">
<strong>Nis:</strong>
<input type="text"
name="nis" class="form-control"
placeholder="nis">
</div>
</div>
<div class="container">
<div
class="form-group">
<strong>Alamat:</strong>
<textarea
class="form-control" style="height:100px"
name="alamat" placeholder="Alamat"></textarea>
</div>
</div>
<div class="container">
<div
class="form-group">
<strong>Jenis
Kelamin:</strong>
<select
name="jenis_kelamin" class="form-control">
<option
value="">Pilih .....</option>
<option
value="pria">Pria</option>
<option
value="wanita">Wanita</option>
</select>
</div>
</div>
<div
class="container">
<div
class="form-group">
<strong>Tgl
Lahir:</strong>
<input type="date"
name="tgl_lahir" class="form-control" placeholder="Tgl
Lahir">
</div>
</div>
<div
class="container">
<div class="form-group">
<strong>Foto:</strong>
<input type="file"
name="foto" class="form-control"
placeholder="Foto">
</div>
</div>
<div
class="container">
<div class="col-xs-12 col-sm-12
col-md-12 text-center">
<button
type="submit" class="btn
btn-primary">Tambah</button>
<button
type="Reset" class="btn
btn-primary">Reset</button>
</div>
</div>
</form>
@endsection
Buat file didalam folder
siswadm.
edit.blade.php
@extends('siswadm.layout')
@section('content')
<div class="row">
<div class="col-lg-12 margin-tb">
<div class="pull-left">
<h2>Edit Siswa</h2>
</div>
<div class="pull-right">
<a class="btn btn-primary" href="{{ route('siswadm.index') }}"> Back</a>
</div>
</div>
</div>
@if ($errors->any())
<div class="alert alert-danger">
<strong>Whoops!</strong> There were some problems with your input.<br><br>
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
<form action="{{ route('siswadm.update',$siswadm->id) }}" method="POST" enctype="multipart/form-data">
@csrf
@method('PUT')
<div class="row">
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group">
<strong>Nama:</strong>
<input type="text" name="nama" value="{{ $siswadm->nama }}" class="form-control" placeholder="Nama">
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group">
<strong>NiS:</strong>
<input type="text" name="nis" value="{{ $siswadm->nis }}" class="form-control" placeholder="NiS">
</div>
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group">
<strong>Alamat:</strong>
<textarea class="form-control" style="height:100px" name="alamat" placeholder="Alamat">{{ $siswadm->alamat }}</textarea>
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group">
<strong>Jenis Kelamin:</strong>
<select name="jenis_kelamin" value="{{ $siswadm->jenis_kelamin }}" class="form-control">
<option value="">Pilih ....</option>
<option value="pria">Pria</option>
<option value="wanita">Wanita</option>
</select>
</div>
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group">
<strong>Tgl Lahir:</strong>
<input type="date" name="tgl_lahir" value="{{ $siswadm->tgl_lahir }}" class="form-control" placeholder="Tgl Lahir">
</div>
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group">
<strong>Foto:</strong>
<input type="file" name="foto" class="form-control" placeholder="Foto">
<img src="/image/{{ $siswadm->foto }}" width="300px">
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-12 text-center">
<button type="submit" class="btn btn-primary">Submit</button>
</div>
</div>
</form>
@endsection
Buat file didalam folder
siswadm.
index.blade.php
@extends('siswadm.layout')
@section('content')
<div class="row">
<div class="col-lg-12 margin-tb">
<div class="">
<strong><h3 style="text-align: center;">Entry Data Siswa</h3></strong>
</div>
<div class="pull-right">
<a class="btn btn-success" href="{{ route('siswadm.create') }}"> New Siswa</a>
</div>
</div>
</div>
@if ($message = Session::get('success'))
<div class="alert alert-success">
<p>{{ $message }}</p>
</div>
@endif
<div class="container">
<table class="table table-bordered">
<tr>
<th>No</th>
<th width="150px">Nama</th>
<th>Nis</th>
<th width="150px">Alamat</th>
<th width="150px">Jenis Kelamin</th>
<th width="150px">Tgl Lahir</th>
<th>Foto</th>
<th width="300pxpx" style="text-align: center;">Aksi</th>
</tr>
@foreach ($siswadms as $siswadm)
<tr>
<td>{{ ++$i }}</td>
<td>{{ $siswadm->nama }}</td>
<td>{{ $siswadm->nis }}</td>
<td>{{ $siswadm->alamat }}</td>
<td>{{ $siswadm->jenis_kelamin }}</td>
<td>{{ $siswadm->tgl_lahir }}</td>
<td><img src="/image/{{ $siswadm->foto }}" width="100px"></td>
<td>
<form action="{{ route('siswadm.destroy',$siswadm->id) }}" method="POST">
<a class="btn btn-info" href="{{ route('siswadm.show',$siswadm->id) }}">Show</a>
<a class="btn btn-primary" href="{{ route('siswadm.edit',$siswadm->id) }}">Edit</a>
@csrf
@method('DELETE')
<button type="submit" class="btn btn-danger" onclick="return confirm('Are You Sure?')">Delete</button>
</form>
</td>
</tr>
@endforeach
</table>
</div>
{!! $siswadms->links() !!}
@endsection
Buat file didalam folder
siswadm.
layout.blade.php
<!DOCTYPE html>
<html>
<head>
<title>Laravel 8 CRUD </title>
<link href="assets/dist/css/bootstrap.css" rel="stylesheet">
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-alpha/css/bootstrap.css" rel="stylesheet">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
<style type="text/css">
body{
background: #f5fbf5;
padding: 50px;
}
</style>
</head>
<body>
<div class="container">
@yield('content')
</div>
</body>
</html>
Buat file di folder siswadm:
show.blade.php
@extends('siswadm.layout')
@section('content')
<div class="row">
<div class="col-lg-12 margin-tb">
<div class="pull-left">
<h2> Show Siswa</h2>
</div>
<div class="pull-right">
<a class="btn btn-primary" href="{{ route('siswadm.index') }}"> Back</a>
</div>
</div>
</div>
<div class="row">
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group">
<strong>Nama:</strong>
{{ $siswadm->nama }}
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group">
<strong>Nip:</strong>
{{ $siswadm->nip }}
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group">
<strong>Alamat:</strong>
{{ $siswadm->alamat }}
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group">
<strong>Jenis Kelamin:</strong>
{{ $siswadm->jenis_kelamin }}
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group">
<strong>Tgl Lahir:</strong>
{{ $siswadm->tgl_lahir }}
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group">
<strong>Foto:</strong>
<img src="/image/{{ $siswadm->foto }}" width="500px">
</div>
</div>
</div>
@endsection
Tambahan. Jangan lupa buat folder image di dalam folder public
Terakhir ketikan php artisan serve
cek program. di localhost:8000/siswadm
................................................. Selamat Mengerjakan ........................................................
Sesi Tanya Jawab : WA: 082121574595
Email : adejuhana28@gmail.com
Komentar
Posting Komentar