LAPORAN TUGAN PERANCANGAN BASIS DATA
“Database Fisik”
DOSEN PENGAMPU : Syukhri, ST, M.CIO
DISUSUN OLEH NAMA : GUSTI NANDA
NIM : 20343012 PRODI : INFORMATIKA
DEPARTEMEN TEKNIK ELEKTRONIKA FAKULTAS TEKNIK
UNIVERSITAS NEGERI PADANG
2022/2023
A. TUJUAN
Setelah melaksanakan praktikum diharapkan mahasiswa:
1. Mampu memahami dan merancang struktur basis data dengan SQL;
2. Mampu membuat struktur tabel-tabel basis data berdasarkan rancangan ERD;
3. Mampu mengimplementasikan tabel-tabel tersebut dengan SQL;
4. Mampu menampilkan informasi dari satu tabel atau lebih
B. ALAT DAN BAHAN 1. Personal Computer 2. Xampp Server
C. TEORI SINGKAT
Berdasarkan Entity Relationship Diagram (ERD) yang telah dibuat, langkah selanjutnya adalah implementasi basis data fisik. Implementasi basis data dapat dilakukan secara manual maupun semi manual. Implementasi basis data secara manual menggunakan perintah SQL, misal untuk membuat sebuah basis data maka dapat menggunakan perintah SQL ‘CREATE DATABASE [nama_database]. Sedangkan implementasi basis data secara semi manual menggunakan bantuan (tools) client berbasis Graphical User Interface (GUI) seperti MySQL Front, PgAdmin, Adminer, PHPMyAdmin.
1. Entity dan Relationships Macam Relationships :
One-to-One : menggunakan notasi 1:1
a. Satu record di entity pertama berhubungan dengan hanya satu record di entity kedua, dan demikian pula sebaliknya.
b. Entity mana saja bisa menjadi tabel utama, sesuai dengan situasi/kebutuhan/analisis.
c. Primary Key (PK) dari tabel utama menjadi Foreign Key (FK) di tabel kedua.
One-to-Many (atau Many-to-One) : menggunakan notasi 1:n
a. Jika A terhadap B mempunyai one-to-many relationship (atau B terhadap A mempunyai many-to-one relationship): satu record di A bisa berhubungan dengan banyak record di B, tetapi satu record di B berhubungan dengan hanya satu record di A.
b. Entity di sisi One dalam hubungan One-to-Many menjadi tabel utama, dan entity di sisi
Many menjadi tabel kedua.
c. PK dari tabel utama menjadi FK di tabel kedua.
d. Di contoh sebelumnya, A menjadi tabel utama dan B menjadi tabel kedua. Maka, ada FK di B yang merupakan PK di A.
Many-to-Many : menggunakan notasi m:n
a. Jika A terhadap B mempunyai many-to-many relationship: satu record di A bisa berhubungan dengan banyak record di B, dan demikian pula sebaliknya.
b. Dalam implementasi basis data, harus ada sebuah tabel perantara di antara A dan B.
A dan B menjadi tabel utama, dan tabel perantara menjadi tabel kedua.
c. PK dari A menjadi FK di tabel perantara (tabel kedua), dan PK dari B juga menjadi FK di tabel kedua. Gabungan semua FK di tabel kedua menjadi Composite PK untuk tabel kedua.
d. A terhadap tabel perantara mempunyai 1:n relationship.
e. B terhadap tabel perantara juga mempunyai 1:n relationship.
2. Tahap Pembuatan Tabel;
Tabel dapat dibuat melalui beberapa tahapan, yaitu:
a. Buat semua tabel utama terlebih dahulu (tidak memiliki FK);
b. Buat semua tabel yang berhubungan langsung (atau memiliki relationship) dengan tabel yang dibuat sebelumnya. Biasakan memulai dengan tabel yang memiliki FK paling sedikit sampai ke tabel yang memiliki FK paling banyak;
c. Lakukan proses b hingga semua tabel selesai dibuat.
3. Implementasi Manual
a. Membuat tabel dengan Primary Key (PK) Contoh 1:
CREATE TABLE dosen (nip INTEGER PRIMARY KEY, nama_dosen VARCHAR(45), alamat_dosen VARCHAR(255));
Contoh 2:
CREATE TABLE ruang (kode_ruang VARCHAR(20) PRIMARY KEY, lokasi_ruang VARCHAR(255), kapasitas_ruang INTEGER);
b. Membuat tabel dengan Foreign Key (FK) Contoh:
CREATE TABLE mahasiswa(nim INTEGER PRIMARY KEY, nip INTEGER REFERENCES dosen (nip), nama_mhs VARCHAR(45), alamat_mhs VARCHAR(255))
c. Membuat tabel dengan banyak FK
CREATE TABLE mata_kuliah(kode_mk INTEGER PRIMARY KEY, nip INTEGER REFERENCES dosen (nip), kode_ruang VARCHAR(20) REFERENCES ruang (kode_ruang), nama_mk VARCHAR(45), deskripsi_mk VARCHAR(255));
d. Membuat tabel yang memiliki Composite PK
CREATE TABLE mhs_ambil_mk(nim INTEGER REFERENCES mahasiswa (nim), kode_mk INTEGER REFERENCES mata_kuliah(kode_mk), PRIMARY KEY(nim, kode_mk));
4. Referential Integrity
Referential Integrity atau Integritas referensial adalah properti data yang menyatakan bahwa semua rujukannya valid. Dalam konteks basis data relasional, diperlukan bahwa jika nilai dari satu atribut relasi merujuk pada nilai atribut lain, maka nilai yang dirujuk harus ada.
Berikut hal-hal yang penting diperhatikan berkaitan dengan integritas referensial:
a. Integritas basis data mengacu pada hubungan antar tabel melalui Foreign Key yang bersangkutan;
b. Pada operasi Insert, record harus dimasukkan di tabel utama terlebih dahulu, kemudian baru di tabel kedua;
c. Pada operasi Delete, record harus dihapus di tabel kedua terlebih dahulu, kemudian baru di tabel utama;
d. Secara default, kebanyakan DBMS yang ada akan menolak Insert atau Delete yang melanggar integritas database.
5. Advance Create Table Option
Proses pembuatan tabel dapat dilengkapi menggunakan Advance Create Table Option (opsi lanjut pembuatan tabel). Beberapa opsi lanjutan yang akan dibahas adalah Default, Not Null, Unique, Check, Referential Integrity, Action dan Autoincrement.
a. Default
Apabila tidak ada ada yang di Insert, kita dapat menentukan nilai default sebuah kolom. Contoh:
CREATE TABLE mahasiswa(nim integer PRIMARY KEY, nama_mhs varchar(45), fakultas varchar(5) DEFAULT ‘FT’);
b. Not Null
Apabila sebuah kolom ditentukan tidak boleh NULL, maka perlu dibatasi menggunakan NOT NULL. Dengan demikian untuk setiap operasi Insert, kolom tersebut harus ditentukan nilainya atau gunakan default sebagai nilai yang akan ditambahkan secara otomatis.
Contoh:
CREATE TABLE ruang(kode_ruang varchar(20) PRIMARY KEY, lokasi_ruang varchar(255) NOT NULL, kapasitas_ruang integer NOT NULL);
c. Unique
Unique bertujuan untuk memastikan bahwa nilai sebuah kolom unik. Unique dapat diaplikasikan pada satu kolom maupun multi kolom.
Contoh 1 (satu kolom):
CREATE TABLE mata_kuliah(kode_mk integer PRIMARY KEY, nama_mk varchar(45) UNIQUE);
Contoh 2 (multi kolom):
CREATE TABLE dosen(nip integer PRIMARY KEY, nama_dosen varchar(45), alamat_dosen varchar(255), UNIQUE (nama_dosen, alamat_dosen));
d. Check
Check berfungsi untuk membatasi nilai kolom. Contoh:
CREATE TABLE produk(kode_produk integer PRIMARY KEY, nama_produk varchar(45), harga integer, CHECK (harga <=
100000 AND kode_produk > 100 ));
Contoh di atas
membatasi bahwa harga harus maksimal Rp 100000, dan kode_produk harus di atas 100, perintah SQL yang bisa digunakan adalah:
e. Referential Integrity
Referential integrity memastikan nilai rujukan valid.
Contoh:
CREATE TABLE pemasok(kode_pemasok integer PRIMARY KEY, nama_pemasok varchar(45), kode_produk integer REFERENCES produk ON DELETE CASCADE ON UPDATE CASCADE);
Penjelasan contoh di atas,
apabila ada operasi Update atau Delete pada tabel utama, maka tabel kedua secara otomatis disesuaikan.
f. Action
Action merupakan perintah pada kegiatan updating (pembaharuan). Beberapa catatan penting penggunaan action adalah sebagai berikut:
1) NO ACTION atau RESTRICT: Update atau Delete tidak dilakukan. Ini merupakan pilihan
default.
2) CASCADE: nilai kolom di tabel kedua disesuaikan dengan nilai kolom di tabel utama 3) SET NULL: nilai kolom di tabel kedua dijadikan NULL
4) SET DEFAULT: nilai kolom di tabel kedua dijadikan nilai DEFAULT (nilai DEFAULT harus ditentukan pada waktu pembuatan tabel).
g. Autoincrement
Autoincrement berfungsi untuk mem 1) Gunakan “serial” untuk
autoincrement: Contoh:
CREATE TABLE nasabah(id_nasabah serial PRIMARY KEY, nama_nasabah varchar(45));
Pada contoh di atas, id_nasabah tidak perlu di-insert, karena database secara otomatis akan menambahkannya secara urut.
2) “serial” hanya terbatas dari 1 sampai 232.
3) Apabila butuh serial yang lebih besar dari 232, gunakan “bigserial”. Bigserial terbatas dari dari 1 sampai 264.
4) Jika kolom menggunakan “serial” atau “bigserial”, jangan sekali-kali memasukkan nilai kolom tersebut secara manual karena DBMS akan menambahkannya sendiri secara urut.
5) Penghapusan record tidak akan mempengaruhi urutan untuk serial dan bigserial.
Nilai untuk kolom yang menggunakan serial/bigserial akan selalu bertambah 1, tidak akan pernah kembali mundur.
D. LANGKAH KERJA
1. Pahami setiap tahapan Entity dan Relationships;
2. Pahami setiap langkah Pembuatan Tabel;
3. Pahami setiap langkah Implementasi SQL Manual;
4. Pahami setiap langkah Referential Integrity;
5. Pahami setiap langkah Advance Create Table Option
E. EVALUASI
Perhatikan ERD berikut:
Berdasarkan ERD, lakukan proses berikut ini:
a. Buat diagram relasi antar tabel;
b. Buat struktur basis data lengkap (dengan tipe data dan lebar datanya);
c. Buat basis data dan tabel (MySQL) secara manual, terapkan proses Advance Create Table Option (Default, Not Null, Unique, Check, Referential Integrity, Action dan Autoincrement). Laporkan setiap tahapan dengan menyertakan query dan screenshot hasil;
Table kategori sertifikasi
Table sertifikasi
Table instruktur
Table peserta_sertifikasi
Table ruang_sertifikasi
Table pendaftaran_sertifikasi
d. Lengkapi setiap tabel dengan data yang relevan dan sesuai dengan Referential Integrity. Laporkan setiap tahapan dengan menyertakan query dan screenshot hasil;
Table kategori sertifikasi
Table sertifikasi
Table instruktur
Table peserta_sertifikasi
Table ruang_sertifikasi
Table pendaftaran_sertifikasi