Anda di halaman 1dari 11

MAKALAH

PERANCANGAN BASIS DATA

Oleh:

MUHAMMAD BADRA 22101152610398

SISTEM INFORMASI

FAKULTAS ILMU KOMPUTER

UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

2023
i
KATA PENGANTAR

Puji syukur diucapkan kehadirat Allah Swt. atas segala rahmat-Nya sehingga makalah ini
dapat tersusun sampai selesai. Tidak lupa kami mengucapkan terima kasih terhadap bantuan
dari pihak yang telah berkontribusi dengan memberikan sumbangan baik pikiran maupun
materi.

Penulis sangat berharap semoga makalah ini dapat menambah pengetahuan dan pengalaman
bagi pembaca. Bahkan kami berharap lebih jauh lagi agar makalah ini bisa pembaca
praktikkan dalam kehidupan sehari-hari.

Bagi kami sebagai penyusun merasa bahwa masih banyak kekurangan dalam penyusunan
makalah ini karena keterbatasan pengetahuan dan pengalaman kami. Untuk itu kami sangat
mengharapkan kritik dan saran yang membangun dari pembaca demi kesempurnaan makalah
ini.

Padang, 22 Juni 2023

Penulis

i
DAFTAR ISI

KATA PENGANTAR ................................................................................................................ i


DAFTAR ISI.............................................................................................................................. ii
BAB I ......................................................................................................................................... 1
PENDAHULUAN ..................................................................................................................... 1
A. Latar Belakang ................................................................................................................ 1
B. Rumusan Masalah ........................................................................................................... 1
C. Batasan Masalah ............................................................................................................. 1
D. Tujuan Penelitian ............................................................................................................ 2
BAB II........................................................................................................................................ 2
PEMBAHASAN ........................................................................................................................ 2
A. Data Control Language (DCL) ....................................................................................... 2
B. Bahasa Query Formal Prosedural ................................................................................... 6
BAB III ...................................................................................................................................... 7
PENUTUPAN ............................................................................................................................ 7
A. Kesimpulan........................................................................................................................ 7

ii
BAB I
PENDAHULUAN
A. Latar Belakang

Basis data merupakan salah satu komponen pembentuk sistem informasi. Antara
sebuah sistem informasi dengan sistem informasi lainnya pun bisa memiliki arsitektur
basis data yang berbeda-beda. Tidak menutup kemungkinan ada sistem informasi
yang membutuhkan lebih dari satu basis data dan menerapkan konsep basis data
terdistribusi di dalamnya.
Dalam studi kasus terkait sistem pengelolaan aktivitas program studi yang diteliti oleh
penulis, dilibatkan dua buah basis data untuk pengoperasian sebuah sistem informasi
independen yang dimiliki oleh sebuah program studi. Salah satu basis data bertindak
sebagai pusat penyedia data bagi berbagai sistem informasi. Walaupun bertindak
sebagai pusat penyedia data bagi berbagai sistem informasi, basis data ini tidak
terhubung langsung dengan sistem informasi independen yang ada di program studi
tersebut. Basis data lainnya dimiliki oleh program studi dan terhubung langsung ke
sistem informasi yang dimiliki oleh program studi tersebut.
Program studi bisa saja memasukkan data baru atau memperbaharui data yang sudah
ada di dalam basis data miliknya secara manual dan independen. Akan tetapi, dengan
cara ini akan ada berbagai masalah yang mungkin muncul. Konsekuensinya adalah
pengelolaan data dalam basis data tersebut harus dilakukan dengan selalu melihat
kesesuaian datanya dengan data yang ada di 2 basis data pusat. Jika data-data itu
dimasukkan secara manual, masalah yang bisa muncul adalah ketidaksesuaian antara
data yang ada di program studi dengan yang ada di basis data pusat karena adanya
faktor human error saat proses entri data. Ketika terjadi ketidaksesuaian data antara
dua atau lebih sistem, akan muncul kebingungan dalam menentukan data mana yang
sudah benar dan mana yang perlu diperbaharui..

B. Rumusan Masalah

1. Bagaimana merancang arsitektur sinkronisasi basis data terdistribusi?


2. Bagaimana merancang web service untuk penarikan data melalui XML?

C. Batasan Masalah
1. Solusi sinkronisasi data ini berbasis web.
2. Pembangunannya menggunakan bahasa pemrograman PHP dengan DBMS
MySQL.
3. Menggunakan format XML dalam hal pengemasan data saat melakukan
perpindahan data antar basis data.
4. Sistem slave tidak boleh mengakses basis data milik sistem master secara langsung.

1
5. Solusi ini dijalankan secara manual oleh pengguna sistem, tidak otomatis secara
berkala.
6. Dalam implementasinya hanya mengsinkronisasikan dua buah basis data dalam dua
DBMS yang berbeda.

