Tutorial CRUD Dengan PHP dan MySQL Bagi Pemula (Sangat Disarankan!)

Maret 6, 2020


Estimasi Waktu Baca: 7 menit

PHP: Hypertext Preprocessor merupakan bahasa untuk pengembangan aplikasi berbasis web. PHP juga merupakan salah satu bahasa yang wajib dipelajari jika ingin belajar pemrograman web. Dengan menggunakan PHP kita dapat membuat sebuah website yang dinamis dengan mudah, karena PHP juga dapat disisipkan ke dalam HTML.

Biasanya ketika atau setelah belajar bahasa pemrograman PHP kita juga akan belajar salah satu Sistem Manajemen Basis Data atau dalam bahasa inggrisnya Database Management System (DBMS), yang mana pada umumnya dan kebanyakan programmer menggunakan MySQL sebagai DBMS-nya. Dalam MySQL terdapat 2 ekstensi yaitu mysql dan mysqli. Namun sekarang penggunaan ekstensi mysql sudah sangat tidak direkomendasikan, maka dari itu pada tutorial kali ini kita akan menggunakan ekstensi mysqli dalam pembuatan fitur CRUD.

Fitur CRUD merupakan fitur dasar dan wajib dalam kebanyakan projek. CRUD sendiri merupakan singkatan dari Create, Read, Update, Delete. Dengan melihat kepanjangan setiap hurufnya kalian seharusnya sudah punya gambaran tentang fitur ini. Jadi tak perlu berlama-lama lagi, mari kita koding!


Membuat CRUD dengan PHP dan MySQL

Sebelum beranjak ke langkah pertama saya akan informasikan panjang lebar terlebih dahulu bahwa dalam pembuatan program ini saya menggunakan sistem operasi Linux Ubuntu 18.04 LTS. Jadi mungkin pada bagian persiapan projek ini sedikit berbeda dengan pengguna sistem operasi Windows.

Oke lanjut, saya asumsikan kalian sudah menginstall LAMPP untuk user linux, sedangkan di Windows lebih disebut XAMPP. Maka dari itu untuk membuat projek CRUD ini bisa berjalan maka kalian harus meletakkannya di server lokal. Server lokal Linux berada di /var/www/html/.

Jadi coba buat projek dalam folder html/ terserah namanya.

Sedangkan bagi pengguna Windows letakkan projeknya di C:\xampp. Kemudian jalankan aplikasi XAMPP.

*Maaf tidak ada screenshot karena saya tidak punya pc yang ber-OS Windows. Penjelasan tersebut berdasarkan pengalaman. Yah, pengalaman merupakan harta yang berharga.


Membuat Database

Setelah melewati perbedaan yang ada, tahap pertama dalam pembuatan fitur CRUD ini kita perlu adanya database. Tenang saja di sini saya tidak akan menyuruh kalian untuk membuatnya manual, karena saya sudah membuatnya untuk kalian, jadi kalian bisa mengopasnya dengan ceria.

Setelah di kopas kalian simpan dengan nama sesuai kode baris pertama universitas dan berekstensi .sql. Jadinya universitas.sql.

Buka localhost/phpmyadmin, klik menu import, dan pilih database universitas.sql.

Selamat! jika kalian sudah berhasil membuat database universitas.sql dan mengimportnya ke phpmyadmin. Jika ada pertanyaan seputar kode-kode di atas sudah saya siapkan di bawah.

Kalian cek juga struktur tabel dan data dummy yang sudah diinputkan sebelumnya.


Penjelasan Kode.

Dalam baris ini kita menggunakan query atau permintaan untuk membuat database dengan nama universitas.

Kemudian kita juga membuat permintaan untuk membuat tabel bernama mahasiswa. Tabel tersebut akan sukses dibuat jika dalam database universitas tidak ada tabel dengan nama yang sama (mahasiswa).

Berlanjut membuat kolom, penjelasan setiap kolom dapat kalian baca di bawah ini.

  • NIM: bertipe data integer (INT) dengan batas jumlah karakter (11), tidak boleh kosong (NOT NULL), dan otomatis bertambah saat pembuatan data baru (AUTO_INCREMENT)
  • NAMA: bertipe data string (VARCHAR) dengan batas jumlah karakter (25), tidak boleh kosong (NOT NULL)
  • TEMPAT_LAHIR: bertipe data string (VARCHAR) dengan batas jumlah karakter (25), tidak boleh kosong (NOT NULL)
  • TANGGAL_LAHIR: bertipe date (DATE) dengan format (yy-mm-dd), tidak boleh kosong (NOT NULL)
  • GENDER: bertipe data enum dengan 2 pilihan yang sudah ditentukan (pria dan wanita) namun hanya diperbolehkan memilih satu data, tidak boleh kosong (NOT NULL)
  • ALAMAT: bertipe data string (TEXT) dengan batas jumlah karakter default (65535), tidak boleh kosong (NOT NULL)
  • TELEPON: bertipe data string (VARCHAR) dengan batas jumlah karakter (15), tidak boleh kosong (NOT NULL)

