Cara Membuat CRUD Sederhana dengan PHP Native dan MySQL

Cara Membuat CRUD Sederhana dengan PHP Native dan MySQLCRUD adalah singkatan dari Create, Read, Update, dan Delete — empat operasi dasar yang menjadi inti hampir semua aplikasi web...

Cara Membuat CRUD Sederhana dengan PHP Native dan MySQL

Cara Membuat CRUD Sederhana dengan PHP Native dan MySQL

CRUD adalah singkatan dari Create, Read, Update, dan Delete — empat operasi dasar yang menjadi inti hampir semua aplikasi web. Menguasai CRUD berarti Anda mampu membuat aplikasi yang bisa menyimpan, menampilkan, mengubah, dan menghapus data. Artikel ini akan memandu Anda membuat CRUD sederhana menggunakan PHP native dan MySQL, cocok untuk pemula yang ingin memahami fondasi pengembangan web dinamis.

Apa Itu CRUD dan Mengapa Penting?

Setiap aplikasi yang mengelola data pasti menggunakan operasi CRUD. Ketika Anda mendaftar akun (Create), melihat daftar produk (Read), mengedit profil (Update), atau menghapus postingan (Delete), di baliknya bekerja operasi CRUD. Karena itu, memahami CRUD adalah langkah wajib sebelum membangun aplikasi yang lebih kompleks seperti toko online atau sistem manajemen.

Membuat CRUD dengan PHP native, yaitu tanpa framework, sangat bermanfaat bagi pemula. Anda akan memahami apa yang sebenarnya terjadi di balik layar, sehingga ketika nanti beralih ke framework seperti Laravel, Anda sudah paham konsep dasarnya. Pemahaman fondasi ini membuat Anda menjadi developer yang lebih kuat dan tidak sekadar bergantung pada tools.

Persiapan: Membuat Database dan Tabel

Sebelum menulis kode PHP, siapkan dulu database tempat menyimpan data. Buat sebuah database dan tabel sederhana untuk menyimpan data mahasiswa sebagai contoh:

CREATE DATABASE kampus;
USE kampus;

CREATE TABLE mahasiswa (
    id INT AUTO_INCREMENT PRIMARY KEY,
    nama VARCHAR(100),
    jurusan VARCHAR(100)
);

Tabel ini memiliki tiga kolom: id sebagai penanda unik yang bertambah otomatis, nama, dan jurusan. Struktur sederhana ini sudah cukup untuk mendemonstrasikan keempat operasi CRUD secara lengkap.

Membuat Koneksi Database

Langkah berikutnya adalah menghubungkan PHP ke database. Buat file koneksi.php yang akan dipakai bersama oleh semua file lain:

<?php
$conn = new mysqli("localhost", "root", "", "kampus");
if ($conn->connect_error) {
    die("Koneksi gagal: " . $conn->connect_error);
}

File koneksi ini penting karena setiap operasi CRUD membutuhkan akses ke database. Dengan memisahkannya ke file tersendiri, Anda tidak perlu menulis ulang kode koneksi di setiap halaman, cukup menyertakannya saat dibutuhkan.

Create: Menambah Data

Operasi Create digunakan untuk menyimpan data baru. Biasanya data berasal dari formulir yang diisi pengguna, lalu diproses dengan query INSERT:

$nama = $_POST['nama'];
$jurusan = $_POST['jurusan'];

$stmt = $conn->prepare("INSERT INTO mahasiswa (nama, jurusan) VALUES (?, ?)");
$stmt->bind_param("ss", $nama, $jurusan);
$stmt->execute();

Perhatikan penggunaan prepared statement dengan bind_param. Ini penting untuk keamanan, mencegah SQL injection dari input pengguna. Selalu gunakan pola ini alih-alih memasukkan input langsung ke query.

Read: Menampilkan Data

Operasi Read mengambil dan menampilkan data dari database. Gunakan query SELECT lalu tampilkan hasilnya dalam perulangan:

$result = $conn->query("SELECT * FROM mahasiswa");

while ($row = $result->fetch_assoc()) {
    echo $row['nama'] . " - " . $row['jurusan'] . "<br>";
}

Kode ini mengambil semua baris dari tabel mahasiswa, lalu menampilkannya satu per satu. Dalam aplikasi nyata, data biasanya ditampilkan dalam bentuk tabel HTML yang rapi lengkap dengan tombol edit dan hapus di setiap barisnya.