D. Tujuan Penelitian
1. Menghasilkan arsitektur multi-sistem dengan skema replikasi master-slave untuk
keperluan sinkronisasi data yang ada di basis data slave dengan data yang ada di basis
data master.
2. Menghasilkan web service untuk mendapatkan data dari basis data master dalam
bentuk XML.

BAB II
PEMBAHASAN
A. Data Control Language (DCL)

adalah salah satu dari kelompok perintah SQL yang digunakan untuk melakukan kontrol
terhadap privilege atau hak akses khusus untuk berinteraksi dengan database. Hak akses
khusus ini diperlukan sebagai prasyarat bagi setiap user database untuk melakukan
berbagai aksi di database, seperti: membuat object, menghapus object, mengubah object,
menampilkan hasil query, dan seterusnya.

Berikut ini adalah beberapa perintah DCL:

▪ GRANT
▪ REVOKE
A. GRANT

2
Perintah Grant digunakan untuk memberikan hak akses khusus kepada user untuk
melakukan aksi tertentu pada object tertentu di database.
Sintaks:

GRANT tipe_privilege
ON nama_objek
TO nama_pengguna;
Keterangan:

▪ tipe_privilege — diisi dengan privilege atau hak akses yang dimaksud (lihat tabel di
bawah).
▪ nama_objek — diisi dengan objek-objek database,
seperti: database, table, view, trigger, dan seterusnya.
▪ nama_pengguna — diisi dengan nama pengguna database yang ingin
diberikan privilege.

Berikut ini adalah beberapa contoh tipe privilege:


Tipe Privilege Keterangan

ALL PRIVILEGE Memberikan seluruh akses secara penuh (full access)

CREATE Memberikan hak akses untuk membuat database atau objek database

DROP Memberikan hak akses untuk menghapus database atau objek database

SELECT Memberikan hak akses untuk melakukan query ke database

INSERT Memberikan hak akses untuk menambahkan record / data baru ke tabel

UPDATE Memberikan hak akses untuk mengubah record / data di tabel

DELETE Memberikan hak akses untuk menghapus record / data di tabel

Tabel Contoh Tipe Privilege


Sebelum menggunakan perintah Grant, pertama buat user baru terlebih dahulu
di database menggunakan sintaks di bawah ini:

CREATE USER 'nama_user'@'localhost' IDENTIFIED BY 'password';

Sebagai catatan, sebelum membuat user baru, masuklah terlebih dahulu sebagai user
root dengan menggunakan perintah:

3
mysql -u root

USE mysql

Setelah itu kita akan membuat user baru dengan nama ‘DosenIT‘
dengan password ‘dosenit.com‘.
Gunakan perintah di bawah ini:
SQL
1.CREATE USER 'DosenIT'@'localhost' IDENTIFIED BY 'dosenit.com';
Asumsikan bahwa kita akan memberikan akses database kepada user tersebut. Misalnya
kita akan membuat database bernama “db_kampus”.
SQL
1.CREATE DATABASE db_kampus;
Setelah database-nya berhasil dibuat, langkah selanjutnya adalah memberikan akses
tersebut kepada user tersebut. Untuk keperluan tersebut, kita dapat menggunakan
perintah GRANT mengikuti sintaks yang telah dijabarkan di atas. Misalnya saat ini kita
hanya akan memberikan hak akses untuk membuat, menambahkan, dan
melakukan query terhadap objek-objek di database “db_kampus”. Maka gunakanlah
perintah di bawah ini:
SQL
1.GRANT CREATE, INSERT, SELECT
2.ON db_kampus.*
3.TO 'DosenIT'@'localhost';
4.
5.FLUSH PRIVILEGES;
Sebagai catatan, perintah FLUSH PRIVILEGES digunakan setiap kali selesai
memberikan atau menarik kembali hak akses user.
Setelah itu, mari kita login kembali ke mysql menggunakan akun baru tersebut. Lakukan
dengan menggunakan perintah di bawah ini:

mysql -u DosenIT -p
-- masukkan password

