Skip to main content

EAS MPPL - Demo dan Dokumentasi EAS

 EAS MPPL 2021 Pada kesempatan ini kelompok kami akan menjelaskan salah satu produk perangkat lunak milik Zoho yaitu Zoho Marketing Automation yang dikerjakan secara berkelompok yang beranggotakan: Ricky Supriyanto 05111940000036 Arvel Gavrilla R 05111940000040 M Arif Faizin 05111940000060 Zulfiqar Fauzul Akbar 05111940000101 Raihan Alifianto 05111940000213 Dengan hasil sebagai berikut 1. Deskripsi Produk 2. Manajemen Ruang Lingkup 3. Manajemen Waktu 4. Manajemen Biaya 5. Manajemen Resiko 6. Video demo

Tugas 7 PBKK - CodeIgniter : CRUD

CRUD (Create, Read, Update, dan Delete) merupakan proses utama dalam website. Proses CRUD memungkinkan pengguna dapat berinteraksi dengan layanan yang disajikan dengan benar.

Dalam postingan ini, saya akan menjelaskan cara membuat CRUD (Create, Read, Update, dan Delete) menggunakan framework CodeIgniter 4. Langsung saja, berikut langkah-langkahnya :

  1. Sebelum membuat CRUD, buat terlebih dahulu database baru dengan nama "crud-codeigniter" dan buat sebuah tabel dengan nama "mahasiswa" dengan struktur tabel seperti berikut ini:


  2. Kemudian edit file app/Config/database.php dan sesuaikan nama dan pengaturan database agar sesuai dengan database
  3. Tambahkan beberapa data dummy agar dapat dilihat hasilnya



Selanjutnya, kita akan menampilkan data dari database terlebih dahulu atau proses Read. Ikuti langkah berikut :

  1. Buat sebuah file baru  di app/Models/MahasiswaModel.php, lalu isikan dengan kode berikut
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    <?php
    
    namespace App\Models;
    
    use CodeIgniter\Model;
    
    class MahasiswaModel extends Model
    {
        protected $table      = 'mahasiswa';
        protected $primaryKey = 'id';
    
        protected $useAutoIncrement = true;
        
    }
    
  2. Kemudian buat route baru pada app/Config/routes.php dengan menambahkan baris berikut
    1
    2
    $routes->get('/mahasiswa', 'News::index');
    $routes->get('/mahasiswa/(:any)', 'News::viewMahasiswa/$1');
    
  3. Lalu atur tampilan view dari welcome sehingga berbentuk seperti ini

  4. Kemudian buat controller baru di app/Controllers/Mahasiswa.php dengan isi seperti ini

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    <?php
    
    namespace App\Controllers;
    
    use App\Models\MahasiswaModel;
    use CodeIgniter\Exceptions\PageNotFoundException;
    
    class Mahasiswa extends BaseController
    {
    	public function index()
    	{
            // buat object model $mahasiswa
    		$mahasiswa = new MahasiswaModel();
            
            /*
             siapkan data untuk dikirim ke view dengan nama $mahasiswas
            */
    		$data['mahasiswas'] = $mahasiswa->findAll();
    
            // kirim data ke view
    		return view('mahasiswa', $data);
    	}
    
    	//------------------------------------------------------------
    
    	public function viewMahasiswa($id)
    	{
    		$mahasiswa = new MahasiswaModel();
    		$data['mahasiswa'] = $mahasiswa->where([
    			'id' => $id
    		])->first();
    
            // tampilkan 404 error jika data tidak ditemukan
    		if (!$data['mahasiswa']) {
    			throw PageNotFoundException::forPageNotFound();
    		}
    
    		echo view('mahasiswa_detail', $data);
    	}
    }
    
  5. Lalu buat view app/Views/mahasiswa.php dengan isi seperti ini:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    <?= $this->extend('layout/main') ?>
    
    <?= $this->section('header') ?>
    	<header>
    	<div class="p-5 mb-4 bg-light rounded-3">
          <div class="container-fluid py-5">
            <h1 class="display-5 fw-bold">Mahasiswa</h1>
          </div>
        </div>
        </header>
    <?= $this->endSection() ?>
    
    <?= $this->section('content') ?>
        <div class="container">
            <a href="<?= base_url('mahasiswa/create') ?>" class="btn btn-success float-right mb-3">Tambah Mahasiswa Baru</a>
            <div class="table-responsive">
                <table class="table table-bordered">
                    <thead>
                        <th>No</th>
                        <th>Nama</th>
                        <th>Action</th>
                    </thead>
                    <tbody>
                        <?php 
                        foreach($mahasiswas as $key => $mahasiswa) { ?>
                        <tr>
                            <td><?= $key+1; ?></td>
                            <td><?= $mahasiswa['nama'] ?></td>
                            <td>
                                <div class="btn-group">
                                    <a href="<?= base_url('mahasiswa/edit/'.$mahasiswa['id']) ?>" class="btn btn-primary btn-sm">Edit</a>
                                    <a href="<?= base_url('mahasiswa/delete/'.$mahasiswa['id']) ?>" class="btn btn-danger btn-sm" onclick="return confirm('Apakah Anda yakin ingin menghapus produk <?= $mahasiswa['nama'] ?> ini?')">Hapus</a>
                                </div>
                            </td>
                        </tr>
                        <?php } ?>
                    </tbody>
                </table>
            </div>
        </div>
    <?= $this->endSection() ?>
    
  6. Kemudian buat view app/Views/mahasiswa_detail.php dengan isi seperti ini:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    <?= $this->extend('layout/main') ?>
    
    <?= $this->section('header') ?>
    	<header>
    	<div class="p-5 mb-4 bg-light rounded-3">
          <div class="container-fluid py-5">
            <h1 class="display-5 fw-bold"><?= $mahasiswa['nama'] ?></h1>
          </div>
        </div>
        </header>
    <?= $this->endSection() ?>
    
    <?= $this->section('content') ?>
            <div class="row">
                <div class="col-md-12 mb-2 card">
                    <div class="card-body">
                        <p>NRP: <?= $mahasiswa['nrp'] ?></p>
                        <p>Jurusan: <?= $mahasiswa['jurusan'] ?></p>
                        <p>Jenis Kelamin: <?= $mahasiswa['jenis kelamin'] ?></p>
                    </div>
                </div>
            </div>
    <?= $this->endSection() ?>
    

