Anda di halaman 1dari 11

Modul 2 : DML, DCL, dan TCL

Tujuan Praktikum
- Mahasiswa memahami dan mengaplikasikan DML, DCL, dan TCL.
- Mahasiswa mampu memanipulasi data di dalam database sekurang-kurangnya proses
CRUD di dalam database.
- Mahasiswa mampu mengatur hak akses terhadap database
- Mahasiswa mampu mengantisipasi kesalahan-kesalahan yang terjadi pada saat
memanipulasi isi dari database.

Materi Praktikum
1. DML (Data Manipulation Language)
DML adalah kumpulan perintah SQL yang berfungsi untuk memanipulasi data di dalam
tabel di database, seperti SELECT, INSERT, UPDATE, DELETE, dan perintah-perintah
lain seperti CALL, DO, HANDLER, LOAD DATA INFILE, REPLACE, TRUNCATE,
dan EXPLAIN.
a. INSERT
INSERT digunakan untuk menambahkan data pada tabel dengan format penulisan
sebagai berikut : INSERT INTO nama_tabel (kolom-1, kolom-2, kolom-n)

values(nilai-1, nilai-2, nilai-n); atau menggunakan perintah INSERT INTO


nama_tabel values (nilai-1, nilai-2, nilai-n); untuk mengisi seluruh kolom
pada tabel.

Untuk mempercepat insert data, multiple insert dapat dilakukan dengan cara
menambahkan data yang akan dimasukkan selanjutnya dengan memisahkannya
menggunakan tanda koma (,), dengan format penulisan sebagai berikut :

INSERT INTO nama_tabel values (nilai-1, nilai-2, nilai-n), (nilai-1a,


nilai-2a, nilai-na);

INSERT INTO nama_tabel (kolom-1, kolom-2, kolom-n) values (nilai-1, nilai-


2, nilai-n), (nilai-1a, nilai-2a, nilai-na);

Berikut contoh penggunaan INSERT pada database praktikum dengan kolom id (PK),
nama, dan kelas.

Praktikum Perancangan Basis Data


b. UPDATE
Perintah UPDATE digunakan untuk mengubah data yang telah ada di dalam tabel
dengan format penulisan UPDATE nama_tabel SET kolom-1 = value-1, kolom-2 =
value-2, kolom-n=value-n WHERE kondisi;

c. DELETE
Perintah DELETE digunakan untuk menghapus data yang ada dalam tabel. Cara
penulisan perintah DELETE adalah DELETE FROM nama_tabel WHERE kondisi;

Praktikum Perancangan Basis Data


d. SELECT
Perintah SELECT digunakan untuk menampilkan seluruh atau beberapa data dari suatu
tabel yang juga dapat dihubungkan dengan tabel lainnya. Berikut beberapa cara dalam
melakukan perintah SELECT :
1. Menggunakan Tanda Asterisk (*) untuk menampilkan seluruh data yang ada pada
tabel yang dipanggil
SELECT * FROM nama_tabel;

2. Menampilkan data pada kolom tertentu, SELECT kolom-1, kolom-2, kolom-n FROM
nama_tabel;

3. Menggunakan fungsis agregat


Fungsi Agregat adalah fungsi yang menerima koleksi nilai dan mengembalikan nilai
tunggal sebagai hasilnya. Format penulisan nya adalah SELECT fungsi_agregat
(nama_kolom) FROM nama_tabel; . Standar ISO mendefinisikan lima jenis fungsi
agregat, yaitu :
a COUNT : untuk menghitung jumlah baris pada suatu kolom dalam suatu tabel.
b SUM : untuk menghitung jumlah nilai pada kolom suatu tabel. Perintah SUM
akan lebih efektif digunakan pada field dengan data bertipe angka.
c AVG : untuk mengitung nilai rata-rata pada field dalam suatu tabel, dan akan
lebih efektif didunakan pada field dengan data bertipe angka.
d MIN : untuk menampilkan data dengan nilai terbesar dari suatu field dalam
tabel.
e MAX : untuk menampilkan data dengan nilai terbesar dari suatu field dalam
tabel

