Anda di halaman 1dari 17

SISTEM BASIS DATA

Fungsi dari Komponen-komponen SQL DCL

Dosen pengampu :

Dr. Janner Simarmata S.T., M.Kom.

Disusun Oleh :

KELOMPOK 7 KELAS PTIK A 2021

1. Erni Maharanti Barus (5212151001)

2. Gresnia Artha Aritonang (5213151009)

3. Otniel Kristian Manurung (5212451006)

4. Ray Yudika Sianturi (5212451002)

5. Tio Ainawani (5212451005)

PROGRAM STUDI PENDIDIKAN TEKNOLOGI INFORMATIKA DAN


KOMPUTER
FAKULTAS TEKNIK
UNIVERSITAS NEGERI MEDAN
2022
KATA PENGANTAR

Puji syukur senantiasa kita panjatkan ke hadirat Tuhan yang maha Esa, yang
berkuasa atas seluruh alam semesta, karena berkat rahmat, taufik serta hidayah-Nya
jugalah maka Makalah mengenai Fungsi dari Komponen-komponen SQL DCL mata kuliah
Sistem Basis Data ini dapat diselesaikan tepat pada waktunya.

Kami menyadari bahwa dalam penyusunan tugas Makalah ini tidak terlepas dari
kesalahan dan sangat jauh dari sempurna. Oleh sebab itu, kami sangat mengharapkan kritik
dan saran yang sifatnya membangun demi sempurnanya laporan ini.

Kami berharap semoga laporan ini dapat digunakan sebagaimana mestinya dan bisa
memberikan manfaat bagi kita semua. Semoga Tuhan yang maha Esa mencurahkan rahmat
dan karunia-Nya kepada kita semua.

Medan, April 2022

Kelompok 7

ii
DAFTAR ISI

KATA PENGANTAR...........................................................................................................ii

DAFTAR ISI.........................................................................................................................iii

BAB I PENDAHULUAN......................................................................................................1

1.1 Latar Belakang.............................................................................................................1

1.2 Rumusan Masalah........................................................................................................1

1.3 Tujuan Masalah............................................................................................................1

BAB II PEMBAHASAN.......................................................................................................2

2.1 Create Database............................................................................................................2

2.2 Create User...................................................................................................................4

2.3 Drop User.....................................................................................................................6

2.4 Grant.............................................................................................................................7

2.5 Revoke..........................................................................................................................8

BAB III PENUTUP..............................................................................................................11

3. 1 Kesimpulan...............................................................................................................11

3.2 Soal dan Pembahasan.................................................................................................11

DAFTAR PUSTAKA..........................................................................................................12

iii
BAB I PENDAHULUAN

1.1 Latar Belakang

SQL adalah sekumpulan perintah khusus yang digunakan untuk mengakses data
dalam database relasional. SQL merupakan sebuah bahasa komputer yang mengikuti
standar ANSI (American Nasional Standard Institute) yang digunakan dalam manajemen
database relasional. Dengan SQL, kita dapat mengakses database, menjalankan query
untuk mengambil data dari database, menambahkan data ke database, menghapus data di
dalam database, dan mengubah data di dalam database. Saat ini hampir semua server
database yang ada mendukung SQL untuk melakukan manajemen datanya. Terdapat 3
(tiga) jenis perintah SQL, yaitu DDL, DML dan DCL.

Pada makalah ini akan membahas jenis dari perintah DCL, fungsi beserta komponen
komponennya. DCL atau Data Control Language DCL merupakan perintah SQL yang
berhubungan dengan pengaturan hak akses user, baik terhadap server, database, tabel
maupun field. Perintah SQL yang termasuk dalam DCL antara lain: Create Database,
Create User, Drop User, Grant, Revoke.

1.2 Rumusan Masalah

1. Bagaimana fungsi dari komponen SQL DCL Create Database ?

2. Bagaimana fungsi dari komponen SQL DCL Create User ?

3. Bagaimana fungsi dari komponen SQL DCL Drop User ?

4. Bagaimana fungsi dari komponen SQL DCL Grant ?

5. Bagaimana fungsi dari komponen SQL DCL Revoke ?

1.3 Tujuan Masalah

Tujuannya yaitu untuk memenuhi tugas mata kuliah Sistem Basis Data dan juga
untuk memahami dan mendalami materi mengenai database fungsi dan komponen pada
SQL DCL.

