Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/syahrulbhudif/pwl_2024
https://github.com/syahrulbhudif/pwl_2024
Last synced: 20 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/syahrulbhudif/pwl_2024
- Owner: SyahrulBhudiF
- Created: 2024-02-23T00:41:34.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2024-02-24T11:33:20.000Z (11 months ago)
- Last Synced: 2024-02-25T01:38:30.658Z (11 months ago)
- Language: PHP
- Size: 3.69 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Jobsheet 2 : ROUTING, CONTROLLER, dan View
> Nama : Syahrul Bhudi Ferdiansyah
> Kelas : TI-2F
> NIM : 2241720167
# Basic Routing
Langkah-langkah Praktikum:
- Route /hello
![alt text](./public/screenshot/image1.png)
Hasil
![alt text](./public/screenshot/image-1.png)
> Disini kita melakukan Routing ke path /hello yang akan menampilkan 'Hello World'. Hal ini dikarenakan kita menulis sintaks Route laravel dengan path /hello dan mereturn nilainya secara langsung yang mana adalah 'Hello World'
- Route /world
![alt text](./public/screenshot/world.png)
Hasil
![alt text](./public/screenshot/world-1.png)
> Hasilnya sama seperti pada /hello tapi kali ini menggunakan path route /world yang berisi nilai 'World'
- Route /
![alt text](./public/screenshot/base.png)
Hasil
![alt text](./public/screenshot/base-1.png)
- Route /about
![alt text](./public/screenshot/about.png)
Hasil
![alt text](./public/screenshot/about1.png)## Route Parameters
Langkah-langkah Praktikum:
- Route /user/{name}
![alt text](./public/screenshot/name.png)
Hasil
![alt text](./public/screenshot/nama1.png)
> Halaman yang muncul adalah halaman nama saya. Hal ini dikarenakan Route menerima parameter name yang di ambil dari url yang ditulis oleh user
- Route /posts/{post}/comments/{comment}
![alt text](./public/screenshot/2par.png)
Hasil
![alt text](./public/screenshot/2par1.png)
> Hasilnya adalah parameter dalam url tidak hanya 1 berhasil diambil dan ditampilkan ke halaman web
- Route /articles/{id}
![alt text](./public/screenshot/parid.png)
Hasil
![alt text](./public/screenshot/parid1.png)## Optional Parameters
Langkah-langkah Praktikum:
- Route /user/{name?}
![alt text](./public/screenshot/opt.png)
Hasil
![alt text](./public/screenshot/opt1.png)
> Hasilnya adalah tidak ada nama atau tidak ditampilkan. Hal ini dikarenakan menggunakan tanda ? pada akhir {name?} yang mengakibatkan parameter boleh untuk diisi atau tidak diisi dan juga penambahan name = null pada parameter callback untuk menangani ketika tidak ada nilai yang ditangkap jika tidak name = null maka akan mengakibatkan error
> ![alt text](./public/screenshot/err.png)
- Route /user/{name?}', function ($name = 'John)
![alt text](./public/screenshot/john.png)
Hasil
![alt text](./public/screenshot/john1.png)
> Hasil dari pengubahan tersebut adalah nilai default dari parameter name berubah menjadi John. Jadi ketika url parameter dikosongi maka callback akan langsung meneruskan $name sebagai john
- Route Name
![alt text](./public/screenshot/nama.png)
Hasil
![alt text](./public/screenshot/n.png)
> Langkah diatas, merupakan code yang kurang benar pada laravel untuk
> memakai route name, karna route name di pakai untuk mensederhanakan url yang dikira
> Panjang untuk digunakan redirect atau untuk dipakai di fungsi route lain, berikut merupakan
> contoh kode yang benar untuk memakai route name:
> ![alt text](./public/screenshot/cor.png)
> ![alt text](./public/screenshot/c.png)
Seperti pada kode diatas, bila kita memanggil Url ’/test’, bukan membuka Url tersebut,
> melainkan kita bisa me-redirect untuk membuka Url dari route name kita seperti diatas
# Controller
- Langkah-langkah Praktikum:
a. Create Controller by terminal
![alt text](./public/screenshot/controllerr.png)
b. WelcomeController
```php
```php
![alt text](./public/screenshot/cot.png)
e. Hasil
![alt text](./public/screenshot/cot2.png)
>dengan menggunakan controller pada Laravel, kita bisa membuat code
yang kompleks disbanding dengan basic routing. Hal ini dilandasi karna Laravelmenerapkan konsep MVC (Model-View-Controller), dimana kita bisa memisahkan antar logic code (model), tampilan (view), dan penghubung / perantara (controller), sehingga bisa menerapkan kode yang lebih bersih dan mudah di maintenance. Untuk kode Route /hello diatas menerapkan langsung Controller dari WelcomeController yang memiliki function hello() yang mereturn 'Hello World'f. Modifikasi hasil pada praktikum poin 2 (Routing) dengan konsep controller. Pindahkan logika eksekusi ke dalam controller dengan nama PageController.
![alt text](./public/screenshot/control.png)
![alt text](./public/screenshot/control1.png)g. Modifikasi kembali implementasi sebelumnya dengan konsep Single Action Controller.Sehingga untuk hasil akhir yang didapatkan akan ada HomeController,AboutController dan ArticleController. Modifikasi juga route yang digunakan.
![alt text](./public/screenshot/cont.png)
- HomeController
![alt text](./public/screenshot/home.png)
- AboutController
![alt text](./public/screenshot/abt.png)
- ArticleController
![alt text](./public/screenshot/abt.png)
- Route
```php
Route::get('/', [HomeController::class]);
Route::get('/about', [AboutController::class]);
Route::get('/articles/{id}', [ArticleController::class]);
```
## Resource Controller
- Langkah-langkah Praktikum:
a. Create Resource Controller by terminal
![alt text](./public/screenshot/create.png)
b. Setelah controller berhasil degenerate, selanjutnya harus dibuatkan route agar dapat terhubung dengan frontend. Tambahkan kode program berikut pada file web.php.
```php
Route::resource('photos', PhotoController::class);
```
c. jalankan cek list route (php artisan route:list) akan dihasilkan route berikut ini.
![alt text](./public/screenshot/rout.png)
d. Pada route list semua route yang berhubungan untuk crud photo sudah di generate oleh laravel. Jika tidak semua route pada resource controller dibutuhkan dapat dikurangi dengan mengupdate route pada web.php menjadi seperti berikut ini.
```php
Route::resource('photos', PhotoController::class)->only([
'index', 'show'
]);Route::resource('photos', PhotoController::class)->except([
'create', 'store', 'update', 'destroy'
]);
```
Hasil Pengecekan Route
![alt text](./public/screenshot/rtt.png)
# View
- Langkah-langkah Praktikum:
a. Pada direktori app/resources/views, buatlah file hello.blade.php.
![alt text](./public/screenshot/vw.png)
b. View tersebut dapat dijalankan melalui Routing, dimana route akan memanggil View sesuai dengan nama file tanpa ‘blade.php’.
```php
Route::get('/greeting', function () {
return view('hello', ['name' => 'Syahrul Bhudi Ferdiansyah']);
});
```
c. Hasil
![alt text](./public/screenshot/vw1.png)
>dengan mengisi kedua pada fungsi helper view yaitu parameter array, kita dapat passing argument pada view kita yaitu ‘hello.blade.php’, sehingga seperti pada Langkah ini kita dapat mencetak isi dari array tersebut## View dalam Direktori
- Langkah-langkah Praktikum:
b.
![alt text](./public/screenshot/dr.png)
c. Selanjutnya lakukan perubahan pada route.
```php
Route::get('/greeting', function () {
return view('blog.hello', ['name' => 'Syahrul Bhudi Ferdiansyah']);
});
```
d. Hasil
![alt text](./public/screenshot/vw1.png)
>sama seperti Langkah sebelumnya (hanya query parameter nya di isi dengan value yang berbeda), disini kita berfokus pada view yang disimpan pada folder bertingkat. Pada Laravel, untuk memanggil view “hello” , kita perlu memasukan nama folder seperti “blog.hello”## Menampilkan view dari Controller
- Langkah-langkah Praktikum:
a. Buka WelcomeController.php dan tambahkan fungsi baru yaitu greeting.
![alt text](./public/screenshot/vwc.png)
b. Ubah route /greeting dan arahkan ke WelcomeController pada fungsi greeting.
```php
Route::get('/greeting', [WelcomeController::class, 'greeting']);
```
c. Hasil
![alt text](./public/screenshot/vw1.png)
>hasil yang didapatkan akan sama seperti 2 langkah sebelumnya, namun mekanisme di balik layar berbeda. Pada Langkah ini kita memakai controller pada route, tidak seperti 2 langkah sebelumnya dimana kita menggukan method helper “view()”
## Meneruskan data ke view
- Langkah-langkah Praktikum:
a. Buka WelcomeController.php dan tambahkan ubah fungsi greeting.
![alt text](./public/screenshot/g.png)
b. Ubah hello.blade.php agar dapat menampilkan dua parameter.
![alt text](./public/screenshot/g1.png)
c. Hasil
![alt text](./public/screenshot/g2.png)
>note: disini untuk nama dan occupation saya ganti dengan value asli dari saya. Dengan menggunakan method with, berbeda dengan memasukan nilai dengan array, sebagai alternatif untuk meneruskan array data lengkap ke fungsi view helper, kita dapat menggunakan metode with() untuk menambahkan bagian data individual ke view. Metode with() mengembalikan instance view objek sehingga kita dapat melanjutkan rangkaian metode sebelum mengembalikan tampilan
# Tugas Praktikum
```
link repo : https://github.com/SyahrulBhudiF/POS
```
1. Controller
a. Home Controller :
```php
with('id', $id)
->with('name', $name);
}
}
```g. Penjualan Controller :
```php
a. Home View :
```html
Home
Welcome to Home page
```
b. ood beverage :
```html
Food Beverage
Food Beverage
```
c. Beauty health :
```html
Beauty Health
Beauty Health
```
d. Home Care View :
```html
Home Care
Home Care
```
e. Baby kid View :
```html
Baby Kid
Baby kid
```
f. User view View :
```html
User
User id : {{$id}}
User name : {{$name}}
```
g. Penjualan View :
```html
Penjualan
Penjualan
```
3. Route
```php
/**
* Route for Home view
*/
Route::get('/', [HomeController::class, 'index']);/**
* Route prefix Category
*/
Route::prefix('category')->group(function(){
Route::get('/food-beverage', [FoodBeverageController::class, 'index']);
Route::get('/beauty-health', [BeautyHealthController::class, 'index']);
Route::get('/home-care', [HomeCareController::class, 'index']);
Route::get('/baby-kid', [BabyKidController::class, 'index']);
});/**
* Route Params User View
*/
Route::get('/user/{id}/name/{name}', [UserController::class, 'index']);/**
* Route Penjualan
*/
Route::get('/penjualan', [PenjualanController::class, 'index']);
```
4. Hasil Running Web
a. Home :
![alt text](./public/screenshot/t1.png)
b. Food Beverage :
![alt text](./public/screenshot/f.png)
c. Beauty Health
![alt text](./public/screenshot/bh.png)
d. Home Care
![alt text](./public/screenshot/hm.png)
e. Baby Kid
![alt text](./public/screenshot/bk.png)
f. User
![alt text](./public/screenshot/u.png)
g. Penjualan
![alt text](./public/screenshot/p.png)