Create, read, update and delete

Dalam pemrograman komputer, fungsi ***create, read, update, delete*** (**CRUD**; *buat, baca, perbarui, hapus*) adalah empat operasi dasar (tindakan) penyimpanan persisten. Istilah CRUD juga terkadang digunakan untuk menggambarkanantarmuka pengguna yang memfasilitasi pengguna untuk melihat, mencari, dan mengubah informasi menggunakan fiturformulir dan laporan berbasis komputer.

## Sejarah
Terminologi *CRUD* kemungkinan pertama kali dipopulerkan pada tahun 1983  oleh James Martin dalam bukunya *Managing the data-base environment*.

## Konsep
Data ditempatkan di suatu *lokasi/area* pada suatu mekanisme penyimpanan.

* Fitur mendasar dari suatu lokasi penyimpanan adalah bahwa *konten seharusnya dapat *'dibaca*** dan ***diperbarui***.
* Sebelum lokasi penyimpanan dapat dibaca atau diperbarui oleh sistem, ia perlu ***dibuat***; yaitu dialokasikan dan diinisialisasi dengan konten.
* Di kemudian hari, lokasi penyimpanan mungkin perlu ***dimusnahkan***; yaitu diselesaikan dan dihapus alokasinya.

Bersama-sama keempat operasi ini membentuk operasi dasar manajemen penyimpanan yang dikenal sebagai CRUD: ***c**reate, **r**ead, **u**pdate, **d*'elete.*

## Penggunaan

### Basis Data
Akronim CRUD merujuk pada operasi utama yang diimplementasikan dalam basis data. Setiap operasi dalam akronim dipetakan ke pernyataan Bahasa Kueri Terstruktur (SQL) standar.

Meskipun basis data relasional merupakan bagian dari lapisan persisten umum dalam aplikasi perangkat lunak, terdapat banyak lapisan persisten lainnya. Fungsionalitas CRUD diimplementasikan sebagai contoh dengan basis data dokumen, basis data objek, basis data XML, berkas teks, atau berkas biner.

Beberapa sistem mahadata tidak mengimplementasikan UPDATE, tetapi hanya memiliki INSERT (penjurnalan) yang diberi tanda waktu, yang menyimpan versi objek yang selalu terbaru pada setiap saat.

### API RESTful
Akronim CRUD juga muncul dalam diskusi RESTful API . Setiap operasi dapat dipetakan ke metode Hypertext Transfer Protocol (HTTP):

Dalam HTTP, metode GET (baca), PUT (buat dan perbarui), POST (buat - jika kita tidak memiliki `id` atau `uuid`), dan DELETE (hapus) termasuk operasi CRUD karena metode-metode tersebut memiliki semantik manajemen penyimpanan, dalam artian, metode-metode tersebut memungkinkan agen pengguna (*user agent*) untuk secara langsung menyuntingsumber daya target. Metode POST, di sisi lain, adalah operasi proses yang memiliki semantik spesifik target-sumber daya yang biasanya melampaui cakupan operasi CRUD.

### Antarmuka pengguna
Operasi CRUD juga relevan pada tingkat antarmuka pengguna di sebagian besar aplikasi. Misalnya, dalam perangkat lunak buku alamat, unit penyimpanan dasar adalah *entri kontak* individual. Minimalnya, perangkat lunak harus memungkinkan pengguna untuk:

* *Create* atau tambahkan entri baru
* *Read*, mengambil, mencari, atau melihat entri yang ada
* *Update*, atau edit entri yang ada
* *Delete*, nonaktifkan, atau hapus entri yang ada

Karena operasi ini sangat mendasar, operasi tersebut sering didokumentasikan dan dijelaskan di bawah satu judul komprehensif seperti "manajemen kontak" atau "manajemen dokumen" secara umum.

## Variasi lainnya
Variasi lain dari operasi CRUD meliputi:

* ABCD (*add, browse, change, delete*)
* CRUDL (*create, read, update, delete, list*)
* BREAD (*browse, read, edit, add, delete*)
* DAVE (*delete, add, view, edit*)
* CRAP (*create, replicate, append, process*)

## Lihat juga

* Transfer status representasional (REST)
* Pola rekaman aktif
* Bahasa manipulasi data
* Masukan/Keluaran
* ACID
* Kueri dengan Contoh
* Pemisahan perintah–kueri
* Perancah (pemrograman)

## Referensi