Agar setiap baris tabel memiliki nomor id yang unik (tidak ada yang sama) atau tidak terduplikat maka saya jadikan nim sebagai Primary Key-nya.

Baris ini menyatakan bahwa MySQL menggunakan Engine=InnoDB dengan karakter set (CHARSET) DEFAULT latin1 dan AUTO_INCREMENT 64 bit integer. Jika masih bingung lain waktu akan saya buatkan artikel lengkapnya.

Setelah membuat database dan tabel di dalamnya, saya lanjutkan dengan memasukkan data dummy atau data awal ke dalam tabel yang telah dibuat. Untuk menyisipkan data ke dalam tabel kita menggunakan query INSERT INTO nama_tabel (definisikan setiap kolom mahasiswa)

Lalu masukkan nilai atau VALUES ke dalam kolom-kolom tersebut dengan tipe yang sama dengan masing-masing kolom.


Membuat Koneksi

Agar database dapat terhubung dengan perintah-perintah yang kita buat nantinya maka di sini perlu dibuatkannya koneksi atau jembatan untuk menghubungkannya. Maka langkah selanjutnya kita buat file dengan nama koneksi.php. Isi file koneksi.php seperti di bawah ini. Monggo dikopas.


Penjelasan Kode

Kita buat 4 variabel dengan nama dan fungsi sebagai berikut:

Lalu buat variabel untuk menampung fungsi mysqli_connect. Fungsi ini digunakan untuk menghubungkan antara PHP dan MySQL sever. Fungsi mysqli_connect() membutuhkan parameter antara lain mysqli_connect($host, $username, $password, $database).

Skrip berikut sebenarnya hanya untuk mengetes apakah ada error atau tidak dalam proses koneksi ini. Jika ada maka akan dimunculkan pesan error menggunakan fungsi beserta nomor dari pesan error tersebut.


Membuat Fitur Create Data

Karena CRUD diawali dengan huruf C yang berarti Create data atau Buat data, bisa juga disebut Tambah data. Maka tahap pertama kita buat file dengan nama tambah.php. Kemudian langsung saja kopas kode panjang nan indah berikut serta seperti biasa penjelasan kodenya ada di bawahnya.

Masukkan tiap nilai data pada masing-masing field

Simpan, lalu coba lihat di phpmyadmin apakah data yang kalian inputkan tadi berhasil disimpan? Jika berhasil selamat, jika tidak tolong dibaca kembali atau bisa kalian tanyakan di kolom komentar.


Penjelasan Kode

Buat form dengan aksi yang mengarah ke file itu sendiri. Yah action di sini merupakan atribut html yang biasanya digunakan untuk memproses kemana selanjutnya data setelah disubmit . Lalu action tersebut harus dibarengi dengan sebuah metode. Karena ini fitur tambah data maka metode yang cocok digunakan adalah POST. Sedangkan name pada form di sini saya masukkan hanya sebagai identifikasi saja bahwa form ini merupakan form tambah data.

Terus buat masing-masing field inputan bertipe text untuk field data nama, tempat_lahir, dan telepon mahasiswa.

Nah untuk field tanggal_lahir saya menggunakan tipe field date dengan format mm-dd-yy.

Kemudian gender karena berupa pilihan lebih pantas menggunakan radio.

Sedangkan untuk data alamat yang siapa tahu membutuhkan tampungan karakter yang sangat panjang, cocok jika fieldnya berupa textarea.

Setelah data setiap field dimasukkan, selanjutnya kita perlu tombol ‘persetujuan’ untuk mengolah data tersebut, maka kita buat tombol submit dengan identifikasi simpan di bawahnya.

Data yang sudah dimasukkan tadi siap untuk diolah dan disimpan, agar data jelas ingin dimasukkan ke mana maka kita perlu jembatan atau koneksi yang sudah kita buat sebelumnya pada file koneksi.php. Masukkan file koneksi.php agar terhubung dengan file tambah.php menggunakan fungsi include_once().