1
BAB II PEMBAHASAN

2.1 Create Database

Database merupakan objek basis data yang menempati urutan paling atas. Dalam
pembuatannya, database harus didahulukan, dan kemudian diikuti dengan pembuatan tabel
beserta kolomnya. Setelah tabel terbuat, kita dapat memasukkan beberapa baris data.

(Nugroho, 2008).

SQL menyediakan perintah standar untuk membuat database dengan menggunakan


perintah CREATE DATABASE. Perintahnya sebagai berikut:

SINTAX:
CREATE DATABASE [IF NOT EXISTS] nama_db

Pada sintak di atas, kita membuat database baru dengan nama nama_db. Perhatikan contoh
berikut:

mysql> CREATE DATABASE coba_db;


Query OK, 1 row affected (0.00 sec)

Dari perintah di atas, pernyataan “Query OK, 1 row affected (0.00 sec)”
menyatakan perintah telah dijalankan oleh server dan berhasil, dengan kata lain database
coba_db berhasil dibuat dalam server.

Dengan menggunakan perintah standar di atas, database server akan menjalankan perintah
(membuat database baru), jika database yang bernama nama_db belum pernah ada di

2
dalam server. Jika database nama_db sudah ada di dalam server, maka kegagalan yang
akan kita dapatkan. Berikut adalah contoh kesalahannya:

mysql> CREATE DATABASE coba_db;


ERROR 1007 (HY000): Can’t create database ‘coba_db’; database
exists

Dari contoh perintah di atas, pernyataan yang berbunyi “Can’t create database
‘coba_db’; database exists” menandakan perintah yang dijalankan tidak
diterima karena database coba_db telah ada di dalam server.

Jika akan mengabaikan kondisi server, yaitu kita tidak mau tahu apakah di dalam server
sudah ada database yang sama dengan yang akan kita buat atau tidak, maka kita harus
menggunakan opsi [IF NOT EXISTS]. Sehingga perintahnya menjadi:

mysql> CREATE DATABASE IF NOT EXISTS coba_db;


Query OK, 0 rows affected (0.00 sec)

Dengan cara tersebut, server akan selalu menjalankan perintah pembuatan database. Jika
database-nya telah ada, maka database lama akan dihapus.

Penggunaan Create Database:

Jika kita ingin membuat database baru <testDB>, maka pernyataan CREATE
DATABASE akan seperti gambar di bawah ini

SQL> BUAT DATABASE testDB;

Pastikan kita memiliki hak istimewa admin sebelum membuat database apa pun.

Adapun Langkah-langkah membuat database menggunakan CMD adalah sebagai berikut:

 Buka command prompt dengan cara tekan ctrl + R keudian ketik cmd lalu enter
 Cd
 Buka MySQL dengan cara mengetikan cd AppServ\MySQL\bin\MySQL

3
 Bila meminta password, masukkan password yang kalian buat (tapi biasanya
password defaultnya “root”)
 Setelah MySQL jalan, kita mulai dengan melihat semua database yang telah ada di
situ. Perintahnya: show databases;, biasakan dengan huruf kecil
 Dari hasil yang tadi, kita melihat semua database yang telah dibuat sebelumnya,
sekarang kita membuat database baru. Perintahnya: create database latihan;.
Sekarang kita lihat hasilnya, ketikan perintah sebelumnya show databases;

Contoh databasenya yaitu:

show tables;

+---------------------+
| Tables_in_penjualan |
+---------------------+
| barang |
| pelanggan |
+---------------------+

desc pelanggan;
+--------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------+-------------+------+-----+---------+-------+
| id_pelanggan | varchar(5) | NO | PRI | NULL | |
| nm_pelanggan | varchar(30) | NO | | NULL | |
| alamat | text | YES | | NULL | |
| telepon | varchar(20) | YES | | NULL | |
| email | varchar(50) | YES | | NULL | |
+--------------+-------------+------+-----+---------+-------+

select*from pelanggan;
+--------------+----------------+--------------------------------+------------+---------------------+
| id_pelanggan | nm_pelanggan | alamat | telepon | email |
+--------------+----------------+--------------------------------+------------+---------------------+

