
Pendahuluan
Pada postingan blog kali ini, saya akan membahas mengenai konsep CRUD (Create, Read, Update, dan Delete) pada bahasa pemrograman PHP.
Namun, sebelum itu, biarkan saya memperkenalkan diri saya terlebih dahulu. Perkenalkan, nama saya Muhammad Farhan Saputra biasa dipanggil Farhan. Saya sedang menempuh pendidikan di Universitas Andalas jurusan Informatika Angkatan 23. Ini merupakan postingan Laporan Praktikum pertama saya sekaligus postingan blog pertama saya dalam memulai karir sebagai developer. Saya harap saya dapat konsisten terus menerus dalam mendokumentasikan progress saya dalam karir ini. Jadi, doakan saya semuanya!
Seperti yang telah dijelaskan sebelumnya, saya akan membahas mengenai CRUD dalam bahasa pemrograman PHP. Mengutip dari RevoUpedia, CRUD adalah kumpulan fungsi dasar yang umum digunakan dalam manajemen database. Fungsi Create, Read, Update, dan Delete yang dimiliki CRUD adalah dasar untuk sebagian besar aplikasi software yang berkaitan dengan penyimpanan dan pengambilan data. CRUD sering digunakan dalam logika backend aplikasi web, software, aplikasi mobile, dan sistem lain yang memerlukan manajemen data. Ini adalah dasar interaksi dengan database.
Pada praktikum yang telah saya praktikkan, saya mengimplementasikan konsep CRUD dalam bahasa pemrogramman PHP menggunakan konsep OOP (Object-oriented Programming). Mengutip dari Codepolitan, OOP adalah paradigma pemrograman yang berfokus pada penggunaan struktur data “objek” yang menggabungkan data dan fungsi. Oleh karena itu, OOP memungkinkan kita untuk mengelompokkan perilaku dan data dalam satu unit yang disebut objek, daripada hanya menggunakan prosedur dan fungsi.
Konsep dari OOP sendiri adalah sebagai berikut:
- Class = template untuk membuat banyak contoh dari jenis (atau kelas) objek yang sama.
- Object = contoh individual dari struktur data yang didefinisikan oleh sebuah kelas.
- Member Variable = variabel yang didefinisikan di dalam kelas. Data ini tidak akan terlihat oleh pihak luar kelas dan dapat diakses melalui fungsi-fungsi anggota. Variabel-variabel ini disebut atribut objek setelah objek dibuat.
- Member Function = Ini adalah fungsi yang didefinisikan di dalam kelas dan digunakan untuk mengakses
- Inheritance = Ketika sebuah kelas didefinisikan dengan mewarisi fungsi yang ada pada kelas induk, maka hal ini disebut pewarisan. Di sini kelas anak akan mewarisi semua atau beberapa fungsi anggota
- Parent Class = Kelas yang diwarisi dari kelas lain. Ini juga disebut kelas dasar
- Child Class = Kelas yang mewarisi dari kelas lain. Ini juga disebut subkelas atau kelas turunan.
- Polymorphism = Fungsi yang sama dapat digunakan untuk tujuan yang berbeda.
- Overloading = jenis polimorfisme di mana beberapa atau semua operator memiliki perbedaan implementasi yang berbeda tergantung pada jenis argumennya. Demikian pula, fungsi-fungsi juga dapat kelebihan beban dengan implementasi yang berbeda.
- Data Abstraction = Representasi data apa pun yang detail implementasinya disembunyikan (abstrak).
- Encapsulation = mengacu pada konsep di mana kita merangkum semua data dan anggota bersama-sama untuk membentuk sebuah objek.
- Constructor = mengacu pada jenis fungsi khusus yang akan dipanggil secara otomatis setiap kali ada pembentukan objek dari sebuah kelas.
- Destructor = mengacu pada jenis fungsi khusus yang akan dipanggil secara otomatis setiap kali sebuah objek dihapus atau keluar dari cakupan.
Tujuan Praktikum
Tujuan dari praktikum ini adalah sebagai berikut:
- Memahami konsep mampu mengimplementasikan konsep Object Oriented Programming pada PHP dengan membuat aplikasi CRUD Sederhana
- Menyempurnakan CRUD Sederahan menjadi lebih efisien dan dinamis.
Langkah-langkah
Pertama, buatlah struktur file seperti berikut di laptop anda:

