Anda di halaman 1dari 6

Nama: King Mahaputra Batara

NIM: 00000083179
Mata Kuliah: Database Systems
Kode: IS341
Kelas: B
Nama Dosen: Suryasari, S.Kom., M.T.

Midterm

1. In database there are DDL, DML, and Controlled access to database. Using your
own words, describe the used of these 3 terms and give the examples for each!
Answer:
 DDL atau Data Definition Language merupakan bahasa pemrograman yang
digunakan untuk mendefinisikan suatu struktur dari database. Oleh sebab itu,
DDL dapat digunakan untuk mengelola ataupun mengubah struktur tipe data
sebuah objek pada database. Pada DDL terdapat perintah yang dapat
digunakan, yaitu CREATE TABLE, ALTER TABLE, DROP TABLE,
CREATE INDEX, ALTER INDEX, DROP INDEX.
Contoh penggunaan DDL:
1) CREATE TABLE, digunakan untuk membuat tabel
CREATE TABLE nama_table (
column1 datatype (length),
column2 datatype (length),
column3 datatype (length),
...
);
Contoh:
CREATE TABLE Pekerja (
id INT PRIMARY KEY,
nama_pekerja VARCHAR(50),
alamat VARCHAR(100),
tanggal_lahir DATE
);

2) ALTER TABLE, digunakan untuk memodifikasi struktur tabel yang


sudah dibuat sebelumnya
ALTER TABLE table_name
ADD column_name datatype;

ALTER TABLE table_name


DROP COLUMN column_name;

ALTER TABLE table_name


ALTER COLUMN column_name datatype;
Contoh:
ALTER TABLE Pekerja
ADD COLUMN email VARCHAR(100);

3) DROP TABLE, digunakan untuk menghapus tabel dari database


DROP TABLE table_name;
Contoh:
DROP TABLE Pekerja;

4) CREATE INDEX, digunakan untuk membuat index pada kolom tabel


CREATE INDEX index_name
ON table_name (column_name);
Contoh:
CREATE INDEX idx_pekerja_nama ON Pekerja (nama_pekerja);

5) ALTER INDEX, digunakan untuk memodifikasi index yang sudah


dibuat sebelumnya
ALTER INDEX idx_pekerja_nama RENAME TO idx_pkr_nama;

6) DROP INDEX, digunakan untuk menghapus index pada database


DROP INDEX idx_mhs_nama;

 DML atau Data Manipulation Language merupakan bahasa pemrograman


yang digunakan untuk memanipulasi data yang sudah dibuat pada database.
Oleh sebab itu, DML digunakan untuk menampilkan, menambah,
menghapus, dan memperbarui suatu data pada database. Biasanya perintah
DML digabungkan dengan perintah DDL. Contohnya ketika user ingin
membuat suatu table baru (CREATE TABLE), maka user langsung dapat
menambahkan data ke dalam tabel tersebut (SELECT dan INSERT). Pada
DML terdapat perintah yang dapat digunakan, yaitu SELECT, INSERT,
DELETE, UPDATE
Contoh penggunaan DML:
1) SELECT, digunakan untuk memilih ataupun mengambil data pada tabel,
kolom, dan sebagainya
SELECT column1, column2, ...
FROM table_name;
Contoh:
SELECT nama_pekerja
FROM Pekerja;

2) INSERT, digunakan untuk menginput data baru ke dalam tabel


INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...);
Contoh:
INSERT INTO Pekerja (nama_pekerja, alamat, tanggal_lahir)
VALUES (‘Mariah Carey’, 'Franklin Tower, New York', '27 Maret
1969');

3) UPDATE, digunakan untuk memperbarui data yang ada di tabel


UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;

4) DELETE, digunakan untuk menghapus data yang ada di tabel


DELETE FROM table_name
WHERE condition;
Contoh:
DELETE FROM Pekerja
WHERE id = 1;

 Controlled Access merupakan bahasa pemrograman dalam bentuk perintah