4
| P0001 | Achmad_Solihin | Jakarta_Selatan | 0217327762 |
achmatim@gmail.com |
| P0002 | Agus_Rahman | Jl_H_Said,Tangerang | 0217323234 |
agus20@yahoo.com |
| P0003 | Doni_Damara | Jl_Raya_Cimone,Jakarta_Selatan | 0214394379 |
damara@yahoo.com |
| P0004 | Reni_Arianti | Jl_Raya-Dago_No.90 | 0313493583 |
renren@yahoo.co.id |
| P0005 | Dewi_Aminah | Jl_Arjuna_No.40 | 0314584883 |
aminahoke@plasa.com |
| P0006 | Chotimatul_M | RT04_RW02_Kel.Pinangsari | 0219249349 |
fixis@yahoo.co.id |
+--------------+----------------+--------------------------------+------------+---------------------+

select*from barang;
+--------+----------+---------+--------+
| kd_brg | nama_brg | harga | jumlah |
+--------+----------+---------+--------+
| 001 | Meja | 500000 | 3|
| 002 | Lemari | 1500000 | 13 |
| 003 | Kulkas | 3000000 | 2|
| 004 | Televisi | 2500000 | 10 |

+--------+----------+---------+--------+

2.2 Create User

Pernyataan SQL CREATE USER digunakan untuk membuat pengguna SQL baru.

Sintak:
GRANT CONNECT KE nama pengguna yang DIIDENTIFIKASI DENGAN
kata sandi

Akun pengguna di MySQL terdiri dari nama pengguna dan hostname.

5
Untuk membuat akun pengguna MySQL baru, jalankan perintah berikut:

CREATE USER ‘nama_user’@'localhost' IDENTIFIED BY


‘password_user’;

Ganti nama_user dengan nama pengguna baru yang kita maksudkan,


dan user_password dengan kata sandi pengguna. Pada perintah di atas bagian
hostname diatur ke localhost yang berarti bahwa pengguna akan dapat terhubung ke
server MySQL hanya dari localhost (Yaitu dari sistem di mana MySQL Server berjalan).

Untuk memberikan akses dari host lain, ubah bagian hostname (localhost)
dengan IP mesin jarak jauh. Misalnya, untuk memberikan akses dari mesin dengan IP
10.5.0.4 kita akan menjalankan:

CREATE USER ‘user_database’@'10.5.0.4' IDENTIFIED BY


‘password_user’;

Untuk membuat pengguna yang dapat terhubung dari host mana pun, gunakan
wildcard ‘%’ sebagai bagian host:

CREATE USER 'user_database'@'%' IDENTIFIED BY


'password_user';

Opsi ini biasanya digunakan oleh para web master yang menginginkan MySQL
server di tempat terpisah dengan web server.

(Programming, 2014).

Contoh:

Perintah Create User: create user 'Dimas' identified by '12345678';


Menjadi:
select user, host, password from mysql.user;
+----------------+-----------+-------------------------------------------+
| User | Host | Password |
+----------------+-----------+-------------------------------------------+

6
| root | localhost | |
| Dimas |% | *84AAC12F54AB666ECFC2A83C676908C8BBC381B1 |
| root | 127.0.0.1 | |
| root | ::1 | |
| pma | localhost | |
| Achmad_Solihin | % | |

+----------------+-----------+-------------------------------------------+

2.3 Drop User

Drop database merupakan statement yang digunakan untuk menghapus database


sekaligus semua tabel (TABLE) yang ada didalamnya. Oleh karenanya, berhati-hatilah
ketika akan mengeksekusi perintah ini. Anda harus memiliki hak akses (DROP Privilege)
untuk dapat menjalankan perintah ini.

Meskipun database telah dihapus, user atau pengguna untuk database tersebut tidak
akan ikut dihapus. Statement DROP USER 'namauser'@'localhost' bisa
digunakan apabila ingin menghapus nama user.

User men-spesifikasikan user yang ingin dihapus. Oracle Database tidak akan
menghapus users yang skemanya berisi object, kecuali dengan menggunakan statement
CASCADE atau jika user’s object sudah dihapus terlebih dahulu. CASCADE digunakan
untuk menghapus semua object di user’s schema sebelum menghapus user. Jika user’s
schema terdiri dari table, maka Oracle Database akan menghapus table dan relasi pada
table di skema lain (mengacu pada primary dan unique keys pada tables tersebut).

Contoh Databasenya yaitu:

Perintah Drop User: DROP USER 'Dimas';


Menjadi:
select user, host, password from mysql.user;
+----------------+-----------+----------+
| User | Host | Password |
+----------------+-----------+----------+

