You are on page 1of 74

FAKULTAS TEKNOLOGI INFORMASI

PEMROGRAMAN WEB TINGKAT MAHIR


[ PG184 / 3 SKS ]
FAKULTAS
TEKNOLOGI INFORMASI

Pertemuan 13
LARAVEL (BAGIAN 4)
FAKULTAS
TEKNOLOGI INFORMASI

Tujuan Pembelajaran
 Mahasiswa dapat menggunakan Eloquent Relationshop
 Mahasiswa dapat menggunakan Helper
FAKULTAS
TEKNOLOGI INFORMASI

Database Relationshop (1)


 Relasi one to one dimana sebuah data pada sebuah tabel hanya
memiliki relasi ke sebuah data pada tabel yang lain. Misalnya,
sebuah data tabel user memiliki relasi 1 nomor telepon di tabel
phone.
 Relasi one to many dimana sebuah data pada sebuah tabel
memiliki relasi ke beberapa data pada tabel yang lain. Misalnya,
sebuah data tabel post memiliki relasi banyak data komentar di
tabel comments. Dengan kata lain, 1 post memiliki banyak
komentar.
FAKULTAS
TEKNOLOGI INFORMASI

Database Relationshop (2)


 Relasi many to one (One to many Inverse) dimana merupakan
kebalikan dari relasi one to many. Misalnya kita ingin mengetahui
data artikel di tbl_artikel memiliki kategori apa, maka relasi ini
yang akan digunakan.
 Relasi many to many dimana banyak data pada sebuah tabel
memiliki relasi ke banyak data juga pada tabel yang lainnya. Relasi
tersebut terbentuk melalui sebuah tabel bantu. Misalnya, banyak
data pada tabel tbl_barang memiliki relasi penjualan ke banyak
data pada tabel tbl_pelanggan. Relasi tersebut terbentuk dengan
tabel bantu bernama tbl_penjualan
FAKULTAS
TEKNOLOGI INFORMASI

Eloquent Relationship
 Laravel memiliki fitur untuk melakukan kueri tabel
database dengan pilihan metode sesuai relasi antar tabel
yang kita bangun.
 Penggunaanya pun juga sangat mudah, dengan adanya
eloquent di laravel kita hanya perlu menghubungkan
antar model yang ada.
FAKULTAS
TEKNOLOGI INFORMASI

One to One : method hasOne()


  One To One digunakan untuk kueri relasi yang hanya
memiliki satu kepunyaan.
 Relasi One To One menggunakan method hasOne() yang
ditambahkan pada model terkait dan menggunakan nama
class model sebagai argumen.
 Misalnya setiap user memiliki 1 phone.
FAKULTAS
TEKNOLOGI INFORMASI

One to One : Mengambil record dari tabel lain

 Setelah hubungan didefinisikan pada model, record terkait dapat diambil dengan
properti dinamis Eloquent.
FAKULTAS
TEKNOLOGI INFORMASI

One to One : Parameter Foreign Key


 Eloquent menentukan foreign key berdasarkan nama
model. Dalam hal ini, model Phone diasumsikan memiliki
foreign_key default user_id.
 Menetapkan Foreign Key dimana default dari relationship
User dan Phone adalah user_id. Jika foreign key bukan
user_id, dapat dituliskan sebagai parameter kedua.
FAKULTAS
TEKNOLOGI INFORMASI

One to One : Parameter Lokal Key


 Eloquent mengasumsikan bahwa foreign key harus
memiliki nilai yang cocok dengan primary key field
induknya.
 Dengan kata lain, Eloquent akan mencari nilai field id
pengguna di field user_id dari tabel phone. Jika Anda
ingin relasi menggunakan primary key selain id atau
properti $primaryKey pada model Anda, Anda dapat
meneruskan argumen ketiga ke metode hasOne:
FAKULTAS
TEKNOLOGI INFORMASI

One to One : Relasi Kebalikan (Inverse)


 Untuk mendapatkan siapa user yang memiliki sebuah
phone, perlu didefinisikan relationship sebaliknya (Inverse
Relationships), dengan menggunakan method belongsTo
FAKULTAS
TEKNOLOGI INFORMASI

One to One : Relasi Kebalikan dengan FK


 Pada contoh sebelumnya, Eloquent mencoba
mencocokkan user_id dari model Phone ke id dari
model User. Default foreign key name adalah nama
method dari relationship ditambah akhiran _id, sehingga
pada contoh adalah user_id.
Apabila tidak sesuai, dapat dituliskan pada argumen
kedua belongsTo:
FAKULTAS
TEKNOLOGI INFORMASI

One to One : Relasi Kebalikan dengan PK


 Apabila diiginkan relasi tidak menggunakan default
primary key, dapat dituliskan di parameter ketiga
belongsTo:
FAKULTAS
TEKNOLOGI INFORMASI

One to Many : method hasMany


 Relasi one to many digunakan untuk mendefinisikan