yang dilakukan oleh high user untuk memberikan hak/privilege kepada user
lain untuk mengakses database. Perintah yang dapat digunakan oleh high
user adalah GRANT dan REVOKE. High user juga bisa memberikan
hak/privilege tertentu (CREATE, VIEW, UPDATE, DELETE, SELECT,
ataupun semuanya) kepada user lain sehingga memaksimalkan keamanan dari
pemberian hak terhadap database.
1) GRANT, digunakan untuk memberikan hak/privilege kepada user lain
GRANT privilege ON table_name TO user_name;
Contoh:
GRANT SELECT, INSERT ON Pekerja TO King_Batara;

2) REVOKE, digunakan untuk menarik kembali hak/privilege yang


diberikan sebelumnya
REVOKE privilege ON table_name FROM user_name;
Contoh:
REVOKE INSERT ON Pekerja FROM King_Batara;

2. Using to the relation above, answer this question:


a. Define all keys for all tables
b. List all students that take course from the IS Department Lecturer
c. Update StudentAddress which contains JAKARTA into TANGERANG
Answer:
a) Semua key pada semua table:
 MsStudent
Primary Key: StudentID
 MsCourse
Primary Key: CourseID
 MsDepartment
Primary Key: DepartmentID
 MsLecturer
Primary Key: LecturerID
Foreign Key: LecturerDeptID (mereferensi dari
MsDepartment(DepartmentID))
 CoursePlanning
Foreign Key: CourseID (mereferensi dari MsCourse(CourseID))
Foreign Key: StudentID (mereferensi dari MsStudent(StudentID))
 Schedule
Primary Key: CourseID (mereferensi dari MsCourse(CourseID))
Foreign Key: CourseID (mereferensi dari MsCourse(CourseID))
Foreign Key: LecturerID (mereferensi MsLecturer(LecturerID))

b) Menampilkan semua mahasiswa yang mengambil mata kuliah IS


Department Lecturer

Untuk menampilkan semua mahasiswa yang mengambil mata Kuliah IS


Department Lecturer harus menggunakan syntax JOIN. JOIN berguna
untuk menyatukan tabel-tabel di dalam sebuah database. Ketentuan
menggunakan JOIN adalah harus menyambungkan data ataupun kolom
yang karakteristiknya sama. Dari syntax diatas menggabungkan beberapa
tabel dengan tabel lain, misalnya MsStudent(StudentID) dengan
CoursePlanning(StudentID), CoursePlanning(CourseID) dengan
MsCourse(CourseID), MsCourse(CourseID) dengan
MsLecturer(LecturerID), MsLecturer(LecturerDeptID) dengan
MsDepartment(DepartmentID). Pada akhir ditambahkan perintah
WHERE (sebuah perintah untuk memberikan syarat kepada data yang
akan dipanggil, diubah, dihapus) pada tabel MsDepartment
(DepartmentName) untuk mencari nama department IS.

c) Memperbarui kolom StudentAddress pada MsStudent yang dimana


Jakarta diubah menjadi Tangerang

Untuk memperbarui data harus menggunakan perintah UPDATE. Selain


menggunakan UPDATE, terdapat perintah lain untuk digunakan sebagai
perincian perintah seperti SET dan WHERE. SET berguna sebagai
pengisi data baru yang akan diubah di data yang lama. WHERE
digunakan untuk menunjukkan kondisi tertentu dari data yang akan
diubah. Dari syntax diatas, diminta untuk mengubah alamat mahasiswa
yang beralamat Jakarta menjadi Tangerang. Pertama, mengetikan
UPDATE lalu diikuti dengan nama tabel yang ingin diubah. Setelah itu,
pilih kolom yang diubah (yang diminta untuk diganti adalah alamat
mahasiswa, maka menggantinya di kolom StudentAddress) dan
mengetikan SET untuk menginput data baru (di syntax untuk digantikan
dengan Tangerang). Terakhir, mengetikan WHERE (di syntax untuk
menggantikan Jakarta) untuk memilih data yang lama yang ingin
diganti.

