LEMBAR
PENGESAHAN
PRAKTIKUM
DESAIN BASIS DATA
TAHUN
2013-2014
Disusun Oleh :
Nama :
Dewi Rahmawati
NIM :
12650054
Telah
diterima dan disetujui sebagai syarat untuk melengkapi kegiatan praktikum
Desain Basis Data pada Jurusan Teknik Informatika, Fakultas Sains dan
Teknologi, Universitas Islam Negeri Maulana Malik Ibrahim Malang, Pada :
Hari : Kamis
Tanggal :
26 September 2013
Mengetahui,
Dosen Pengampu Praktikum
Aziz Musthafa,S.
Kom.
DAFTAR
ISI
Cover 1
Lembar Pengesahan 2
Daftar Isi 3
Bab I Maksud dan Tujuan Praktikum 4
I.1
Maksud Praktikum 4
I.2
Tujuan Praktikum 4
Bab II Dasar
Teori 4
2.1 Membuat Tabel 4
2.2 Manipulasi Tabel 5
2.3 Temporary Tabel 5
2.4 GRANT dan REVOKE 5
2.5 Turunan
(Inheritance) 6
Bab III Hasil Praktikum 7
Bab IV Penyelesaian Tugas Praktikum 15
Bab V Penutup
20
5.1
Kritik dan Saran 20
Daftar Pustaka 21
BAB I
MAKSUD DAN TUJUAN PRAKTIKUM
I.1 Maksud Praktikum
Membahas tentang
pembuatan tabel dan pengelolaan tabel.
I.2 Tujuan Praktikum
1. Mahasiswa memahami cara pembuatan maupun penghapusan tabel.
2. Mahasiswa memahami cara mengedit struktur dari tabel.
3.
Mahasiswa mampu memanipulasi tabel sesuai dengan kebutuhan.
BAB II
DASAR TEORI
Sebuah tabel terdiri dari baris (row) dan kolom (column),
dimana jumlah dan nama kolom harus didefinisikan terlabih dahulu di awal.
Sedangkan baris merupakan sebuah variable yang dapat dihapus dan diisi
kapanpun, sehingga junlahnya selalu berubah sesuai dengan jumlah data
didalamnya. Setiap kolom dalam tabel mempunyai tipe data, tipe data digunakan
untuk membatasi jenis data yang bisa dimasukkan, sehingga akan mempermudah
dalam menggunakannya dan melakukan pengelolaan selanjutnya. Sangat disarankan
pada saat akan membuat tabel, sebaiknya membuat sebuah konvensi khusus dalam
penentuan tabel-tabel yang akan dibuat dan memberikan nama kolom maupun tipe
datanya.
2.1 Membuat Tabel
Catatan :
1. Tabel harus memiliki primary key, artinya dalam pembuatan tabel haruslah
terdapat sekelompok kolom (field) yang menyebabkan setiap baris (record)
dalam tabel tersebut tidak sama.
2. Deklarasi primary key tidak boleh kosong (null), jadi kita harus
mendeklarasikan sebagai not null. Namun secara default PostgreSQL
menganggapnya sebagai nullable (boleh kosong), jika waktu pengisian
tidak menyebutkan null atau not null.
Struktur query yang digunakan membuat tabel dengan dua kolom:
CREATE TABLE [NAMA TABEL] ([NAMA KOLOM] [SPASI] [TIPE DATA] [SPASI]
[KETERANGAN],[NAMA KOLOM] [SPASI] [TIPE DATA] [SPASI] [KETERANGAN]);
Untuk melihat struktur tabel yang telah dibuat ketikkan perintah “\d” dan
melihat semua tabel menggunakan “\z”.
Struktur query yang digunakan menghapus tabel :
DROP TABLE [NAMA TABEL];
2.2 Manipulasi Tabel
Dalam pembuatan tabel sebaiknya direncanakan field dan
tipe datanya untuk meminimalisir kesalahan saat tabel telah berisi data. Namun
meskipun begitu bukan berarti tabel tidak bisa diubah dan dihapus. PostgreSQL
telah menyediakan utilitas untuk manipulasi ini dan perlu diingat hal ini bukan
manipulasi data melainkan manipulasi struktur tabelnya.
Struktur query yang digunakan untuk menghapus kolom :
ALTER TABLE [NAMA TABEL] DROP COLUMN “[NAMA KOLOM]”;
Struktur query yang digunakan untuk menambah kolom:
ALTER TABLE [NAMA TABEL] ADD COLUMN “[NAMA KOLOM]”;
Struktur query yang digunakan untuk mengubah nama tabel :
ALTER TABLE [NAMA TABEL ASAL] RENAME TO [NAMA TABEL BARU];
Struktur query yang digunakan untuk mengubah nama kolom :
ALTER TABLE [NAMA TABLE] RENAME COLUMN “[NAMA KOLOM
ASAL]” TO [NAMA KOLOM BARU] ;
Struktur query yang digunakan untuk menambahkan primary key pada
tabel :
ALTER TABLE [NAMA TABEL] ADD PRIMARY KEY ([NAMA KOLOM]);
2.3 Temporary Tabel
Temporary tabel sifatnya hanya sementara artinya akan
aktif hanya ketika kita sedang berada atau login ke database namun
ketika kita logout dari psql database maka secara otomatis
temporary tabel akan terhapus.
Struktur query yang digunakan membuat tabel dengan dua kolom :
CREATE TEMPORARY TABLE [NAMA TABEL] ([NAMA KOLOM] [SPASI]
[TIPE DATA] [SPASI] [KETERANGAN] , [NAMA KOLOM] [SPASI] [TIPE
DATA] [SPASI] [KETERANGAN]);
2.4 GRANT dan REVOKE
Pada saat membuat tabel pada user tertentu maka hanya
user tersebut dan user postgres yang dapat mengakses tabel itu. Namun jika kita
ingin agar tabel yang telah dibuat pada user kita dapat diakses oleh user
tertentu atau semua user yang berada pada PostgreSQL, maka semua itu dapat
dilakukan dengan perintah GRANT. Jika ingin mencabut hak akses kita bisa
menggunakan perintah REVOKE.
Berikut struktur penggunaan
GRANT untuk semua hak akses :
GRANT ALL ON TABLE [NAMA TABEL] TO [NAMA USER];
Berikut struktur penggunaan REVOKE untuk semua hak akses :
REVOKE ALL ON TABLE [NAMA TABEL] FROM [NAMA USER];
Struktur query untuk menghapus salah satu hak akses, misalnya UPDATE :
REVOKE UPDATE ON TABEL [NAMA TABEL] FROM [NAMA USER];
Struktur query untuk memberi salah satu hak akses, misalnya DELETE :
GRANT DELETE ON TABEL [NAMA TABEL] TO [NAMA USER];
2.5 Turunan (Inheritance)
INHERITANCE dipergunakan jika ingin membuat sebuah tabel
baru yang berhubungan dengan tabel yang ada, dengan kata lain turunan tabel
pertama.
Struktur penggunaan query INHERITANCE :
CREATE TEMPORARY TABLE [NAMA TABEL] ([NAMA KOLOM] [SPASI]
[TIPE DATA] [SPASI] [KETERANGAN] , [NAMA KOLOM] [SPASI] [TIPE
DATA] [SPASI] [KETERANGAN]) INHERITS (NAMA TABEL INDUK);
Contoh :
Terdapat tabel kabupaten, kemudian dibuatlah turunan dari tabel kabupaten
untuk membuat tabel wisata querynya sebagai berikut :
Create table pariwisata (wisata character varying(20)) inherits
(kabupaten) ;
BAB
III
HASIL
PRAKTIKUM
Pada praktikum yang kedua membahas tentang pembuatan dan
manajemen tabel. di bawah ini saya akan menjelaskan sedikit tentang manajemen
dan pembuatan tabel tersebut.
1. Membuat tabel
Untuk membuat sebuah tabel, Struktur query yang digunakan adalah:
CREATE TABLE [NAMA TABEL] ([NAMA KOLOM] [SPASI] [TIPE DATA] [SPASI]
[KETERANGAN] );
Struktur query diatas hanya digunakan untuk membuat satu tabel
dengan satu kolom, sedangkan struktur query yang digunakan untuk membuat tabel
dengan dua kolom yaitu :
CREATE TABLE [NAMA TABEL] ([NAMA KOLOM] [SPASI] [TIPE DATA] [SPASI]
[KETERANGAN] , [NAMA KOLOM] [SPASI] [TIPE DATA] [SPASI] [KETERANGAN]);
Contoh :
Gambar 1
Tabel diatas berisi lebih dari dua kolom. Sebenarnya
struktur query yang digunakan tabel dengan banyak kolom sama dengan pembuatan
tabel dengan dua kolom, hanya dipisah dengan tanda koma “,” .
2. Menampilkan tabel
Untuk melihat tabel yang telah dibuat ketikkan perintah
“\d”. Sedangkan untuk melihat isi tabel dengan mengetikkan perintah “\d
nama_tabel” contoh : \d pegawai lalu tekan enter.(lihat gambar 2 dibawah).
Gambar 2
3. Menghapus kolom dalam tabel
yang telah dibuat
Apabila dalam tabel yang telah dibuat ada kolom yang
sudah tidak diperlukan atau suatu saat data tersebut memang harus dihilangkan
maka kita dapat menghapusnya.
Struktur query yang digunakan untuk menghapus kolom dalam sebuah tabel
adalah :
ALTER TABLE [NAMA TABEL] DROP COLUMN “[NAMA KOLOM]”;
Gambar 3.1
Gambar 3.2
Maka kolom ide_alamat akan terhapus, seperti pada gambar
diatas. Pada gambar 3.1 kolom ide_alamat masih ada, setelah diberi query “ alter
table pegawai drop column “ide_alamat” “ dapat kita lihat pada gambar 3.2 kolom
tersebut sudah tidak ada.
4. Menambah kolom dalam tabel
Struktur query yang digunakan untuk menambah kolom pada tabel adalah :
ALTER TABLE [NAMA TABEL] ADD COLUMN “[NAMA KOLOM]”;
Contoh :
Gambar 4
5. Mengubah nama tabel
Struktur query yang digunakan untuk mengubah nama tabel adalah :
ALTER TABLE [NAMA TABEL ASAL] RENAME TO [NAMA TABEL BARU];
Contoh :
Nama tabel yang telah diubah
Gambar 5
6. Mengubah nama kolom dalam
tabel
Struktur query yang digunakan untuk mengubah nama kolom :
ALTER TABLE [NAMA TABLE] RENAME COLUMN “[NAMA KOLOM ASAL]” TO [NAMA KOLOM
BARU] ;
Contoh :
Sesudah nama kolom diubah :
7. Memberikan primary key pada
sebuah tabel
Tabel harus memiliki primary key, artinya dalam pembuatan
tabel haruslah terdapat sekelompok kolom (field) yang menyebabkan setiap baris
(record) dalam tabel tersebut tidak sama. Deklarasi primary key tidak boleh
kosong (null), jadi kita harus mendeklarasikan sebagai not null. Namun secara
default PostgreSQL menganggapnya sebagai nullable (boleh kosong), jika waktu
pengisian tidak menyebutkan null atau not null.
Struktur query yang digunakan untuk menambahkan primary key pada tabel :
ALTER TABLE [NAMA TABEL] ADD PRIMARY KEY ([NAMA KOLOM]);
8. Menghapus primary key pada sebuah
tabel
Struktur query yang digunakan untuk menghapus primary key pada sebuah
tabel :
ALTER TABLE [NAMA_TABLE] DROP CONSTRAINT [NAMA_TABLE_PKEY] ;
Contoh :
9. Menghapus tabel
Apabila suatu saat tabel yang telah dibuat tidak
diperlukan lagi maka kita dapat menghapusnya. query yang digunakan untuk
menghapus tabel adalah :
DROP TABLE [NAMA TABEL];
Contoh :
Sesudah perintah drop terhadap tabel diberikan :
Gambar 9
10. Membuat temporary
tabel/tabel sementara
Temporary tabel sifatnya hanya sementara, artinya hanya
akan aktif ketika kita sedang berada atau login ke database namun ketika kita
logout dari psql database maka secara otomatis temporary tabel akan terhapus.
Sebelum membuat temporary tabel, kita harus mengkoneksikan dahulu dengan database
yang telah kita buat dengan mengetikkan “\c”.
Struktur query yang digunakan membuat temporary tabel dengan tiga kolom
adalah :
CREATE TEMPORARY TABLE [NAMA TABEL] ([NAMA KOLOM] [SPASI]
[TIPE DATA] [SPASI] [KETERANGAN] , [NAMA KOLOM] [SPASI] [TIPE DATA] [SPASI]
[KETERANGAN] , [NAMA KOLOM] [SPASI] [TIPE DATA] [SPASI] [KETERANGAN]);
11. Memberikan dan menghapus
semua hak akses tabel tertentu kepada user tertentu
Pada saat membuat tabel pada user tertentu maka hanya
user tersebut dan user postgres yang
dapat mengakses tabel itu. Namun jika kita ingin agar tabel yang telah dibuat
pada user kita dapat diakses oleh user tertentu atau semua user yang berada
pada PostgreSQL, maka semua itu dapat dilakukan dengan perintah GRANT. Jika
ingin mencabut hak akses kita bisa menggunakan perintah REVOKE.
Berikut struktur penggunaan GRANT
untuk semua hak akses :
GRANT ALL ON TABLE [NAMA TABEL] TO [NAMA USER];
Berikut struktur penggunaan REVOKE untuk semua hak akses :
REVOKE ALL ON TABLE [NAMA TABEL] FROM [NAMA USER];
Contoh :
Gambar 11.1
Gambar 11.2
Gambar 11.3
Pada gambar 9.2 dapat kita lihat bahwa hak akses user
“guest” ditolak karena sebelumnya telah diberi perintah “revoke all” untuk
menghapus semua hak akses user “guest” terhadap tabel pekerja. Lalu hak akses
diberikan lagi dengan perintah “grant all”, lihat gambar 9.1 dan menghasilkan
gambar 9.3
12. Memberikan dan menghapus
hak akses select tabel tertentu kepada user tertentu
Struktur query yang digunakan untuk menghapus dan memberikan
salah satu hak akses, misalnya SELECT adalah :
REVOKE SELECT ON TABEL [NAMA TABEL] FROM [NAMA USER];
GRANT SELECT ON TABEL [NAMA TABEL] TO [NAMA USER];
Hasil pengecekan :
13. Membuat tabel
turunan(Inheritance)
Jika ingin membuat sebuah tabel baru yang berhubungan
dengan tabel yang ada, yaitu turunan tabel pertama maka kita menggunakan
turunan(inheritance).
Struktur query penggunaan INHERITANCE yaitu :
CREATE TEMPORARY TABLE [NAMA TABEL] ([NAMA KOLOM] [SPASI] [TIPE DATA]
[SPASI] [KETERANGAN] , [NAMA KOLOM] [SPASI] [TIPE DATA] [SPASI] [KETERANGAN])
INHERITS (NAMA TABEL INDUK);
Contoh :
Dari gambar diatas dapat kita ketahui bahwa tabel gaji
merupakan turunan tabel pekerja.
BAB
IV
PENYELESAIAN
TUGAS PRAKTIKUM
Rancangan tabel suatu sistem disertakan dengan ERD,
tujuan dari pembangunan sistem. Sistem Kerja Rumah Sakit, Dimana Tabel Atribut
dari setiap entitasnya adalah:
Entitas
|
Attribut
|
DOKTER
|
id_dokter, nama_dokter, no_telp, alamat, spesialis, kode_obat
|
KAMAR
|
no_kamar, nama_kamar, jenis
|
MEMERIKSA
|
id_pasien, id_dokter, jam_periksa
|
MENEMPATI
|
id_pasien, no_kamar, tgl_masuk, tgl_keluar
|
MENENTUKAN
|
id_dokter, kode_obat, diagnosa
|
MERAWAT
|
id_pasien, id_perawat, shift
|
OBAT
|
kode_obat, nama_obat, jenis_obat, masa_berlaku, id_pasien
|
PASIEN
|
id_pasien, nama_pasien, tgl_lahir, keluhan, alamat, no_telp, umur,
jenis_kelamin, id_dokter, id_perawat, kode_obat, no_kamar
|
PERAWAT
|
id_perawat, nama_perawat, no_telp, alamat, jenis_kelamin, id_dokter,
kode_obat
|
Tabel Relasi :
Model Diagram ERD
Sistem Kerja Rumah Sakit :
DESKRIPSI SISTEM INFORMASI RUMAH SAKIT :
Model Diagram yang ditunjukkan di atas merupakan
contoh gambaran Entity Relation Diagram (ERD) Sistem Informasi Rumah Sakit.
Dari model ERD di atas terdapat 5 entity penting
dari model diagram yaitu:
1. Dokter
Secara umum memiliki atribut id_dokter,
nama_dokter, no_telp, alamat, spesialis, kode_obat
2. Kamar
Secara umum memiliki atribut
no_kamar, nama_kamar, jenis.
3. Obat
Secara umum memiliki atribut
kode_obat, nama_obat, jenis_obat, masa_berlaku, id_pasien
4. Pasien
Secara umum memiliki atribut id_pasien,
nama_pasien, tgl_lahir, keluhan, alamat, no_telp, umur, jenis_kelamin,
id_dokter, id_perawat, kode_obat, no_kamar
5. Perawat
Secara umum memiliki atribut idid_perawat,
nama_perawat, no_telp, alamat, jenis_kelamin, id_dokter, kode_obat
Dan terdapat 4 proses
transaksi yang dihasilkan yaitu :
1. Memeriksa
Dari proses Memeriksa terdapat
hubungan yang menampilkan antara pasien dengan dokter
2. Menempati
Dari proses Menempati terdapat hubungan yang menampilkan
antara pasien dengan kamar
5. Menentukan
Dari proses Menempati terdapat hubungan yang menampilkan
antara obat dengan dokter
6. Merawat
Dari proses Merawat terdapat hubungan yang menampilkan
antara pasien dengan perawat
Dari
seluruh proses yang terjadi dalam ERD diatas dimungkinkan mampu membentuk suatu
sistem informasi dasar dari suatu rumah sakit yang mampu menangani dan
memberikan informasi terperinci dari semua elemen/entity dasar dari suatu rumah
sakit.
Tujuan
dari pembangunan sistem adalah untuk pemodelan data utama dan akan membantu mengorganisasikan
data dalam suatu proyek kedalam entitas-entitas dan menentukan hubungan antara entitas
beserta atribut-attributnya.
Berikut merupakan penyelesaian database
rumah sakit dan tabel sistem pada sistem informasi rumah sakit menggunakan
query dan dilengkapi dengan tampilan strukturnya :
1. Membuat Database
Berikut query untuk membuat database rumah_sakit :
CREATE DATABASE rumah_sakit;
Gunakan \c [nama database] untuk koneksi ke database :
2. Membuat Tabel
untuk Sistem Informasi Rumah Sakit
Entitas
|
Attribut
|
DOKTER
|
id_dokter, nama_dokter, no_telp, alamat, spesialis, kode_obat
|
KAMAR
|
no_kamar, nama_kamar, jenis
|
MEMERIKSA
|
id_pasien, id_dokter, jam_periksa
|
MENEMPATI
|
id_pasien, no_kamar, tgl_masuk, tgl_keluar
|
MENENTUKAN
|
id_dokter, kode_obat, diagnosa
|
MERAWAT
|
id_pasien, id_perawat, shift
|
OBAT
|
kode_obat, nama_obat, jenis_obat, masa_berlaku, id_pasien
|
PASIEN
|
id_pasien, nama_pasien, tgl_lahir, keluhan, alamat, no_telp, umur,
jenis_kelamin, id_dokter, id_perawat, kode_obat, no_kamar
|
PERAWAT
|
id_perawat, nama_perawat, no_telp, alamat, jenis_kelamin, id_dokter,
kode_obat
|
Buat Tabel Dokter
:
Buat Tabel Kamar
:
Buat Tabel Memeriksa :
Buat Tabel Menempati :
Buat Tabel Menentukan :
Buat Tabel Merawat :
Buat Tabel Obat :
Buat Tabel Pasien :
Buat Tabel Perawat :
Cek Tabel yang telah dibuat :
BAB V
KRITIK DAN SARAN
Sebaiknya tidak hanya
membahas mengenai pembuatan dan manajemen tabel saja pada praktikum kedua ini,
tapi juga dibahas mengenai bagaimana cara kita membuat sistem kerja sistem
informasi. Bagaimana cara mengidentifikasi bagian apa saja yang dibutuhkan
untuk membuat suatu sistem informasi, apa saja entitas dan atribut yang
dibutuhkan secara lengkap dan rinci pada database tersebut agar sistem
informasi tersebut dapat menjadi aplikasi yang baik dan disukai serta digunakan
banyak orang maupun perusahaan.
DAFTAR
PUSTAKA
Materi
Praktikum Desain Basis Data 2013.pdf
http://blog.uin-malang.ac.id/paow/files/2010/10/E_09650148_Praktikum-11.pdf
Sutanta Edhy, 2011, Basis Data
DalamTinjauanKonseptual. Yogyakarta: Andi
Kadir Abdul, 2000, Konsep & Tuntutan
Praktis Basis Data, Yogyakarta: Andi
Setyaputra Andy, 2012. Desain Database
& ERD
http://www.belajarsql.com/resep-sql/postgresql/menghapus-primary-key-pada-postgresql
http://www.blog.uin-malang.ac.id/cahyo/2011/10/16/tugas-praktikum-modul-2/
http://blog.uin-malang.ac.id/rizkyka/2011/10/08/tugas-praktikum-dbd/