hubungan di mana sebuah model adalah induk dari satu
atau lebih model lainnya.
 Contoh sebuah blog post memiliki banyak komentar
FAKULTAS
TEKNOLOGI INFORMASI

One to Many : Ambil Data


 Setelah didefinisikan, maka collection dari comments
dapat diakses melalui comments property.
 Seperti sebelumnya Eloquent menyediakan “dynamic
properties”, sehingga methods dapat diakses seolah
sebuah property dari model
FAKULTAS
TEKNOLOGI INFORMASI

One to Many : Chain Conditions


 Pada saat mengakses tabel pada relasi, dapat digunakan
perintah lain secara berantai (chain) ke dalam query
FAKULTAS
TEKNOLOGI INFORMASI

One to Many : Parameter FK dan PK


 Penggunaan foreign dan primary (local) key pada One to
Many juga serupa pada One to One.
FAKULTAS
TEKNOLOGI INFORMASI

One to Many (Inverse) : belongsTo


 Untuk mengakses pemilik relasi (sisi one), maka
digunakan belongsTo
FAKULTAS
TEKNOLOGI INFORMASI

One to Many (Inverse) : Mengakses Property


 Setelah relasi terbentuk, kita dapat mengambil comment
dengan mengakses dynamic relationship property

 Pada contoh di atas, Eloquent akan mencari Post model


yang memiliki PK id yang cocok dengan field post_id pada
model comment
FAKULTAS
TEKNOLOGI INFORMASI

One to Many (Inverse) : Parameter PK dan FK


 Jika nama key tidak default, maka bisa dituliskan FK pada
parameter ke-2 dan PK pada parameter ke-3
FAKULTAS
TEKNOLOGI INFORMASI

Many to Many : belongsToMany


 Contoh berikut adalah di mana terdapat users, roles,
dan role_user. Seorang user dapat memiliki banyak role dan
sebuah role dapat dimiliki banyak user.
 role_user merupakan default table perantara (intermediate)
atau pivot. Nama table adalah dari kedua table role dan user sesuai
urutan abjad
 Relasi didefinisikan dengan menggunakan method belongsToMany.
FAKULTAS
TEKNOLOGI INFORMASI

Many to Many : belongsToMany (2)

 Setelah didefinisikan maka dynamic properties dapat diakses


seperti contoh di bawah:
FAKULTAS
TEKNOLOGI INFORMASI

Many to Many : Nama tabel, PK dan FK


 Seperti disebutkan sebelumnya nama tabel pivot
dihasilkan dari kedua nama tabel dan diurutkan abjad.
Apabila menggunakan nama lain, dapat didefinisikan
pada parameter kedua dari method belongsToMany.
 Key dari masing-masing table dapat didefinisikan pada
parameter ketiga dan keempat
FAKULTAS
TEKNOLOGI INFORMASI

Many to Many (Inverse)


 Untuk mendefinisikan inverse dari many to many, Anda
harus mendefinisikan metode pada model terkait yang
juga mengembalikan hasil metode belongsToMany.
 Untuk melengkapi contoh user / role, definisikan fungsi
users pada model Role
FAKULTAS
TEKNOLOGI INFORMASI

Many to Many (Inverse) : pivot dan withPivot


 Isi tabel pivot dapat diakses dengan atribut pivot

 Jika terdapat field lain pada pivot table, dan didefinisikan


dengan menuliskan pada method withPivot
FAKULTAS
TEKNOLOGI INFORMASI

Many to Many (Inverse) : Timestamps


 Agar timestamps (created_at dan updated_at) di pivot
dapat diatur secara otomatis perlu ditambahkan
perintah withTimestamps pada defisini relasi.
FAKULTAS
TEKNOLOGI INFORMASI

Session
 Session digunakan untuk menyimpan data yang bersifat
sementara
 Session biasa digunakan untuk pengecekan login
 Konfigurasi session pada laravel terletak di
config/session.php
 Secara default, laravel menggunakan file session driver,
dan bisa diganti menjadi cookie, database, atau redis
FAKULTAS
TEKNOLOGI INFORMASI

Membuat Session
 Ada 2 cara membuat session seperti di bawah ini
FAKULTAS
TEKNOLOGI INFORMASI

Mengambil Isi Session


 Cara mengambil isi session berdasarkan key (index)

 Mengambil semua isi session


FAKULTAS
TEKNOLOGI INFORMASI

Pengecekan session
 Gunakan fungsi has() untuk mengecek apakah sebuah
session ada atau tidak
FAKULTAS
TEKNOLOGI INFORMASI

Menghapus Session
 Gunakan beberapa cara ini untuk menghapus session
FAKULTAS
TEKNOLOGI INFORMASI

Helpers
 Laravel menyediakan berbagai fungsi PHP pembantu
 Fungsi lengkap bisa dilihat di