Praktikum Perancangan Basis Data


4. Menggunakan klausa WHERE dan kondisi tertentu
Klausa WHERE digunakan jika data yang ingin ditampilkan, diubah, ataupun dihapus
hanya data-data dengan kondisi tertentu saja. Artinya dapat digunakan juga pada
perintah UPDATE, DELETE, dan perintah lain yang membutuhkan kondisi.
Beberapa contoh perintah yang sering digunakan dalam penjabaran kondisi adalah
sebagai berikut :
1. Operator aritmatika, contohnya menampilkan semua data pada tabel mahasiswa
yang (nilai pada kolom) ipk-nya kurang dari 2.5, maka penulisannya adalah
SELECT * FROM mahasiswa WHERE ipk < 2.5;

2. Perintah LIKE (Pattern Matching), contohnya menampilkan data mahasiswa


dengan nama tertentu.
a) SELECT * FROM mahasiswa WHERE nama LIKE “Ful%‟; akan menampilkan
seluruh data mahasiswa dengan (value pada kolom) nama diawali “Ful”
b) SELECT * FROM mahasiswa WHERE nama LIKE “%Ful‟; akan menampilkan
seluruh data mahasiswa dengan (value pada kolom) nama diakhiri “Ful”
c) SELECT * FROM mahasiswa WHERE nama LIKE “%Ful%‟; akan menampilkan
seluruh data mahasiswa dengan (value pada kolom) nama mengandung kata
“Ful”

Praktikum Perancangan Basis Data


d) SELECT * FROM mahasiswa WHERE nama NOT LIKE “Ful%‟; akan menampilkan

seluruh data mahasiswa dengan (value pada kolom) nama yang tidak
mengandung kata “Ful”. Perintah NOT LIKE juga dapat digunakan seperti
LIKE
3. Perintah AND dan OR, berfungsi sebagai penghubung dua kondisi yang mana
AND mengharuskan seluruh kondisi terpenuhi, sedangkan OR mengharuskan
satu kondisi saja. Contohnya menampilkan seluruh data mahasiswa dengan ipk
kecil dari 2 dan semester 4, maka perintahnya adalah SELECT * FROM mahasiswa
WHERE ipk < 2 AND semester = 4;

4. Perintah BETWEEN dan NOT BETWEEN, IS NULL dan IS NOT NULL, IN


dan NOT IN, dan ORDER BY
Contoh penggunaan BETWEEN/NOT BETWEEN
SELECT * FROM mahasiswa WHERE ipk BETWEEN 2.75 AND 3.25; sama dengan
SELECT * FROM mahasiswa WHERE ipk > 2.75 AND ipk < 3.25;

Contoh penggunaan IS NULL/IS NOT NULL


SELECT * FROM mahasiswa WHERE nama IS NULL; sama dengan SELECT * FROM
mahasiswa WHERE nama = “”;
Contoh penggunaan IN/NOT IN
SELECT * FROM mahasiswa WHERE jurusan IN (‘Sistem Informasi’); sama
dengan SELECT * FROM mahasiswa WHERE jurusan = ‘Sistem Informasi’;
Contoh penggunaan ORDER BY
SELECT * FROM mahasiswa ORDER BY ipk ASC/DESC;

2. DCL (Data Control Language)


DCL merupakan perintah yang digunakan untuk memanipulasi user dan hak akses
terhadap database. Memanipulasi user yang dimaksud di antaranya membuat dan
menghapus user untuk mengakses database yang sudah diberi hak akses. Hal ini diperlukan
untuk membatasi siapa saja yang dapat berkontribusi dan mengotak-atik database yang
telah dibuat. Untuk membuat user dapat menggunakan perintah CREATE USER

'nama_user'[@'lokasi_user' IDENTIFIED BY 'password']; dengan ketentuan perintah


yang dimulai dari ‘@’ sampai akhir perintah bersifat opsisonal, artinya hanya diisi sesuai
kebutuhan. Berikut penjelasan untuk perintah di atas :
 nama_user merupakan nama user yang akan digunakan untuk masuk ke dalam
