Tutorial framework: Laravel

Assalamualaikum Semua






      Hallo semua selamat datang kembali. Saya Muhammad Aslam atau panggil saja Mas Lam akan berbagi pengetahuan tentang framework khususnya laravel langsung saja tanpa banyak basa basi lagi yu urang belajar framework

APA ITU FRAMEWORK?
Framework bisa di gambarkan sebagai berikut

Tukang bangunan berkerja secara bersama-sama untuk membangun suatu
bangunan

Semua tukang bangunan mengetahui berapa jumlah batu bata, semen dan pasir
yang diperlukan untuk membuat tembok dengan ukuran tertentu

Semua tukang bangunan mengetahui berapa jarak antara batu bata dan semen

yang harus ditempelkan antar batu bata

APA ITU FRAMEWORK PADA PEMROGRAMAN?

Definisi

Framework atau bahasa indonesianya kerangka kerja adalah sebuah software
untuk memudahkan para programmer membuat aplikasi atau web yang isinya
adalah berbagai fungsi, plugin, dan konsep sehingga membentuk suatu sistem
tertentu. Dengan menggunakan framework, sebuah aplikasi akan tersusun dan

terstruktur dengan rapi.




Dikarenakan Laravel menjadi salah satu framework favorit untuk PHP jadi disini saya menggunakan laravel sebagai materi framework

KONSEP MVC

Definisi

Model-View-Controller atau MVC adalah sebuah metode untuk membuat
sebuah aplikasi dengan memisahkan data (Model) dari tampilan (View) dan
cara bagaimana memprosesnya (Controller). Dalam implementasinya
kebanyakan framework dalam aplikasi website adalah berbasis arsitektur
MVC. MVC memisahkan pengembangan aplikasi berdasarkan komponen
utama yang membangun sebuah aplikasi seperti manipulasi data, antarmuka
pengguna, dan bagian yang menjadi kontrol dalam sebuah aplikasi web

LARAVEL FRAMEWORK

Definisi

Laravel adalah framework PHP MVC yang dikembangkan oleh Taylor Otwell
pada tahun 2011 dan sekarang telah mencapai versi 7 dan dengan slogan
laravel “PHP THAT DOESN’T HURT. CODE HAPPY & ENJOY THE FRESH
AIR.” Kita akan merasa bahwa pemrograman php itu menyenangkan dan
mudah karna Banyak sekali fitur-fitur yang akan sangat membantu kita dalam
menulis code

FITUR LARAVEL FRAMEWORK

RESTful Routing

RESTful adalah cara baru dalam mengelola request seperti GET, POST, PUT,
PATCH, DELETE, STORE

Composer

Composer adalah Depedency Management PHP yang membantu programmer
untuk menggunakan library. Semua dependency ini di host di packagist.org

Command Line Tools (Artisan)

Fitur command line untuk memudahkan programmer melakukan beberapa
pekerjaan, misalnya membuat database migration, server application,
database seeding, creating controller & model dan masih banyak yang
lainnya.

Beautiful Template Engine

Laravel dilengkapi dengan template engine dengan nama Blade Template
Engine untuk memudahkan penggabungan kode PHP pada HTML

Eloquent ORM

Fitur Eloquent ORM (Object Relational Model) memungkinkan penulisan
kode yang berhubungan dengan objek (Entitas / Tabel pada Database)
dioperasikan menggunakan konsep OOP

Database Migration

Fitur untuk menjaga histori migrasi database (CREATE, ALTER, DROP),
mengaplikasikan migrasi baru ataupun mengembalikannya.

Laravel Framework
untuk bisa menggunakan laravel silahkan ikuti langkah langkah berikut:

PERSIAPAN

Pastikan versi PHP pada komputer anda diatas 7.1, cek di PHP Info
http://localhost/dashboard/phpinfo.php

Install Composer terbaru
https://getcomposer.org/Composer-Setup.exe

Cara 1 – Copy dari ZIP

Extract laravel5.7-fresh ke folder htdocs anda

Cara 2 – Install melalui composer

Buka CMD, masuk ke folder htdocs anda (menggunakan CD), kemudian
jalankan perintah berikut:


JALANKAN LARAVEL

Buka Web Browser
http://localhost/laravel5.7-fresh/public/

Dimana laravel5.7-fresh adalah nama folder laravel anda.
perhatian : CASE SENSITIVE!

STRUKTUR FOLDER LARAVEL


  • ROOT FOLDER


Folder utama laravel atau disebut dengan ROOT FOLDER

.env
File konfigurasi yang hanya berlaku untuk environment local
saja atau dimana file ini berada

composer.json
File yang berisi kumpulan dependency yang digunakan di
project ini. Anda dapat menambahkannya dengan perintah

composer require atau langsung menulisnya didalam file ini.


  • APP FOLDER


app
Tempat menyimpan seluruh file yang
berhubungan dengan aplikasi yang akan dibangun
dan tempat menyimpan file Model

app/Http/Controllers
Tempat menyimpan file controller


  • CONFIG FOLDER


config
Tempat menyimpan seluruh file yang
berhubungan dengan konfigurasi aplikasi Laravel
yang akan dibangun, mulai dari database, tempat
menyimpan file hasil upload, konfigurasi untuk
melakukan pengiriman email, dan sebagainya.


  • DATABASE FOLDER