https://laravel.com/docs/9.x/helpers
FAKULTAS
TEKNOLOGI INFORMASI

Program Login dan Dashboard


 Membuat tabel user
 Membuat route
 Membuat AuthController
 Membuat DashboardController
 Membuat view Login
 Membuat View Dashboard
 Membuat CRUD kategori dan produk
FAKULTAS
TEKNOLOGI INFORMASI

Struktur tabel users


 Buat tabel bernama users dengan struktur sbb
FAKULTAS
TEKNOLOGI INFORMASI

Menambahkan Route (routes/web.php)


 Pada route ditambahkan middleware auth, artinya
sebelum mengakses route akan menjalankan middleware
auth
FAKULTAS
TEKNOLOGI INFORMASI

Http/Controllers/AuthController.php (1)
FAKULTAS
TEKNOLOGI INFORMASI

Http/Controllers/AuthController.php (2)
FAKULTAS
TEKNOLOGI INFORMASI

Http/Controllers/DashboardController.php
FAKULTAS
TEKNOLOGI INFORMASI

Resources/views/login.blade.php (1)
FAKULTAS
TEKNOLOGI INFORMASI

Resources/views/login.blade.php (2)
FAKULTAS
TEKNOLOGI INFORMASI

Resources/views/login.blade.php (3)
FAKULTAS
TEKNOLOGI INFORMASI

Resources/views/login.blade.php (4)
FAKULTAS
TEKNOLOGI INFORMASI

Resources/views/dashboard.blade.php
FAKULTAS
TEKNOLOGI INFORMASI

Ubah resources/views/layouts/menu.blade.php
 Tambahkan bagian yang di kotak merah
FAKULTAS
TEKNOLOGI INFORMASI

Tabel Kategori
Buat tabel kategori dengan struktur sbb
FAKULTAS
TEKNOLOGI INFORMASI

Tabel Posting
 Buat tabel posting dengan spesifikasi sbb
FAKULTAS
TEKNOLOGI INFORMASI

App/Models/Kategori.php
FAKULTAS
TEKNOLOGI INFORMASI

App/Models/Posting.php
FAKULTAS
TEKNOLOGI INFORMASI

App/Http/Controllers/KategoriController.php (1)
FAKULTAS
TEKNOLOGI INFORMASI

App/Http/Controllers/KategoriController.php (2)
FAKULTAS
TEKNOLOGI INFORMASI

App/Http/Controllers/KategoriController.php (3)
FAKULTAS
TEKNOLOGI INFORMASI

App/Http/Controllers/PostingController.php (1)
FAKULTAS
TEKNOLOGI INFORMASI

App/Http/Controllers/PostingController.php (2)
FAKULTAS
TEKNOLOGI INFORMASI

App/Http/Controllers/PostingController.php (3)
FAKULTAS
TEKNOLOGI INFORMASI

App/Http/Controllers/PostingController.php (4)
FAKULTAS
TEKNOLOGI INFORMASI

resources/views/kategori/index.blade.php (1)
FAKULTAS
TEKNOLOGI INFORMASI

resources/views/kategori/index.blade.php (2)
FAKULTAS
TEKNOLOGI INFORMASI

resources/views/kategori/create.blade.php (1)
FAKULTAS
TEKNOLOGI INFORMASI

resources/views/kategori/create.blade.php (2)
FAKULTAS
TEKNOLOGI INFORMASI

resources/views/kategori/edit.blade.php (1)
FAKULTAS
TEKNOLOGI INFORMASI

resources/views/kategori/edit.blade.php (2)
FAKULTAS
TEKNOLOGI INFORMASI

resources/views/posting/index.blade.php (1)
FAKULTAS
TEKNOLOGI INFORMASI

resources/views/posting/index.blade.php (2)
FAKULTAS
TEKNOLOGI INFORMASI

resources/views/posting/create.blade.php (1)
FAKULTAS
TEKNOLOGI INFORMASI

resources/views/posting/create.blade.php (2)
FAKULTAS
TEKNOLOGI INFORMASI

resources/views/posting/edit.blade.php (1)
FAKULTAS
TEKNOLOGI INFORMASI

resources/views/posting/edit.blade.php (2)
FAKULTAS
TEKNOLOGI INFORMASI

resources/views/posting/edit.blade.php (3)
FAKULTAS
TEKNOLOGI INFORMASI

resources/views/kategori/show.blade.php
FAKULTAS
TEKNOLOGI INFORMASI

Hasil : Halaman Login

http://localhost:8000/login
FAKULTAS
TEKNOLOGI INFORMASI

Hasil : Halaman Dashboard


FAKULTAS
TEKNOLOGI INFORMASI

Hasil : Halaman CRUD Kategori


FAKULTAS
TEKNOLOGI INFORMASI

Hasil : Halaman CRUD Posting


FAKULTAS
TEKNOLOGI INFORMASI

KESIMPULAN
SELESAI

You might also like