SELAMAT DATANG!!!

SELAMAT DATANG & SELAMAT MENIKMATI BLOGG INI!!!

Rabu, 16 November 2011

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
·        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).


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 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
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.
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.
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
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.
·         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
ü  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 Rumah Sakit:

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

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
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,
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),
             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

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:
v  Untuk menghilang kerangkapan data
v  Untuk mengurangi kompleksitas
v  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.
Ø  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 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 :
#>  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.
               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.











DAFTAR PUSTAKA




http://ima-artonk.blogspot.com/2010/01/database-rumah-sakit.html

http://diansyah17.blogspot.com/2011/03/database-rumah-sakit.html



Tidak ada komentar:

Poskan Komentar