Algoritma CRUD Sederhana Menggunakan Bahasa Pemrograman PHP
1. Latar Belakang
Perkembangan teknologi informasi yang semakin pesat telah mendorong pemanfaatan sistem komputer dalam berbagai bidang, khususnya dalam pengelolaan data. Hampir seluruh aplikasi modern, baik berbasis web maupun desktop, memerlukan sistem yang mampu menyimpan, menampilkan, mengubah, dan menghapus data secara terstruktur dan efisien. Tanpa adanya pengelolaan data yang baik, informasi akan sulit diakses, tidak akurat, dan berpotensi menimbulkan kesalahan dalam pengambilan keputusan.
Dalam dunia pemrograman, pengelolaan data tersebut dikenal dengan konsep CRUD (Create, Read, Update, dan Delete). CRUD merupakan fondasi dasar yang wajib dipahami oleh setiap calon programmer karena hampir seluruh aplikasi, seperti sistem akademik, e-commerce, media sosial, dan sistem administrasi, dibangun di atas logika CRUD. Oleh karena itu, pemahaman konsep CRUD menjadi langkah awal yang sangat penting dalam mempelajari pengembangan aplikasi berbasis database.
2. Alat dan Bahan
a. Perangkat Lunak
- Web Browser (Chrome/Edge)
- Web Server (XAMPP)
- Text Editor (VS Code)
b. Perangkat Keras
- Laptop / Komputer.
3. Pembahasan
3.1 Pengertian CRUD
CRUD adalah akronim dari Create, Read, Update, dan Delete. Ini adalah empat operasi dasar yang mutlak harus ada dalam setiap aplikasi pengolah data. Istilah ini pertama kali dipopulerkan oleh James Martin pada tahun 1983 dalam bukunya yang berjudul Managing the Data-base Environment. Secara sederhana, CRUD adalah siklus hidup sebuah data: data dibuat, data dilihat, data diperbaiki, dan akhirnya data dibuang.
3.2 Empat Operasi Utama CRUD
1. Create (Membuat)
Fungsi Create digunakan untuk membuat atau menambahkan data baru ke dalam sistem basis data. Dalam konteks SQL, fungsi ini biasanya diimplementasikan menggunakan perintah INSERT. Fungsi Create menjadi langkah awal dalam siklus data, karena tanpa data yang dibuat, sistem tidak memiliki informasi untuk diproses lebih lanjut.
Dalam aplikasi nyata, fungsi Create sering digunakan pada fitur seperti:
- Pendaftaran akun pengguna
- Input data siswa atau mahasiswa
- Penambahan data barang atau produk
- Pencatatan transaksi baru
Secara sederhana, fungsi Create memungkinkan sistem untuk menyimpan informasi baru sesuai dengan atribut atau struktur tabel yang telah ditentukan.
- Contoh kode:
2. Read (Membaca)
Fungsi Read digunakan untuk membaca, mengambil, dan menampilkan data yang telah tersimpan di dalam basis data. Dalam SQL, fungsi ini menggunakan perintah SELECT.
Contoh penggunaan fungsi Read antara lain:
- Menampilkan daftar siswa
- Melihat data profil pengguna
- Menampilkan laporan transaksi
- Menampilkan data barang dalam sistem inventaris
Fungsi Read bersifat non-destruktif, artinya tidak mengubah isi data yang ada di dalam database. Oleh karena itu, fungsi Read sangat penting untuk mendukung transparansi informasi dan pengambilan keputusan berbasis data.
- Contoh kode:
3. Update (Memperbarui)
Fungsi Update digunakan untuk memperbarui atau mengubah data yang sudah ada di dalam database. Dalam SQL, fungsi ini dijalankan menggunakan perintah UPDATE.
Contoh penerapan fungsi Update:
- Mengubah alamat atau nomor telepon pengguna
- Memperbarui nilai siswa
- Mengubah stok barang
- Memperbarui status pesanan
Fungsi Update tidak membuat data baru, melainkan memodifikasi data lama agar tetap relevan dan akurat. Oleh karena itu, penggunaan klausa WHERE sangat penting agar sistem hanya memperbarui data yang dimaksud dan tidak memengaruhi seluruh isi tabel.
- Contoh kode:
4. Delete (Menghapus)
Fungsi Delete digunakan untuk menghapus data dari basis data yang sudah tidak diperlukan lagi. Dalam SQL, fungsi ini menggunakan perintah DELETE. Delete merupakan fungsi yang paling sensitif karena data yang dihapus dapat bersifat permanen.
Contoh penggunaan fungsi Delete:
- Menghapus data pengguna yang tidak aktif
- Menghapus data ganda atau tidak valid
- Menghapus transaksi yang dibatalkan
Penggunaan fungsi Delete harus dilakukan dengan sangat hati-hati. Kesalahan dalam penulisan perintah Delete, terutama tanpa klausa WHERE, dapat menyebabkan seluruh data dalam tabel terhapus.
- Contoh kode:
3.4 Mengapa CRUD Penting dalam Pengelolaan Data?
CRUD menjadi standar industri karena beberapa alasan:
1. Interaktivitas: Mengubah website statis menjadi aplikasi dinamis yang hidup.
2. Efisiensi: Memudahkan pengelolaan data dalam jumlah besar secara terstruktur.
3. Keamanan Data: Dengan algoritma CRUD yang benar, akses terhadap data bisa dikontrol (siapa yang boleh mengedit, siapa yang boleh menghapus).
4. Fondasi Sistem: Hampir semua sistem kompleks (E-Commerce, E-Learning, Sistem Kepegawaian) dibangun di atas pondasi logika CRUD sederhana.
3.5 Pengenalan SQL dan PHP Sebelum Implementasi
1. Apa itu SQL?
SQL (Structured Query Language) adalah bahasa standar yang digunakan untuk mengelola dan memanipulasi basis data. SQL digunakan untuk berinteraksi dengan database, seperti menyimpan data, menampilkan data, mengubah data, hingga menghapus data.
SQL memungkinkan pengguna untuk berkomunikasi langsung dengan Database Management System (DBMS). Contoh perangkat lunak DBMS:
Perintah SQL dibagi menjadi beberapa kelompok utama, yaitu :
1. Data Definition Language (DDL)
2. Data Manipulation Language (DML)
3. Data Control Language (DCL)
Namun karena topik utama kita CRUD, maka kita akan membahas DML saja. DML adalah perintah SQL yang digunakan untuk mengelola isi data di dalam tabel. DML sangat berkaitan dengan CRUD.
Berikut perintah dml yang sering digunakan:
1. Select -> untuk menampilkan data
Contoh kode:
2. Insert -> untuk menambahkan data
Contoh kode:
3. Update -> untuk memodifikasi data
Contoh kode:
4. Delete -> untuk menghapus data
Contoh kode:
2. Apa itu PHP?
PHP (Hypertext Preprocessor) adalah bahasa pemrograman sisi server (server-side scripting language) yang digunakan untuk membuat dan mengembangkan aplikasi web yang dinamis. PHP dijalankan di server, bukan di browser pengguna, sehingga hasil pemrosesan PHP akan dikirim ke browser dalam bentuk HTML
Analogi PHP di kehidupan sehari-hari:
Browser → Pelanggan
PHP → Koki
Database → Gudang bahan
HTML → Hidangan
Berikut beberapa fungsi yang sering digunakan di PHP:
1. echo -> digunakan untuk menampilkan teks atau data ke browser.
2. mysqli_connect() -> untuk menghubungkan php dengan database mysql
3. mysqli_query() -> digunakan untuk menjalankan perintah SQL
4. mysqli_fetch_assoc() -> digunakan untuk mengambil data dari hasil query dalam bentuk array asosiatif.
5. mysqli_num_rows() -> digunakan untuk menghitung jumlah data hasil query.
6. isset() -> digunakan untuk mengecek apakah variabel sudah dibuat.
7. header() → digunakan untuk mengalihkan halaman.
3.6 Implementasi CRUD Sederhana Menggunakan Database MySQL dan PHP
Pada bagian ini, saya akan mengimplementasikan dari teori yang telah dibahas sebelumnya menjadi kode program nyata. Agar sistematis, kita akan membagi implementasi ini menjadi 5 file (koneksi.php, index.php, tambah.php, edit.php, hapus.php).
1. Masuk ke xampp dan server MySQL
Kenapa kita perlu menjalankan server Apache?
Karena PHP merupakan bahasa pemrograman Server-side, di mana kode PHP hanya bisa diproses oleh server (tidak bisa dibaca langsung oleh browser), sehingga kita memerlukan Apache agar website bisa berjalan.
2. Persiapan Database (SQL)
Kenapa kita perlu membuat database dan table? Karena kita memerlukan wadah untuk menampung data.
Analogi kehidupan sehari hari:
database -> lemari
table -> kardus
data -> buku
3. Koneksi (koneksi.php)
Kenapa kita perlu membuat koneksi? karena kita perlu jembatan otentikasi agar PHP diizinkan masuk untuk menyimpan, mengambil, dan mengelola data di dalam database.
Analogi kehidupan sehari hari:
host, user, pass, db -> kartu pelajar
database -> perpustakaan
php -> siswa
data dalam database -> buku
Jadi, sebagai siswa (php) kita tidak bisa meminjam sebuah buku (data) di perpustakaan (database) tanpa menunjukkan kartu pelajar (host, user, pass, db).
4. Menampilkan Data (index.php)
Penjelasan kode:
- ini_set & error_reporting = Ini adalah kode untuk menyalakan "Mode Detektif". Jika ada error pada kodingan, PHP akan menampilkan pesan kesalahan secara detail di layar agar kita mudah memperbaikinya.
- include 'koneksi.php'; = Ini memanggil file jembatan (koneksi.php) agar halaman utama ini bisa terhubung ke database untuk mengambil data siswa.
- a href="tambah.php" = Ini adalah tombol link yang mengarahkan pengguna ke halaman formulir tambah data jika ingin memasukkan siswa baru.
- Tag table, thead, tr, th = Ini adalah kode HTML untuk membangun kerangka tabel, termasuk baris judul kolom (No, Nama, NISN, Aksi) agar data terlihat rapi.
- $no = 1; = Kita menyiapkan angka awal 1 untuk penomoran baris. Variabel ini dibuat di luar perulangan agar angkanya bisa bertambah terus dan tidak kembali ke angka 1.
- mysqli_query($koneksi, "SELECT * FROM siswa") = Ini adalah perintah mengambil data. Kita menyuruh database untuk menyerahkan seluruh data siswa yang ada di tabel, lalu hasilnya disimpan sementara di variabel query.
- while ($data = mysqli_fetch_assoc($query)) = Ini akan mengambil data siswa satu per satu dari tumpukan data dan mencetaknya ke layar selama datanya masih ada.
- echo $no++; = Menampilkan nomor urut baris, lalu tanda ++ membuat angkanya bertambah otomatis (1, 2, 3, dst) untuk baris berikutnya.
- echo $data['nama']; = Menampilkan isi kolom nama dari database ke dalam sel tabel. Penulisannya harus sama persis dengan nama kolom di database.
- href="edit.php?id=..." = Link ini mengirim pengguna ke halaman edit atau hapus sambil membawa "titipan" berupa ID siswa di URL, agar sistem tahu siswa mana yang harus diproses.
- onclick="return confirm(...)" = Fitur pengaman JavaScript. Saat tombol hapus diklik, browser akan bertanya "Yakin hapus?" untuk mencegah data terhapus secara tidak sengaja.
5. Menambah Data (tambah.php)
Penjelasan kode =
- include 'koneksi.php'; = Ini memanggil file jembatan (koneksi.php) agar halaman tambah data ini bisa terhubung ke database.
- if (isset($_POST['simpan'])) = Mengecek apakah tombol "Simpan Data" sudah ditekan oleh pengguna. Jika belum ditekan (baru membuka halaman), kode penyimpanan di dalamnya tidak akan dijalankan.
- $nama = $_POST['nama']; = Mengambil teks yang baru saja diketik pengguna di dalam kotak isian "Nama" pada formulir.
- INSERT INTO siswa (nama, nisn) VALUES ... = Ini adalah perintah inti untuk menambahkan data baru. Kita memerintahkan database untuk memasukkan data ke kolom nama dan nisn sesuai dengan apa yang diketik pengguna.
- header("Location: index.php"); = Jika data berhasil disimpan, sistem akan otomatis memindahkan pengguna kembali ke halaman utama (index.php) agar pengguna bisa langsung melihat data barunya di tabel.
- form method="POST" action="" = Kita membuat formulir dengan metode POST. Metode ini ibarat mengirim surat dalam amplop tertutup, jadi data tidak terlihat di URL. Action kosong ("") artinya data akan dikirim dan diproses di halaman ini sendiri.
- input type="text" name="nama" = Ini adalah kotak isian agar pengguna bisa mengetik nama. Atribut name="nama" sangat penting sebagai label agar PHP bisa membedakan mana isian nama dan mana isian NISN.
- required = Ini adalah penjaga sederhana dari browser. Pengguna dilarang menekan tombol simpan jika kotak isian ini masih kosong.
- button type="submit" name="simpan" = Ini adalah tombol pemicu. Atribut name="simpan" inilah yang ditangkap oleh kode if (isset(...)) di bagian atas untuk memulai proses penyimpanan.
6. Mengubah Data (edit.php)
Penjelasan kode:
- include 'koneksi.php'; = Ini memanggil file jembatan (koneksi.php) agar halaman edit ini bisa terhubung ke database.
- $id = $_GET['id']; = Ini berfungsi untuk menangkap "titipan" ID dari URL (misalnya dari link edit.php?id=5). Kita butuh ID ini untuk tahu siswa mana yang datanya mau diambil.
- mysqli_query($koneksi, "SELECT * FROM siswa WHERE id = '$id'") = PHP meminta MySQL untuk mencari data siswa secara spesifik berdasarkan ID yang sudah ditangkap tadi, bukan mengambil semua data.
- $data = mysqli_fetch_assoc($query); = Mengubah hasil pencarian database menjadi wadah (array) agar isinya (nama, nisn) bisa kita ambil dan tempelkan ke form HTML.
- input type="hidden" name="id" = Ini adalah kotak isian rahasia. User tidak bisa melihatnya di layar, tapi isinya menyimpan ID siswa. Ini penting agar saat tombol Simpan ditekan, PHP tetap tahu ID mana yang sedang diproses.
- value="<?php echo $data['nama']; ?>" = Atribut value berfungsi untuk menampilkan data lama ke dalam kotak input. Jadi kotak nama tidak kosong, melainkan sudah terisi nama siswa yang mau diedit agar user tinggal merevisi saja.
- if (isset($_POST['update'])) = Mengecek apakah tombol "Update Data" sudah ditekan oleh pengguna. Jika belum ditekan, kode di dalamnya tidak akan dijalankan.
- $nama = $_POST['nama']; = Mengambil data nama yang baru saja diketik atau diubah oleh pengguna di dalam form.
- UPDATE siswa SET ... WHERE id='$id' = Ini adalah perintah inti untuk mengubah data. Kita memerintahkan database untuk menimpa data lama dengan data baru, TAPI hanya untuk siswa yang punya ID tersebut (karena ada WHERE).
- header("Location: index.php"); = Jika proses update berhasil, sistem akan otomatis memindahkan pengguna kembali ke halaman utama (index.php).
7. Menghapus data (hapus.php)
Penjelasan kode =
- include 'koneksi.php'; = Ini memanggil file jembatan (koneksi.php) agar halaman ini bisa terhubung ke database untuk melakukan penghapusan.
- $id = $_GET['id']; = Ini berfungsi untuk menangkap ID yang dikirim dari halaman utama melalui URL (link). Kita perlu menangkap ID ini agar sistem tahu spesifik data siswa mana yang harus dihapus.
- DELETE FROM siswa WHERE id = '$id' = Ini adalah perintah eksekusi. Kita menyuruh database untuk menghapus data siswa, TAPI hanya untuk siswa yang memiliki ID tersebut. Klausa WHERE di sini sangat krusial; tanpanya, seluruh data di tabel akan terhapus.
- header("Location: index.php"); = Jika proses penghapusan berhasil, sistem akan otomatis memindahkan pengguna kembali ke halaman utama (index.php), sehingga pengguna melihat bahwa data tersebut sudah hilang dari tabel.
3.7 Kesimpulan
Berdasarkan pembahasan yang telah dijelaskan, dapat disimpulkan bahwa CRUD (Create, Read, Update, dan Delete) merupakan konsep dasar yang sangat penting dalam pengelolaan data pada aplikasi berbasis database. CRUD berfungsi sebagai siklus hidup data, mulai dari proses pembuatan data, penampilan data, pembaruan data, hingga penghapusan data yang sudah tidak diperlukan. Hampir seluruh aplikasi modern, khususnya aplikasi berbasis web, dibangun dengan menerapkan konsep CRUD sebagai fondasi utamanya.
Melalui implementasi CRUD sederhana menggunakan bahasa pemrograman PHP dan database MySQL, dapat dipahami bagaimana teori CRUD diterapkan secara nyata ke dalam bentuk program. Pembagian sistem ke dalam beberapa file seperti koneksi, tampil data, tambah, edit, dan hapus membantu proses pengelolaan data menjadi lebih terstruktur dan mudah dipahami. Selain itu, penggunaan algoritma CRUD melatih kemampuan berpikir logis, sistematis, serta meningkatkan pemahaman siswa terhadap alur kerja aplikasi berbasis server-side.
4. Daftar Pustaka
Gamelab Indonesia. (2021, 23 Agustus). Membahas tentang apa itu CRUD & fungsi dari pemograman. https://www.gamelab.id/news/868-membahas-tentang-apa-itu-crud--fungsi-dari-pemograman (Gamelab.id)
Ilmudatapy.com. (n.d.). Apa itu CRUD?. https://ilmudatapy.com/apa-itu-crud/ (IlmudataPy)
FIKTI UMSU. (n.d.). CRUD: Pengertian, fungsi dan contoh program CRUD PHP. https://fikti.umsu.ac.id/crud-pengertian-fungsi-dan-contoh-program-crud-php/ (fikti.umsu.ac.id)
DQLab. (n.d.). Mengenal operasi CRUD dalam pelatihan MySQL. https://dqlab.id/mengenal-operasi-crud-dalam-pelatihan-mysql (dqlab.id)


0 Komentar