Database MySQL merupakan salah satu Relational Database Management System (RDBMS) yang paling banyak digunakan, setidaknya untuk proses belajar mahasiswa pada matakuliah sistem basis data. Tulisan kali ini akan membahas bagaimana membuat database, membuat tabel hingga melakukan operasi menambah data, menampilkan data, melakukan perubahan hingga menghapus data. Istilah ini familiar disebut CRUD (Create-Read-Update-Delete). Praktik membuat dan operasi CRUD pada artikel ini akan dilakukan pada aplikasi online dbfiddle.uk,
Membuat Database
Studi kasus yang digunakan ialah database kampus yang nantinya terdiri dari tabel mahasiswa, matakuliah, dan tabel krs. Jalankan perintah berikut untuk membuat database bernama kampus:
-- membuat database CREATE DATABASE kampus;
Membuat Tabel
Seperti yang sudah disinggung sebelumnya, akan terdapat 3 (tiga) buah tabel yang akan dibuat di dalam database kampus, yaitu tabel mahasiswa untuk menampung data-data mahasiswa; tabel matakuliah untuk menampung data-data matakuliah; dan tabel krs (kartu rencana studi) digunakan untuk menampung data mahasiswa yang mengambil matakuliah.
Tabel Mahasiswa
Tabel mahasiswa terdiri dari 3 (tiga) kolom, yaitu nim, nama, dan jk (jenis kelamin). Kolom atau field yang dijadikan primary key adalah kolom nim.
-- membuat tabel mahasiswa CREATE TABLE mahasiswa ( nim VARCHAR(10) NOT NULL, nama VARCHAR(25) NOT NULL, jk ENUM('L', 'P') NOT NULL DEFAULT 'L', PRIMARY KEY(nim) );
Selain membuatkan tabelnya, disini kita juga akan menambahkan beberapa sampel data mahasiswa. Perintah berikut digunakan untuk memasukkan beberapa data ke dalam tabel mahasiswa:
-- menambahkan beberapa data INSERT INTO mahasiswa VALUES ('1122334455', 'Adi Putra', 'L'), ('2233445566', 'Budi Santoso', 'L'), ('3344556677', 'Cindy Saputri', 'P'), ('4455667788', 'Dodi Koswara', 'L');
Tabel Matakuliah
Lakukan hal yang sama pada tabel matakuliah, yakni membuat tabel dan memasukkan beberapa sampel data ke dalam tabel matakuliah. Tabel ini terdiri dari 2 (dua) kolom/field saja yaitu kode, dan nama dimana field kode digunakan sebagai primary key.
-- membuat tabel matakuliah CREATE TABLE matakuliah ( kode VARCHAR(6) NOT NULL, nama VARCHAR(50) NOT NULL, PRIMARY KEY(kode) );
Selanjutnya masukkan beberapa sampel data:
-- menambahkan beberapa sampel data matakuliah INSERT INTO matakuliah VALUES ('IF1201', 'Sistem Basis Data'), ('IF1202', 'Pemrograman Web Dasar'), ('IF1203', 'Algoritma dan Pemrograman'), ('IF2101', 'Algoritma dan Pemrograman Lanjutan');
Tabel KRS
Tabel KRS ini hanya berisi 2 (dua) field saja, yakni field nim dan kode, dimana keduanya merupakan foreign key dari tabel mahasiswa dan tabel matakuliah. Kita dapat menjadikannya sebagai composite primary key. Selain itu kita juga akan tambahkan constraint ON DELETE cascade, dimana ketika data pada tabel mahasiswa atau tabel matakuliah dihapus, maka data pada tabel krs yang memiliki hubungan dengan salah satu atau kedua tabel di atas akan ikut terhapus.
-- membuat tabel krs CREATE TABLE krs ( nim VARCHAR(10) NOT NULL, kode VARCHAR(6) NOT NULL, FOREIGN KEY(nim) REFERENCES mahasiswa(nim) ON DELETE cascade, FOREIGN KEY(kode) REFERENCES matakuliah(kode) ON DELETE cascade, PRIMARY KEY(nim, kode) );
Setelahnya, kita akan memasukkan beberapa sampel data ke dalam tabel krs ini. Untuk data-datanya sendiri harus sama dengan data nim dan data kode dari tabel mahasiswa ataupun tabel matakuliah.
-- memasukkan beberapa data INSERT INTO krs VALUES ('1122334455', 'IF1201'), ('1122334455', 'IF1203'), ('2233445566', 'IF1201'), ('3344556677', 'IF1202'), ('4455667788', 'IF2101');
Menampikan data
Sampai tahapan ini kita telah berhasil membuat database kampus, membuat dan memasukkan beberapa data ke dalam tabel mahasiswa, matakuliah, dan tabel krs. Selanjutnya kita akan coba menampilkan data mahasiswa yang mengambil matakuliah menggunakan perintah JOIN.
-- menampilkan data mahasiswa yang mengambil matakuliah SELECT mhs.nim, mhs.nama, if(jk='L', 'Laki-laki', 'Perempuan') as kelamin, matkul.nama as matakuliah, substr(matkul.kode, 3, 1) as semester FROM mahasiswa mhs JOIN krs ON mhs.nim = krs.nim JOIN matakuliah matkul ON krs.kode = matkul.kode ORDER BY nim;
Output dari query di atas dapat dilihat seperti pada gambar berikut:
Mengubah Data
Selanjutnya kita akan coba untuk mengubah nama di salah satu data pada tabel mahasiswa. Data Budi Santoso kita ganti menjadi Budi Waseso berdasarkan NIM-nya ‘2233445566’ dengan menggunakan perintah:
-- ubah data mahasiswa UPDATE mahasiswa SET nama = 'Budi Waseso' WHERE nim = '2233445566';
Setelah perintah di atas dijalankan, kemudian jalankan perintah ini lagi untuk melihat hasil perubahannya:
-- menampilkan data mahasiswa yang mengambil matakuliah SELECT mhs.nim, mhs.nama, if(jk='L', 'Laki-laki', 'Perempuan') as kelamin, matkul.nama as matakuliah, substr(matkul.kode, 3, 1) as semester FROM mahasiswa mhs JOIN krs ON mhs.nim = krs.nim JOIN matakuliah matkul ON krs.kode = matkul.kode ORDER BY nim;
Menghapus Data
Terakhir kita akan coba untuk menghapus salah satu data mahasiswa yang bernama Adi Putra dari dalam tabel mahasiswa, dengan menggunakan perintah:
DELETE FROM mahasiswa WHERE nim = '1122334455';
Karena data mahasiswa bernama Adi Putra telah dihapus, maka seharusnya data pada tabel KRS dengan nim ‘1122334455’ juga telah hilang. Untuk membuktikannya jalankan kembali perintah berikut:
-- menampilkan data mahasiswa yang mengambil matakuliah SELECT mhs.nim, mhs.nama, if(jk='L', 'Laki-laki', 'Perempuan') as kelamin, matkul.nama as matakuliah, substr(matkul.kode, 3, 1) as semester FROM mahasiswa mhs JOIN krs ON mhs.nim = krs.nim JOIN matakuliah matkul ON krs.kode = matkul.kode ORDER BY nim;
Demikianlah tahapan-tahapan dalam membuat dan melakukan operasi CRUD pada database MySQL yang diimplementasikan untuk pengolahan data mahasiswa, matakuliah, dan krs. Setiap langkah-langkah yang saya buat dapat diakses pada tautan berikut. Semoga bermanfaat!