Tutorial Basic Instalation Laravel 10
1. Cara Membuat Project Laravel:
buka terminal ketik "composer create-project laravel/laravel nama-project"
2. Cara menghubungkan Aplikasi ke database(xampp/laragon)
- buka localhost/phpmyadmin
- buat database di localhost
- buka project laravel > cari .env
- cari DB_DATABASE=
- isi dengan nama database sesuai yang dibuat di localhost
3. Cara membuat table database
- buka terminal ketik "php artisan make:model NamaModel -m"
- setelah proses selesai, akan ada dua file baru di folder "app/Models" dan
"database/migrations"
- file yang berada di dalam folder Models untuk menulis relasi dalam table, tulis
“ protected $guarded = ['id']; ” agar database dapat diisi data
- file yang berada di dalam folder migrations untuk membuat colom table database. Contoh
penulisan “ $table->string('name'); “ ganti string dengan tipedata sesuai kebutuhan table
- jika model dan file database sudah dibuat, ketik perintah “php artisan migrate” untuk
menyimpan pembuatan database. Namun jika tidak ada perubahan dalam database dan
keluar notif Nothing to migrate, ubah command menjadi “ php artisan migrate:fresh “. Perlu
diperhatikan jika menulis php artisan migrate:fresh akan menghapus data/isian yang sudah
ada di dalam database.
4. Cara membuat Akses login menggunakan laravel breeze:
https://laravel.com/docs/10.x/starter-kits#laravel-breeze
- composer require laravel/breeze --dev
- php artisan breeze:install
- php artisan migrate
- npm install
- npm run build
5. Membuat Halaman/page di Laravel
Laravel menerapkan proses MVC (Model – View – Controller) untuk membuat halaman kita
harus mendaftarkan dulu routes untuk setiap halaman, pendaftaran halaman berada di folder
“routes/web.php”. Tapi sebelum membuat routes, jangan lupa buat dulu Controller dengan cara
mengetik di terminal “php artisan make:controller NamaControllers --resource”. Setelah
command dijalankan akan menghasilkan file di dalam folder “app/Http/Controllers” .
Setelah controller sudah siap, Kembali lagi ke file web.php “routes/web.php”. Ketikan routes
untuk halaman yang akan kita buat. Contoh:
“Route::get('/nama-routes, [NamaController::class,
'namaFunction'])->name('inisialUntukRoutes'); “
Penjelasan:
- get = Metod untuk mengakses route, bisa diganti (get, post, dsb)
- /nama-routes = Untuk inisialisai url yang akan diakses (‘/dashboard’, ‘/profile’, dsb)
- NamaController = Nama Controller yang sudah disiapkan tadi
- namaFunction = Nama Function untuk menghubungkan ke Controller
- inisialUntukRoutes = Optional, tapi sebaiknya diberi nama. Nama harus unique dan tidak
boleh sama dengan routes lain. Contoh: ‘admin.dashboard’
Setelah routes sudah selesai, buka controller yang sudah dibuat tadi (app/Http/Controllers).
Ketikan sesuai dengan nama function yang sudah dibuat pada step sebelumnya, contoh:
public function namaFunction()
// notes: penulisan perintah yang akan dijalankan ditulis di sini
//untuk menuliskan halaman view ketik return view(‘nama.view’) untuk contoh kita akan
menampilkan view ‘dashboard’ yang berada di folder
‘/resource/view/dashboard.blade.php’
return view(‘dashboard’);
Penjelasan: return view sudah mencakup /resource/view jadi tidak perlu menuliskan lagi,
namun jika file view berada didalam folder setelah folder view tuliskan nama foldernya
kemudian diikuti titik( . ) contoh: return view(‘admin.dashboard’); (file dashboard berada
didalam folder admin)
Proses berikutnya adalah pembuatan file view(file yang akan ditampilkan dalam halaman),
letakan file di dalam ‘/resource/view’. Penulisan formatnya ‘NamaFile.blade.php’ diikuti
dengan .blade.php
Tutorial CRUD Laravel 10
CRUD (Create Read Update Delete) untuk membuat crud yang harus disiapkan:
- Halaman untuk menampilkan data (Read)
- Halaman untuk menginput data (Create)
- Halaman untuk mengedit data (Update)
- Tombol yang berfungsi untuk menghapus data (Delete)
Langkah-langkah;
1. Buat route untuk menampilkan view, contoh:
Route::get('/siswa, [SiswaController::class, ‘dataSiswa’])->name('data.siswa);
2. Kemudian Setup controller dan return view seperti contoh sebelumnya
3. Pada view, buat table untuk menampilkan data, buat tombol untuk menambahkan
data(entry data/create), tombol(edit), dan tombol hapus
4. Kemudian buat view untuk masing-masing tombol(vew create, view edit)
5. Setelah view dibuat, kemudian siapkan controller,
public function dataSiswa{
$datas = Siswa::get();
Return view(‘siswa’, compact(‘datas));
Penjelasan:
- $datas = variable untuk menampung data Siswa
- Siswa:: = model(database) Siswa, sesuaikan dengan nama model yang akan
ditampilkan datanya
- get() = untuk mengambil semua data dalam database Siswa
- compact(‘datas’) = untuk membawa $datas ke dalam view siswa
6. Kemudian pada view siswa, kita mempunyai variable datas ($datas) yang berisikan
data-data siswa pada database Siswa, untuk menampilkan datanya menggunakan
perulangan, contoh:
@foreach($datas as $data)
{{$data->nama}}
@endforeach
Penjelasan:
- @foreach dan @endforeach = perulangan untuk menapilkan masing-masing
data
- ($datas as $data) = $datas adalah variable yang didapat dari controller tadi
sedangkan as $data adalah inisialisasi datas sebagai data
- {{$data->name}} = code untuk menampilkan name dari database siswa->name,
diawali dan diakhiri dengan {{ }}
7. Berikutnya proses penginputan data (Create), contoh button create(menggunakan
bootsrap);
<a href="/create" class=”btn btn-dark”>Input Siswa</a>
Penjelasan:
- href = untuk mengarahkan ke routes /create
- Input Siswa = Text pada button (optional)
8. Kemudian siapkan routes /create dan buka controller untuk function create, contoh:
Route::get('/create, [SiswaController::class, ‘inputSiswa’])->name('siswa.create);
Controller:
public function inputSiswa{
Return view(‘inputSiswa’);
9. Buka view inputSiswa.blade.php buat tampilan form input sesuai kolom database.
Kemudian pada tag form tambahkan @csrf. Contoh:
<form action="/post-siswa" method="POST">
@csrf
</form>
Penjelasan:
- action=”/post-siswa” = routes untuk memproses data dari inputan ke database
- method=”POST” = method post
10. Kemudian buat routes /post-siswa dengan method Post, contoh:
Route::post('/post-siswa, [SiswaController::class, ‘storeSiswa’])->name('siswa.store);
Penjelasan:
-Route::post = Pastikan method yang digunakan sesuai dengan yang dituliskan
pada view yaitu method post
11. Setup controller untuk storeSiswa, buat function storeSiswa pada SiswaController,
contoh:
public function storeSiswa(Request $request)
$store = Siswa::create([
‘name’ => $request->name,
‘kelas’ => $request->kelas
]);
if ($store) {
return back()->with('success', 'Data successfully inputted');
} else {
return back()->with('error', 'Error: Data could not be inputted'. Please
check your input and try again.');
Penjelasan:
-Request $request = Karena method pada route menggunakan post maka wajib
menambahkan Request $request sebagai variable yang menyimpan inputan dari
view
- $store = Variable untuk proses input data, apabila proses input data $store = true
jika gagal $store = false
- Siswa::create( = Siswa adalah nama tabel tujuan penyimpanan data, create
adalah method laravel untuk menginput data
- ‘name’ => $request->name = ‘name’ adalah nama colom pada table siswa,
$request->name adalah name dari inputan di halaman view. Pastikan
penulisannya sama baik antara view, database, dan controller.
- if($store){ … } else { … } = adalah pengkondisian jika store = true maka input
data berhasil jika store = false makan proses input gagal, dan kemudian
dilanjutan sesuai masing-masing pengkondisiannya
12. Berikutnya proses pembuatan menu edit, contoh button edit(menggunakan bootsrap):
<a href="/edit/{{$data->id}}" class=”btn btn-dark”>Edit</a>
Penjelasan:
- href = untuk mengarahkan ke routes /edit/{id} (wajib menambahkan id sebagai
acuan data mana yang akan diganti datanya)
13. Kemudian buat routes seperti step sebelumnya dengan url /edit/{id}. Dalam view
penulisan {{$data->id}} jika di routes penulisannya menjadi {id}. Dilanjutkan dengan
setup controllernya.
14. Contoh code controller untuk edit
public function namaFunction($id){
$data = Siswa::where(‘id’, $id)->first();
return view(‘namaview’, compact(‘data’));
Penjelasan:
- ($id) = parameter dari route
- $data = variable data untuk menyimpan data
- Siswa = nama table siswa
- where(‘id’, $id) = seperti syntax sql jadi jika Siswa::where(‘id’, $id)->first(); yang
dimaksud pilih table Siswa dimana id = $id
- first() = untuk mengambil data yang pertama kali ditemukan
15. Proses berikutnya adalah membuat view untuk data yang sudah dicari tadi, kemudian
pada formnya tuliskan sama seperti form input pada proses create
<form action="/update-siswa" method="POST">
@csrf
</form>
16. Buatkan routes /update-siswa beserta controllernya
public function updateSiswa(Request $request){
$update = Siswa::where(‘id’, $request->id)->update([
‘name’ => $request->name,
‘nis' => $request->nis
]);
if($update){
return back()->with('success', 'Data successfully updated);
} else {
return back()->with('error', 'Error: Data could not be updated. Please
check your input and try again.');
17. Berikutnya proses Delete, contoh pembuatan tombol delete pada view:
<a href="/delete/{{$data->id}}" class=”btn btn-dark”>Delete</a>
18. Kemudian buatkan routes sesuai url tombol delete, pada controllernya
public function deleteSiswa($id){
$delete = Siswa::where(‘id’, $id)->delete();
if($delete){
return back()->with('success', 'Data successfully deleted);
} else {
return back()->with('error', 'Error: Data could not be deleted. Please
check your input and try again.');
}}