7
| root | localhost | |
| root | 127.0.0.1 | |
| root | ::1 | |
| pma | localhost | |
| Achmad_Solihin | % | |
+----------------+-----------+----------+

5 rows in set (0.001 sec)

2.4 Grant

Fungsi GRANT adalah memberi GRANT privileges pada berbagai objek database di
MySQL. Perintah untuk memberikan hak izin akses bagi user di MySQL agar dapat
mengakses database, tabel dan kolom. Selain itu juga dapat menambahkan user baru
dengan perintah Grant ini. Ada hal yang harus diperhatikan jika melakukan perubahan izin
akses pada user MySQL yang masih aktif bekerja tidak langsung bisa menerapkan
perubahan meski sudah melakukan flush privileges. Konfigurasi ini berlaku ketika user
sudah menutup koneksi kemudian melakukan koneksi kembali. Kita kemudian dapat
melihat hak istimewa yang diberikan kepada pengguna menggunakan perintah SHOW
GRANTS. Izin ini bisa berupa kombinasi SELECT, INSERT, UPDATE, DELETE,
INDEX, CREATE, ALTER, DROP, GRANT OPTION atau ALL.

Izin akses penuh ini digunakan untuk mengakses seluruh database dalam server.
Untuk memberikan izin Anda harus terlebih dahulu memilih database mysql dengan
perintah use. Selanjutnya lakukan perintah berikut:

mysql> use mysql;


mysql> grant all privileges on * to nm_user@localhost
identified by ‘nm_passwd’ with grand option;

Perintah diatas akan memberikan izin akses penuh setara dengan root. Sebaiknya hal
ini tidak boleh dilakukan. Option Identified By nama password akan menerapkan user
tersebut agar tetap memasukkan password saat mengakses database. Jika anda tidak

8
memberikan option password maka user tersebut dapat mengakses database tanpa
password.

Penyertaan With Grand Option akan memberikan hak penuh pada user sehingga user
tersebut juga mampu melakukan perintah Grant tertentu pada user lainnya. Namun terdapat
kekurangan ketika kita sebelumnya tidak memilih database MySQL maka server akan
mengabaikan akses Reload, Shutdown, Process, File dan Grant. Berikut ini contoh jika kita
tidak menyertakan option password.

mysql> grant all on *.* to nm_user_baru@localhost;

Perintah diatas akan memasukan user dengan menggunakan perintah Grant ini
karena sebelumnya user tersebut belum ada. Serta memperbolehkan user tersebut untuk
mengakses database tanpa password. Agar tidak terjadi sesuatu sebaiknya jangan
melakukan hal ini.

(Oracle, 2022).

Contoh Databasenya yaitu:

Perintah/query Grant:
GRANT select, insert, update ON penjualan TO pelanggan;
FLUSH PRIVILEGES;

Setelah perintah Grant selesai dibuat, cek hak akses yang sudah dibuat seperti:
Menggunakan perintah update yaitu :
update pelanggan set nm_pelanggan = 'Gresnia_Artha' where id_pelanggan = 'P0001';
Menjadi :
select nm_pelanggan from pelanggan;
+---------------+
| nm_pelanggan |
+---------------+
| Gresnia_Artha |
| Agus_Rahman |
| Doni_Damara |
| Reni_Arianti |
9
| Dewi_Aminah |
| Chotimatul_M |
+---------------+

Selain hak akses (Grant) yang sudah dibuat, perintahnya akan ditolak (error).

2.5 Revoke

Untuk menghapus batasan hak akses yang telah diatur dengan


menggunakan perintah GRANT, digunakan perintah REVOKE. Revoke merupakan
kebalikan dari perintah grant yaitu menghapus atau mencabut kembali izin akses user
MySQL yang sebelumnya telah diberikan. Tingkat pilihan yang dapat digunakan juga
sama dengan perintah grant sehingga semua izin akses dengan grant dapat dicabut kembali.

(Taylor, 2019).

Sintak umum:

 REVOKE hak_akses ON nama_tabel FROM namaAccount@namaHost;

Atau menghapus batasan hak akses untuk database & tabel:

 REVOKE hak_akses ON nama_database.nama_tabel FROM user;

Atau menghapus batasan hak akses untuk kolom tertentu:

 REVOKE hak_akses (field1, field2, field3, …) ON