USE db_kampus;
Setelah berhasil masuk dan menggunakan database db_kampus, cobalah perintah-
perintah yang berhubungan dengan CREATE, INSERT, dan SELECT. Silakan kreasikan
sebebas mungkin yang Anda inginkan. Anda juga boleh menggunakan perintah-
perintah di bawah ini untuk bahan uji coba.
SQL
1.-- membuat tabel mahasiswa
2.CREATE TABLE mahasiswa(

4
3.id INT AUTO_INCREMENT PRIMARY KEY,
4.nim VARCHAR(12) UNIQUE NOT NULL,
5.nama VARCHAR(30)
6.);
7.
8.-- memasukkan data mahasiswa ke table
9.INSERT INTO mahasiswa VALUES
10.(NULL, '2000001', 'Satoshi'),
11.(NULL, '2000002', 'Serena');
12.
13.-- melakukan query semua data di tabel mahasiswa
14.SELECT * FROM mahasiswa;
Perintah-perintah yang berhubungan dengan CREATE, INSERT, dan SELECT akan
berhasil dieksekusi di user ini dikarenakan telah diberikan akses sebelumnya oleh user
root menggunakan perintah GRANT. Tetapi bagaimana dengan UPDATE, DELETE,
dan lainnya yang tidak didefinisikan sebelumnya? Silakan dicoba menggunakan kreasi
perintah sendiri atau menggunakan contoh di bawah ini.
SQL
1.-- mengubah nama mahasiswa
2.UPDATE mahasiswa SET nama = 'Serena Kalos Queen' WHERE nim = '2000002';
3
4.-- menghapus data mahasiswa
5.DELETE FROM mahasiswa WHERE nim = '2000001';
Bagaimana hasilnya? Tentunya kita akan mendapatkan pesan error seperti gambar di
bawah ini.

2. REVOKE
Perintah Revoke digunakan untuk menarik kembali / mencabut / membatalkan hak akses
khusus yang sebelumnya telah diberikan melalui perintah Grant.
Sintaks:

REVOKE tipe_privilege
ON nama_objek
FROM nama_pengguna;

5
▪ tipe_privilege — diisi dengan privilege atau hak akses yang dimaksud (lihat tabel di
bagian atas).
▪ nama_objek — diisi dengan objek-objek database,
seperti: database, table, view, trigger, dan seterusnya.
▪ nama_pengguna — diisi dengan nama pengguna database yang ingin dicabut kembali
hak akses atau privilege-nya.
Untuk contoh penggunaannya, mari kita tarik kembali hak akses SELECT dari user
DosenIT.
SQL
1.REVOKE SELECT
2.ON db_kampus.*
3.FROM 'DosenIT'@'localhost';
4
5.FLUSH PRIVILEGES;
Setelah mengeksekusi perintah di atas, seharusnya saat ini user DosenIT sudah tidak
dapat menggunakan perintah SELECT. Perhatikan gambar di bawah ini.

Hal ini berlaku untuk semua perintah yang lain.


B. Bahasa Query Formal Prosedural
Menurut (Fathansyah, 2012), bahasa query merupakan bahasa yang termasuk dalam
kategori bahasa tingkat tinggi (high level language) yang digunakan user untuk
mendapatkan informasi atau data dari basis data. Bahasa query dikelompokkan menjadi
dua, yaitu :
1. Bahasa procedural User meminta sistem untuk melakukan serangkain operasi
terhadap basis data dalam rangka mendapatkan data atau informasi yang diingunkan.
2. Bahasa non procedural User menunjukkan data atau informasi yang diinginkan tanpa
menyatakan suatu cara atau prosedur tertentu untuk memperoleh data atau informasi
tersebut.
Menurut (Ladjamudin, 2004) dalam bahasa Query Formal, ada dua dasar pembentukan
bahasa Query, yaitu:
1. Aljabar Relasional Merupakan salah satu bahasa manipulasi untuk database
relasional. Aljabar relasional merupakan kumpulan operasi terhadap relasi dimana setiap
operasi menggunakan satu atau lebih relasi untuk menghasilkan satu relasi yang baru.
Aljabar relasional termasuk dalam kategori bahasa procedural yang menyediakan
seperangkat operasi untuk memanipulasi data.
2. Kalkulus Relasional Merupakan bahasa manipulasi teoritis yang non procedural.
Artinya bahasa ini mengekspresikan “what to do or what characteristics are required”dan
tidak mengekspresikan “how to do it” seperti pada bahasa query procedural. Kalkulus
relasional dilandasi dengan teori predicate calculus yang menggunakan fungsi sebagai
suatu ekspresi logic. Predikat adalah suatu fungsi yang dapat mengambil nilai benar atau

6
salah tergantung dari subsitusi nilai argument dari fungsi tersebut. Jadi, bila semua
argument dari sebuah fungsi disubsitusi dengan suatu nilai, maka fungsi tersebut menjadi
suatu ekspresi yang disebut preposisi, yaitu suatu ekspresi yang hanya berniali benar atau
salah.
BAB III
PENUTUPAN
A. Kesimpulan
Bab ini berisi tentang kesimpulan yang diperoleh dari penelitian yang dilakukan oleh
penulis dan saran dari penulis bagi penelitian selanjutnya yang terkait dengan penelitian
ini.

Anda mungkin juga menyukai