Database Programming 2020 - Simulasi Ujian Database Programming

Postingan kali ini adalah postingan tentang Database Programming, yang tentu saja sangat cocok bagi anda yang ingin menambah pengetahuan tentang Database Programming. Bagaimana cara membuat Function, Procedure, Commit, Rollback, View, dan Trigger menggunakan Command Line.

Database
Database atau basis data adalah sekumpulan informasi yang disimpan didalam komputer secara sistematik sehingga dapat diperiksa menggunakan program komputer untuk memperoleh informasi dari basis data tersebut[2].
Database digunakan untuk menyimpan informasi atau data yang terintegrasi dengan baik didalam komputer[1].

SQL dan MySQL :
SQL (Structured Query Language) adalah sebuah bahasa yang digunakan untuk mengakses data dalam basis data relational[3].
MySQL adalah sebuah perangkat lunak sistem manajemen basis data SQL (bahasa inggris : database management system) atau DBMS yang multithread, multi-user, dengan sekitar 6 juta instalasi diseluruh dunia[1].

Membuat Database :
   > CREATE DATABASE mahasiswa_sulaiman;
(untuk nama database bisa menggunakan nama lain sesuai keinginan anda)

Membuat Tabel :
Membuat tabel Jurusan
   > CREATE TABLE jurusan(
   > kd_jurusan char(3) primary key,
   > nama_jurusan varchar(100)
   > );

Membuat Tabel :
Membuat tabel Mahasiswa
   > CREATE TABLE mahasiswa(
   > nim char(8) primary key,
   > kd_jurusan char(3),
   > nama_mahasiswa varchar(100),
   > no_hp varchar(12),
   > agama varchar(10),
   > jk varchar(6)
   > );

Membuat Tabel :
Membuat tabel Log Mahasiswa
   > CREATE TABLE log_mahasiswa(
   > id int primary key auto_increment,
   > nim varhcar(8),
   > aksi varchar(6),
   > tanggal date
   > );

Membuat Relasi antar Tabel :
Mahasiswa(N) to Jurusan(1)
   > ALTER TABLE mahasiswa ADD CONSTRAINT
   > fk_kd_jurusan1 FOREIGN KEY(kd_jurusan)
   > REFERENCES jurusan(kd_jurusan)
   > ON UPDATE CASCADE
   > ON DELETE CASCADE;

Setelah itu, silahkan isikan data tersebut. Dimulai dari mengisi data pada tabel jurusan kemudian tabel mahasiswa, masing-masing minimal 3 data. Untuk tabel log mahasiswa jangan diisi terlebih dahulu.

Methode (Function dan Stored Procedure) :
Function dan Stored Procedure merupakan suatu kumpulan perintah atau statement yang disimpan dan dieksekusi di server database MySQL.

Membuat Function :
Jumlah Mahasiswa berdasarkan Jurusan
   > DELIMITER $$
   > CREATE FUNCTION f_jml_mhs(vkd_jurusan char(3))
   > RETURN int
   > BEGIN
   > DECLARE vjml_mhs int;
   > SELECT COUNT(*) AS jumlah FROM mahasiswa WHERE
   > kd_jurusan=vkd_jurusan INTO vjml_mhs;
   > RETURN vjml_mhs;
   > END$$

Mengakhiri Perintah Delimiter :
   > DELIMITER ;

Memanggil Function :
Memanggil Function Jumlah Mahasiswa berdasarkan Jurusan
   > SELECT f_jml_mhs('...');
catatan : titik diisi dengan data kode jurusan yang telah diisi sebelumnya.

Membuat Stored Procedure :
Tambah Jurusan :
   > CREATE PROCEDURE p_tmbh_jrsn(vkd_jurusan char(3),
   > vnama_jurusan varchar(100))
   > INSERT INTO jurusan VALUES(vkd_jurusan, vnama_jurusan);

Tambah Mahasiswa :
   > CREATE PROCEDURE p_tmbh_mhs(vnim varchar(8),
   > vkd_jurusan char(3), vnama_mahasiswa varchar(100),
   > valamat text, vno_hp varchar(12), vagama varchar(10),
   > vjk varchar(6))
   > INSERT INTO mahasiswa VALUES(vnim, vkd_jurusan,
   > vnama_mahasiswa, valamat, vno_hp, vagama, vjk);