Kemudian buka halaman /mahasiswa maka tampilannya akan seperti ini



Lalu klik di salah satu item maka tampilannya akan seperti ini

Selanjutnya kita akan menambahkan data baru, atau proses Create. Ikuti langkahnya sebagai berikut :

  1. Tambahkan route baru di app/Config/routes.php untuk menampilkan view mahasiswa_create. Pastikan route tersebut berada sebelum route detail

    1
    $routes->match(['get', 'post'], '/mahasiswa/create', 'Mahasiswa::create');
    
  2. Buat view baru di app/Views/mahasiswa_create.php dan isi dengan kode berikut:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    <?= $this->extend('layout/main') ?>
    
    <?= $this->section('header') ?>
    	<header>
    	<div class="p-5 mb-4 bg-light rounded-3">
          <div class="container-fluid py-5">
            <h1 class="display-5 fw-bold">Mahasiswa Baru</h1>
          </div>
        </div>
        </header>
    <?= $this->endSection() ?>
    
    <?= $this->section('content') ?>
    <div class="container">
        <form method="POST" action="<?= base_url('mahasiswa/create') ?>">
            <div class="mb-3">
                <label for="nama" class="form-label">Nama</label>
                <input type="text" name="nama" class="form-control" id="nama">
            </div>
            <div class="mb-3">
                <label for="nrp" class="form-label">NRP</label>
                <input type="text" name="nrp" class="form-control" id="nrp">
            </div>
            <div class="mb-3">
                <label for="jurusan" class="form-label">Jurusan</label>
                <input type="text" name="jurusan" class="form-control" id="jurusan">
            </div>
            <div class="mb-3">
                <label for="jenis_kelamin" class="form-label">Jenis Kelamin</label>
                <select id="jenis_kelamin" name="jenis_kelamin" class="form-select">
                    <option value="Laki-laki">Laki-laki</option>
                    <option value="Perempuan">Perempuan</option>
                </select>
            </div>
            <button type="submit" class="btn btn-primary">Tambahkan Data Baru</button>
        </form>
    </div>
    <?= $this->endSection() ?>
    
  3. Tambahkan kode berikut pada controller app/Controllers/Mahasiswa.php

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    public function create()
        {
            // lakukan validasi
            $validation =  \Config\Services::validation();
            $validation->setRules(['nama' => 'required']);
            $isDataValid = $validation->withRequest($this->request)->run();
    		// return redirect('mahasiswa');
            // jika data valid, simpan ke database
            if($isDataValid){
                $mahasiswa = new MahasiswaModel();
                $mahasiswa->insert([
                    "nama" => $this->request->getPost('nama'),
                    "nrp" => $this->request->getPost('nrp'),
                    "jurusan" => $this->request->getPost('jurusan'),
                    "jenis_kelamin" => $this->request->getPost('jenis_kelamin'),
                ]);
    			session()->setFlashdata('success', 'Product created successfully');
                return redirect('mahasiswa');
            }
    		
            // tampilkan form create
            return view('mahasiswa_create');
        }
    

