LAPORAN PRAKTIKUM SISTEM BASIS DATA
MODUL 5
(PENGGUNAAN INSTRUKSI CREATE TABLE & OPTIONS-NYA
SERTA MEMASUKKAN RECORD KE DALAM TABEL-TABEL BASIS DATA
Disusun oleh:
Nama : Fajar Eko Prasetyo
NIM : L200120010
Kelas : A
JURUSAN TEKNIK INFORMATIKA
FAKULTAS KOMUNIKASI DAN INFORMATIKA
UNIVERSITAS MUHAMMADIYAH SURAKARTA
2014
A. Tujuan
Mahasiswa mampu
membuat struktur tabel-tabel basis data berdasarkan perancangan di modul 3 dan
mengimplementasikan tabel-tabel tersebut di basis data.
B. Landasan 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
·
Integritas databse mengacu pada hubungan
antar tabel melalui Foreign Keyyang bersangkutan.
·
Pada insert, record harus
dimasukkan di tabel utama dahulu, kemudian baru di tabel kedua.
·
Pada delete, record harus
dihapus di tabel kedua dahulu, kemudian baru di tabel utama.
·
Secara default, PostgreSQL
akan menolak insert atau delete yang
melanggar integritas database.
v
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 (, ...);
v 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.
v Tahap Delete Table
1.
Untuk menjaga integritas database, maka
tahap untuk melakukan delete tableadalah kebalikan dari tahap insert
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 dengan record utama
tersebut.
v Advanced Create Table Options:
v 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
2. Pada tab object browser (sebelah kiri),
double klik pada PostgreSQL 9.2 (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
“bukopin”, kemudian klik OK
3.
Pada tab properties, klik
pada bukopin, 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.
Pada tabel nasabah:
Pada
tabel cabang_bank:
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 di atas, dapat saya
simpulkan bahwa membuat database menggunakan PostgreSQL 9.3 dengan PSQL
console, sepenuhnya berbasis teks. Jadi untuk membuat, memasukkan, dan
menghapus data menggunakan perintah tertentu yang telah dibakukan oleh SQL.
Dalam percobaan ini, dibutuhkan kemampuan menghafal yang baik, namun selain
menghafal kita juga harus memahami setiap perintah yang diketikkan.
F. Tugas
Implementasikan hasil rancangan database yang
menangani data kuliah pada tugas modul 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.
dalam database yang telah dibuat. Print out hasil implemenatasi rancangan tersebut dan analisa hasilnya.
Langkah-langkah
pembuatan database kuliah:
1. Jalankan pgAdmin III
2. Pada tab object
browser (sebelah kiri), double klik pada PostgreSQL 9.2
(localhost:5432), kemudian klik kanan pada Databases (2) >
New Database, beri nama pada kolom nama, karena ingin membuat database
kuliah, maka beri nama jurusan, misal “TI”, kemudian klik OK
3. Pada tab properties,
klik pada TI, lalu pilih ikon gambar puzzle warna kuning dan hijau)
lalu pilih PSQL Console.
4. Membuat tabel mahasiswa,
dosen, mata_kuliah, ruang_kelas:
5.
Membuat tabel mahasiswa_has_mata_kuliah:
6.
. 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:
Dari implementasi
database data-data kuliah untuk setiap relasi dari satu ke banyak (1:n) akan
ada atribut primary key dari tabel (dengan relasi satu) yang ditambahkan ke
tabel dengan relasi banyak. Misalnya untuk relasi dari dosen ke mata_kuliah
(1:n), pada tabel mata_kuliah akan ditambahkan primary key dari dosen, yaitu
nik.
Kemudian untuk relasi
dari banyak ke banyak (m:n), kita harus membuat tabel baru yang menghubungkan
dua tabel yang saling berelasi tadi. Misal, dari relasi mahasiswa ke
mata_kuliah (m:n), dibuat tabel baru dengan nama mahasiswa_has_mata_kuliah yang
berisikan atribut primary key dari kedua tabel (mahasiswa dan mata_kuliah)
yaitu nim dan kode_mk.
0 komentar:
Posting Komentar