Rangkuman Hasil Laporan Basis data Semester 2
Pokok Bahasan 1: Basis Data, Model Data, Diagram E-R
A. Pendahuluan
Pokok bahasan ini mengulas konsep dasar basis data, pemodelan data, dan pembuatan diagram E-R. Mahasiswa diharapkan mampu:
- Memahami sistem basis data dan komponennya.
- Membuat desain basis data menggunakan ER-Diagram.
- Memahami dan mengimplementasikan fitur-fitur ER-Diagram.
B. Penyajian (Tutorial)
Konsep Sistem Basis Data
- Basis Data: Kumpulan data yang disimpan dalam komputer dan diolah untuk menghasilkan informasi.
- Sistem Basis Data: Ruang lingkup lebih luas, terdiri dari perangkat keras, sistem operasi, basis data, DBMS (Database Management System), dan pengguna.
Konsep Model Data
- Model Data: Cara menjelaskan data dalam basis data dan hubungannya secara logika.
- Object Based Data Model: Menggambarkan hubungan logis antar data berdasarkan objek (contohnya, Entity Relationship Model).
- Record Based Data Model: Menggambarkan hubungan logis antar data dalam bentuk tabel (contohnya, Relational Model).
- Physical Based Data Model: Menggambarkan teknis penyimpanan record dalam basis data.
Bahasa Basis Data
- DDL (Data Definition Language): Mendefinisikan struktur basis data (membentuk, mengubah, menghapus basis data).
- DML (Data Manipulation Language): Memproses data dalam basis data (menambah, mengolah, mengubah, menghapus data).
- DCL (Data Control Language): Mengatur hak akses pengguna pada basis data.
Entity Relationship Diagram (ER-D)
- Komponen ER-D: Entitas, atribut, dan kerelasian antar entitas.
- Entitas: Obyek dasar dalam sistem (contohnya, Mahasiswa, Matakuliah).
- Atribut: Keterangan yang terkait pada entitas.
- Kerelasian: Hubungan antara dua entitas.
Langkah-langkah Membuat ER-Diagram
- Identifikasi entitas yang terlibat.
- Lengkapi entitas dengan atribut yang sesuai.
- Tentukan primary key dari setiap entitas.
- Identifikasi kerelasian antar entitas.
- Gambarkan simbol entitas, atribut, dan kerelasian secara jelas.
- Cek kelengkapan ER-Diagram.
Lembar Kerja dan Tugas
A. Lembar Kerja
Studi kasus perpustakaan di Universitas Muhammadiyah Sidoarjo:
- Setiap mahasiswa harus memiliki kartu anggota dengan kode anggota, nama, alamat, email, dan telepon.
- Buku yang dipinjamkan mempunyai kode buku, judul, harga, tahun terbit, pengarang, dan penerbit.
- Pengarang dan penerbit memiliki kode dan nama masing-masing.
- Buku dapat dipinjam oleh beberapa anggota, dan pengarang mungkin mengarang beberapa buku.
Langkah-langkah Merancang Basis Data Perpustakaan
- Identifikasi entitas: Anggota, Buku, Pengarang, Penerbit.
- Lengkapi atribut masing-masing entitas.
- Tentukan primary key.
- Identifikasi kerelasian antar entitas.
- Gambarkan ER-Diagram.
B. Tugas
Studi kasus Universitas Muhammadiyah Sidoarjo:
- Analisis basis data kepegawaian.
- Identifikasi entitas: Pegawai, Jabatan, Golongan, Jadwal, PK_Karyawan.
- Lengkapi atribut entitas.
- Tentukan primary key.
- Identifikasi kerelasian antar entitas.
Kamus Data (Struktur Entitas)
- Tabel Pegawai: kode_pegawai, nama_depan, nama_belakang, email, telepon, tmp_lahir, tgl_lahir, alamat, kecamatan, kabupaten_kota, provinsi, kode_pos, pendidikan_terakhir, nama_sekolah, kode_golongan, status, kode_jabatan, kode_status_pegawai, tgl_recruitment, tgl_resign.
- Tabel Jabatan: kode_jabatan, jabatan.
- Tabel Golongan: kode_golongan, golongan.
- Tabel PK_Karyawan: id_pk, kode_pegawai, status_pk, tgl_ttdpk, lama_pk.
- Tabel Jadwal: id_hari, hari, jadwal_masuk, jadwal_pulang.
- Tabel Absensi: id_absensi, kode_pegawai, id_hari, tanggal, jam_masuk, jam_pulang, status_absensi.
Pokok Bahasan 2: Structured Query Language (SQL)
PENDAHULUAN
Bab ini membahas tentang SQL, elemen-elemen SQL, dan penerapan operasi elemen SQL pada MySQL. Setelah mempelajari, mahasiswa diharapkan mampu memahami SQL dan menggunakannya pada MySQL.
PENYAJIAN
SQL (Structured Query Language)
SQL adalah bahasa standar untuk mengakses basis data, digunakan pada berbagai platform dan DBMS seperti Oracle, Sybase, MySQL, dan Informix.
Elemen SQL
Pernyataan: Perintah SQL yang meminta tindakan tertentu kepada DBMS. Kelompok utama:
- DDL (Data Definition Language): CREATE, DROP, ALTER.
- DML (Data Manipulation Language): INSERT, SELECT, UPDATE, DELETE.
- DCL (Data Control Language): GRANT, REVOKE.
Nama: Identitas untuk objek DBMS seperti tabel dan kolom.
Tipe Data: Berbagai tipe data dalam MySQL seperti INT, FLOAT, CHAR, VARCHAR, dan DATE.
Konstanta: Nilai tetap yang tidak berubah, bisa numerik atau karakter.
Operator:
- Aritmatika: +, -, *, /, %.
- Relasi: ==, >, <, >=, <=, !=.
- Logika: AND, OR, NOT.
- Pembanding: IS NULL, BETWEEN, IN, LIKE.
Fungsi Agregat: SUM, AVG, COUNT, MAX, MIN.
MySQL (My Structured Query Language)
MySQL adalah RDBMS yang gratis dan open-source. Kelebihannya meliputi kecepatan, kemudahan penggunaan, open-source, kapabilitas, biaya murah, keamanan, dan lintas platform.
Instalasi XAMPP
- Jalankan file setup MySQL.
- Ikuti langkah instalasi hingga selesai.
- Atur password dan konfigurasi lainnya.
Koneksi ke MySQL
- Cara 1: Melalui DOS Prompt.
- Cara 2: Melalui XAMPP Control Panel.
Pokok Bahasan 3: Data Definition Language (DDL)
Pendahuluan
DDL pada SQL digunakan untuk mengelola struktur data dalam basis data. Mahasiswa diharapkan dapat:
- Memahami dan membuat basis data.
- Membuat tabel serta mengelola strukturnya.
Penyajian (Tutorial)
Data Definition Language (DDL) DDL adalah bagian dari SQL yang digunakan untuk mendefinisikan struktur basis data:
- CREATE DATABASE: Membuat basis data baru.
- DROP DATABASE: Menghapus basis data.
- CREATE TABLE: Membuat tabel baru.
- ALTER TABLE: Mengubah struktur tabel (menambah, mengubah, menghapus kolom).
- DROP TABLE: Menghapus tabel.
Untuk mempermudah, berikut ini adalah ringkasan singkat dari Pokok Bahasan IV: Data Manipulation Language (DML) yang telah Anda tuliskan:
A. Pendahuluan
Pada pokok bahasan ini, dibahas mengenai Data Manipulation Language (DML), yang memungkinkan manipulasi dan pengelolaan data dalam basis data menggunakan perintah seperti insert, select, update, dan delete.
B. Penyajian (Tutorial)
Data Manipulation Language (DML)
DML memungkinkan manipulasi data dalam tabel. Terdapat dua jenis DML: prosedural dan non-prosedural.
INSERT
- Digunakan untuk menambahkan baris baru ke dalam tabel.
- Contoh cara 1:sql
INSERT INTO namatabel VALUES (nilai1, nilai2, nilai-n); - Contoh cara 2:sql
INSERT INTO namatabel (kolom1, kolom2, kolom-n) VALUES (nilai1, nilai2, nilai-n);
UPDATE
- Digunakan untuk mengubah nilai pada satu atau beberapa kolom dalam tabel.
sqlUPDATE namatabel SET kolom1 = nilai1, kolom2 = nilai2 WHERE kondisi;SELECT
- Digunakan untuk menampilkan data dari tabel.
- Contoh tanpa klausa:sql
SELECT * FROM namatabel; - Contoh dengan klausa ORDER BY (ascending/descending):sql
SELECT * FROM namatabel ORDER BY kolom ASC;
sqlSELECT * FROM namatabel ORDER BY kolom DESC;DELETE
- Digunakan untuk menghapus baris dari tabel.
sqlDELETE FROM namatabel WHERE kondisi;GROUP BY dan HAVING
- GROUP BY: Digunakan untuk mengelompokkan hasil berdasarkan kolom tertentu.
- HAVING: Digunakan untuk memberikan kondisi pada hasil dari GROUP BY.
LIMIT
- Digunakan untuk membatasi jumlah baris yang ditampilkan.
sqlSELECT * FROM namatabel LIMIT jumlah_baris;
- Query
- Query digunakan untuk mengolah data dengan kriteria tertentu dari basis data, bisa melibatkan beberapa tabel.
- Aturan: setiap field disebutkan dengan format
NamaTabel.NamaField, tabel disebutkan dalamFROM, dan kondisiWHEREmempengaruhi jenis join.
- Jenis-Jenis Join
- Cross Join: Penggabungan dengan perkalian kartesian.
- Inner Join: Menampilkan data yang sesuai dengan syarat di
ON. - Equijoin: Penggabungan dengan operator
=padaWHERE. - Self-Join: Penggabungan antar field dari tabel yang sama.
- Natural Join: Operasi equijoin dengan kolom yang sama sebagai penghubung.
- Set Operations
- UNION: Menggabungkan hasil query dengan struktur yang sama.
- INTERSECT: Menampilkan data yang ada di kedua query.
- EXCEPT: Menampilkan data dari query pertama yang tidak ada di query kedua.
- Nested Queries: Query di dalam query dengan
IN,NOT IN,EXISTS,NOT EXISTS.
B. Penyajian (Tutorial)
A. Query
Contoh Penggunaan Jenis-Jenis Join
- Inner Join:sql
SELECT buku.kode_buku, buku.judul_buku, pengarang.kode_pengarang, pengarang.nama_pengarang FROM buku JOIN pengarang ON buku.kode_pengarang = pengarang.kode_pengarang; - Equijoin:sql
SELECT buku.kode_buku, buku.judul_buku, pengarang.kode_pengarang, pengarang.nama_pengarang FROM buku, pengarang WHERE buku.kode_pengarang = pengarang.kode_pengarang; - Self-Join:sql
SELECT a.kode_buku, b.judul_buku FROM buku a, buku b WHERE a.harga = '25000' AND b.harga = '50000'; - Natural Join:sql
SELECT buku.kode_buku, buku.judul_buku, pengarang.kode_pengarang, pengarang.nama_pengarang FROM buku NATURAL JOIN pengarang;
- Inner Join:
Set Operations
- Union:sql
SELECT tahun_terbit, judul_buku FROM buku WHERE tahun_terbit = '2003' UNION SELECT tahun_terbit, judul_buku FROM buku WHERE tahun_terbit = '2004'; - Intersect (dengan pengganti IN):sql
SELECT * FROM buku WHERE tahun_terbit = '2003' AND judul_buku IN (SELECT judul_buku FROM buku WHERE tahun_terbit = '2004'); - Except (dengan pengganti NOT IN):sql
SELECT * FROM buku WHERE tahun_terbit = '2003' AND judul_buku NOT IN (SELECT judul_buku FROM buku WHERE tahun_terbit = '2004'); - Nested Queries:sql
SELECT * FROM pengarang WHERE kode_pengarang IN (SELECT kode_pengarang FROM buku); SELECT * FROM pengarang WHERE NOT EXISTS (SELECT * FROM buku WHERE pengarang.kode_pengarang = buku.kode_pengarang);
- Union:
B. View
- Pembuatan Viewsql
CREATE VIEW view_buku AS SELECT buku.kode_buku, buku.judul_buku, buku.tahun_terbit, pengarang.nama_pengarang FROM buku JOIN pengarang ON buku.kode_pengarang = pengarang.kode_pengarang; - Penggunaan View
- Memanggil data dari view:sql
SELECT * FROM view_buku; - Merubah definisi view (dengan REPLACE VIEW):sql
CREATE OR REPLACE VIEW view_buku AS SELECT buku.kode_buku, buku.judul_buku, buku.tahun_terbit, pengarang.nama_pengarang FROM buku JOIN pengarang ON buku.kode_pengarang = pengarang.kode_pengarang WHERE buku.tahun_terbit > '2000'; - Insert, Update, dan Delete data melalui view:sql
INSERT INTO view_buku (kode_buku, judul_buku, tahun_terbit) VALUES ('BK001', 'Matematika Dasar', '2023'); UPDATE view_buku SET judul_buku = 'Fisika Modern' WHERE kode_buku = 'BK002'; DELETE FROM view_buku WHERE kode_buku = 'BK003'; - Menghapus (drop) view:sql
DROP VIEW view_buku;
- Memanggil data dari view:
C. Tugas
- Buatlah contoh pengolahan data menggunakan query dengan berbagai jenis join dan set operations.
- Buatlah view untuk mempermudah akses data seperti data pegawai dan absensi, dengan melibatkan informasi dari jabatan, bagian, dan golongan pegawai.
Data Control Language (DCL) / Hak Akses User - MySQL
A. Pendahuluan
Data Control Language (DCL) adalah bagian dari SQL yang digunakan untuk mengatur hak akses pengguna terhadap objek-objek dalam basis data. Dengan DCL, administrator basis data dapat mengontrol siapa yang dapat mengakses, mengubah, atau menghapus data.
B. Penyajian (Tutorial)
1. Pemahaman Hak Akses
Hak akses dalam basis data penting untuk menjaga keamanan data dan mengatur akses data sesuai dengan kebutuhan pengguna. Perintah-perintah yang terkait dengan hak akses umumnya meliputi SELECT, INSERT, UPDATE, DELETE, dan perintah-perintah lain seperti REFERENCES, INDEX, CREATE, ALTER, dan DROP.
2. Mengatur Hak Akses
Di MySQL versi 3.22 ke atas, pengaturan hak akses menggunakan perintah GRANT dan REVOKE.
Perintah GRANT Digunakan untuk memberikan hak akses kepada pengguna baru atau yang sudah ada.
Syntax Umum:
sqlGRANT jenis_akses ON nama_objek TO nama_pengguna IDENTIFIED BY 'password' [WITH GRANT OPTION];Contoh:
sqlGRANT SELECT ON buku TO siska;Memberikan hak akses SELECT pada tabel
bukukepada penggunasiska.Contoh Multiple Privileges:
sqlGRANT SELECT, INSERT, UPDATE, DELETE ON buku TO siska, edi;Memberikan hak akses SELECT, INSERT, UPDATE, DELETE pada tabel
bukukepada penggunasiskadanedi.
3. Membatasi Hak Akses
Hak akses dapat dibatasi untuk mempertegas kontrol terhadap pengguna. Contohnya, memberikan akses hanya pada beberapa kolom tertentu dalam sebuah tabel.
- Contoh Batasan Hak Akses:
Memberikan hak akses SELECT dan UPDATE hanya untuk kolomsqlGRANT SELECT, UPDATE (kode_buku, judul_buku, tahun_terbit) ON buku TO edi;kode_buku,judul_buku, dantahun_terbitkepada penggunaedi.
4. Hak Akses Penuh
Untuk memberikan semua hak akses ke pengguna terkait terhadap sebuah objek, digunakan klausa ALL PRIVILEGES.
- Contoh Hak Akses Penuh:
Memberikan semua hak akses (SELECT, INSERT, UPDATE, DELETE, dll.) pada tabelsqlGRANT ALL PRIVILEGES ON buku TO siska;bukukepada penggunasiska.
5. Hak Akses kepada Public
Untuk memberikan hak akses kepada banyak pengguna atau secara global, dapat menggunakan klausa PUBLIC atau WORLD tergantung dari DBMS yang digunakan.
- Contoh Hak Akses Global:
Memberikan hak akses SELECT dan INSERT pada tabelsqlGRANT SELECT, INSERT ON buku TO ''@'%';bukukepada semua pengguna dari semua host (%).
6. Pencabutan Hak Akses
Untuk mencabut hak akses dari pengguna, digunakan perintah REVOKE.
Contoh Pencabutan Hak Akses:
sqlREVOKE SELECT ON buku FROM siska;Mencabut hak akses SELECT dari pengguna
siskaterhadap tabelbuku.Pencabutan Hak Akses Secara Keseluruhan:
sqlREVOKE SELECT, INSERT ON buku FROM edi;Mencabut hak akses SELECT dan INSERT dari pengguna
editerhadap tabelbuku.Menghapus Pengguna Secara Permanen:
sqlDROP USER 'siska'@'localhost';Menghapus pengguna
siskadari basis data secara permanen.
Tugas
Buatlah Hak Akses User dengan Privilege:
- User dengan hak akses SELECT pada salah satu tabel di database Anda.
- User dengan hak akses SELECT, INSERT, dan UPDATE pada salah satu tabel di database Anda.
- User dengan hak akses penuh terhadap basis data Anda.
- Hak akses untuk public pada salah satu tabel dalam basis data Anda.
Mencabut Hak Akses User:
- Cabutlah hak akses salah satu user yang sudah Anda buat.
- Cabutlah secara permanen user yang memiliki hak akses penuh.
Dengan menguasai DCL, Anda dapat mengatur basis data dengan lebih aman dan efektif sesuai dengan kebutuhan aplikasi atau kebijakan keamanan yang diterapkan.
Komentar
Posting Komentar