Menggunakan Stored Procedure yang telah dibuat :
   > CALL nama_procedure();

Contoh :
   > CALL p_tmbh_jrsn('j03','Akuntansi');

View :
*) Suaru tampilan tabel virtual.
*) Berisi perintah SELECT ke tabel dalam database.
*) view merupakan perintah SELECT yang disimpan, sehingga saat kita membutuhkannya, kita dapat langsung memanggilnya tanpa perlu kita mengetikkan perintah SELECT kembali.

Membuat View :
Jumlah Mahasiswa :
   > CREATE view v_totalmhs AS
   > SELECT kd_jurusan, nama_jurusan, f_jml_mhs(kd_jurusan)
   > FROM jurusan;

Data Mahasiwa :
   > CREATE view v_datamhs AS
   > SELECT mahasiswa.nim, mahasiswa.nama_mahasiswa,
   > mahasiswa.alamat, mahasiswa.jk, mahasiswa.agama,
   > jurusan.nama_jurusan FROM mahasiswa LEFT JOIN
   > jurusan ON mahasiswa.kd_jurusan=jurusan.kd_jurusan;

Commit dan Rollback :
*) Begin atau start transaction digunakan untuk memulai transaksi.
*) Commit untuk mengakhiri transaksi dan menyimpan semua perubahan.
*) Rollback digunakan untuk menghentikan proses transaksi dan mengabaikan semua perubahan yang telah dilakukan.

Perintah Sebelum Commit dan Rollback :
   > SHOW VARIABLES '%autocommit%';
   > SET autocommit=0;

Contoh Commit :
   > START TRANSACTION;
   > CALL p_tmbh_jrsan('j04','Mesin Otomotif');
   > COMMIT;

Contoh Rollback :
   > START TRANSACTION;
   > CALL p_tmbh_jrsan('j05','Agro');
   > ROLLBACK;

Membuat Procedure dengan Commit dan Rollback :
   > DELIMITER $$;
   > CREATE PROCEDURE p_tmbh_jrsn_lg(v_kd_jurusan char(3),
   > INSERT INTO jurusan VALUES(vkd_jurusan, vnama_jurusan);
   > IF vkd_jurusan = '' OR cnama_jurusan = '' THEN
   > ROLLBACK;
   > ELSE
   > COMMIT;
   > END IF;
   > END$$

Mengakhiri Perintah Delimiter :
   > DELIMITER ;

Trigger :
*) Trigger adalah sebuah script perintah MySql yang memicu suatu kejadian dalam database.
*) Trigger digunakan untuk memanggil satu atau beberapa perintah SQL secara otomatis sebelum atau sesudah terjadi INSERT, UPDATE, atau DELETE dari suatu tabel.
*) Trigger dapat digunakan untuk melakukan validasi dan verifikasi data sebelum data tersebut disimpan.

Membuat Trigger :
Insert ke tabel log mahasiswa saat terjadi proses insert pada tabel mahasiswa
   > CREATE TRIGGER trg_insertmhs AFTER INSERT ON mahasiswa
   > FOR EACH ROW
   > INSERT INTO log_mahasiswa
   > VALUES(NULL, new.nim, 'INSERT', now());

Insert ke tabel log mahasiswa saat terjadi proses update pada tabel mahasiswa
   > CREATE TRIGGER trg_insertmhs AFTER UPDATE ON mahasiswa
   > FOR EACH ROW
   > INSERT INTO log_mahasiswa
   > VALUES(NULL, old.nim, 'UPDATE', now());

Insert ke tabel log mahasiswa saat terjadi proses delete pada tabel mahasiswa
   > CREATE TRIGGER trg_insertmhs AFTER DELETE ON mahasiswa
   > FOR EACH ROW
   > INSERT INTO log_mahasiswa
   > VALUES(NULL, old.nim, 'DELETE', now());



Sumber :

  1. Solichin, Achmad. Januari 2010. MySQL 5 Dari Pemula Hingga Mahir. Universitas Budi Luhur : Jakarta. HTTP : //ACHMATIM.NET
  2. http://id.wikipedia.org/wiki/Database
  3. http://id.m.wikipedia.org/wiki/SQL

Comments