database, maksimal 16 karakter.

Praktikum Perancangan Basis Data


 lokasi_user bersifat opsional (boleh diisi atau dikosongkan), contoh : CREATE USER
'nama_user' IDENTIFIED BY 'password'; . Value yang dapat diisi pada lokasi_user
contohnya ip addres, wildcard (%) yang berarti sama dengan tidak menuliskannya
(dapat diakses dari semua lokasi), bahkan ip address dan wildcard ( ‘uname
‘@’10.44.7.%’ artinya database dapat diakses dari lokasi 10.44.7.1 sampai
10.44.7.255)
 password juga bersifat opsional, jika ketika membuat user password disertakan, maka

untuk masuk ke database menggunakan username tersebut juga harus menyertakan


password yang telah dibuat ( mysql –u uname –ppassword )

Selain membuat user, DCL juga dapat menghapus user yang telah dibuat dengan
menggunakan perintah DROP USER 'uname'@'lokasi';
Note : tulisan berwarna hijau bersifat opsional, dapat digunakan ketika menghapus
user yang pada saat membuatnya disertai ip address.

Dalam DCL dijumpai dua perintah untuk membuat dan mencabut hak akses terhadap
database dari user tertentu.
 GRANT : memungkinkan pengguna mengakses hak istimewa ke database
GRANT hak_akses [daftar_kolom][, hak_akses [daftar_kolom]] ON
nama_database.nama_tabel TO 'nama_user'@'lokasi_user';

 hak_akses adalah privileges yang akan berikan kepada user tersebut. Hak akses
disini berisi query yang diperbolehkan, seperti: SELECT, INSERT, UPDATE,
DELETE, atau query lainnya. Jika kita ingin memberikan hak penuh untuk
semua query dasar tersebut, hak_akses ini bisa diisi dengan ALL.
 daftar_kolom adalah daftar kolom yang akan diberi akses jika hanya akan
memberi akses terhadap kolom-kolom tertentu saja, bersifat opsional.
 nama_database adalah nama database yang ingin diberikan hak akses. Jika kita
mengizinkan user tersebut dapat mengakses semua database yang ada,
nama_database bisa ditulis dengan tanda asterisk (*).
 nama_tabel adalah nama tabel yang ingin diberikan hak akses. Jika kita
mengizinkan user dapat menggunakan semua tabel, nama_tabel bisa ditulis
dengan tanda asterisk (*).
 nama_user adalah nama dari user yang akan diberikan hak akses.

Praktikum Perancangan Basis Data


 lokasi_user adalah alamat IP dari user yang ingin diberikan hak akses.
lokasi_user dan nama_user dapat dihilangkan jika ingin memberikan akses
kepada seluruh user.

Untuk melihat hak akses pada user yang telah diberikan hak akses dapat
menggunakan perintah SHOW GRANTS FOR ‘nama_user’@’lokasi_user’;

 REVOKE : menghapus semua atau sebagian hak akses pengguna yang telah diberikan
dengan menggunakan perintah GRANT, penggunaannya pun sama dengan perintah
GRANT.
REVOKE hak_akses [daftar_kolom] ON nama_database.nama_tabel FROM

‘nama_user’@’lokasi_user’;

3. TCL (Transaction Control Language)


TCL diperlukan ketika data yang dimodifikasi pada suatu tabel, baik itu ditambah, dihapus,
maupun diubah dapat dibatalkan seketika jika terjadi kesalahan-kesasalahan yang
membuat kita harus mengulang sangat jauh. Fungsi-fungsi yang biasa dipakai untuk TCL
yaitu :
 START TRANSACITON : memulai transaksi baru
 SAVEPOINT identifier : menandai chek point dari suatu database untuk menyimpan
keadaan dari database tersebut
 COMMIT : Mengkomitmenkan transaksi sehingga tidak bisa dibatalkan/menjadikannya
permanen
 ROLLBACK : Kembali ke posisi savepoint atau ke posisi awal transaksi