nama_database.nama_tabel FROM user;

Penulisan perintah REVOKE:

 Hak Akses (field): kita harus memberikan sedikitnya satu hak akses. Untuk setiap
hak akses yang diberikan, dapat juga diberikan daftar field yang diletakkan dalam
kurung, dan dipisahkan dengan tanda koma. Contoh: REVOKE select (nim, nama),
update, insert(nim), …

10
 Nama Tabel: merupakan nama tabel yang dikenal hak akses tersebut. Harus ada
sedikitnya satu nama tabel. Dapat menggunakan simbol asterisk (*) untuk mewakili
semua tabel pada database aktif. Penulisan nama tabel dapat juga diikuti oleh nama
database diikuti nama tabel yang dipisahkan dengan tanda titik. Menggunakan
simbol *.* berarti semua database dan semua tabel yang dikenai hak akses tersebut.
 Nama Account @namaHost: jika nama account tidak ada, tidak pernah diberikan
hak akses dengan perintah GRANT sebelumnya maka akan terjadi error.

Contoh database pada Perintah/query Revoke:

REVOKE update ON penjualan. Pelanggan FROM 'Achmad_Solihin';

Setelah perintah Revoke selesai dibuat, cek hapus hak akses yang sudah dibuat yaitu:

update pelanggan set nm_pelanggan = 'Gresnia_Artha' where


id_pelanggan = 'P0001';

ERROR 1142 (42000): UPDATE command denied to user


'Achmad_Solihin'@'localhost' for table 'pelanggan'

Hak akses update sudah dihapus (revoke) sehingga tidak bisa melakukan perintah update.

11
BAB III PENUTUP

3. 1 Kesimpulan

Pada pembahasan di atas dapat kita simpulkan bahwa suatu pengerjaan database
memerlukannya perintah termasuk perintah DCL yang merupakan perintah SQL yang
berhubungan dengan pengaturan hak akses user, baik terhadap server, database, tabel
maupun field. Dengan Create Database kita dapat membuat suatu database yang baru,
Create User dapat membuat suatu user yang baru atau pengguna SQL yang baru , Drop
User dapat untuk menghapus user, Grant untuk memberikan hak izin akses bagi user di
MySQL agar dapat mengakses database, tabel dan kolom, lalu Revoke Untuk menghapus
batasan hak akses yang telah diatur dengan menggunakan perintah GRANT tadi.

3.2 Soal dan Pembahasan

Soal:

1. Bagaimana penulisan pernyataan Create Database untuk membuat database baru?


2. Perintah apa yang harus di jalankan untuk membuat akun pengguna MySQL baru?
3. Statement apakah yang bisa digunakan apabila ingin menghapus nama user?
4. Apa saja hak istimewa yang diberikan oleh Mysql kepada pengguna menggunakan
perintah SHOW GRANTS?
5. Apa fungsi perintah REVOKE dalam Mysql?

Pembahasan:

1. Pernyataan Create Database dapat ditulis dengan SQL> BUAT DATABASE testDB;
2. Perintah yang harus di jalankan untuk membuat akun pengguna Mysql baru ialah
CREATE USER ‘nama_user’@'localhost' IDENTIFIED BY ‘password_user’;
3. Apabila ingin menghapus nama user kita dapat menggunakan statement DROP USER
'namauser'@'localhost'.
4. Hak istimewa yang diberikan oleh Mysql kepada pengguna menggunakan perintah
SHOW GRANTS bisa berupa kombinasi SELECT, INSERT, UPDATE, DELETE,
INDEX, CREATE, ALTER, DROP, GRANT OPTION atau ALL.

12
5. Fungsi revoke dalam Mysql digunakan untuk menghapus batasan hak akses
yang telah diatur dengan menggunakan perintah GRANT.

13
DAFTAR PUSTAKA

Nugroho, B. (2008). “Panduan Lengkap Menguasai Perintah SQL”. Jakarta: Mediakita.


Programming. (2014). “Cara Membuat User MYSQL dan Hak Akses MYSQL”.
Linuxid.net.
Oracle. (2022). “Drop User Statement and Grant Statement”. MYSQL.com
Taylor, A. (2019) ‘Data Control Language: GRANT DAN REVOKE’, Intermediate to
Advanced SQL, pp. 31–43. doi: 10.1007/978-1-4842-3978-0_22.

14

Anda mungkin juga menyukai