Tugas PBKK Pertemuan 12
Achmad Khosyi' Assajjad Ramandanta
5025211007
PBKK(A)
Tugas kali ini adalah latihan CRUD (create, read, update, delete) menggunakan CI4 pada sebuah database. Saya menggunakan phpmyadmin sebagai database dan CodeIgniter4 sebagai frameworknya. Database yang saya buat memiliki tema list dari anime atau bisa dibilang saya membuat versi mini dari MyAnimeList yang merupakan database lengkap tentang anime yang ada.
Berikut merupakan database saya di phpmyadmin :
Selanjutnya, pada file app/Config/Routes.php saya menyiapkan konfigurasi untuk fitur-fitur yang akan saya gunakan :
<?php namespace App\Models; use CodeIgniter\Model; class AnimeList_model extends Model { protected $table = 'animelist'; public function getAnimeList($id = false) { if($id === false){ return $this->findAll(); }else{ return $this->getWhere(['no' => $id]); } } public function saveAnimeList($data) { $builder = $this->db->table($this->table); return $builder->insert($data); } public function editAnimeList($data,$id) { $builder = $this->db->table($this->table); $builder->where('no', $id); return $builder->update($data); } public function deleteAnimeList($id) { $builder = $this->db->table($this->table); return $builder->delete(['no' => $id]); } } |
Berikutnya saya membuat file AnimeList.php di folder app/Controllers yang isinya merupakan apa yang diinginkan pada file app/Config/Routes.php yang berikutnya akan dieksekusi di file app/Models/AnimeList_model.php. Berikut kodenya :
<?php namespace App\Controllers; use CodeIgniter\Controller; use App\Models\AnimeList_model; class AnimeList extends Controller { public function index() { $model = new AnimeList_model; $data['title'] = 'Anime List'; $data['getAnimeList'] = $model->getAnimeList(); echo view('templates/header', $data); echo view('animelist_view', $data); echo view('templates/footer', $data); } public function add() { $data['title'] = 'Adding Anime'; echo view('templates/header', $data); echo view('add_view', $data); echo view('templates/footer', $data); } public function adds() { $model = new AnimeList_model; $data = array( 'name' => $this->request->getPost('name'), 'studios' => $this->request->getPost('studios'), 'episodes' => $this->request->getPost('episodes'), 'releasedate' => $this->request->getPost('releasedate'), 'type' => $this->request->getPost('type'), 'score' => $this->request->getPost('score') ); $model->saveAnimeList($data); echo '<script> alert("Succes Adding Anime"); window.location="'.base_url('animelist').'" </script>'; } public function edit($id) { $model = new AnimeList_model; $getAnimeList = $model->getAnimeList($id)->getRow(); if(isset($getAnimeList)) { $data['animelist'] = $getAnimeList; $data['title'] = 'Edit '.$getAnimeList->name; echo view('templates/header', $data); echo view('edit_view', $data); echo view('templates/footer', $data); }else{ echo '<script> alert("Anime ID '.$id.' not found"); window.location="'.base_url('animelist').'" </script>'; } } public function update() { $model = new AnimeList_model; $id = $this->request->getPost('no'); $data = array( 'name' => $this->request->getPost('name'), 'studios' => $this->request->getPost('studios'), 'episodes' => $this->request->getPost('episodes'), 'releasedate' => $this->request->getPost('releasedate'), 'type' => $this->request->getPost('type'), 'score' => $this->request->getPost('score') ); $model->editAnimeList($data,$id); echo '<script> alert("Anime Data Edited"); window.location="'.base_url('animelist').'" </script>'; } public function delete($id) { $model = new AnimeList_model; $getAnimeList = $model->getAnimeList($id)->getRow(); if(isset($getAnimeList)) { $model->deleteAnimeList($id); echo '<script> alert("Delete Succes"); window.location="'.base_url('animelist').'" </script>'; }else{ echo '<script> alert("Failed to delete !, Anime ID '.$id.' not found"); window.location="'.base_url('animelist').'" </script>'; } } } |
Terakhir, saya membuat semua UI untuh tampilan halaman Database, edit, add, header dan footer yang bisa dilihat pada source code saya di github.
Link Github : Github
HASIL :
Comments
Post a Comment