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 :


Untuk memulai project, saya melakukan konfigurasi yang sama seperti tugas CI4 sebelumnya. Untuk membuat koneksi database dengan codeigniter, saya mengedit file app/Config/Database.php pada bagian berikut :




Selanjutnya, pada file app/Config/Routes.php saya menyiapkan konfigurasi untuk fitur-fitur yang akan saya gunakan :


Lalu saya membuat file AnimeList_model.php di folder app/Models untuk melengkapi fungsi CRUD yang isinya sebagai berikut :

<?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 :

Tampilan Database


Tampilan Halaman Menambahkan Data


Tampilan Sukses Menambahkan Data


Tampilan Halaman Mengedit Data


Tampilan Sukses Mengedit Data


Tampilan Notifikasi Ingin Menghapus Data


Tampilan Sukses Menghapus Data














Comments

Popular posts from this blog

QUIZ PBKK

Quiz 2 PBKK

Tugas 1 PBKK - Perkenalan