Setelah itu kita mulai cek apakah nilai data yang dilempar dari form tambah tadi memiliki nilai atau NULL sekalipun menggunakan fungsi isset().

Namun, sebelumnya kita sudah atur bahwa setiap kolom dalam tabel mahasiswa tidak boleh NULL, jadi meskipun kalian paksa memasukkan data yang tidak bernilai maka database tidak akan mau menerima data tersebut.

Selanjutnya, data ditampung ke dalam setiap variabel sesuai dengan name pada tiap field dalam form tambah. Perlu diingat karena data akan disimpan maka cantumkan juga method POST.

Terakhir saatnya data disimpan ke dalam tabel mahasiswa melalui fungsi mysqli_query(). Fungsi ini untuk digunakan untuk menjalankan perintah atau instruksi query ke database, jadi dalam mysqli_query() diperlukan parameter mysqli_query($koneksi, ‘query atau permintaan untuk mengolah data’).


Membuat Fitur Read Data

Read Data atau Lihat data merupakan fitur yang memudahkan kita untuk mengecek apakah data-data yang sudah kita inputkan sebelumnya memang ada dalam database, jadi nantinya kita tidak perlu mondar-mandir masuk phpmyadmin untuk mengeceknya.

Langsung saja kopas kode di bawah ini dan simpan atas nama index.php. Kenapa namanya index.php? Agar menandakan kalau halaman ini merupakan halaman yang pertama muncul (default) ketika projek dibuka.


Penjelasan Kode

Supaya data nyaman untuk dilihat maka kita tampilkan dengan menggunakan tabel

Oh ya di atasnya saya tambahkan tombol untuk mengarah ke fitur tambah.

Kemudian buat query untuk menampilkan data dengan SELECT. Lambang bintang (*) menyatakan semua kolom dalam tabel mahasiswa dan data yang ditampilkan berdasarkan nim.

Jadikan data hasil query menjadi array asosiatif dengan fungsi mysqli_fetch_array dan akses array tersebut menggunakan perulangan while

Masukkan tiap data ke dalam tabel definisi

Kemudian pada kolom kelola data buat 2 link menuju fitur edit dan hapus data yang setelah ini akan kita buat


Membuat Fitur Update Data

Fitur ketiga Update data, bisa dikatakan jika terdapat kesalahan dalam penginputan data maka fitur update atau edit data ini sangat diperlukan. Copy kode berikut dan beri nama edit.php

Sekarang coba edit data yang barusan kita inputkan tadi.


Penjelasan Kode

Pertama kita tampilkan dulu data sebelumnya dengan cara seperti menampilkan data pada file index.php

Tambahkan inputan nim namun harus kalian sembunyikan

Kemudian buat form seperti pada file tambah.php namun bedanya setiap field pada tag <input> ditambah atribut value dengan nilai masing-masing data yang sudah disimpan sebelumnya atau data lama.

Sedangkan inputan jenis radio untuk data gender saya beri percabangan if dengan kondisi bila data gender sebelumnya bernilai pria, maka inputan radio akan secara default bernilai pria sesuai data lama. Jika tidak maka sebaliknya.

Lalu karena textarea tidak bisa diberi atribut value maka nilainya diletakkan diantara tag textarea.

Selesai, maka selanjutnya buat inputan dengan tipe submit dan beri identifikasi dengan nama update.

Nah, sekarang saatnya kita mengolah data, setelah data form inputan dikirim maka saatnya diolah. Prosesnya sama seperti saat membuat fitur tambah data, yang membedakan hanya querynya atau bagaimana cara kita meminta untuk mengubah data tersebut.

Maka dari itu kita gunakan query UPDATE nama_tabel lalu SET data dari form inputan ke dalam masing-masing kolom mereka dimana data yang dimasukkan berdasarkan nim yang dipilih sebelumnya.

Jika berhasil maka akan diredirect ke index.php.


Membuat Fitur Delete Data

Terakhir fitur yang paling mudah dan cepat dibuat di antara fitur yang lain, yah fitur Delete data. Cukup copy barisan kode singkat di bawah ini.


Penjelasan Kode

Hubungkan dulu ke database, ambil data nim ketika data tersebut di klik dari file index.php

Baru setelah itu kita hapus dengan query Delete di bawah ini dimana data yang dihapus berdasarkan nim yang dipilih sebelumnya. Jika berhasil redirect ke halaman index.php

Kategori