In computer programming, create, read, update, and delete (CRUD) are the four basic functions of persistent storage. Alternate words are sometimes used when defining the four basic functions of CRUD, such as retrieve instead of read, modify instead of update, or destroy instead of delete. CRUD is also sometimes used to describe user interface conventions that facilitate viewing, searching, and changing information; often using computer-based forms and reports. The term was likely first popularized by James Martin in his 1983 book Managing the Data-base Environment. The acronym may be extended to CRUDL to cover listing of large data sets which bring additional complexity such as pagination when the data sets are too large to be easily held in memory.

Dalam pemrograman komputer, membuat, membaca, memperbarui, dan menghapus (CRUD) adalah empat fungsi dasar penyimpanan persisten. Kata-kata alternatif kadang-kadang digunakan ketika mendefinisikan empat fungsi dasar CRUD, seperti mengambil alih-alih membaca, mengubah alih-alih memperbarui, atau menghancurkan alih-alih menghapus. CRUD juga terkadang digunakan untuk menggambarkan konvensi antarmuka pengguna yang memfasilitasi tampilan, pencarian, dan perubahan informasi; sering menggunakan formulir dan laporan berbasis komputer. Istilah ini kemungkinan pertama kali dipopulerkan oleh James Martin dalam bukunya 1983 Mengelola Lingkungan Data-base. Singkatan dapat diperluas ke CRUDL untuk mencakup daftar set data besar yang membawa kompleksitas tambahan seperti pagination ketika set data terlalu besar untuk mudah disimpan dalam memori.

CRUD is also relevant at the user interface level of most applications. For example, in address book software, the basic storage unit is an individual contact entry. As a bare minimum, the software must allow the user to

  • create or add new entries;
  • read, retrieve, search, or view existing entries;
  • update or edit existing entries;
  • delete, deactivate, or remove existing entries.

Without at least these four operations, the software cannot be considered complete. Because these operations are so fundamental, they are often documented and described under one comprehensive heading, such as "contact management", "content management" or "contact maintenance" (or "document management" in general, depending on the basic storage unit for the particular application).

CRUD juga relevan pada tingkat antarmuka pengguna sebagian besar aplikasi. Misalnya, dalam perangkat lunak buku alamat, unit penyimpanan dasar adalah entri kontak individual. Minimal, perangkat lunak harus memungkinkan pengguna untuk melakukannya.

  • membuat atau menambah entri baru;
  • membaca, mengambil, mencari, atau melihat entri yang ada;
  • memperbarui atau mengedit entri yang ada;
  • hapus, nonaktifkan, atau hapus entri yang ada.

Tanpa setidaknya empat operasi ini, perangkat lunak tidak dapat dianggap lengkap. Karena operasi ini sangat mendasar, mereka sering didokumentasikan dan dijelaskan di bawah satu judul komprehensif, seperti "manajemen kontak", "manajemen konten" atau "pemeliharaan kontak" (atau "manajemen dokumen" secara umum, tergantung pada unit penyimpanan dasar untuk aplikasi tertentu).

  1. CREATE
    INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...);
  2. READ
    SELECT column1, column2, ... FROM table_name WHERE condition;
  3. UPDATE
    UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition;
  4. DELETE
    DELETE FROM table_name WHERE condition;

Andaikan daftar_mhs adalah sebuah tabel dalam database sbdn dan tabel ini terdiri dari 3 kolom, yaitu kolom kode_mhs, nama_mhs, jk. Selanjutnya, ke dalam daftar_mhs itu ditambahkan entri baru sebanyak 7 orang, sebagai berikut:

  • NPM: 612010118231
    Nama: Fulan Siregar
    Jenis Kelamin: Laki-laki
  • NPM: 612010118232
    Nama: Barnas Budiman
    Jenis Kelamin: Laki-laki
  • NPM: 612010118233
    Nama: Citra Manggala
    Jenis Kelamin: Perempuan
  • NPM: 612010117231
    Nama: Unyil Siregar
    Jenis Kelamin: Laki-laki
  • NPM: 612010117232
    Nama: Ucrit
    Jenis Kelamin: Laki-laki
  • NPM: 742010116231
    Nama: Usro
    Jenis Kelamin: Laki-laki
  • NPM: 742010116232
    Nama: Upit
    Jenis Kelamin: Perempuan