Update: Mengubah Data

Operasi Update digunakan untuk mengubah data yang sudah ada. Biasanya diawali dengan mengambil data lama untuk ditampilkan di formulir, lalu menyimpan perubahannya:

$stmt = $conn->prepare("UPDATE mahasiswa SET nama=?, jurusan=? WHERE id=?");
$stmt->bind_param("ssi", $nama, $jurusan, $id);
$stmt->execute();

Kunci dari operasi update adalah klausa WHERE yang menentukan baris mana yang akan diubah berdasarkan id. Tanpa WHERE, semua data dalam tabel akan ikut terubah — kesalahan yang harus selalu dihindari.

Delete: Menghapus Data

Operasi terakhir, Delete, menghapus data dari database. Sama seperti update, operasi ini wajib menggunakan klausa WHERE agar hanya menghapus data yang dituju:

$stmt = $conn->prepare("DELETE FROM mahasiswa WHERE id=?");
$stmt->bind_param("i", $id);
$stmt->execute();

Untuk keamanan tambahan, sebaiknya tampilkan konfirmasi sebelum menghapus data, agar pengguna tidak sengaja menghapus sesuatu yang penting. Ini adalah praktik baik yang meningkatkan pengalaman pengguna.

Tips Mengembangkan CRUD Anda

Setelah CRUD dasar berjalan, Anda bisa mengembangkannya lebih lanjut. Tambahkan validasi input agar data yang masuk sesuai format, buat tampilan yang lebih rapi dengan CSS, dan tambahkan fitur pencarian atau pagination ketika data mulai banyak. Pengembangan bertahap ini akan mengasah kemampuan Anda sekaligus membuat aplikasi semakin fungsional dan profesional.

Pentingnya Validasi dan Keamanan dalam CRUD

Membuat CRUD yang berfungsi hanyalah langkah pertama. Untuk aplikasi yang benar-benar layak dipakai, Anda perlu menambahkan validasi dan keamanan. Validasi memastikan data yang masuk sesuai dengan yang diharapkan, misalnya memeriksa bahwa nama tidak kosong atau email berformat benar. Tanpa validasi, database Anda bisa terisi data yang tidak valid atau bahkan berbahaya.

Validasi sebaiknya dilakukan di dua tempat: di frontend untuk pengalaman pengguna yang lebih baik, dan yang terpenting di backend untuk keamanan. Validasi frontend bisa dilewati oleh pengguna yang jahil, sehingga validasi backend adalah pertahanan utama Anda. Selalu anggap semua input dari pengguna sebagai sesuatu yang berpotensi berbahaya sampai terbukti aman melalui validasi yang ketat.

Dari sisi keamanan, penggunaan prepared statement seperti yang telah dibahas adalah keharusan untuk mencegah SQL injection. Selain itu, pertimbangkan juga untuk membersihkan output sebelum menampilkannya agar terhindar dari serangan XSS, yaitu penyisipan skrip berbahaya melalui data yang ditampilkan. Menerapkan keamanan berlapis ini membuat aplikasi CRUD Anda tidak hanya berfungsi, tetapi juga tangguh menghadapi upaya penyalahgunaan.

Dari CRUD Native Menuju Framework

Setelah menguasai CRUD dengan PHP native, Anda telah memiliki fondasi yang sangat berharga. Langkah alami berikutnya adalah mempelajari framework seperti Laravel. Yang menarik, semua konsep yang Anda pelajari di CRUD native tetap berlaku di framework, hanya saja framework menyediakan cara yang lebih ringkas dan terstruktur untuk melakukannya.

Di Laravel, misalnya, operasi CRUD bisa dilakukan dengan lebih sedikit kode berkat fitur seperti Eloquent ORM. Namun, karena Anda sudah memahami apa yang terjadi di balik layar, Anda tidak akan bingung ketika menggunakan fitur-fitur tersebut. Inilah keuntungan besar dari belajar dasar terlebih dahulu — Anda menjadi developer yang paham konsep, bukan sekadar mengikuti tutorial tanpa mengerti cara kerjanya. Pemahaman fondasi ini akan membedakan Anda dari developer yang hanya bergantung pada framework tanpa mengerti dasarnya.

