A. Tujuan
Saya mampu membuat struktur tabel-tabel basis data berdasarkan
perancangan di modul 3 dan mengimplementasikan tabel-tabel tersebut di basis
data.
B. Dasar Teori
Basis data dapat diimplementasikan berdasarkan E-R diagram yang
telah dibuat. Implementasi database bisa:
1. Secara manual (dengan
perintah SQL ‘CREATE TABLE’)
2. Secara semi-manual dengan
bantuan client berbasis GUI (MySQL Front, PgAccess, phpPgAdmin, dst.)
3. Secara otomatis dengan
CASE Tools (DBDesigner)
· Pengenalan PostgreSQL
PostgreSQL
adalah sebuah object-relational database management system (ORDBMS),
bersifat open source, mendukung standar SQL92 dan SQL99 serta
mendukung bahasa pemrograman C, C++, Java, Tcl, Perl, Python, PHP, dst.
Fitur
penting PostgreSQL: Inheritance, Data types, Functions, Constraints,
Triggers, Rules, dan Transactional Integrity.
Arsitektur
PostgreSQL berbasis Client-Server. Backend Software untuk
database server (server-side) adalah Postmaster.
Frontend
software (client-side):
· Psql (disediakan dalam
paket PostgreSQL)
· Client berbasis GUI
(PgAdmin, PgAccess, ApplixWare)
· Buat aplikasi sendiri (C,
C++, Java, PHP, dsb.)
Beberapa
URL untuk PostgreSQL:
· techdocs.postgresql.org
· Tahap Pembuatan Tabel
1. Membuat semua tabel yang
paling utama (yang tidak memiliki FK).
2. Membuat semua tabel yang
berhubungan langsung (atau memiliki relationship) dengan tabel yang dibuat di
tahap sebelumnya. Mulailah secara urut dari tabel dengan jumlah FK yang paling
ssedikit ke ang paling banyak.
3. Ulangi tahap 2 sampai
semua tabel selesai dibuat.
· Implementasi Manual
Contoh untuk
menetukan Primary Key (PK):
· CREATE TABLE dosen (nip
INTEGER PRIMARY KEY, nama_dosen VARCHAR(45), alamat_dosen VARCHAR(255));
Contoh untuk menentukan Foreign Key (FK):
· CREATE TABLE mahasiswa
(nim INTEGER PRIMARY KEY, nip INTEGER REFERENCES dosen(nip), nama_mhs
VARCHAR(45), alamat_mhs VARCHAR(255));
· Referential Integrity
1. Integritas databse
mengacu pada hubungan antar tabel melalui Foreign Key yang
bersangkutan.
2. Pada insert, record harus
dimasukkan di tabel utama dahulu, kemudian baru di tabel kedua.
3. Pada delete,
record harus dihapus di tabel kedua dahulu, kemudian baru di tabel
utama.
4. Secara default,
PostgreSQL akan menolak insert atau delete yang
melanggar integritas database.
· Insert Table
1. Perintah SQL untuk
memasukkan data di tabel untuk semua kolom:
INSERT INTO
VALUES (, ...);
2. Untuk memasukkan data
pada kolom-kolom tertentu:
INSERT INTO (, ...)
VALUES (, ...);
· Tahap Insert
Table
1. Tahap insert
table mengikuti tahap pembuatan tabel
2. Tahap 1: Lakukan insert pada
semua tabel yang paling utama (yang tidak memiliki FK).
3. Tahap 2: Lakukan insert pada
semua tabel yang langsung berhubungan dengan tabel yang di-insert di
tahap sebelumnya, secara urut dari tabel dengan jumlah FK yang paling sedikit
ke yang paling banyak.
4. Tahap 3: ulangi tahap 2
sampai semua insert selesai dilakukan.
· Tahap Delete
Table
1. Untuk menjaga integritas
database, maka tahap untuk melakukan delete table adalah
kebalikan dari tahapinsert table.
2. Secara default,
PostgerSQL akan menolak delete yang melanggar integritas
database. Dengan kata lain,record di tabel utama tidak akan dihapus
jika masih ada record di tabel kedua yang berhubungan denganrecord utama
tersebut.
Advanced Create Table Options:
· Default
Untuk menentukan nilai default kolom jika tidak ada data yang
di-insert untuk kolo itu:
- CREATE TABLE mahasiswa (nim integer PRIMARY KEY, nama_mhs
VARCHAR(45), fakultas VARCHAR(5) DEFAULT ‘FKI’:
Contoh insert:
- INSERT INTO mahasiswa (nim, nam_mhs) VALUES (1, ‘Ali Topan’);
· Not Null
Untuk membatasi agar nilai kolom tidak boleh NULL:
- CREATE TABLE ruang (kode_ruang VARCHAR(20) PRIMARY KEY,
lokasi_ruang VARCHAR(255) NOT NULL, kapasitas_ruang INTEGER NOT NULL);
Jika kolom ditentukan NOT NULL, maka insert harus
memasukkan nilai untuk kolom tersebut. Bisa menggunakan DEFAULT sehingga nilai
kolom ditambahkan secara otomatis.
Pengertian NULL
Khusus untuk tipe string (varchar atau char), NULL tidak sama
dengan kosong. Jika nilai kolom adalah NULL, artinya nilai tidak diketahui atau
nilai tidak ada sama sekali. Jika nilaikolom adalah kosong, artinya kolom
tersebut memang diketahui nilainya (ada nilainya), yaitu nilai kosong (empty
string).
Contoh:
- CREATE TABLE test (kode INTEGER PRIMARY KEY, nama VARCHAR(20));
- INSERT INTO test (kode) VALUES (1);
- INSERT INTO test VALUES (2, ‘ ’);
Perhatikan hasil berikut:
- SELECT* FROM test WHERE nama IS NULL;
- SELECT* FROM test WHERE nama = ‘ ‘;
· Unique
Untuk memastikan bahwa nilai kolom unik:
- CREATE TABLE mata_kulaih (kode_mk INTEGER PRIMARY KEY, nama_mk VARCHAR(45)
UNIQUE);
Untuk multikolom yang unik:
- CREATE TABLE dosen (nip INTEGER PRIMARY KEY, nama_dosen
VARCHAR(45), alamat_dosen VARCHAR(255), UNIQUE (nama_dosen, alamat_dosen));
· Check
Untuk membatasi nilai kolom, misalnya:
- CREATE TABLE produk (kode_produk INTEGER PRIMARY KEY,
nama_produk VARCHAR(45), harga INTEGER, CHECK (harga <= 100000 AND
kode_produk > 100));
Check di atas membatasi bahwa harga harus maksimal Rp 100000,
dan kode_produk harus di atas 100.
Penentuan Referential Integrity
Contoh:
- CREATE TABLE pemasok (kode_pemasok INTEGER PRIMARY KEY,
nama_pemasok VARCHAR(45), kode_produk INTEGER REFERENCES produk ON DELETE
CASCADE ON UPDATE CASCADE);
Untuk contoh di atas, jika ada update atau delete di
tabel utama, maka tabel kedua secara otomatis disesuaikan.
Macam action:
o NO ACTION atau
RESTRICT: update atau delete tidak dilakukan.
Ini merupakan pilihan default.
o CASCADE: nilai kolom di
tabel kedua disesuaikan dengan nilai kolom di tabel utama.
o SET NULL: nilai kolom di
tabel kedua dijadikan NULL.
o SET DEFAULT: nilai kolom
di tabel kedua dijadikan nilai DEFAULT (nilai DEFAULT harus ditentukan pada
waktu pembuatan tabel).
· Autoincrement
Untuk fitur autoincrement, gunakan “serial”:
- CREATE TABLE nasabah (id_nasabah SERIAL PRIMARY KEY,
nama_nasabah VARCHAR(45));
Untuk contoh di atas, id_nasabah tidak perlu di-insert,
karena database secara otomatis akan menambahkannya secara urut. Kita cukup
hanya memasukkan nam_nasabah saja:
- INSERT INTO nasabah (nama_nasabah) VALUES (‘Ali Topan’);
Serial hanya bisa dari 1 sampai 232. Jika tidak cukup, gunakan
bigserial yang bisa dari 1 sampai 264. 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. Misalnya:
- DELETE FROM nasabah WHERE id_nasabah=1;
- INSERT INTO nasabah (nama_nasabah) VALUES (‘Ali Topan’);
- Perhatikan id_nasabah: SELECT* FROM nasabah;
C. Alat dan Bahan
1. Komputer dengan sistem
operasi Windows 7.
2. Program aplikasi
PostgreSQL 9.3
3. Modul Praktikum Sistem
Berkas dan Basis Data.
D. Langkah Kerja
1. Jalankan pgAdmin III pada
PostgreSQL 9.3, caranya dengan membuka Start > All Programs >
PostgreSQL 9.3 > pgAdmin III.
2. Pada tab object
browser (sebelah kiri), double klik pada PostgreSQL 9.3
(localhost:5432), kemudian klik kanan pada Databases (1) >
New Database, beri nama pada kolom nama, karena ingin membuat database
bank, maka beri nama bank, misal “MUAMALAT”, kemudian klik OK.
3. Pada tab properties,
klik pada MUAMALAT, lalu pilih ikon gambar puzzle warna kuning dan
hijau) lalu pilih PSQL Console.
4. Membuat tabel nasabah,
cabang_bank, rekening, dan transaksi:
5. Membuat tabel nasabah_has_rekening:
6. Untuk mengecek hasil
pembuatan tabel gunakan perintah \dt:
7. Selanjutnya, memasukkan
record-record ke dalam tabel yang telah dibuat dengan perintah insert into.
Saya menggunakan fungsi Multiple Input In One Statement.
Pada tabel nasabah:
Pada tabel cabang_bank: Saya menggunakan fungsi
Multiple Input In One Statement
Pada tabel rekening:
Pada tabel nasabah_has_rekening:
Pada tabel transaksi:
8. Melihat hasil pada
masing-masing tabel.
Pada tabel nasabah:
Pada tabel cabang_bank:
Pada tabel rekening:
Pada tabel nasabah_has_rekening:
Pada tabel transaksi:
E. Analisa
Dari percobaan yang telah saya lakukan, dapat disimpulkan bahwa dalam pembuatan database menggunakan GUI dibutuhkan kemampuan menghafal susunan kode (syntax) dari SQL. Saya juga dapat memasukkan lebih dari 1 value dalam 1 statement.
F. Tugas
Implementasikan hasil rancangan database yang menangani data
kuliah pada tugas modul 3 ke dalam program pgAdmin III. Masukkan beberapa record ke
setiap tabel dalam database yang telah dibuat. Print out hasil implemenatasi
rancangan tersebut dan analisa hasilnya.
Langkah-langkah pembuatan database kuliah:
1. Jalankan pgAdmin III pada
PostgreSQL 9.3, caranya dengan membuka Start > All Programs >
PostgreSQL 9.3 > pgAdmin III.
2. Pada tab object
browser (sebelah kiri), double klik pada PostgreSQL 9.3
(localhost:5432), kemudian klik kanan pada Databases (2) >
New Database, beri nama pada kolom nama, karena ingin membuat database
kuliah, maka beri nama universitas, misal “UNIVERSITAS”, kemudian klik OK.
3. Pada tab properties,
klik pada UMS, lalu pilih ikon gambar puzzle warna kuning dan
hijau) lalu pilih PSQL Console.
4. Membuat tabel mahasiswa,
dosen, mata_kuliah, ruang_kelas dan mahasiswa_has_mata_kuliah:
5. Mengecek hasil pembuatan
tabel dengan perintah \dt:
6. Selanjutnya memasukkan
record-record ke dalam masing-masing tabel yang telah dibuat dengan perintah
insert into.
Pada tabel mahasiswa:
Pada tabel dosen:
Pada tabel mata_kuliah:
Pada tabel ruang_kelas:
Pada tabel mahasiswa_has_mata_kuliah:
7. Melihat hasil input pada
masing-masing tabel:
Pada tabel mahasiswa:
Pada tabel dosen:
Pada tabel mata_kuliah:
Pada tabel ruang_kelas:
Pada tabel mahasiswa_has_mata_kuliah:



















0 comments:
Post a Comment