Berikut contoh penggunaan keempat fungsi tersebut :

Praktikum Perancangan Basis Data


Praktikum Perancangan Basis Data
Dari gambar di atas, setelah melakukan START TRANSACTION data dengan nama
‘alditya’ diupdate menjadi ‘Alditya’ dan disimpan ke dalam SAVEPOINT bernama a.
Selanjutnya ditambahkan sebuah data baru dengan nama ‘Si Praktikan’ dan disimpan ke
dalam SAVEPOINT dengan nama b. Kemudian ditambahkan lagi sebuah data dengan
nama ‘Nyisip’ untuk merubah keadaan database setelah diberikan SAVEPOINT. Jika
ingin membatalkan perintah-perintah sebelumnya, untuk kejadian seperti ini sebenarnya
cukup dengan melakukan query update atau delete saja, namun bagaimana jika kejadian
seperti ini terjadi ketika permasalahan yang sama sudah banyak, apakah harus

Praktikum Perancangan Basis Data


mengupdatenya/menghapusnya satu per satu ? Untuk itu diperlukan perintah yang dapat
meng-undo perintah sebelumnya kembali ke keadaan yang telah ditetapkan melalui
savepoint dengan menggunakan ROLLBACK TO savepoint_identifier; dengan ketentuan
sebagai berikut :
 Hanya bisa di-ROLLBACK jika belum dilakukan perintah COMMIT;
 Dapat digunakan untuk kembali ke bagian paling awal transaksi dengan hanya
menjalankan perintah ROLLBACK;
 Jika SAVEPOINT b dibuat setelah SAVEPOINT a, maka ketika dijalankan perintah
ROLLBACK a;, SAVEPOINT b otomatis terhapus
 Jika SAVEPOINT yang dibuat bernama sama dengan SAVEPOINT yang telah ada,
maka SAVEPOINT lama otomatis terhapus
 Tidak akan bekerja jika AUTOCOMMIT enabled (default mysql), non aktifkan
menggunakan SET AUTOCOMMIT = 0;
 Terdapat beberapa hal yang tidak bisa di-ROLLBACK seperti DDL dll

Instruksi
1. Masuk ke mysql melalui shell dari XAMPP maupun command prompt
2. Buat database ‘himpunan’
3. Buat tabel ‘anggota’ pada database ‘himpunan’
 no_anggota : varchar (15) NOT NULL PK
 nama : varchar (100)
 status : int NOT NULL => 1 = AB, 2 = ALB
 tahun_masuk : int
 jalur_masuk : int NOT NUL => 1 = SNMPTN, 2 =SBMPTN, 3 = MANDIRI
4. Buat user baru yang hanya bisa diakses dari localhost *nama user terserah
5. Berikan akses melihat data semua kolom kecuali jalur_masuk kepada user baru yang telah
dibuat (Coba tes dengan memanipulasi datanya menggunakan user baru tersebut atau
menggunakan SHOW GRANT)
6. Pastikan berada di super admin kemudian START TRANSACTION
7. Isi tabel minimal 6 buah data terdiri dari (1) anda, (2) praktikan sebelah kiri, (3) praktikan
sebelah kanan, (4) praktikan belakang, (5) praktikan di depan, dan (6) salah satu asisten
pengawas praktikum PBD *variasikan data
8. SAVEPOINT pertama

Praktikum Perancangan Basis Data


9. Update data praktikan di depan anda menjadi 1 angkatan di atas anda dan data praktikan
di belakang anda menjadi 1 angkatan di bawah anda
10. SAVEPOINT ke-dua
11. Hapus data asisten
12. SAVEPOINT ke-tiga
13. Tampilkan data anggota himpunan terurut dari yang kecil berdasarkan tahun_masuk yang
melalui jalur SBMPTN dan sama atau lebih dulu masuk daripada anda

Tugas
SELESAIKAN INSTRUKSI TERLEBIH DAHULU

Praktikum Perancangan Basis Data

Anda mungkin juga menyukai