Ujikom Safa 2023
Ujikom Safa 2023
Ujikom Safa 2023
Kamus data
table_user
no field tipe_data keterangan
1 id bigint(20) primary key
2 email varchar(225)
3 password varchar(225)
admin,custome
4 role enum r
table_kategori
no field tipe_data keterangan
1 id bigint(20) primary key
2 name varchar(225)
table_destinasi
no field tipe_data keterangan
1 id bigint(20) primary key
kategori_i
2 d bigint(20) foreign_id
3 user_id bigint(20) foreign_id
4 name varchar(225)
5 foto varchar(225)
keteranga
6 n varchar(225)
7 alamat varchar(225)
8 linklokasi varchar(225)
Class Diagram
Mockup
Scirpt
route
Route::get('/', 'UserController@home')->name('home');
Route::get('/detail{destinasi}', 'UserController@detail')->name('detail');
Route::get('/login', 'UserController@login')->name('login');
Route::post('/postlogin', 'UserController@postlogin')->name('postlogin');
Route::get('/registrasi', 'UserController@registrasi')->name('registrasi');
Route::post('/postregistrasi', 'UserController@postregistrasi')-
>name('postregistrasi');
Route::get('/destinasi', 'UserController@destinasi')->name('destinasi');
Route::get('/tambahdestinasi', 'UserController@tambahdestinasi')-
>name('tambahdestinasi');
Route::post('/posttambahdestinasi', 'UserController@posttambahdestinasi')-
>name('posttambahdestinasi');
Route::get('/editdestinasi{destinasi}', 'UserController@editdestinasi')-
>name('editdestinasi');
Route::post('/posteditdestinasi{destinasi}',
'UserController@posteditdestinasi')->name('posteditdestinasi');
Route::get('/hapusdestinasi{destinasi}', 'UserController@hapusdestinasi')-
>name('hapusdestinasi');
Route::get('/logout', 'UserController@logout')->name('logout');
Fungsi
public function home()
{
$data = destinasi::all();
return view('home', compact('data'));
}
if (Auth::attempt($cek)) {
return redirect()->route('destinasi');
}
}
return redirect()->route('login');
}
//khusus admin
public function destinasi()
{
$data = destinasi::all();
return view('admin.destinasi', compact('data'));
}
return redirect()->route('destinasi');
}
if ($request->hasFile('foto')) {
$data['foto']=$request->foto->store('img');
}
else {
unset($data['foto']);
}
$destinasi->update($data);
return redirect()->route('destinasi');
}
@include('template.nav')
<img src="img\bgnav3c.jpg" alt="" class="d-block w-100">
<h1 class="text-center mt-4">DESTINASI SUKABUMI</h1>
@include('template.card')
<script src="{{ asset('js\bootstrap.bundle.min.js') }}"></script>
</body>
</html>
Navbar
<nav class="nav bg-info navbar-expand-lg">
<div class="container-fluid">
<a href="" class="navbar-brand text-white">Destinasi</a>
</div>
<a href="{{ route('home') }}" class="nav-link text-white">Home</a>
<a href="{{ route('login') }}" class="nav-link text-white">Login</a>
</nav>
Card
<div class="container mt-4">
<div class="row">
@foreach ($data as $item)
<div class="col-4">
<div class="card shadow-lg mb-5" style="background-
color:rgb(198, 237, 255);border-radius: 22px">
<div class="card-body">
<img width="50" height="200" style="border-radius:
15px" src="{{ asset($item->foto) }}" alt="" class="card-img-top">
<h3 class="card-title">{{ $item->name }}</h3>
<p class="card-text text-center">{{ $item-
>keterangan }}</p>
<a href="{{ route('detail', $item->id) }}" class="btn
btn-info">lihat detail</a>
</div>
</div>
</div>
@endforeach
</div>
</div>
Login
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<link rel="stylesheet" href="{{ asset('css\bootstrap.min.css') }}">
<title>home</title>
</head>
<body style="background-color: rgb(129, 189, 197)">
@include('template.nav')
<div class="container mt-4">
<h1 class="text-center">LOGIN</h1>
<div class="card col-6 mx-auto shadow-lg" style="background-
color:rgb(198, 237, 255)">
<div class="card-body">
<form action="{{ route('postlogin') }}" class="form-group"
method="POST">
@csrf
<label for="">Username: </label>
<input type="email" name="email" required class="form-
control">
<label for="">Password: </label>
<input type="password" name="password" required
class="form-control">
<button class="btn btn-dark form-control mt-
2">Login</button>
<p class="text-center mt-2">Belum punya akun? <a
href="{{ route('registrasi') }}">Registrasi</a></p>
</form>
</div>
</div>
</div>
<script src="{{ asset('js\bootstrap.bundle.min.js') }}"></script>
</body>
</html>
Registrasi
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<link rel="stylesheet" href="{{ asset('css\bootstrap.min.css') }}">
<title>home</title>
</head>
<body style="background-color: rgb(129, 189, 197)">
@include('template.nav')
<div class="container mt-4">
<h1 class="text-center">REGISTRASI</h1>
<div class="card col-6 mx-auto shadow-lg" style="background-
color:rgb(198, 237, 255)">
<div class="card-body">
<form action="{{ route('postregistrasi') }}" class="form-
group" method="POST">
@csrf
<label for="">Name: </label>
<input type="text" name="name" required class="form-
control">
<label for="">Username: </label>
<input type="email" name="email" required class="form-
control">
<label for="">Password: </label>
<input type="password" name="password" required
class="form-control">
<button class="btn btn-dark form-control mt-
2">Daftar</button>
<p class="text-center mt-2">Sudah punya akun? <a
href="{{ route('login') }}">Login</a></p>
</form>
</div>
</div>
</div>
<script src="{{ asset('js\bootstrap.bundle.min.js') }}"></script>
</body>
</html>
Admin destinasi
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<script src="datatable\jquery-3.5.1.js"></script>
<script src="datatable\jquery.dataTables.min.js"></script>
<script src="datatable\dataTables.bootstrap4.min.js"></script>
<title>home</title>
</head>
<body style="background-color: rgb(129, 189, 197)">
@include('template.nav')
<div class="container mt-4">
<h1 class="text-center">KELOLA DESTINASI</h1>
<a href="{{ route('tambahdestinasi') }}" class="btn btn-
dark">Tambah</a>
<a href="{{ route('logout') }}" onclick="return confirm('apakah anda
yakin ingin keluar?')" class="btn btn-danger">logout</a>
<div class="card mt-3 mb-5" style="background-color:rgb(198, 237,
255)">
<div class="card-body">
<table class="table-hover table-bordered" id="example">
<thead>
<tr>
<th>No </th>
<th>foto </th>
<th>Name </th>
<th>Keterangan </th>
<th>Alamat </th>
<th>Lokasi </th>
<th>Admin </th>
<th>Aksi </th>
</tr>
</thead>
<tbody>
@foreach ($data as $item)
<tr>
<td> {{ $loop->iteration }} </td>
<td> <img width="100" height="100"
src="{{ asset($item->foto) }}" alt=""> </td>
<td> {{ $item->name }} </td>
<td> {{ $item->keterangan }} </td>
<td> {{ $item->alamat }} </td>
<td> <a href="{{ $item->linklokasi }}"
target="blank_target"> cek lokasi </a></td>
<td> {{ $item->user->name }} </td>
<td>
<a href="{{ route('editdestinasi', $item->id)
}}" class="btn btn-dark mt-2">edit</a>
<a href="{{ route('hapusdestinasi', $item-
>id) }}" onclick="return confirm('apakah anda yakin ingin menghapus?')"
class="btn btn-danger mt-2">hapus</a>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
</div>
<script>
$(document).ready(function(){
$('#example').DataTable();
});
</script>
</body>
</html>
Tambah destinasi
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<link rel="stylesheet" href="{{ asset('css\bootstrap.min.css') }}">
<title>home</title>
</head>
<body style="background-color: rgb(129, 189, 197)">
@include('template.nav')
<div class="container mt-4">
<h1 class="text-center">TAMBAH DESTINASI</h1>
<div class="card shadow-lg" style="background-color:rgb(198, 237,
255)">
<div class="card-body">
<form action="{{ route('posttambahdestinasi') }}"
enctype="multipart/form-data" class="form-group" method="POST">
@csrf
<label for="">Name: </label>
<input type="text" name="name" required class="form-
control">
<label for="">Foto: </label>
<input type="file" name="foto" accept="image/*" required
class="form-control">
<label for="">Keterangan: </label>
<input type="text" name="keterangan" required class="form-
control">
<label for="">Alamat: </label>
<input type="text" name="alamat" required class="form-
control">
<label for="">Link Lokasi: </label>
<input type="text" name="linklokasi" required class="form-
control">
<label for="">Kategori: </label>
<select name="kategori_id" class="form-control">
@foreach ($data as $item)
<option value="{{ $item->id }}">{{ $item-
>name }}</option>
@endforeach
</select>
<button class="btn btn-dark mt-2">Kirim</button>
<a href="{{ route('destinasi') }}" class="btn btn-danger
mt-2">Batal</a>
</form>
</div>
</div>
</div>
<script src="{{ asset('js\bootstrap.bundle.min.js') }}"></script>
</body>
</html>
Edit destinasi
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<link rel="stylesheet" href="{{ asset('css\bootstrap.min.css') }}">
<title>home</title>
</head>
<body style="background-color: rgb(129, 189, 197)">
@include('template.nav')
<div class="container mt-4">
<h1 class="text-center">EDIT DESTINASI</h1>
<div class="card shadow-lg" style="background-color:rgb(198, 237,
255)">
<div class="card-body">
<form action="{{ route('posteditdestinasi', $destinasi-
>id) }}" enctype="multipart/form-data" class="form-group" method="POST">
@csrf
<label for="">Name: </label>
<input type="text" name="name" required class="form-
control" value="{{ $destinasi->name }}">
<label for="">Foto: </label>
<input type="file" name="foto" accept="image/*" required
class="form-control" value="{{ $destinasi->foto }}">
<label for="">Keterangan: </label>
<input type="text" name="keterangan" required class="form-
control" value="{{ $destinasi->keterangan }}">
<label for="">Alamat: </label>
<input type="text" name="alamat" required class="form-
control" value="{{ $destinasi->alamat }}">
<label for="">Link Lokasi: </label>
<input type="text" name="linklokasi" required class="form-
control" value="{{ $destinasi->linklokasi }}">
<label for="">Kategori: </label>
<select name="kategori_id" class="form-control">
@foreach ($data as $item)
<option value="{{ $item->id }}">{{ $item-
>name }}</option>
@endforeach
</select>
<button class="btn btn-dark mt-2">Kirim</button>
<a href="{{ route('destinasi') }}" class="btn btn-danger
mt-2">Batal</a>
</form>
</div>
</div>
</div>
<script src="{{ asset('js\bootstrap.bundle.min.js') }}"></script>
</body>
</html>
Tambahan
Env
DB_DATABASE=ujikomsafa
FILESYSTEM_DRIVER=public
Config(filesystems.php)
'public' => [
'driver' => 'local',
'root' => public_path(),
'url' => env('APP_URL').'/public',
'visibility' => 'public',
Providers(RouteServiceProvider.php)
protected $namespace = 'App\\Http\\Controllers';
Tampilan Webiste
home
Detail
Registrasi
Login
Kelola destinasi
Tambah destinasi
Edit
Hapus destinasi
Logout