Makalah ini membahas tentang basis data rumah sakit dengan menjelaskan pengertian database, jenis database, model database, tujuan dan manfaat database. Database merupakan kumpulan data yang saling terkait untuk menyediakan informasi bagi para pengguna."
1. Basis Data (Rancangan Database Rumah Sakit)
Makalah Basis Data
Makalah ini adalah disusun untuk tugas UTS Di semester 3
I.Pengantar Database
A) Pengertian Database
Istilah “database” berawal dari ilmu komputer. Meskipun kemudian artinya semakin luas,
memasukkan hal-hal di luar bidang elektronika, artikel ini mengenai database komputer. Catatan
yang mirip dengan database sebenarnya sudah ada sebelum revolusi industri yaitu dalam bentuk
buku besar, kuitansi dan kumpulan data yang berhubungan dengan bisnis.
Database (basis data) adalah kumpulan file-file yang mempunyai kaitan antara satu file
dengan file yang lain sehingga membentuk data untuk menginformasikan satu perusahaan dan
instansi. Bila terdapat file yang tidak dapat dipadukan atau dihubungkan dengan file yang
lainnya, berarti file tersebut bukanlah kelompok dari satu database, melainkan membentuk satu
database sendiri. Database juga merupakan landasan bagi pembuatan dan pengembangan
program aplikasi. Oleh sebab itu, database harus dibuat sedemikian rupa sehingga pembuatan
program lebih mudah dan cepat.
Database merupakan salah satu komponen yang penting dalam sistem informasi, karena
merupakan basis dalam menyediakan informasi bagi para pemakai. Databse terdiri dari data yang
akan digunakan atau diperuntukkan terhadap banyak user, dari masing-masing user akan
menggunakan data tersebut sesuai dengan tugas dan fungsinya.
Beberapa Definisi tentang Database :
1.Menurut Gordon C. Everest :
Database adalah koleksi atau kumpulan data yang mekanis, terbagi / shared, terdefinisi secara
formal dan dikontrol terpusat pada organisasi.
2.Menurut C.J. Date :
Database adalah koleksi “data operasional” yang tersimpan dan dipakai oleh sistem aplikasi dari
suatu organisasi.
Data input adalah data yang masuk dari luar sistem
2. Data output adalah data yang dihasilkan sistem
Data operasional adalah data yang tersimpan pada sistem
3.Menurut Toni Fabbri :
Database adalah sebuah sistem file-file yang terintegrasi yang mempunyai minimal primary key
untuk pengulangan data.
4.Menurut S. Attre :
Database adalah koleksi data-data yang saling berhubungan mengenai suatu organisasi /
enterprise dengan macam-macam pemakaiannya.
Definisi Dasar Struktur Database :
Data: Sekumpulan fakta mengenai objek tertentu, orang dan lain-lain yang dinyatakan dengan
angka, huruf, gambar, film, suara dan sebagainya yang relevan dan belum mempunyai arti.
Informasi: Hasil pengolahan data yang konkrit dan sudah mempunyai arti untuk mencapai
suatu tujuan tertentu.
Tabel: Merupakan hal yang paling mendasar dalam hal penyimpanan data yang terdiri dari
field dan record.
Field (kolom): Merupakan elemen dari tabel yang berisikan informasi tertentu yang spesifik
tentang subjudul tabel pada sebuah item data.
Syarat-syarat pembentukan Field Name pada tabel:
a) Harus Unik atau Spesifik
b) Boleh disingkat
c) Pemisah sebagai pengganti spasi dalam pembentuk field adalah tanda lambang "_"
Contoh: Kode Barang menjadi KdBarang, KodeBrg, Kd_Brg, Kd_Barang.
Record (baris): Sekumpulan data yang saling berkaitan tentang sebuah subjek tertentu,
misalnya data seorang siswa akan disimpan dalam record yang terdiri dari beberapa kolom /
field.
Sifat-sifat Database :
Internal: Kesatuan (integritas) dari file-file yang terlibat.
Terbagi/share: Elemen-elemen database dapat dibagikan pada para user baik secara sendiri-
sendiri maupun secara serentak dan pada waktu yang sama (Concurrent sharing).
3. B. Perangkat Untuk Membuat Database
Database dapat dibuat dan diolah dengan menggunakan suatu program komputer, yaitu yang
biasa kita sebut dengan software (perangkat lunak). Software yang digunakan untuk mengelola
dan memanggil kueri (query) database disebut Database Management System (DBMS) atau jika
diterjemahkan kedalam bahasa indonesia berarti “Sistem Manajemen Basis Data”.
C. Tipe Database
Terdapat 12 tipe database, antara lain:
1. Operational database: Database ini menyimpan data rinci yang diperlukan untuk
mendukung operasi dari seluruh organisasi. Mereka juga disebut subject- area databases
(SADB), transaksi database, dan produksi database. Contoh: database pelanggan, database
pribadi, database inventaris, akuntansi database.
2. Analytical database: Database ini menyimpan data dan informasi yang diambil dari
operasional yang dipilih dan eksternal database. Mereka terdiri dari data dan informasi yang
dirangkum paling dibutuhkan oleh sebuah organisasi manajemen dan End-user lainnya.
Beberapa orang menyebut analitis multidimensi database sebagai database, manajemen database,
atau informasi database.
3. Data warehouse: Sebuah data warehouse menyimpan data dari saat ini dan tahun- tahun
sebelumnya - data yang diambil dari berbagai database operasional dari sebuah organisasi.
4. Distributed database: Ini adalah database-kelompok kerja lokal dan departemen di kantor
regional, kantor cabang, pabrik-pabrik dan lokasi kerja lainnya. Database ini dapat mencakup
kedua segmen yaitu operasional dan user database, serta data yang dihasilkan dan digunakan
hanya pada pengguna situs sendiri.
5. End-user database: Database ini terdiri dari berbagai file data yang dikembangkan oleh
end-user di workstation mereka. Contoh dari ini adalah koleksi dokumen dalam spreadsheet,
word processing dan bahkan download file.
6. External database: Database ini menyediakan akses ke eksternal, data milik pribadi online -
tersedia untuk biaya kepada pengguna akhir dan organisasi dari layanan komersial. Akses ke
4. kekayaan informasi dari database eksternal yang tersedia untuk biaya dari layanan online
komersial dan dengan atau tanpa biaya dari banyak sumber di Internet.
7. Hypermedia databases on the web: Ini adalah kumpulan dari halaman-halaman
multimedia yang saling berhubungan di sebuah situs web. Mereka terdiri dari home page dan
halaman hyperlink lain dari multimedia atau campuran media seperti teks, grafik, gambar foto,
klip video, audio dll.
8. Navigational database: Dalam navigasi database, queries menemukan benda terutama
dengan mengikuti referensi dari objek lain.
9. In-memory databases: Database di memori terutama bergantung pada memori utama untuk
penyimpanan data komputer. Ini berbeda dengan sistem manajemen database yang menggunakan
disk berbasis mekanisme penyimpanan. Database memori utama lebih cepat daripada
dioptimalkan disk database sejak Optimasi algoritma internal menjadi lebih sederhana dan lebih
sedikit CPU mengeksekusi instruksi.
10. Document-oriented databases: Merupakan program komputer yang dirancang untuk
aplikasi berorientasi dokumen. Sistem ini bisa diimplementasikan sebagai lapisan di atas sebuah
database relasional atau objek database. Sebagai lawan dari database relasional, dokumen
berbasis database tidak menyimpan data dalam tabel dengan ukuran seragam kolom untuk setiap
record. Sebaliknya, mereka menyimpan setiap catatan sebagai dokumen yang memiliki
karakteristik tertentu. Sejumlah bidang panjang apapun dapat ditambahkan ke dokumen. Bidang
yang dapat juga berisi beberapa bagian data.
11. Real-time databases Real-time: Database adalah sistem pengolahan dirancang untuk
menangani beban kerja negara yang dapat berubah terus-menerus. Ini berbeda dari database
tradisional yang mengandung data yang terus- menerus, sebagian besar tidak terpengaruh oleh
waktu. Sebagai contoh, pasar saham berubah dengan cepat dan dinamis. Real-time processing
berarti bahwa transaksi diproses cukup cepat bagi hasil untuk kembali dan bertindak segera.
Real-time database yang berguna untuk akuntansi, perbankan, hukum, catatan medis, multi-
media, kontrol proses, sistem reservasi, dan analisis data ilmiah.
12. Relational Database: Database yang paling umum digunakan saat ini. Menggunakan meja
untuk informasi struktur sehingga mudah untuk mencari.
D. Model Database
5. Database mempunyai dua varian model, yaitu model Post-relational database dan model Object
database.
1. Post-relational database models
Sebuah produk yang menawarkan model data yang lebih umum dari model relasional dan
dikenal sebagai post-relational. Model data dalam produk tersebut mencakup hubungan namun
tidak dibatasi oleh Prinsip Informasi yang mana mewakili semua informasi dengan nilai-nilai
data dalam kaitannya dengan hal itu.
2. Object database models
Dalam beberapa tahun terakhir,[update], paradigma yang berorientasi pada obyek telah
diterapkan dalam bidang-bidang seperti teknik dan spasial database, telekomunikasi dan ilmu
pilmiah lainnya. Para konglomerasi pemrograman berorientasi objek dan teknologi database
mengarah pada model pemrograman baru yang dikenal sebagai Object database.
E. Tujuan Database
Setiap manajemen dalam merancang dan menyusun database harus mempunyai tujuan, yaitu:
1. Membuat agar user mudah mendapatkan data.
2. Menyediakan tempat penyimpanan data yang relevan.
3. Menghapus data yang berlebihan.
4. Melindungi data dari kerusakan fisik.
5. Memungkinkan perkembangan lebih lanjut di dalam sistem database.
F. Ciri-ciri Database
Adapun ciri-ciri database adalah:
1. Sistem yang dapat menyimpan data ke dalam floppy disk atau harddisk.
2. Sistem yang menganut pengolahan data untuk ditambah, diubah, atau dihapus dengan mudah
dan terkontrol.
3. Data terpisah dari program.
G. Keuntungan Database
Adapun keuntungan database terhadap sistem pemrosesan adalah:
1. Kemubajiran data terkurangi.
6. 2. Integritas data dapat selalu terjaga.
3. Berbagai data dapat selalu dilakukan oleh setiap user.
4. Penggunaan data lebih mudah.
5. Konsistensi data dapat selalu terjaga.
H. Manfaat Database
Adapun manfaat database adalah:
1. Sebagai komponen utama atau penting dalam sistem informasi, karena merupakan dasar
dalam menyediakan informasi.
2. Menentukan kualitas informasi yaitu cepat, akurat, dan relevan, sehingga infromasi yang
disajikan tidak basi. Informasi dapat dikatakan bernilai bila manfaatnya lebih efektif
dibandingkan dengan biaya mendapatkanya.
3. Mengatasi kerangkapan data (redundancy data).
4. Menghindari terjadinya inkonsistensi data.
5. Mengatasi kesulitan dalam mengakses data.
6. Menyusun format yang standar dari sebuah data.
7. Penggunaan oleh banyak pemakai (multiple user). Sebuah database bisa dimanfaatkan
sekaligus secara bersama oleh banyak pengguna (multiuser).
8. Melakukan perlindungan dan pengamanan data. Setiap data hanya bisa diakses atau
dimanipulasi oleh pihak yang diberi otoritas dengan memberikan login dan password terhadap
masing-masing data.
9. Agar pemakai mampu menyusun suatu pandangan (view) abstraksi dari data. Hal ini
bertujuan menyederhanakan interaksi antara pengguna dengan sistemnya dan database dapat
mempresentasikan pandangan yang berbeda kepada para pengguna, programmer dan
administratornya.
Kesimpulan
Database merupakan salah satu komponen yang penting dalam sistem informasi, karena
merupakan basis dalam menyediakan informasi bagi para pemakai. Databse terdiri dari data yang
akan digunakan atau diperuntukkan terhadap banyak user, dari masing-masing user akan
menggunakan data tersebut sesuai dengan tugas dan fungsinya.
7. Jadi, mau apapun bidang dan ruang lingkupnya seperti ekonomi, manajemen, dan
psikologi pastilah membutuhkan database ini yang dirasakan sangat bermanfaat. Contohnya saja
jika dalam bidang psikologi dapat mencari nama mahasiswa psikologi dari nomor npm dan dapat
mencari mata kuliah dari nomor kode mata kuliah. Sehingga para pengguna pun dengan mudah
dan cepat dalam mencari informasi tersebut
II.E.R (ENTITY RELATIONSHIP)- Konversi ER ke relasi model
Model Entity Relationship merupakan suatu penyajian data dengan menggunakan Entity dan
Relationship.Proses konversi dari ER diagram ke relational model bisa dilakukan dengan
mengikuti enam ketentuan berikut ini untuk menghindari relation yang non-homogeneous.
Gambar.Aturan Konversi dari ER diagram ke Relational Model
Petunjuk desain Database Relational
1.Relation harus didesain sedemikian rupa sehingga mudah untuk dimengerti. Attribute-attribute
dari entity dan relationship tidak boleh digabungkan menjadi satu relation.
2. Relation yang dihasilkan harus dalam bentuk BCNF sehingga masalah insert, delete, update,
integrity dan redundancy bisa diminimalkan.
3. Sebisa mungkin, relation harus homogeneous, sehingga null values bisa dihindari.
4. Relation harus didesain sedemikian rupa sehingga bisa ditambahkan attribute seperti primary
atau foreign keys. Dengan kata lain, relation tersebut dibuat dengan memenuhi decomposition
rule, sehingga bisa dipastikan proses lossless decomposition
a)Entity
Entity adalah obyek yang dapat dibedakan dalam dunia nyata
Entity set adalah kumpulan dari entity yang sejenis
Entity set dapat berupa :
Obyek secara fisik : Rumah, Kendaraan, Peralatan
Obyek secara konsep : Pekerjaan , Perusahaan, Rencana
b)Relationship
Relationship adalah hubungan yang terjadi antara satu atau lebih entity.
Relationship set adalah kumpulan relationship yang sejenis.
c)Atribut
Atribut adalah karakteristik dari entity atau relationship, yang menyediakanpenjelasan detail
tentang entity atau relationship tersebut.
Nilai Atribut merupakan suatu data aktual atau informasi yang disimpan pada suatuatribut di
dalam suatu entity atau relationship.
Jenis-jenis atribut :
Key
Atribut yang digunakan untuk menentukan suatu entity secara unik.
Atribut Simple
8. Atribut yang bernilai tunggal.
Atribut Multivalue
Atribut yang memiliki sekelompok nilai untuk setiap instan entity.
Atribut Composite
Suatu atribut yang terdiri dari beberapa atribut yang lebih kecil yang mempunyai artitertentu.
Atribut Derivatif
Suatu atribut yang dihasilkan dari atribut yang lain.
d)Derajat dari relationship
Menjelaskan jumlah entity yang berpartisipasi dalam suatu relationship
Derajat dari relationship ada 3 yakni :
Unary Degree (Derajat Satu)
Binary Degree (Derajat Dua)
Ternary Degree (Derajat Tiga)
e)Cardinality Ratio Constraint
Menjelaskan batasan jumlah keterhubungan satu entity dengan entity lainnya.
Jenis Cardinality Ratio
1 : 1 (satu ke satu)
1 : N / N : 1 (satu kebanyak atau banyak ke satu)
M : N (banyak ke banyak)
f)Participation Constraint
Menjelaskan apakah keberadaan suatu entity tergantung padahubungannya dengan entity lain .
Terdapat 2 macam Participation Constraint :
Total Participation
Keberadaan suatu entity tergantung pada hubungannyadengan entity lain.
Partial Participation
Keberadaan suatu entity tidak tergantung pada hubungannyadengan entity lain.
g)Weak entity
Weak Entity adalah suatu Entity dimana keberadaan darientity tersebut tergantung dari
keberadaan entity lain.
Entity yang merupakan induknya disebut Identifying Owner danrelationshipnya disebut
Identifying Relationship.
Weak Entity selalu mempunyai Total Participation constraintdengan Identifying Owner.
III. RELASI DATABASE
a)Terminologi
Model ini menjelaskan tentang hubungan logik antar data dalam basis data dengan cara
memvisualisasikan ke dalam bentuk tabel dua dimensi yang terdiri dari sejumlah baris dan
kolom yang menunjukkan atribut – atribut.
Istilah – istilah dalam model basis data relasional :
Record adalah sebuah baris dalam suatu relasi (tuple).
Cardinality adalah banyaknya record dalam sebuah relasi.
Atriibut adalah suatu kolom dalam sebuah relasi.
9. Domain adalah batasan nialai dalam atribut dan tipe datanya.
Domain adalah batasan nilai dalam atribut dan tipe datanya.
Drajat / degree adalah banyaknya kolom dalam relasi.
Candidate key (CK) adalah sekumpulan atribut yang unik yang dapat digunakan untuk
membedakan suatu record.
Primary key (PK) adalah salah satu dari CK yang dipilih dan dipakai untuk membedakan suatu
record.
Alternate key adalah CK yang tidak dipilih menjadi PK.
Unary relation adalah relasi yang hanya mempunyai 1 kolom.
Binary relation adalah relasi yang hanya mempunyai 2 kolom.
Ternary relation adalah relasi yang mempunyai 3 kolom.
b)Karakteristik relasi database :
Semua elemen data pada suatu baris dan kolom tertentu harus mempunyai nilai tunggal (single
value), bukan suatu kelompok pengulangan.
Semua elemen data pada kolom tertentu dalam relasi yang sama harus mempunyai jenis yang
sma.
Masing – masing kolom dalam suatu relasi mempunyai nama yang unik.
Pada suatu relasi yang sama tidak ada dua baris yang identik.
c)Komponen relasi :
Tabel relasional mempunyai 2 komponen yakni :
Intention
Terdiri 2 bagian yakni struktur penamaan dan batasan integritas.
Struktur penamaan menunjukkan nama tabel dan anama atribut yanag ada dengan batasan nilai
dan tipe datanaya.
Batasan integritas dipengaruhi oleh integritas refrentila yang meliputi key constraint dan refrensial
constraint.
Key constraint tidak mengijinkan adanaya nilai null pada atribut yang digunakan sebagai PK.
Refrentil constraint memberikan aturan bahwa nilai – nilai dalam atribut kunci yang digunakan
untuk menghubungkan ke basis data lain tidak diijinkan memiliki nialai null.
Extention
Menunjukkan isis tabel – tabel pada suatau waktu, cenderung berubah sewaktu – waktu.
d)Kunci relasi
Dasar penentuan PK adalah bahwa nilai – nilai rinci data dan atribut yang digunakan sebagai PK
harus unik, tidak mungkin ada nilai rinci data yang sama pada semua record dalam basis data.
Aturan lainya :
Integritas entity
Nilai atribut yang dipilih sebagai Pk tidak boleh null untuk setiap record dalam relasi.
Aturan ini menjamin bahwa semua record yang ada dalam basis data akan dapat diakses karena
semua record dapat diindentifikasi berdasarkan kunci yang unik.
Integritas refrensial
Jika dua buah tabel direlasikan maka PK harus menjamin bahwa untuksetiap nilai PK tertentu
dalam tabel A, harus ada pula record dengan nilai PK yang sama pada tabel B.
e)Relasi antar entity
10. Relasi antar entity ada 2 yakni :
Relasi antar entity dalam satu tabel
Berupa relasi antar entity yang berupa record untuk menyediakan data tau informasi dari atribut
– atribut dalam satu tabel.
Relasi antar entity dalam banyak tabel
Tipe ini mempunyai kerelasian yang agak rumit.
Ada 3 jenis yakni : Tree, Simple network, cmplex network.
Yang perlu diperhatikan adalah bagaimana agar relasi – relasi tersebut dapat dihubungkan satu
sama lain.
Tugas!!!
Contoh perancangan Database Administrasi Rumah Sakit
Database RumahSakit:
Objek yang dipakai
1. Petugas
2. Pasien
3. Dokter
4. Ruang
Penentuan entitas:
1. Petugas : Menyimpan informasi identitas dari petugas jaga
2. Pasien : Menyimpan informasi identitas dari pasien
3. Dokter : Menyimpan informasi identitas dari dokter
4. Ruang : Menyimpan informasi identitas dari ruang
5. Rawat inap : Menyimpan informasi apabila terdapat pasien yang perlu rawat inap
6. Pembayaran : Menyimpan informasi dari administrasi pembayaran pasien
Penentuan atribut:
1.Petugas : kd_petugas char(10) primary key, nama_petugas varchar(30), alamat_petugas
varchar(50),
jam_jaga char(15)
2. Pasien : kd_pasien char(10) primary key, kd_dokte char(10) foreign key, nama_pasien
varchar(30),
alamat_pasien varchar(50), tanggal_datang char(15), keluhan varchar(50)
3. Dokter : kd_dokter char(10) primary key, nama_dokter varchar (30),alamat_dokter
varchar(50),
spesialisasi_dokter varchar(20)
4. Ruang : kd_ruang char(10) primary key, nama_ruang varchar(30), nama_gedung varchar(30)
5. Rawat inap : kd_rawat_inap char(10) primary key , nama_pasien varchar(30) foreign key,
kd_ruang
varchar(30) foreign key
11. 6. Pembayaran : kode_pembayaran char(10) primary key, kd_pasien char(10), kd_petugas
char(10),
jumlah_harga varchar(30)
Hubungan atau Relasi:
Petugas melayani pembayaran pasien
Tabel utama: petugas
Tabel kedua: pembayaran
Relationship: One-to-many (1:M)
Attribute penghubung: kd_petugas (FK kd_petugas di pembayaran )
Pasien membayar pada tabel pembayaran
Tabel utama: pasien
Tabel kedua: pembayaran
Relationship: One-to-one (1:1)
Attribute penghubung: kd_pasien (FK kd_pasien di pembayaran )
Dokter digunakan untuk pasien
Tabel utama: dokter
Tabel kedua: pasien
Relationship: One-to-many (1:M)
Attribute penghubung: kd_dokter (FK nama_dokter di pasien )
Pasien melakukan rawat inap
Tabel utama: pasien
Tabel kedua: rawat_inap
Relationship: One-to-one (1:1)
Attribute penghubung: kd_pasien (FK kd_pasien di rawat_inap )
Ruang digunakan untuk rawat_inap
Tabel utama: ruang
Tabel kedua: rawat_inap
Relationship: One-to-one (1:1)
Attribute penghubung: kd_ruang (FK kd_ruang di rawat_inap)
create database rumahsakit
create table petugas
(kd_petugas char(10)constraint
12. pk_petugas_kd_petugas primary key not null,
nama_petugas varchar(30),
alamat_petugas varchar(50),
jam_jaga varchar(30));
create table dokter
(kd_dokter char(10)constraint
pk_dokter_kd_dokter primary key not null,
nama_dokter varchar(30),
alamat_dokter varchar(50),
spesialisasi_dokter varchar(30),);
create table pasien
(kd_pasien char(10)constraint
pk_pasien_kd_pasien primary key not null,
kd_dokter char(10) constraint
fk_pasien_kd_dokter foreign key
references dokter(kd_dokter) on delete cascade on update cascade,
nama_pasien varchar(30) not null,
alamat_pasien varchar(50),
tgl_datang varchar(30) not null,
keluhan varchar(50));
create table ruang
(kd_ruang char(10)constraint
pk_ruang_kd_ruang primary key not null,
nama_ruang varchar(30),
nama_gedung varchar(50),);
create table pembayaran
(kd_pembayaran char(10)constraint
pk_pembayaran_kd_pembayaran primary key not null,
kd_petugas char(10) constraint
fk_pembayaran_kd_petugas foreign key
references petugas(kd_petugas) on delete cascade on update cascade,
kd_pasien char(10) constraint
fk_pembayaran_kd_pasien foreign key
references pasien(kd_pasien)on delete cascade on update cascade,
13. jumlah_harga varchar(30));
create table rawat_inap
(kd_rawatinap char(10)constraint
pk_rawat_inap_kd_rawatinap primary key not null,
kd_ruang char(10) constraint
fk_rawat_inap_kd_ruang foreign key
references ruang(kd_ruang) on delete cascade on update cascade,
kd_pasien char(10) constraint
fk_rawat_inap_kd_pasien foreign key
references pasien(kd_pasien)on delete cascade on update cascade);
Query dari kasus di atas:
Penjelasan perintah :
1. CREATE
Membuat database rumah sakit:
Create database rumah_sakit;
2. USE
Masuk kedalam database rumah sakit:
Use rumah_sakit;
3. TABLE
Membuat table pasien pada database rumah sakit:
Create table pasien (
No_Rekam_Medik varchar(10) not null primary key,
Nama_Pasien varchar(30) not null,
Jenis_Kelamin enum(‘L’,’P’),
Usia Int,
Alamat_Pasien varchar(30),
Kota_Pasien varchar(15),
ID_Dokter varchar(10) not null,
Tanggal_Masuk Date,
Tanggal_Keluar Date,
Penyakit varchar(20),
Kode_Bangsal varchar(10),
No_Kamar varchar(10));
Membuat table Dokter:
Create table Dokter (
ID_Dokter varchar(10) not null primary key;
Nama_Dokter varchar(30) not null,
Tanggal_Lahir Date,
Spesialisasi varchar(20),
Lokasi_Praktek varchar(30),
14. Jam_Praktek varchar(20));
4. DROP
Menghapus tabel Dokter :
Drop table Dokter;
5. ALTER
Menambahkan table pada Pasien:
Alter table Pasien add Tanggal_Lahir Date;
6. SELECT
Menampilkan table Pasien :
Select * from Pasien;
Menampilkan table Dokter :
Select * from dokter;
7. INSERT
Mengisikan data pada table pasien :
Insert into pasien value(‘1001’,’Nana’,’P’,’1990-07-12’,’19’,’Jl.Manukwari
no.12’,’Purwokerto’,’1111’,’2009-10-01’,’2009- 10-05’,’Flu Babi’,’11’,’1’);
Mengisikan data pada tabel dokter :
Insert into dokter value (‘1111’,’Syamsul’,’1969-12-03’,’Syaraf’,’RS. Permai Lt. 3
Ruang 112’,’06.00-09.00 WIB’);
8. UPDATE
Memperbarui data pada pasien :
Update Pasien set Nama_Pasien = ‘Suketi’ where No_Rekam_Medik = ‘1001’;
Memperbarui data pada dokter;
Update Dokter set Nama_Dokter = ‘Hardiansyah’ where ID_Dokter =’1111’;
9. DELETE
Menghapus isi data atau baris pada tabel Pasien :
Delete Pasien;
Menghapus isi data atau baris pada tabel Dokter :
Delete Dokter;
Soal :
1. Relasi (C, D, E)
CD E
E C
2. Relasi (C, D, E, F)
C E
E C
CD F
15. 3. Relasi (C, D, E, F, G)
DF CG
CD E
Jawab :
Key :
1. CD
2. CD, E
3. DF, D
Normalisasi :
1. 3NF
2. 3NF
3. 3NF
IV.NORMALISASI
Pengantar
Pengertian tentang teori relational database sangat penting untuk membangun suatu
aplikasi database yang baik. Teori tersebut harus diaplikasikan pada saat mendesain table-table
yang hendak dipakai. Pada saat mendesain suatu aplikasi, banyak pertanyaan yang muncul.
Misalnya, berapa banyak table yang harus dipakai? Field-field apa saja yang harus ada dalam
table-table tersebut? Relationship apa yang diperlukan antar table tersebut? Proses untuk
menjawab semua pertanyaan tersebut itulah yang dinamakan database normalization.
Normalisasi adalah suatu teknik untuk mengorganisasikan data ke dalam table-tabel
untuk memenuhi kebutuhan pemakai di dalam suatu ogranisasi.
Tujuan Normalisasi:
Untuk menghilang kerangkapan data
Untuk mengurangi kompleksitas
Untuk mempermudah pemodifikasian data
Bentuk-bentuk Normalisasi:
First Normal Form First normal form saat ini bisa juga dikatakan sebagai bagian dari definisi
formal dari suatu relation. Intinya, 1NF ini tidak mengijinkan multivalued attributes, composite
attributes, dan kombinasinya. Domain dari attribute-attribute-nya hanya boleh berisi atomic
value saja.
Misalnya, suatu field seperti Alamat yang berisi nama jalan, nama kota dan kode-pos
dalam satu field tidak boleh disebut 1NF, karena, field tersebut berisi tiga value yang berbeda:
jalan, kota dan kode-pos, yang seharusnya dipisah menjadi tiga field yang berbeda.
Definisi: Suatu relation R disebut 1NF jika dan hanya jika semua value attribute-nya
adalah atomic value, dan non-key attributes-nya (jika ada) tidak FFD pada relational key(s).
Second Normal Form Definisi: Suatu relation R disebut 2NF jika dan hanya jika non-key
attributes-nya (jika ada) FFD pada relational key(s), dan terdapat saling ketergantungan
(dependencies) antar non-key attributes tersebut.
16. Third Normal Form Definisi: Suatu relation R disebut 3NF jika dan hanya jika non-key
attributes-nya:
• Tidak ada saling ketergantungan (Mutually Independent)
• FFD pada relational key(s)
• ada determinant yang bukan relational key(s)
BOYCE-CODD Normal Form (BCNF) Definisi: Suatu relation R disebut BCNF jika dan hanya
jika non-key attributes-nya:
• Tidak ada saling ketergantungan (Mutually Independent)
• FFD pada relational key(s)
• semua determinant adalah relational key(s)
Langkah-langkah untuk menentukan Normal Form Tertinggi (Highest NF) dari suatu
relation:
1. Tentukan semua functional dependencies antar attribute dalam suatu relation.
2. Tentukan semua relation key(s) dari relation tersebut.
3. Tentukan key dan non-key attributes.
4. Apakah semua non-key attributes FFD pada tiap relation key? Jika TIDAK, maka relation
berada dalam 1NF. STOP. Jika YA, maka relation sedikitnya berada dalam 2NF. Lanjut ke Step
5.
5. Apakah terdapat functional dependencies antar non-key attributes? Jika YA, maka relation
berada dalam 2NF. STOP. Jika TIDAK, maka relation sedikitnya berada dalam 3NF. Lanjut ke
Step 6.
6. Jika relation hanya memiliki SATU relation key, maka relation sudah dalam BCNF. Jika
relation memiliki lebih dari satu relation key, lanjutkan ke Step 7.
7. Apakah semua determinant yang ditentukan pada Step 1 adalah relation key? Jika YA, maka
relation berada dalam BCNF. Jika TIDAK, maka relation hanya berada dalam 3NF.
Kesimpulan
Proses normalisasi dari suatu database sebenarnya adalah proses untuk mencari dan
menghilangkan semua data yang redundant (berlebihan / tidak perlu). Selama proses ini,
biasanya jumlah field dalam table akan berkurang, dan jumlah table dalam aplikasi akan
bertambah. Ini adalah indikator yang baik. Jangan kuatir dengan jumlah table yang terus
bertambah. Suatu desain relational database yang baik biasanya memiliki banyak table yang
sederhana.
V.QUERY (ALGORITMA / DML)
Query adalah bahasa yang dipergunakan untuk melakukan proses permintaan yang
diberikan oleh user atau pengguna untuk mengambil informasi yang terdapat pada database
dengan memberikan suatu kriteria tertentu untuk penyaringan data sehingga data yang memenuhi
kriteria tersebut yang akan ditampilkan.
Salah satu bahasa Query yang paling populer digunakan saat ini adalah SQL (Structured Query
Language). SQL adalah sebuah metode atau bahasa yang dipergunakan untuk mengakses data
dalam basis data (database) relasional. Bahasa ini merupakan bahasa standar yang digunakan
17. dalam manajemen basis data relasional. Saat ini hampir semua server basis data yang ada telah
mendukung bahasa ini untuk melakukan manajemen datanya.
Secara umum SQL terbagi menjadi 3 (tiga) komponen, yaitu : Data Definition Language (DDL)
komponen pendefinisian data, Data Manipulation Language (DML) komponen manipulasi data ,
dan Data Control Language (DCL) komponen pengontrol data.
Data Definition Language (DDL)
DDL digunakan untuk mendefinisikan, mengubah, serta menghapus basis data dan objek-objek
yang diperlukan dalam basis data, misalnya tabel, view, user, dll. Secara umum, DDL yang
sering digunakan adalah CREATE untuk membuat sebuah objek baru, USE untuk menggunakan
objek, ALTER untuk mengubah objek yang sudah ada, dan DROP untuk menghapus objek yang
sudah ada. DDL dipergunakan oleh administrator basis data dalam pembuatan sebuah aplikasi
basis data.
CREATE
CREATE digunakan untuk membuat basis data maupun objek-objek basis data, SQL yang
umum digunakan adalah :
Syntax : CREATE DATABASE nama_basis_data
Ket : CREATE DATABASE membuat sebuah basis data baru
Syntax : CREATE TABLE [nama_tabel]
(
nama_field1 tipe_data [constraints][,
nama_field2 tipe_data,
...]
)
Ket : CREATE TABLE membuat sebuah tabel baru pada basis data yang sedang aktif.
Nama_field adalah nama kolom yang akan dibuat. Beberapa system manajemen basis data
mengizinkan penggunaan spasi dan karakter non-huruf pada penamaan kolom (field). Tipe_data
tergantung dari implementasi system manajemen basis data yang kita buat (VARCHAR, TEXT,
INT, DATE, Dll). Sedangkan constraints adalah batasan-batasan yang diberikan untuk setiap
kolom atau field, hal ini juga tergantung dari implementasi system manajemen basis data yang
kita buat, misalnya NOT NULL, UNIQUE, dan sebagainya. Constraints juga dapat digunakan
untuk mendefinisikan kunci primer (primary key).
Contoh :
CREATE TABLE user
(
username VARCHAR(30) CONSTRAINT PRIMARY KEY,
password VARCHAR(20) NOT NULL,
tanggal_lahir DATETIME
);
Syntax diatas akan menghasilkan tabel user, sbb :
Username password tanggal_lahir
Data Manipulation Language (DML)
DML digunakan untuk memanipulasi data yang sudah ada dalam suatu tabel. SQL yang umum
diguanakan adalah :
18. #> SELECT : untuk menampilkan data yang sudah ada.
#> INSERT : untuk memasukkan data baru.
#> UPDATE : untuk mengubah data yang sudah ada.
#> DELETE : untuk menghapus data yang sudah ada.
Berikutnya akan kita bahas satu-persatu penggunaan dan contoh pemakaiannya dalam sebuah
basis data :
SELECT
SELECT adalah perintah yang paling sering digunakan pada SQL, sehingga terkadang istilah
query dirujukkan pada perintah ini. Select digunakan untuk menampilkan data dari satu atau
lebih tabel, biasanya dalam sebuah basis data yang sama. Perintah Select memiliki bentuk
lengkap sbb :
Syntax :
SELECT [nama_tabel|alias.]nama_field1 [AS alias1] [, nama_field2,
...]
FROM nama_tabel1 [AS alias1] [INNER|LEFT|RIGHT JOIN tabel2 ON
kondisi_penghubung]
[, nama_tabel3 [AS alias3], ...]
[WHERE kondisi]
[ORDER BY nama_field1 [ASC|DESC][, nama_field2 [ASC|DESC], ...]]
[GROUP BY nama_field1[, nama_field2, ...]]
[HAVING kondisi_aggregat]
Ket :
Kondisi adalah syarat yang harus dipenuhi suatu data agar dapat ditampilkan, kondisi juga dapat
dihubungkan dengan operator logika misalnya AND, OR, dll. Sedangkan kondisi_aggregat
adalah syarat khusus untuk fungsi aggregat.
Fungsi aggregat (aggregate functions) adalah fungsi yang bekerja terhadap suatu group atau
dalam hal ini adalah sekelompok data, dimana fungsi-fungsi tersebut terdiri dari :
Average (menghitung nilai rerata), Count (penjumlah kemunculan data), Max (nilai maksimal),
Min (nilai minimal), Sum (penjumlah nominal data).
Studi Kasus, diasumsikan terdapat tabel user dengan data sbb:
Username Password Tanggal_lahir Jml_transaksi Total_transaksi
Aris 123456789 02-03-1980 6 10.000
Budi Budi123 14-04-1982 0 0
Charlie passwd 22-01-1986 24 312.150
Daniel Daniel86 30-05-1984 3 0
Erik 071083 04-04-1985 34 50.000
Contoh 1 : Tampilkan seluruh data
SELECT * FROM user
Contoh 2 : Tampilkan pengguna yang tidak pernah bertransaksi
SELECT * FROM user
WHERE total_transaksi = 0
Contoh 3 : Tampilkan username pengguna yang bertransaksi kurang dari 10 dan nilainya lebih
dari 1.000.
SELECT username FROM user
WHERE jml_transakai < 10 AND total_transaksi > 1000
Contoh 4 : Tampilkan total nominal transaksi yang sudah terjadi.
SELECT SUM(total_transaksi) AS total_nominal_transaksi
FROM user
Contoh 5 : Tampilkan seluruh data diurutkan berdasarkan jumlah transaksi terbesar ke terkecil.
19. SELECT *
FROM user
ORDER BY jml_transaksi DESC
INSERT
Untuk menyimpan sebuah data baru ke tabel, dipergunakan syntax :
INSERT INTO [NAMA_TABLE] ([DAFTAR_FIELD]) VALUES ([DAFTAR_NILAI])
Contoh :
INSERT INTO TEST (NAMA, ALAMAT, PASSWORD)
VALUES ('test', 'alamat', 'pass');
UPDATE
Untuk mengubah data yang sudah ada, dipergunakan syntax :
UPDATE [NAMA_TABLE] SET [NAMA_KOLOM]=[NILAI] WHERE [KONDISI]
Contoh :
UPDATE Msuser set password="123456" where username="abc"
DELETE
Untuk menghapus data yang ada, dipergunakan syntax :
DELETE FROM [NAMA_TABLE] [KONDISI]
Contoh :
DELETE FROM TEST WHERE NAMA='test';
Data Control Language (DCL)
Pada DCL hal terpenting adalah pemberian otoritas, konfirmasi penyimpanan database, menunda
perubahan dan menghapus otoritas yang tekah diberikan. Pada beberapa database juga dapat
diatur database space per-user. Tidak semua basis data atau database dapat melakukan
pengontrolan data seperti pemberian otoritas, dlsb.
Commit : Konfirmasi penyimpanan data di memoroy ke database.
Rollback : Mengembalikan status transaksi sebelum penyimpanan.
Grant : Pemberian hak dari stu user ke user lainnya.
Revoke : penghapusan hak yang diberikan.