Kemudian, download framework Bootstrap agar memudahkan kita pada praktikum kali ini. Bootstrap dapat diunduh pada link berikut:
- CSS = https://cdn.jsdelivr.net/npm/bootstrap@5.3.5/dist/css/bootstrap.min.css
- JS = https://cdn.jsdelivr.net/npm/bootstrap@5.3.5/dist/js/bootstrap.bundle.min.js
File pada link tersebut dimasukkan ke folder assets dan dipisahkan antara CSS dan JS agar mempermudah dalam manajemen file.
Setelah itu, buatlah database baru dan tabel baru. Tabel bernama mahasiswa. Query SQL nya sebagai berikut:

Query SQL tersebut digunakan untuk membuat sebuah tabel bernama mahasiswa di dalam database. Tabel ini memiliki empat kolom: id dengan tipe data integer (maksimal 11 digit) yang tidak boleh kosong, nim (Nomor Induk Mahasiswa) bertipe varchar hingga 20 karakter, nama bertipe varchar hingga 128 karakter, dan jurusan juga bertipe varchar hingga 128 karakter; ketiga kolom terakhir juga bersifat tidak boleh kosong. Tabel ini menggunakan mesin penyimpanan InnoDB dan pengaturan karakter utf8mb4 dengan kolasi utf8mb4_general_ci, yang mendukung karakter Unicode dan pencocokan huruf besar-kecil yang tidak sensitif. Namun, query ini belum menetapkan primary key, sehingga perlu ditambahkan untuk menjamin keunikan data.
Kemudian, buatlah kode program pada config/database,php seperti berikut:

Potongan kode PHP tersebut mendefinisikan sebuah class bernama Database yang digunakan untuk mengelola koneksi ke database MySQL menggunakan ekstensi MySQLi. Class ini memiliki properti privat untuk menyimpan detail koneksi, yaitu host (localhost), db_name (nama database: pemrograman_web), username (root), dan password (kosong). Properti publik conn digunakan untuk menyimpan objek koneksi.
Fungsi getConnection() akan mencoba membuat koneksi ke database dengan new mysqli(...). Jika koneksi berhasil, objek koneksi disimpan ke $this->conn dan dikembalikan. Jika gagal, akan ditangkap oleh blok catch dan menampilkan pesan error. Dengan pendekatan ini, class Database menyederhanakan proses koneksi ke database dalam aplikasi PHP.
Selanjutnya, kita perlu membuat program config.php. Config.php digunakan untuk membuat variable constant yang mana nantinya dapat
diakases dari kelas manapun, pada praktikum ini akan membuat variable constant dengan nama BASE_URL yang berisi strng base url dari project yang akan dibuat. Tambahkan kode program berikut pada Config.php.

Dari program ini, kita bisa tahu bahwa yang saya lakukan masih secara lokal dan belum terhubung di internet.
Kemudian, kita perlu membuat program alert.php. Alert.php digunakan untuk membuat sebuah function yang berfungsi untuk menampilkan pesan Ketika melakukan operasi terhadap data, fungsi ini memiliki 2 buah argument statement yaitu $msg yang berisi pesan dan $sts yang berisi kode jika status 1 maka pesan berhasil dan jika 0 maka pesan gagal. Berikut kode program fungsi alert.

Selanjutnya, kita membuat model mahasiswa. Class Mahasiswa digunakan untuk membuat fungsi operasi Create, Read, Update dan Delete data Mahasiswa, berikut ini Langkah-langkah pembuatan class Mahasiswa:
- Tambahkan session_start() pada baris paling atas kode program
- Buat class dengan nama Mahasiswa di folder model

- Selanjutnya deklarasikan variable-variabel yang dibutuhkan seperti gambar berikut.

- Buat fungsi constructor yag berisi memanggil koneksi database seperti gambar berikut.

- buat fungsi create yang nantinya digunakan untuk menambahkan data mahasiswa seperti kode program berikut.

otongan kode PHP tersebut adalah bagian dari sebuah class (kemungkinan class Mahasiswa atau sejenisnya) dan berfungsi untuk menyimpan data baru ke dalam database. Fungsi create() ini menggunakan query SQL INSERT INTO untuk menambahkan data nim, nama, dan jurusan ke dalam tabel yang ditentukan oleh properti $this->table_name.
Prosesnya dimulai dengan menyiapkan query menggunakan metode prepare() dari objek koneksi $this->conn, lalu mengikat tiga parameter (nim, nama, jurusan) ke query menggunakan bind_param("sss", ...) dengan tiga s yang menunjukkan bahwa semua parameter bertipe string. Kemudian, jika eksekusi query berhasil, sebuah pesan sukses disimpan di $_SESSION['flash_message'] dan pengguna diarahkan ke index.php?msg=1. Jika gagal, pesan error disimpan dan diarahkan ke index.php?msg=0
- buat fungsi read untuk menampilkan data mahasiswa, fungsi read memiliki default arameter $id yang berisi string kosong, jika $id == “” maka akan mengeksekusi query untuk menampilkan seluruh data mahasiswa, jika $id !== “” maka akan mengeksekusi query untuk menampilkan data mahasiswa berdasarkan id mahasiswa. Berikut kode program fungsi read.