database
Tempat menyimpan seluruh file yang
berhubungan dengan database migration dan
database seeder

Database Migration: File yang berhubungan
dengan migrasi database (CREATE, ALTER,
DROP TABLE)

Database Seeder: File yang berhubungan
dengan data dummy


  • PUBLIC FOLDER


public
Tempat menyimpan seluruh file yang nantinya
dapat diakses secara publik oleh pengguna.
Contohnya: css, js, gambar hasil upload, file selain

gambar yang diupload oleh pengguna.


  • RESOURCES FOLDER


resources
Tempat menyimpan seluruh file views dari
aplikasi yang akan dibangun. Views menggunakan
template engine bernama blade sehingga setiap
kali anda membuat file untuk view, maka harus
ditambahkan ekstensi .blade


  • ROUTES FOLDER


web.php
File yang berisi kumpulan route dari sistem yang
akan dibangun. Route ini yang nantinya diakses
oleh pengguna dan diarahkan sesuai dengan kode
yang kita tulis.

BENTUK UMUM PENULISAN ROUTE

Bentuk umum mendefinisikan Route pada file web.php
Route::get(‘/nama-rute’, FUNCTION);

Menulis nama-rute tidak boleh menggunakan simbol (!@#$%^&*()~`/.,;:’”)

nama-rute tidak boleh mengandung spasi, sebaiknya spasi diganti menggunakan
dash (-)

Sekarang kita akan mempraktekannya

1. Buat 3 rute berbeda (bebas) dengan tipe GET berdasarkan bentuk umum
penulisan Route
2. Buat 3 views berbeda (bebas) dan panggil view tersebut di route yang
sudah anda buat di studi kasus 1

pertama kita buat 3 rute berbeda dengan tipe GET dengan penulisan Router sekarang buat file baru di resources/views/belajar.blade.php dan juga buat 3 rute lain dengan nama dan isian bebas
dengan codingan seperti atau bebas berikut

belajar.blade.php
Belajar PHP. Tulisan ini ditampilkan dari view

AwA.blade.php
AwA

UwU.blade.php
UwU

OwO.blade.php
OwO

Setelah itu kita Ubah file routes/web.php

<?php

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::get('/Belajar', function () {
    return view('Belajar');
});



Route::get('/UwU', function () {
    return view('UwU');
});
Route::get('/OwO', function () {
    return view('OwO');
});
Route::get('/AwA', function () {
    return view('AwA');
});


view(‘nama_view’) adalah fungsi bawaan laravel untuk memanggil view

return view artinya mengembalikan (return) view yang telah dipanggil ke
pengguna yang memanggil alamat tersebut


Coba teman-teman masuk ke direktori belajar_laravel di cmd lalu ketikan perintah ini: php artisan serve
Buka browser dan ketikkan link diatas. Selamat laravel sudah berjalan...

hasilnya akan seperti ini



Setelah itu kita coba tambahkan code seperti berikut untuk menyelesaikan praktek no 2
web.php
<?php<?php

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::get('/Belajar', function () {
    return view('Belajar');
});



Route::get('/UwU', function () {
$data['emot'] = "Ini Emot ";
$data['mantap'] = "Mantap";
    return view('UwU', $data);
});
Route::get('/OwO', function () {
$emot = "Ini Emot ";
$mantap = "Mantap";
    return view('OwO', compact('emot', 'mantap'));
});
Route::get('/AwA', function () {
$data['emot'] = "Ini Emot ";
$data['mantap'] = "Mantap";
    return view('AwA', $data);
});
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::get('/Belajar', function () {
    return view('Belajar');
});



Route::get('/UwU', function () {
$data['emot'] = "Ini Emot ";
$data['mantap'] = "Mantap";
    return view('UwU', $data);
});
Route::get('/OwO', function () {
$emot = "Ini Emot ";
$mantap = "Mantap";
    return view('OwO', compact('emot', 'mantap'));
});
Route::get('/AwA', function () {
$data['emot'] = "Ini Emot ";
$data['mantap'] = "Mantap";
    return view('AwA', $data);
});

Mengirim Data Ke View
Cara 1

Menggabungkan data dalam satu variabel array asosiatif, sehingga data yang

dikirim ke view hanya 1 saja contohnya seperti route UwU dan AwA

Cara 2

Membuat variabel masing-masing untuk data yang akan dikirim ke view,
gunakan compact untuk mengirimkan data ke view nya. seperti route OwO

lalu ubah masing masing file view yang dipakai menjadi seperti berikut
AwA.blade.php
{{ $emot }} AwA {{$mantap}}
UwU.blade.php
{{ $emot }} UwU {{$mantap}}
OwO.blade.php
{{ $emot }} OwO {{$mantap}}

Hasilnya akan seperti berikut




Perbedaan nya apa cara 1 dan cara 2?
perbedaannya sebagai berikut:
Cara 1: Membuat array lalu dikirmkan ke views
Cara 2: Membuat variable lalu dimasukkan ke parameter compact yang nantinya akan menjadi sebuah array

Comments