Menyusun Struktur File CRUD yang Rapi

Saat membuat CRUD, cara Anda menyusun file sangat memengaruhi kemudahan pengembangan ke depan. Meski proyek sederhana bisa dibuat dalam satu file, membiasakan diri memisahkan file berdasarkan fungsinya adalah kebiasaan baik. Umumnya, developer memisahkan file koneksi database, file untuk menampilkan data, file untuk formulir tambah dan edit, serta file untuk memproses operasi seperti simpan, update, dan hapus.

Dengan struktur yang terorganisir, kode Anda menjadi lebih mudah dibaca, dicari, dan diperbaiki ketika terjadi masalah. Bayangkan jika seluruh logika CRUD ditumpuk dalam satu file panjang; menemukan dan memperbaiki bug akan jauh lebih sulit. Sebaliknya, pemisahan yang rapi memungkinkan Anda fokus pada satu bagian tanpa terganggu bagian lain. Kebiasaan menyusun struktur file yang baik sejak awal juga mempersiapkan Anda untuk bekerja dengan framework yang sangat menekankan organisasi kode. Investasi kecil dalam kerapian ini akan sangat menghemat waktu ketika proyek Anda tumbuh menjadi lebih besar dan kompleks.

Pertanyaan yang Sering Ditanyakan (FAQ)

Apakah CRUD dengan PHP native masih relevan?

Sangat relevan untuk belajar. Meski banyak proyek nyata memakai framework, memahami CRUD native membuat Anda mengerti dasar yang menjadi fondasi semua framework, sehingga belajar Laravel atau lainnya jadi lebih mudah.

Kenapa harus pakai prepared statement?

Prepared statement melindungi aplikasi dari SQL injection, yaitu serangan yang menyisipkan perintah berbahaya lewat input. Ini adalah standar keamanan yang wajib diterapkan pada setiap operasi yang melibatkan input pengguna.

Apa langkah setelah menguasai CRUD?

Setelah CRUD, pelajari validasi, autentikasi (login), relasi antar tabel, dan akhirnya framework seperti Laravel. CRUD adalah fondasi yang membuka jalan ke konsep-konsep tersebut.

Kesimpulan

Membuat CRUD sederhana dengan PHP native dan MySQL adalah latihan fundamental yang wajib dikuasai setiap web developer pemula. Dengan memahami keempat operasi — Create, Read, Update, dan Delete — Anda sudah menguasai inti dari hampir semua aplikasi web yang mengelola data.

Kuncinya adalah praktik langsung. Buat proyek CRUD sederhana seperti daftar mahasiswa, buku, atau produk, lalu kembangkan fitur-fiturnya secara bertahap. Jangan lupa selalu menggunakan prepared statement demi keamanan. Setelah nyaman dengan CRUD native, Anda akan jauh lebih siap melangkah ke framework modern seperti Laravel.

crud php mysql php native crud create read update delete php tutorial php mysql pdo crud php php database mysql
Rekomendasi

Hosting Cepat untuk Website & Laravel

Butuh hosting yang ngebut dan stabil untuk deploy website atau aplikasi Laravel-mu? Ini rekomendasi yang saya pakai.

Lihat Rekomendasi Hosting
Yudhi
Ditulis oleh

Yudhi

Web Developer

Web developer yang sehari-hari berkutat dengan PHP, Laravel, JavaScript, dan MySQL. Terbiasa membangun aplikasi web dari nol — merancang database, menulis fitur, memburu bug, hingga deploy ke server — lalu menuangkan solusi dan tutorialnya di DhieCoderWeb agar lebih mudah diikuti developer lain.

Bagikan artikel
Kembali

Komentar (0)

Punya pertanyaan atau tambahan? Tulis di bawah — tak perlu login.

Membalas komentar… batal

Belum ada komentar. Jadilah yang pertama!

🚀 Partner Recommendation

Butuh Source Code & Aplikasi Premium?

Download aplikasi Laravel, POS, Sekolah, Klinik, ERP, dan source code siap pakai di GudangCode.

GudangCode
  • ✔ Source Code Premium
  • ✔ Sistem Siap Pakai
  • ✔ Lifetime Update
  • ✔ Membership Lifetime
  • ✔ Update Aplikasi Harian
Daftar Membership →