PWEB 6 – CRUD PHP

Konsep OOP

Membuat CRUD Sederhana

Buatlah sebuah folder dengan nama crud, kemudian buka menggunakan VS Code dan buat struktur file atau direktori seperti berikut

File Structure

Untuk styling dapat menggunakan framework CSS seperti bootsrap. Kali ini akan menggunakan file bootstrap yang telah didowload agar dapat digunakan secara offline. Download file css dan js bootstrap pada link berikut

Buat database untuk menyimpan data mahasiswa dengan nama pemrograman-web dan buat sebuah tabel mahasiswa yang berisi id, nim, nama, dan jurusan

Database Structure

Selanjutnya kita akan membuat koneksi ke database, buka file config/Database.php dan ketikan kode program Berkut ini

Database PHP Code

File config.php berperan sebagai pusat penyimpanan variabel konstan (constant) yang dapat diakses secara global oleh seluruh kelas dalam aplikasi. Pada implementasi praktikum kali ini, kita akan mendefinisikan sebuah konstanta khusus bernama BASE_URL yang akan menyimpan alamat dasar (base URL) dari proyek website yang sedang dikembangkan

Config PHP Code

Selanjutnya masuk ke alert.php. Alert.php berfungsi untuk membuat fungsi yang menampilkan pesan saat melakukan operasi terhadap data. Fungsi ini memiliki dua argumen: $msg untuk pesan dan $sts untuk status. Jika $sts bernilai 1, maka pesan akan menunjukkan keberhasilan, sedangkan jika bernilai 0, pesan akan menunjukkan kegagalan

Alert PHP Code

Selanjutnya kita akan membuat class Mahasiswa yang berfungsi untuk mengelola data mahasiswa dengan berbagai operasi tersebut. Berikut adalah langkah-langkahnya:

  1. Memulai dengan Session
  2. Membuat Class Mahasiswa
  3. Membuat Constructor

Buat class baru bernama Mahasiswa. Pada tahap ini, deklarasikan variabel-variabel yang dibutuhkan, seperti koneksi database, nama tabel, dan atribut lainnya yang akan digunakan untuk operasi CRUD

Mahasiswa Class Part 1

Di dalam class Mahasiswa, buat fungsi constructor untuk menginisialisasi koneksi database. Dengan begitu, koneksi akan langsung aktif saat objek Mahasiswa dibuat

4. Buat fungsi create() untuk menambahkan data mahasiswa baru. Fungsi ini akan menerima data mahasiswa sebagai parameter dan menjalankan query INSERT INTO untuk menyimpan data tersebut ke dalam tabel mahasiswa

5. Buat fungsi read() untuk menampilkan data mahasiswa. Fungsi ini memiliki parameter $id yang secara default berisi string kosong. Jika $id tidak diisi, maka fungsi akan menampilkan semua data mahasiswa. Jika diisi, maka fungsi akan menampilkan data mahasiswa berdasarkan ID yang diberikan

Mahasiswa Class Part 2

6. Buat fungsi update() untuk memperbarui data mahasiswa berdasarkan ID. Fungsi ini akan menerima parameter ID mahasiswa dan data baru yang akan diupdate

Mahasiswa Class Part 3

7. Buat fungsi delete() untuk menghapus data mahasiswa berdasarkan ID

Mahasiswa Class Part 4

Fungsi Mahasiswa berperan sebagai controller yang menjembatani antara model Mahasiswa dan tampilan (view). Untuk mengimplementasikan fungsi ini, buka file Mahasiswa.php yang berada dalam folder function. Selanjutnya, tambahkan kode program berikut

Langkah pertama, tambahkan file Database.php, Config.php, dan model/Mahasiswa.php menggunakan perintah include. Setelah itu, buat objek baru untuk Database dan Mahasiswa, lalu hubungkan dengan database sesuai kode program yang telah disiapkan

Function Mahasiswa Part 1

Selanjutnya, tambahkan kode untuk mengecek parameter action yang dikirimkan melalui metode GET. Jika parameter action ditemukan, nilainya akan diambil dan digunakan sesuai dengan fungsi yang akan dijalankan. Ada tiga jenis aksi yang dapat dilakukan, yaitu create, delete, dan update.

Create: Jika action bernilai 'create', data mahasiswa yang terdiri dari NIM, nama, dan jurusan yang dikirim melalui form akan diproses dan disimpan ke dalam database menggunakan metode create().

Delete: Jika action bernilai 'delete', data mahasiswa akan dihapus berdasarkan ID yang dikirim melalui URL menggunakan metode delete().

Update: Jika action bernilai 'update', data mahasiswa akan diperbarui berdasarkan ID dan data baru dari form menggunakan metode update().

Function Mahasiswa Part 2

View ini berfungsi untuk menampilkan data, menampilkan form input dan update data mahasiswa.

• Index.php

File Index.php ini berisi tampilan data-data mahasiswa yag telah berhasil diinputkan kedalam database, berikut ini kode program Index.php

Index PHP Code

Tampilan View

View Screenshot

Create.php

File ini berisi form inputan untuk memambahkan data mahasiswa Terdiri dari 3 input field:

Semua input bersifat wajib (required).

Create PHP Code

Tampilan Create Form

Create Form Screenshot

Edit.php

File ini berisi form untuk melakukan perubahan data mahasiswa.

Edit PHP Code

Tampilan Form Edit

Edit Form Screenshot

Optimisasi Kode

Pada hasil kode sebelumnya, jika melakukan delete maka akan menghapus seluruh data yang ada. Hal ini disebabkan karena pada database, kolom id tidak auto increment, sehingga id akan selalu 0, maka apabila dipilih salah satu id untuk dihapus, maka seluruh data akan ikut terhapus

Oleh karena itu, lakukan perubahan pada database dengan menambahkan auto increment pada bagian ID

Edit Form Screenshot

Selanjutnya Optimisasi kedua terletak pada bagian validasi input. Dimana akan dilakukan pengecekan terlebih dahulu apakah nama atau nim sudah pernah terdaftar di database sebelumnya, jika sudah maka akan mengerimkan pesan bahwa nama atau nim sudah terdaftar di database

Oleh karena itu, lakukan perubahan pada file model/mahasiswa.php sebagai berikut

Edit Form Screenshot

Optimisasi terakhir terletak pada penggabungan file edit.php dan create.php, dikarenakan kedua file berisi kode yang mirip, sehingga lebih baik idsatukan saja agar lebih efisien

oleh karena itu, buatlah sebuah file baru, disini bernama form.php, lalu isikan kode seperti berikut

Edit Form Screenshot

kemudian silahkan hapus file edit.php dan create.php, dan lakukan sedikit pengeditan tujuan pada index.php, seperti pada gambar

Edit Form Screenshot Edit Form Screenshot

Jika anda tertarik untuk belajar lebih lanjut, source code nya saya sediakan pada link Github berikut