Kemudian buka kembali halaman /mahasiswa lalu pilih Tambah Mahasiswa Baru maka akan muncul tampilan berikut :


Lalu isikan data baru, dan pilih tambah, hasilnya data yang baru ditambahkan akan ditampilkan dalam list.

Sampai disini dulu, postingan kali ini, semoga bermanfaat, terima kasih



Comments

Popular posts from this blog

Tugas 1 PBKK - Portofolio Aplikasi Framework

Berikut beberapa aplikasi yang pernah dibuat menggunakan bantuan framework : Kulturan Link Website Kulturan merupakan aplikasi berbasis website yang dapat digunakan oleh pekerja seni, drama, dan tari untuk mempromosikan serta memperjualbelikan karyanya secara online. Pengguna dapat membeli hasil karya pekerja seni berupa hasil pementasan atau pertunjukkan seniman di Indonesia. Framework : ReactJS, ExpressJS, Node.js dan Material UI Screenshot tampilan :  Medify.id Link Website Medify.id merupakan salah satu aplikasi berbasis website yang merupakan website dari perusahaan Medify. Website ini menyediakan informasi-informasi penting serta fitur-fitur yang ditawarkan oleh Medify. Framework : Bootstrap, Laravel 8 Screenshot tampilan : Presto Link Website Presto merupakan aplikasi berbasis website yang berisi daftar restoran terdekat beserta detailnya. Dalam website ini, pengguna juga bisa berkomentar di masing-masing restoran, dan juga menambahkan restoran ke dalam daftar favoritnya. Fr...

EAS PWEB - Pemrograman Web

  Pada postingan ini, saya akan menjelaskan hasil pengerjaan EAS yang telah saya kerjakan   Dan berikut adalah hasil desain rancangan prototipe dari aplikasi yang akan dibuat

Tugas 9 PBKK - Laravel : Membuat Landing Page

Pada postingan kali ini, akan membahas membuat landing page menggunakan Laravel 8. Pada postingan ini saya akan mencoba membuat Landing Page dari Dicoding Indonesia ( dicoding.com ) dengan tampilan yang berbeda. Langsung saja ikuti langkah-langkah berikut: Pertama, buat sebuah view baru pada resources/views/ dengan nama homepage.blade.php lalu isi dengan kode berikut: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 <!DOCTYPE html> <html lang= "{{ str_replace('_', '-', app()->getLocale()) }}" > <head> <meta charset= "utf-8" > <meta name= "viewport" content= "width=device-width, initial-scale=1" > <title> Dicoding - Bangun Karirmu sebagai Developer Profesional </title> <!-- Fonts --> <link href= "https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700&display=swap" r...