Perintah SQL untuk memasukkan data tersebut ke dalam tabel daftar_mhs adalah

  • INSERT INTO daftar_mhs(kode_mhs, nama_mhs, jk) VALUES
  • ('612010118231', 'Fulan Siregar', 'Laki-laki'),
  • ('612010118232', 'Barnas Budiman', 'Laki-laki'),
  • ('612010118233', 'Citra Manggala', 'Perempuan'),
  • ('612010117231', 'Unyil Siregar', 'Laki-laki'),
  • ('612010117232', 'Ucrit', 'Laki-laki'),
  • ('742010116231', 'Usro', 'Laki-laki'),
  • ('742010116232', 'Upit', 'Perempuan');

Apabila operasi CREATE (membuat atau menambah entri baru) tersebut berhasil, tabel daftar_mhs berisi rekaman data mahasiswa sebanyak 7 baris.

Untuk membaca, mengambil, mencari, atau melihat entri yang ada, digunakan salah satu operasi READ berikut ini, tergantung kebutuhan.

  • SELECT nama_mhs FROM daftar_mhs ORDER BY nama_mhs ASC;
    Hasilnya: Daftar nama seluruh mahasiswa, dalam urutan huruf menaik (Barnas Budiman, Citra Manggala, Fulan Siregar, Ucrit, Unyil Siregar, Upit, Usro).
  • SELECT nama_mhs FROM daftar_mhs ORDER BY nama_mhs DESC;
    Hasilnya: Daftar nama seluruh mahasiswa, dalam urutan huruf menurun (Usro, Upit, Unyil Siregar, Ucrit, Fulan Siregar, Citra Manggala, Barnas Budiman)
  • SELECT nama_mhs FROM daftar_mhs WHERE jk='Laki-laki' ORDER BY nama_mhs ASC;
    Hasilnya: Daftar nama mahasiswa berjenis kelamin laki-laki, dalam urutan huruf menaik (Barnas Budiman, Fulan Siregar, Ucrit, Unyil Siregar, Usro).
  • SELECT nama_mhs FROM daftar_mhs WHERE LEFT(nama_mhs,1)='u' ORDER BY nama_mhs DESC;
    Hasilnya: Daftar nama mahasiswa yang diawali huruf u, dalam urutan huruf menurun (Usro, Upit, Unyil Siregar, Ucrit).
  • SELECT nama_mhs FROM daftar_mhs WHERE RIGHT(nama_mhs,7)='siregar' ORDER BY nama_mhs DESC;
    Hasilnya: Daftar nama mahasiswa yang diakhiri huruf siregar, dalam urutan huruf menurun (Unyil Siregar, Fulan Siregar).
  • SELECT nama_mhs FROM daftar_mhs WHERE nama_mhs LIKE '%u%' ORDER BY nama_mhs ASC;
    Hasilnya: Daftar nama mahasiswa yang mengandung huruf u, dalam urutan huruf menaik (Barnas Budiman, Fulan Siregar, Ucrit, Unyil Siregar, Upit, Usro).
  • SELECT nama_mhs FROM daftar_mhs WHERE nama_mhs NOT LIKE '%u%' ORDER BY nama_mhs ASC;
    Hasilnya: Daftar nama mahasiswa yang tidak mengandung huruf u, dalam urutan huruf menaik (Citra Manggala).
  • SELECT nama_mhs FROM daftar_mhs WHERE nama_mhs NOT LIKE '%a%' ORDER BY nama_mhs ASC;
    Hasilnya: Daftar nama mahasiswa yang tidak mengandung huruf u, dalam urutan huruf menaik (Ucrit, Upit, Usro).
  • SELECT nama_mhs FROM daftar_mhs WHERE LEFT(nama_mhs,1)='u' AND jk='laki-laki' ORDER BY nama_mhs ASC;
    Hasilnya: Daftar nama mahasiswa yang diawali huruf u dan berjenis kelamin laki-laki, dalam urutan huruf menaik (Ucrit, Unyil Siregar, Usro).
  • SELECT nama_mhs FROM daftar_mhs WHERE LEFT(nama_mhs,1)='u' AND RIGHT(nama_mhs,1)='t' ORDER BY nama_mhs ASC;
    Hasilnya: Daftar nama mahasiswa yang diawali huruf u dan diakhiri huruf t, dalam urutan huruf menaik (Ucrit, Upit).
  • SELECT kode_mhs, nama_mhs FROM daftar_mhs WHERE LEFT(kode_mhs,1)='61201' ORDER BY kode_mhs ASC;
    Hasilnya: Daftar npm dan nama mahasiswa program studi Manajemen Universitas Wiralodra, dalam urutan npm menaik
    1. 612010117232, Ucrit
    2. 612010117231, Unyil Siregar
    3. 612010118232, Barnas Budiman
    4. 612010118233, Citra Manggala
    5. 612010118231, Fulan Siregar
  • SELECT kode_mhs, nama_mhs FROM daftar_mhs WHERE LEFT(kode_mhs,1)='61201' AND MID(kode_mhs,8,2)='17' ORDER BY nama_mhs ASC;
    Hasilnya: Daftar npm dan nama mahasiswa program studi Manajemen Universitas Wiralodra tahun masuk 2016, dalam urutan nama menaik
    1. 612010117232, Ucrit
    2. 612010117231, Unyil Siregar
  • SELECT kode_mhs, nama_mhs FROM daftar_mhs WHERE LEFT(kode_mhs,1)='61201' AND MID(kode_mhs,8,2)='18' ORDER BY nama_mhs ASC;
    Hasilnya: Daftar npm dan nama mahasiswa program studi Manajemen Universitas Wiralodra tahun masuk 2018, dalam urutan nama menaik
    1. 612010118232, Barnas Budiman
    2. 612010118233, Citra Manggala
    3. 612010118231, Fulan Siregar
  • SELECT kode_mhs, nama_mhs FROM daftar_mhs WHERE LEFT(kode_mhs,1)='61201' AND RIGHT(kode_mhs,3)='231' ORDER BY nama_mhs ASC;
    Hasilnya: Daftar npm dan nama mahasiswa program studi Manajemen Universitas Wiralodra yang memiliki nomor urut npm 231, dalam urutan nama menaik
    1. 612010118231, Fulan Siregar
    2. 612010117231, Unyil Siregar
  • SELECT kode_mhs, nama_mhs FROM daftar_mhs WHERE LEFT(kode_mhs,1)='61201' ORDER BY nama_mhs ASC;
    Hasilnya: Daftar npm dan nama mahasiswa program studi Manajemen Universitas Wiralodra, dalam urutan nama menaik
    1. 612010118232, Barnas Budiman
    2. 612010118233, Citra Manggala
    3. 612010118231, Fulan Siregar
    4. 612010117232, Ucrit
    5. 612010117231, Unyil Siregar
  • SELECT kode_mhs, nama_mhs FROM daftar_mhs WHERE LEFT(kode_mhs,1)='61201' AND (MID(kode_mhs,8,2)='17' OR MID(kode_mhs,8,2)='18') ORDER BY nama_mhs ASC;
    Hasilnya: Daftar npm dan nama mahasiswa program studi Manajemen Universitas Wiralodra, tahun masuk 2017 atau 2018, dalam urutan nama menaik
    1. 612010118232, Barnas Budiman
    2. 612010118233, Citra Manggala
    3. 612010118231, Fulan Siregar
    4. 612010117232, Ucrit
    5. 612010117231, Unyil Siregar

Perhatikan perintah SELECT paling bawah dan perintah SELECT kedua dari bawah. Perintahnya berbeda, hasilnya sama. Hal ini terjadi karena tabel daftar_mhs belum memuat data mahasiswa program studi Manajemen tahun masuk 2016 atau tahun sebelumnya, sehingga kedua perintah itu menampilkan hasil yang sama.