3. What is the difference between role and privilege in the context of object and
systems privilege. Give example to support your answer!
Answer:
Jawaban sederhana dari perbedaan role dan privilege, role adalah kelompok user
yang dapat diberikan hak akses tertentu, sedangkan privilege adalah hak khusus
yang diberikan pada role atau user untuk melakukan perintah tertentu (SELECT,
VIEW, CREATE, DELETE, UPDATE, GRANT, REVOKE, ataupun semuanya)
pada objek. Itu semua masih berkaitan dengan Controlled Access.

Contoh dari perbedaan role dan privilege adalah ketika ada high user (biasanya
head manager) memnberikan hak/privilege berupa VIEW kepada pegawai
dibawahnya. Pegawai tersebut disebut dengan role karena diberikan
hak/privilege oleh head manager, pegawai tersebut mendapatkan akses untuk
melihat database dan akses tersebut disebut dengan privilege.

4. Using the table relation above, answer these questions by creating the query:
a. Produce a list that shows StudentID, StudentName, and totalCredits for
each student.
b. Produce a list the shows every class that teach by the lecturer and the
department of the lecturer (CourseID, CourseName, LecturerName,
DepartmentName)
c. Produce a list that shows the number of lecturer (in every department)
that has classes
Answer:
a) Membuat list yang menampilkan StudentID, StudentName, dan totalCredit
untuk setiap mahasiswa

Untuk membuat list yang StudentID, StudentName, dan totalCredit untuk


setiap mahasiswa, mengetikan perintah SELECT untuk memilih dan
mengambil data StudentID dan StudentName dari tabel MsStudent, dan
menjumlahkan CourseCredits dari tabel MsCourse dengan menggunakan
perintah SUM lalu disimpan menggunakan perintah AS dengan nama
totalCredits. Untuk menyatukan tabel yang berbeda menggunakan JOIN,
tetapi kali ini membutuhkan data yang saling beririsan dengan 2 tabel yang
berbeda. Oleh karena itu, menggunakan INNER JOIN ke CoursePlanning
pada MsStudent(StudentID) dengan CoursePlanning(StudentID),
CoursePlanning(CourseID) dengan MsCourse(CourseCredits). Terakhir,
menggunakan GROUP BY untuk membagi hasilnya menjadi grup
berdasarkan StudentID dan StudentName.

b) Membuat list yang menampilkan setiap kelas dengan dosen beserta


jurusannya

Untuk menampilkan setiap kelas dengan dosen beserta fakultasnya,


mengetikan perintah SELECT untuk memilih dan mengambil data
CourseID dan CourseName dari tabel MsCourse, LectureName dari
MsLecturer, Department dari MsDepartment. Untuk menyatukan tabel
yang berbeda menggunakan INNER JOIN ke Schedule pada
MsCourse(CourseID) dengan Schedule(CourseID), MsLecturer pada
Schedule(LecturerID) dengan MsLecturer(LecturerID, MsDepartment
pada MsLecturer(LecturerDeptID) dengan MsDepartment(DepartmentID).

c) Membuat list yang menampilkan jumlah dosen (disetiap jurusan) yang


memiliki kelas

Untuk menampilkan jumlah dosen (disetiap jurusan) yang memiliki kelas,


mengetikan perintah SELECT untuk memilih dan mengambil data
DepartmentName dari MsDepartment, menggunakan perintah COUNT
untuk menghitung keseluruhan dan DISTINCT untuk mencegah duplikasi
data. Untuk menyatukan tabel yang berbeda menggunakan INNER JOIN
ke MsLecturer pada MsDepartment(DepartmentID dengan
MsLecturer(LecturerDeptID), Schedule pada MsLecturer(LecturerID)
dengan Schedule(LecturerID). Terakhir, menggunakan GROUP BY untuk
membagi hasilnya menjadi grup berdasarkan DepartmentName

Anda mungkin juga menyukai