- buat fungsi update untuk melakukan perubahan data mahasiswa berdasarkan ID mahasiswa, berikut ini kode programnya.

- buat fungsi delete untuk menghapus data mahaiswa berdasarkan ID, berikut ini kode program untuk fungsi delete.

Kemudian, kita akan membuat fungsi mahasiswa. Fungsi mahasiswa ini berfungsi sebagai controller yang menghubungkan antara class/model mahasiswa dengan view, buka file Mahasiswa.php yang berada dalam folder function kemudian tambahkan kode program seperti berikut.
- Tambahkan file Database.php, Config.php dan model/Mahasiswa.php dengan menggunakan perintah include seperti gambar dibawah ini.

- Buat object baru Database dan mahasiswa kemudian koneksikan dengan database seperti kode program berikut.

- Selanjutnya tambahkan kode program berikut.

Pertama akan dilakukan pengecekan sebuah parameter action yang dikirimkan melalui method GET, jika ada terdapat parameter action yang dikirimkan maka nilai parameter akan diambil dan digunakan sesuai dengan fungsinya, ada 3 buah isi parameter yang dikirimkan yaitu create, delete dan update.
Selanjutnya, kita akan membuat halaman view sederhana menggunakan bootstrap. Untuk view menjadi halaman depan dari program yaitu diberi nama index.php. Berikut adalah kodenya:





Hasilnya halaman akan seperti berikut:

Selanjutnya, kita juga akan membuat halaman create sederhana menggunakan Bootstrap. Kodenya sebagai berikut:



Ketika kita mengklik tombol tambah data, akan muncul halaman create sebagai berikut:

Kemudian, kita akan membuat halaman edit sederhana bernama edit.php. Kodenya sebagai berikut:




Jika kita klik tombol edit pada salah satu data, akan tampil seperti berikut:

Sekarang, kita coba masukkan salah satu data

Jika di klik simpan, akan menjadi seperti berikut:

Optimisasi Kode
- Menjadikan Halaman Menjadi Dinamis
Caranya dengan membuat folder include dan membuat dua file yaitu header.php dan footer.php. Hal ini akan membuat kode dapat digunakan berkali-kali dan kita tidak perlu menambahkan hal yang sama berulang.
Isi dari header.php seperti berikut:

Isi dari footer.php adalah sebagai berikut:

Contoh penggunaannya adalah sebagai berikut. Kita cukup memanggil file yang telah kita buat di awal dan akhir halaman.


- Memberi Padding pada judul

- Mengubah halaman create menjadi bentuk card dan menjadikan pemilihan jurusan menjadi dropdown

- Memberikan validasi jika input data salah

Kodenya adalah sebagai berikut:



Di kode tersebut juga menambahkan sanitasi input agar terhindar dari SQL Injection dan XSS Scripting

Jika anda tertarik untuk mencoba praktikum ini, anda dapat mencobanya disini
Jika anda tertarik untuk belajar lebih lanjut, source code nya saya sediakan di link Github
Kesimpulan
Kesimpulan dari artikel ini adalah bahwa pemrograman web, khususnya dalam konteks bahasa PHP, sangat bergantung pada konsep CRUD (Create, Read, Update, Delete) sebagai dasar manajemen database. Penulis menjelaskan bagaimana ia mengimplementasikan konsep tersebut menggunakan pendekatan Pemrograman Berorientasi Objek (OOP), yang memungkinkan pengelompokan data dan fungsi dalam satu unit objek. Praktikum ini bertujuan untuk memberikan pemahaman mendalam tentang cara membangun aplikasi CRUD sederhana di PHP dengan efisiensi dan dinamisme yang lebih baik. Dengan mengikuti langkah-langkah yang telah dijabarkan, para pembaca dapat memahami struktur dan proses pembuatan aplikasi berbasis data dengan lebih mudah.
great job
thank you <3