Modul 5 - Framework Laravel
Modul 5 - Framework Laravel
0
MEI, 2021
PEMROGRAMAN WEB
FRAMEWORK LARAVEL – MODUL 5
PEMROGRAMAN WEB
Laptop/ PC
Koneksi Internet
Software
MATERI POKOK
1. Composer
a. Pengertian Composer
Dalam beberapa tahun belakangan, terjadi perubahan yang sangat signifikan
dalam dunia pemrograman php. Yakni munculnya dependencies manager yang
bernama composer. Composer adalah sebuah project open source yang dimotori
oleh Nils Adermann dan Jordi Boggiano. Project composer ini dihost di github
(https://github.com/composer/composer) tercatat sejak tanggal 3 April 2011 dan
masih aktif sampai sekarang. Composer dikenal jugasebagai dependency
management maksudnya dengan menggunakan composer developerdapat
menginstall suatu library melalui composer dan composer akan secara
otomatismenginstall library lain yang dibutuhkan, tanpa perlu mendownload satu
persatu. Mirip denganapt get install di sistem operasi linux, npm yang ada di
dalam NodeJs dan Bundler pada Ruby. Berikut salah satu contoh penggunaan
Composer di dalam pemanggilan suatu library :
Kita punya project yang butuh library. Misalnya, library untuk eksport data ke
Excel yaitu PHPExcel dan DomPDF buat eksport data ke PDF.
Library-library tersebut juga butuh library lainnya. Dalam kasus ini, PHPExcel
butuh libraryext-xml dan DomPDF butuh phenx/php-font-lib. Kasus seperti ini,
namanya dependensi. Jadi, bisa disebut PHPExcel memiliki dependensi ext-
xml.
Karena memang banyak dependency-nya maka, dengan menggunakan
composer libraryyang mempunyai dependency akan secara otomatis diinstall.
Jadi, cara kerja dari composer yaitu kita menuliskan library yang dibutuhkan
di dalam suatu aplikasi kemudian composer akan mencari versi yang sesuai lalu
install secara otomatis berikut dependency dari library tersebut. Dengan
composer, developer tidak repot download library PHP manual satu-persatu.
Begitupun dengan proses update library, tidak perlu diupdate satu-persatu, cukup
diubah satu file (composer.json), jalankan perintah composer update lalu
mengupdate semua library. Cara mempraktekan penggunaan library di dalam
composer akan dipraktekan pada Sub-Bab Lembar Kerja.
2. Framework Laravel
Framework laravel merupakan salah satu framework PHP berbasis MVC yang
digunakan untuk membangun aplikasi web skala kecil maupun skala besar.
Framework ini dirilis oleh MIT dan disediakan secara gratis di github. Framework ini
dibangun pertama kali oleh Pencetusnya Martin Otwell pada tahun 2011. Meskipun
laravel dapat dikatakan masih relatif baru jika dibandingkan dengan para
pendahulunya yang sudah terkenal dikalangan developer web sebut saja CI (Code
Iginiter), Symfoni, Ruby on Rails, YII dsb. Tetapi laravel mampu bersaing dikancah
persaingan pembuatan aplikasi web menggunakan framework PHP dan telah menjadi
salah satu primadona framework laravel pada perusahaan start-up IT di Indonesia.
LEMBAR KERJA
1. Composer
a. Instalasi Composer
Cara instalasi composer dapat diakses melalui link berikut
https://www.malasngoding.com /cara-install-composer/. Setelah selesai menginstall
composer, buka command prompt (windows) atau terminal (linux) lalu ketikan
‘composer’, jika sudah terinstall dengan benar maka composer akan menampilkan
seperti pada gambar berikut :
Note : Untuk contoh pada modul ini menggunakan sistem operasi Ubuntu, namun
dalam praktiknya akan tetap sama saja dengan Windows.
versi
2. Untuk install package carbon tersebut, buat folder di dalam htdocs missal
dengan nama contohComposer. Di dalam folder contohComposer
tersebut, buatlah file baru bernama composer.json kemudian isikan script
berikut :
{
"require" : {
"nesbot/carbon" : "2.47.0"
}
}
4. Apabila sudah benar dan selesai cara instalasinya maka, di dalam folder
contohComposer akan terbentuk beberapa file dan folder baru. Berikut
penjelasan file dalam folder itu:
composer.json, ini file yang kita buat, berisi dependensi library dari
project kita.
composer.lock, file ini mencatat versi package yang saat ini terinstal.
vendor, folder ini berisi package yang telah kita install. Setiap package
yang kita tulis di bagian require akan di download ke folder ini.
vendor/autoload.php, berfungsi memanggil autoloader dari composer.
Salah satu keunggulan dari composer adalah autoloader. Fitur ini berfungsi
untuk memanggil class yang sesuai ketika kita membutuhkan class dari suatu
library. Jadi, jika banyak library yang kita install kita hanya cukup menulis
require untuk file vendor/autoload.php. Dan, autoload ini cukup cerdas
dengan hanya me-load class yang kita butuhkan.
<?php
require 'vendor/autoload.php';
{
"require": {
"nesbot/carbon": "2.47.0",
"sastrawi/sastrawi": "1.2.0"
}
}
9. Untuk menerapkan package sastrawi ke dalam suatu program, Buat file baru
dengan nama index2.php, di dalam directory contohComposer, lalu isikan
script berikut:
<?php
require 'vendor/autoload.php';
XML PHP Extension paling penting, namun jika kalian telah menginstall XAMPP,
maka hal tersebut sudah otomatis terinstall semuanya, usahakan menginstall XAMPP
versi terbaru, namun jika kalian menggunakan sistem operasi linux, kalian harus install
manual seluruh extension yang dibutuhkan oleh Laravel. Untuk instalasi Laravel 8 kalian
juga harus perhatikan versi PHP yang telah terinstall pada local telah sesuai dengan
requirement minimal Laravel. Untuk mengecek versi PHP yang telah di-install dapat di
cek melalui terminal atau command prompt dengan command “php -v”. (Jangan lupa
untuk menghidupkan apache di web server kalian, XAMPP atau Laragon)
Secara otomatis di dalam directory projek kalian akan terbuat satu project
atau folder dengan nama nama-project-kalian beserta dengan dependency
nya.
2. Masih pada command prompt, pindah ke direktori projek yang baru terbuat
dengan perintah :
cd nama-project-kalian
5. Perlu diperhatikan bahwa ada beberapa directory yang akan sering digunakan
atau diedit di dalam membuat aplikasi menggunakan Laravel, diantaranya :
a. routes/web.php directory ini digunakan untuk mengarahkan suatu
resource tertentu, untuk cara penulisan dapat diakses di alamat berikut
https://laravel.com/docs/8.x/routing
b. resources/views direktori ini khusus untuk menangani tampilan di sisi
user (frontend) cara pembuatan view dapat di akses di halaman berikut
https://laravel.com/docs/8.x/views
c. app/Http/Controllers directory ini untuk menangani proses logic dan
menghubungkan antara model dengan views, adapun cara pembuatan
1. Pembuatan Database
Buat database melalui phpMyAdmin atau MySql, contoh database yang
dibuat dengan nama ‘latihan-web. Caranya:
a)Buka http://localhost/phpmyadmin/
b)Tekan tombol new atau baru
c) Isi nama database, dalam contoh ini ‘latihanweb_db’, lalu tekan buat/create.
Langkah ini akan berbeda jika kalian menggunakan code editor selain
Visual Studio Code, namun tidak masalah, seluruh code editor memiliki
kelebihannya masing-masing. Untuk yang menggunakan Visual Studio Code,
dapat dibuka Visual Studio Code nya, lalu klik File > Open Folder > Lalu cari
folder projek kalian yang telah dibuat sebelumnya > Ok.
Tambahan : Jika kalian menggunakan Visual Studio Code, kalian dapat
memanfaatkan fitur terminal sebagai command prompt kalian. Dengan cara
klik Terminal > New Terminal (ctrl + shift + `)
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=latihanweb_db
DB_USERNAME=root
DB_PASSWORD=
Ketikkan perintah “exit” untuk keluar dari tinker, namun sebelumnya pastikan
database kalian telah terkoneksi dengan Laravel, seperti di atas.
Untuk membuat table baru dengan migration, kita harus membuat file
migration terlebih dahulu dengan perintah :
Mari kita buat migration untuk membuat table products dan suppliers:
Suppliers migration
Suppliers products
Dari kode di atas dapat kita dapat melihat untuk membuat sebuah field
yang bertipe data varchar (sesuai dengan desain database sebelumnya) kita
bisa menggunakan script “$table->string(‘nama_field’, length)”, lalu adapun
juga “$table->timestamps()”, bawaan dari Laravel ini akan me-generate
sebuah field created_at dan updated_at secara otomatis, jadi kalian tidak perlu
untuk create manual untuk kedua field ini, cukup dengan script tersebut, sama
juga dengan field id, kalian hanya perlu untuk menggunakan method id.
Adapun method “foreignId” yang digunakan untuk pembuatan sebuah foreign
key dengan diikuti oleh references dan on yang mengartikan field pada tabel
parent yang akan dibuat foreign key nya pada tabel products.
Ada sangat banyak method untuk membuat field yang didukung oleh
Blueprint, karena pada method up kita membuat tabel baru, maka pada
method down kita harus menghapus table tersebut menggunakan method
Schema::dropIfExist() dengan parameter nama table yang akan kita hapus.
Untuk menjalankan perintah artisan kita dapat menggunakan perintah php
artisan migrate. Kemudian lihat di http://localhost/phpmyadmin/.
mediumIncremen
decimal softDeletesTz unsignedMediumInteger
ts
id nullableMorphs timestamp
Modifier Deskripsi
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\Schema;
Dari skema di atas, kita sebenarnya telah berhasil untuk membuat seluruh tabel
yang dibutuhkan sesuai dengan desain database kita sebelumnya, namun ada hal
lain yang perlu kita periksa kembali, yaitu hubungan antara kedua tabel Suppliers
5. Membuat Model
Membuat model untuk mengatur penggunaan data di dalam Laravel,
dengan cara ketikan perintah di terminal :
Maka secara otomatis akan terbentuk file dengan nama Supplier.php dan
Product.php di directory \app\Models. Secara default model akan
terkoneksi dengan table dengan nama yang sama dengan nama model tetapi
berimbuhan s. Misal jika membuat model bernama Product dan Supplier
maka otomatis akan terkoneksi dengan table pada database yang memiliki
nama tabel products dan suppliers.
Buka file Supplier.php dan Product.php, tambahkan kode berikut :
Supplier.php
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
Product.php
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
return $this->belongsTo(Supplier::class);
}
}
Dapat kita lihat di atas, kita dapat membuat sebuah instantiate dari sebuah Model
class untuk membuat sebuah data baru, sebenarnya tidak terbatas untuk itu,
dengan tinker kita juga dapat memanfaatkan untuk menghapus data atau
mengubah data pada tabel, namun dengan catatan Model harus dibuat dahulu.
Kita dapat melihat data yang baru dimasukkan di phpmyadmin, seperti berikut ini
(Tabel suppliers)
(Tabel products)
Jika data berhasil masuk, maka pembuatan Model kita telah berhasil terkoneksi
dengan database.
6. Membuat Controller
Untuk membuat controller di dalam project ini, seperti biasanya masuk ke
terminal lalu ketikan perintah :
SupplierController.php
ProductController.php
7. Membuat Routing
Buka file web.php pada directory routes/web.php, hapus seluruh routing
yang ada lalu tambahkan kode berikut :
Route::get('/', function () {
return view('index');
})->name(‘dashboard.index’);
Route::resource('suppliers', SupplierController::class);
Route::resource('products', ProductController::class);
Jika telah berhasil membuat routingnya, selanjutnya kita periksa daftar routingnya
menggunakan terminal dengan perintah “php artisan route:list”.
8. Membuat View
Dalam latihan ini, kita menggunakan AdminLTE sebagai template
dashboard admin agar lebih cepat untuk proses developmentnya dan juga
template ini tersedia secara gratis, kalian dapat download di https://adminlte.io/.
Jika telah mengunduh template tersebut, silakan buka file zip adminlte dan
pindahkan seluruh folder (css, js, img) yang berada pada folder dist dan folder
plugins yang berada di root folder template ke dalam direktori public projek
kalian dan pindahkan file index.html pada adminlte ke dalam direktori-
projek/resources/views setelah itu silakan ubah nama file index.html menjadi
index.blade.php
(Ingat: ubah untuk kode lainnya juga, gambar di atas hanya contoh saja)
Jika seluruh proses refactoring selesai, maka kalian dapat membuka kembali
webnya di http://127.0.0.1:8080 dan akan memiliki tampilan seperti berikut :
Setelah itu, coba breakdown mana header, footer, dan sidebarnya, karena
komponen ini bersifat statis, maka kita perlu menaruhnya di master, dan konten
Lalu setelah itu sesuaikan menu yang berada di sidebar sesuai dengan kebutuhan,
disini kita hanya memberikan 3 menu, yaitu Dashboard, Products, dan Suppliers.
Maka untuk seluruh kode master.blade.php setelah melalui proses pemilahan
dan penghapusan kode yang tidak diperlukan, menjadi seperti berikut :
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>TOKO PETRIK | @yield('title')</title>
href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback">
<!-- Font Awesome -->
<link rel="stylesheet" href="{{ asset('plugins/fontawesome-free/css/all.min.css') }}">
<!-- Ionicons -->
<link rel="stylesheet" href="https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css">
<!-- Tempusdominus Bootstrap 4 -->
<link rel="stylesheet"
href="{{ asset('plugins/tempusdominus-bootstrap-4/css/tempusdominus-bootstrap-4.min.css') }}">
<!-- iCheck -->
<link rel="stylesheet" href="{{ asset('plugins/icheck-bootstrap/icheck-bootstrap.min.css') }}">
<!-- JQVMap -->
<link rel="stylesheet" href="{{ asset('plugins/jqvmap/jqvmap.min.css') }}">
<!-- Theme style -->
<link rel="stylesheet" href="{{ asset('css/adminlte.min.css') }}">
<!-- overlayScrollbars -->
<link rel="stylesheet"
href="{{ asset('plugins/overlayScrollbars/css/OverlayScrollbars.min.css') }}">
<!-- Daterange picker -->
<link rel="stylesheet" href="{{ asset('plugins/daterangepicker/daterangepicker.css') }}">
</script>
<!-- Bootstrap 4 -->
<script src="{{ asset('plugins/bootstrap/js/bootstrap.bundle.min.js') }}"></script>
<!-- ChartJS -->
<script src="{{ asset('plugins/chart.js/Chart.min.js') }}"></script>
<!-- Sparkline -->
<script src="{{ asset('plugins/sparklines/sparkline.js') }}"></script>
<!-- JQVMap -->
<script src="{{ asset('plugins/jqvmap/jquery.vmap.min.js') }}"></script>
<script src="{{ asset('plugins/jqvmap/maps/jquery.vmap.usa.js') }}"></script>
<!-- jQuery Knob Chart -->
<script src="{{ asset('plugins/jquery-knob/jquery.knob.min.js') }}"></script>
<!-- daterangepicker -->
<script src="{{ asset('plugins/moment/moment.min.js') }}"></script>
<script src="{{ asset('plugins/daterangepicker/daterangepicker.js') }}"></script>
<!-- Tempusdominus Bootstrap 4 -->
<script src="{{ asset('plugins/tempusdominus-bootstrap-4/js/tempusdominus-bootstrap-
4.min.js') }}"></script>
<!-- Summernote -->
<script src="{{ asset('plugins/summernote/summernote-bs4.min.js') }}"></script>
<!-- overlayScrollbars -->
<script
src="{{ asset('plugins/overlayScrollbars/js/jquery.overlayScrollbars.min.js') }}"></script>
<!-- AdminLTE App -->
<script src="{{ asset('js/adminlte.js') }}"></script>
<!-- AdminLTE for demo purposes -->
<script src="{{ asset('js/demo.js') }}"></script>
@stack(‘script’)
</body>
Lalu kita buka kembali index.blade.php dan hapus seluruh kode, lalu
tambahkan kode seperti berikut :
@extends('layouts.master')
@section(‘title’, ‘Dashboard’)
@section('content')
<!-- Content Header (Page header) -->
<div class="content-header">
<div class="container-fluid">
<div class="row mb-2">
<div class="col-sm-6">
<h1 class="m-0">Dashboard</h1>
</div><!-- /.col -->
<div class="col-sm-6">
<ol class="breadcrumb float-sm-right">
<li class="breadcrumb-item"><a href="#">Home</a></li>
<li class="breadcrumb-item active">Dashboard v1</li>
</ol>
</div><!-- /.col -->
</div><!-- /.row -->
</div><!-- /.container-fluid -->
</div>
<!-- /.content-header -->
<p>New Orders</p>
</div>
<div class="icon">
<i class="ion ion-bag"></i>
</div>
<a href="#" class="small-box-footer">More info <i class="fas fa-arrow-circle-right"></i></a>
</div>
</div>
<!-- ./col -->
<div class="col-lg-3 col-6">
<p>Bounce Rate</p>
</div>
<div class="icon">
<i class="ion ion-stats-bars"></i>
</div>
<a href="#" class="small-box-footer">More info <i class="fas fa-arrow-circle-right"></i></a>
</div>
</div>
<!-- ./col -->
<div class="col-lg-3 col-6">
<!-- small box -->
<div class="small-box bg-warning">
<div class="inner">
<h3>44</h3>
<p>User Registrations</p>
</div>
<div class="icon">
<i class="ion ion-person-add"></i>
</div>
<a href="#" class="small-box-footer">More info <i class="fas fa-arrow-circle-right"></i></a>
</div>
</div>
<!-- ./col -->
<div class="col-lg-3 col-6">
<!-- small box -->
<div class="small-box bg-danger">
<div class="inner">
<h3>65</h3>
<p>Unique Visitors</p>
</div>
<div class="icon">
<i class="ion ion-pie-graph"></i>
</div>
<a href="#" class="small-box-footer">More info <i class="fas fa-arrow-circle-right"></i></a>
</div>
</div>
<!-- ./col -->
</div>
<!-- /.row -->
</div><!-- /.container-fluid -->
</section>
Dari kedua kode tersebut, kita dapat melihat bahwa views master mempunyai
@yield yaitu sebuah Blade Templates dari Laravel yang berfungsi untuk
menandai bagian-bagian dari sebuah halaman, bagian ini akan dapat ditindih oleh
views yang meng-extends master dengan menggunakan template section. Kita
dapat melihat di index.blade.php, terdapat @extends(‘layouts.master’) yang mana
nama sebelum tanda “.” merupakan path dari folder. Lalu terdapat
@section(‘content’) yang mana template ini akan menindih bagian yang sudah
kita tandai dengan yield pada layout master yang sebelumnya telah di atur dan
jangan lupa diberikan @endsection pada akhir code sectionnya untuk
menandakan berakhirnya kode yang berada pada section tersebut. (Untuk
dokumentasi Blade Templates, selengkapnya dapat membaca di situs berikut :
https://laravel.com/docs/8.x/blade)
Maka jika dijalankan akan memiliki hasil seperti berikut :
Kode di atas untuk mengambil seluruh data dari tabel suppliers dengan
memanfaatkan model Supplier, dan menyimpannya ke dalam variabel
suppliers, dan dibawa oleh method compact ke dalam view supplier.index.
Lalu buka resources/views/suppliers/index.blade.php dan tambahkan
kode seperti berikut :
@extends('layouts.master')
@section('title', 'Suppliers')
@section('content')
<!-- Content Header (Page header) -->
<div class="content-header">
<div class="container-fluid">
<div class="row mb-2">
<div class="col-sm-6">
<h1 class="m-0">Suppliers</h1>
</div><!-- /.col -->
<div class="col-sm-6">
<ol class="breadcrumb float-sm-right">
</script>
@endpush
@push('css')
<link rel="stylesheet" href="{{ asset('plugins/datatables-
bs4/css/dataTables.bootstrap4.min.css') }}">
<link rel="stylesheet" href="{{ asset('plugins/datatables-
responsive/css/responsive.bootstrap4.min.css') }}">
@endpush
Kode di atas akan mengembalikan views create pada folder suppliers. Setelah itu
kita tambahkan kode untuk form input pada views create di
resources/suppliers/create.blade.php, tambahkan kode seperti berikut :
@extends('layouts.master')
@section('title', 'Create Suppliers')
@section('content')
Lalu kita atur controller store nya agar dapat menyimpan data yang telah
diinputkan ke dalam database. Buka kembali SupplierController.php dan
tambahkan kode berikut ini ke dalam function store
Dari kode di atas kita dapat melihat bahwa adanya sebuah validation yang
berguna untuk memeriksa inputan kita sesuai dengan metode pemeriksaan yang
kita buat, seperti misalnya pada request name kita mengatur pemeriksaan
validasinya bahwa inputan name harus wajib diisi dan panjang karakternya
maksimal adalah 100. Variabel $request didapatkan dari input field pada views dan
merupakan value dari attribut name. Maka dari itu sangat penting untuk
Supplier::create([
'name' => $request->name,
'telp' => $request->telp,
]);
Kedua kode akan memiliki fungsi yang sama, namun yang kode sebelumnya akan
terlihat lebih rapi, maka dari itu penting untuk menyamakan value dari attribut
name dengan nama kolom pada tabel, agar dapat memanfaatkan fitur $request-
>all().
Maka output dari create data supplier menjadi seperti berikut ini :
Hampir sama dengan create data, namun pada bagian ini, controller
membawa sebuah value dari item yang ingin kita edit datanya dan pada bagian
views, kita atur value nya sesuai data yang telah dibawa oleh controller. Pertama,
buka SupplierController.php, dan tambahkan kode berikut ke dalam function edit :
public function edit($id)
{
$supplier = Supplier::findOrFail($id);
return view('suppliers.edit', compact('supplier'));
}
Lalu setelah itu, buka kembali SupplierController.php dan tambahkan kode berikut
ini ke dalam function update :
public function update(Request $request, $id)
{
$request->validate([
'name' => 'required|max:100',
'telp' => 'required|min:6|digits_between:6,15|numeric'
]);
Supplier::findOrFail($id)->update([
'name' => $request->name,
'telp' => $request->telp,
]);
return redirect()->route('suppliers.index');
Hampir sama dengan kode untuk create namun untuk update ini kita perlu
mencari terlebih dahulu data yang ingin kita update, dengan memanfaatkan variabel $id
para parameter yang diteruskan oleh views. Lalu kita menggunakan method update pada
fitur Models untuk mengubah data dari masing-masing kolom ke request input field. Maka
jika kita coba untuk edit salah satu data, akan memiliki tampilan seperti berikut ini :
Selesai, kita telah menyelesaikan seluruh fitur dari CRUD Suppliers, untuk
CRUD Products akan memiliki langkah yang sama hanya butuh penyesuaiaan saja,
jadi untuk latihan kali ini cukup hanya 1 fitur saja, selebihnya dapat
dikembangkan sebagai latihan mandiri agar dapat lebih memahami lebih cepat.
Untuk projek latihan ini kalian juga dapat clone atau mengunduhnya di
repository github berikut ini : https://github.com/aprian1337/infotech-latihan-
modul. Untuk cara clone project dari github dapat melihat postingan labit.umm
berikut : https://www.instagram.com/p/CCXGHYBnehV
TUGAS PRAKTIKUM
KEGIATAN 1 (20%)
KEGIATAN 2 (50%)
Ekspektasi :
(News)
(Authors)
Catatan :
● Pada Total Published News di data authors merupakan berita yang hanya memiliki
status published saja yang dihitung, jika status pada berita not published maka tidak
masuk ke hitungan total published news.
● Kolom dan value harus mengacu pada ekspektasi gambar di atas, namun jika ada
improvisasi dapat ditambahkan dengan tidak mengurangi ekspektasi kriteria.
● Harus menggunakan skema database yang telah disediakan di atas, namun jika ingin
menambahkan kolom juga diperbolehkan asal tidak mengurangi kolom yang ada.
● is_published merupakan tipe data tiny integer, untuk valuenya jika 1 adalah
published dan jika 0 maka not published
● Harus menerapkan Eloquent Relationship ketika membuat sebuah Models.
● Buatlah sekreatif mungkin :)
KEGIATAN 3 (30%)
Jika telah mengerjakan kegiatan 1 & kegiatan 2, maka selanjutnya hubungkan seluruh
data berita dari database ke dalam konten web kalian. Sesuaikan datanya dengan
keperluan yang kalian butuhkan pada web kalian masing-masing dan kalian juga dapat
meng-improvisasi pada kegiatan ini untuk mendapatkan nilai lebih dari asisten. Buatlah
sekreatif mungkin :)
Mei, 2021 PEMROGRAMAN WEB 52
Laboratorium Teknik Informatika
RUBRIK PENILAIAN