Oleh
Tahun 2020
Mata Kuliah : Pemrograman Web Lanjut
SKS : 3 SKS
Tugas
1. Lakukan hal yang sama/buat website yang sama dengan mengikuti langkah-langkah
pada 3 video di atas.
2. Tambahkan fitur untuk melakukan hapus data dosen yang dipilih
3. Tambahkan fitur flash message untuk memberikan notifikasi data berhasil disimpan,
diedit, dihapus atau lainnya
4. Tugas dikumpulkan dalam bentuk makalah (*PDF) yang berisikan coding yang
dibuat, sertai penjelasan source codenya, bagaimana cara membuat, dan proses yang
terjadi saat dijalankan (tambahkan screenshot2 proses membuat dan hasil
eksekusinya).
DOKUMENTASI
Langkah pertama yaitu menambahkan sebuah tabel baru pada database dengan
nama “dosen”. Untuk menambahkan tabel tersebut dapat digunakan dengan membuat
file Migrate dengan perintah :
Perintah tersebut digunakan agar nantinya function dibuat secara otomatis pada
saat proses pembuatan migration. Apabila saat membuat tabel migration tidak
menggunakan perintah php artisan make:migration create_dosen_table (ex. php
artisan make:migration dosen) maka pada file dosen tidak akan terdapat function
yang secara otomatis seharusnya sudah tersedia.
Apabila perintah yang digunakan berhasil maka akan muncul pesan
“2020_06_11_151629_create_dosen_table” seperti gambar berikut.
Selanjutnya kita akan mengecek apakah proses migrate yang dilakukan berhasil
atau tidak. Untuk menjalankan migration dapat menggunakan perintah “php artisan
migrate”
Pada database secara otomatis akan terdapat beberapa tabel baru, dimana tabel
password diperoleh dari file migration
“2020_06_11_151629_create_password_resets_table”, tabel user diperoleh dari
“2020_06_11_151629_create_user _table”, serta tabel migrations secara otomatis
dibuat oleh laravel dimana tabel tersebut berfungsi untuk mencatat proses migration
yang terjadi.
Berdasarkan gambar diatas terlihat bahwa proses migrate yang dilakukan telah
berhasil, dimana terdapat penambahan kolom nama_dosen serta prodi pada tabel
dosen. Setelah proses migrate berhasil dibuat, selanjutnya yaitu menambahkan fitur
CRUD (Create, Update, Delete) menggunakan model dan menambahkan Flash
Message.
Untuk tahap awal yaitu membuat Controller yang diberi nama dosenCont.
Controller dapat dibuat menggunakan perintah “php artisan make:controller
dosenCont” apabila perintah yang diberikan berhasil membuat controller maka
akan muncul pesan “Controller created successfully” dan secara otomatis akan
terdapat controller baru yang tersimpan pada folder “app/Http/Controller”.
Setelah berhasil membuat controller selanjutnya yaitu membuat route.
Pembuatan route berfungsi untuk menangani request yang kita lakukan di Url
kemudian mengarahkan request tersebut pada aplikasi untuk memanggil halaman
atau resouce yang diinginkan. untuk membuat route kita bisa membuka file
web.php yang terletak pada folder “routes” dengan menambahkan syntax atau
perintah berikut
Route::get('/datadosen','dosenCont@show');
Pada perintah diatas digunakan method get yang artinya method tersebut
diizinkan untuk menjalankan fungsi pada route dimana nantinya method get akan
mengambil informasi yang dikirimkan. Pada bagian ‘/datadosen’ merupakan
alamat URI yang ingin diakses untuk menjalankan sebuah fungsi pada route,
sehingga untuk mengakses halaman view data dosen, maka user harus
mengakses alamat kebagian ‘/datadosen’. Bagian ‘dosenCont@show’ request
yang diberikan oleh user akan diteruskan kebagian dosenCont dan akan
dieksekusi pada function show.
Route::post('/prosestambahdosen','dosenCont@prosestambahdosen');
$dsn->nama_dosen = $req["nama_dosen"];
$dsn->prodi = $req["prodi"];
$dsn->save();
return redirect('/datadosen');
}
Pada controller untuk mengambil data digunakan variable bertipe request ari
form yang berfungsi untuk mengambil semua inputan yang dikirimkan form
Tambah Data Dosen. Pada function kita akan melakukan proses membuat sebuah
object dari sebuah kelas. Object yang dibuat diberi nama $dsn = new dosen yang
bisa mengakses atribut-atribut yang terdapat pada tabel yang diakses dari tabel
dosen. $dsn->nama_dosen = $req["nama_dosen"]; digunakan untuk melakukan
insert data nama_dosen yang didapatkan dari form kemudian tersimpan di tabel
dosen kolom nama_dosen. Sedangkan $dsn->prodi = $req["prodi"];
digunakan untuk melakukan insert data program studi/ prodi. Terakhir yaitu $dsn-
>save(); digunakan untuk menyimpan serta mengakhiri proses yang terjadi.
Berikut merupakan tampilan apabila perintah yang diberikan berhasil untuk
dilakukan
3. Update Data Dosen
Setelah berhasil melakukan migrasi, membuat model serta melakukan insert
data selanjutnya kita akan menambahkan fitur untuk melakukan edit data dosen
yang dapat dugunakan untuk mengubah informasi mengenai data dosen yang
tersimpan pada database. Untuk melakukan update tersebut kita akan
menambahkan tombol baru pada kolom aksi yaitu tombol “edit”.
Berikut merupakan syntax yang dapat digunakan untuk membuat tombol edit
Pada perintah tersebut ditambahkan $dsn->id yang artinya update data yang
dilakukan pada dosen berdasarkan ID dari dosen tersebut. Agar data yang dihapus
sesuai dengan ID kita dapat memanfaatkan URL seperti syntax tersebut
"/editdosen/{{$dsn->id}}". Data yang dikirimkan akan diterima oleh route dan
diteruskan pada controller.
Apabila syntax tersebut berhasil untuk ditambahkan maka akan muncul tampilan
seperti gambar berikut
Route::get('/editdosen/{id}','dosenCont@showeditdosen');
Dari perintah tersebut, request yang dikirimkan akan diteruskan ke controller pada
dosenCont pada function showeditdosen(). Setelah menambahkam route
selanjutnya yaitu membuatkan controller dengan function showeditdosen().
}
public function showeditdosen($id){
$data_dosen = dosen::find($id);
return view('editdosen',["var_dosen"=>$data_dosen]);
}
Selanjutnya untuk melakukan edit data tentunya kita harus mengetahui secara
spesifik mengenai data yang akan diedit misalkan yaitu mengirimkan ID melalui
URL atau input hidden. Pada form yang dibuat proses pengubahan data baik yang
sudah maupun yang belum dirubah oleh user akan dikirimkan ke link
“/proseseditdosen” yang menggunakan method POST. Data yang dikirim
nantinya akan ditangkap oleh route dan kemudian dikirimkan ke controller.
Berikut merupakan syntax untuk mengirimkan proses edit melalui URL
Setelah itu membuat route agar data yang dikirimkan dapat ditangkap dan
diperoses. Perintah yang dapat digunakan yaitu sebagai berikut.
Route::post('/proseseditdosen/{id}','dosenCont@proseseditdosen');
Berdasarkan route yang dibuat, data yang ditangkap dan diproses akan
dikirimkan ke function proseseditdosen yang terdapat pada dataCont. Proses edit
data akan diproses berdasarkan id yang dimiliki oleh data dosen yang akan diedit.
Berikut merupakan syntax yang dapat digunakan untuk membuat controller.
$data_dosen->nama_dosen = $req["nama_dosen"];
$data_dosen->prodi = $req["prodi"];
$data_dosen->save();
return redirect('datadosen');
$data_dosen = dosen::find($id); syntax tersebut digunakan untuk melakukan
pencarian id dosen berdasarkan data yang dikirimkan sebelumnya. $data_dosen-
>nama_dosen = $req["nama_dosen"]; dan $data_dosen->prodi =
$req["prodi"]; digunakan untuk melakukan update. Sedangkan $data_dosen-
>save(); digunakan untuk menyimpan data yang telah diproses. Berikut
merupakan tampilan apabila source code yang digunakan berhasil. (ex. Merubah
nama Zeyn menjadi Zeyn Malik).
Sama halnya dengan tombol edit, saat user menekan tombol edit maka user proses
tersebut akan diarahkan ke link /hapusdosen berdasarkan id dari data yang akan
dihapus. Berikut merupakan tampilan view dosen apabila syntax berhasil untuk
ditambahkan.
Apabila botton delete sudah berhasil untuk dibuat, selanjutnya yaitu membuat
controller yang digunakan untuk menerima request dari user yang ingin
melakukan delete data. Method yang digunakan pada route hapus data yaitu
method get. Berikut merupakan syntax yang dapat ditambahkan untuk melakukan
proses hapus data.
Route::get('/hapusdosen/{id}','dosenCont@showhapusdosen');
@if(Session::has('berhasil'))
<div class="alert alert-info" role="alert">
<button type="button" class="close" data-dismiss="alert" arial-
label="Close">
<span aria-hidden="true">X</span></button>
<strong> Berhasil </strong>
{{ Session::get('berhasil') }}
</div>
@endif
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\dosen;
class dosenCont extends Controller
{
public function show() {
$data_dosen = dosen::all();
$dsn->nama_dosen = $req["nama_dosen"];
$dsn->prodi = $req["prodi"];
$dsn->save();
session()->flash('berhasil', 'Data Anda Berhasil Diinput!!');
return redirect('/datadosen');
}
public function showeditdosen($id){
$data_dosen = dosen::find($id);
return view('editdosen',["var_dosen"=>$data_dosen]);
}
public function proseseditdosen($id,Request $req){
$data_dosen = dosen::find($id);
$data_dosen->nama_dosen = $req["nama_dosen"];
$data_dosen->prodi = $req["prodi"];
$data_dosen->save();
Apabila source code yang digunakan sudah berhasil maka akan muncul tampilan
sebagai berikut
Input Data Dosen