Category Archives: Basis Data

Teori dan Aplikasi Basis Data

Contoh Normalisasi Basis Data dari Kwitansi Rumah Sakit


normalisasi_kwitansi_rs

Sebelum saya menampilkan contoh normalisasi basis data dari kwitansi RS, ada baiknya kita review kembali mengenai teori dasar normalisasi berikut ini:

1. Normalisasi merupakan salah satu teknik perancangan basis data selain ERD (Entity Relationship Diagram)

2. Inti dari normalisasi itu sendiri yaitu untuk menghasilkan struktur tabel yang normal/baik.

3. Jadi normalisasi itu adalah sebuah cara untuk memisahkan / memecah tabel yang mengalami redudansi data ke  dalam tabel dua entitas / tabel atau lebih .

Tahapan-tahapan normalisasi:

1. Unnormalisasi

2. Normalisasi 1 (1 NF)

3. Normalisasi 2 (2 NF)

4. Normalisasi 3 (3 NF)

Berikut adalah dokumen dasar berupa kwitansi dari Rumah Sakit yang akan saya coba normalisasi:

kwitansi_rs

TAHAPAN NORMALISASI UNTUK KWITANSI RS:

1. UNNORMALISASI (TIDAK NORMALISASI/UNNORMALIZE)

unnormalisasi_rs

2. NORMALISASI PERTAMA (1 NF)

1nf_rs

3. NORMALISASI KEDUA (2NF)

2nf_rs

4. NORMALISASI KETIGA (3 NF)

3nf_rs

Nah..untuk kasus-kasus yang sederhana seperti contoh diatas, tahapan normalisasi rata-rata cuma sampai pada tahapan normalisasi ketiga, karena sudah menghasilkan tabel yang normal.

Untuk memastikan kebenaran isi tabel dan hubungan antar tabel, kita harus melakukan pengujiann data. Caranya lakukan saja relasi tabel dari tabel-tabel yang sudah berhasil kita pecah. Bila tidak ada hubungan antar tabel maka dapat dikatakan perancangan suatu basis data yang kita lakukan itu adalah ‘gagal’.

Atau untuk lebih meyakinkan kita, coba hasil dari perancangan tsb praktikan pada salahsatu DBMS, kemudian rencanakan kebutuhan informasi yang akan kita ambil dari database tersebut, field-field apa saja yang akan kita tampilkan, kemudian buatlah query untuk menampilkan field-field yang kita inginkan tersebut….Selamat mencoba ūüėÄ

Akhir kata, semoga tulisan ini bisa bermanfaat untuk anda yang membacanya wabilkhusus bagi diri saya sendiri, mohon maaf bila ada penjelasan yang kurang dimengerti dan saya mengharapkan saran dan koreksi dari rekan-rekan semua para blogger maupun para pecinta IT karena semakin banyak saran dan koreksi maka semakin memperkaya pengetahuan kita tentang suatu ilmu…sampai ketemu lagi di tulisan-tulisan selanjutnya….Bye..Bye….

Iklan

Installasi ZeosLib di Borland Delphi 7


instalasi_zeos¬ě
ZeosLib adalah seperangkat komponen database untuk MySQL, PostgreSQL,Interbase, Firebird, MS SQL, Sybase, Oracle dan SQLite untuk Delphi, FreePascal /Lazarus, Kylix dan C Builder.
Untuk instalasinya bisa dilihat di link berikut ini :

Administrasi dan Keamanan di MySQL


DCL

Melihat arti dari kata keamanan berarti suatu keadaan bebas dari bahaya. Sedangkan Keamanan di MySQL bisa dikatakan  sebagai suatu keadaan yang bebas dari pihak-pihak yang tidak berhak mengakses database MySQL kita serta hanya pihak-pihak tertentu saja yang boleh mengakses MySQL kita (yang sudah di beri hak akses).

Kalau berbicara tentang security(keamanan) di MySQL tentunya kita tidak akan terlepas dari perintah-perintah DCL (Data Control Language) yaitu Grant dan Revoke.

1. Grant : Memberikan / mengijinkan seorang user untuk mengakses tabel dalam database tertentu

2. Revoke : Mencabut suatu hak akses dalam database tertentu

Untuk lebih lengkapnya, bisa dibaca di materi sbb:

Menggunakan Administrasi dan Keamanan di MySQL

MENGOPERASIKAN TRIGGER DI SQL SERVER


PENDAHULUAN

  • Trigger mirip dengan event dalam bahasa pemrograman berorientasi object (OOP)
  • Event adalah sebuah proses yang akan dilakukan oleh sistem ketika menemui suatu kejadian yang dipicu oleh perilaku dari luar sistem
  • Dalam sistem database perilaku di luar sistem yang memicu adanya event adalah pada saat user melakukan modifikasi data, maka secara otomatis trigger akan dijalankan
  • Atau dengan kata lain, trigger berisi program yang dihubungkan dengan suatu tabel yang secara otomatis melakukan aksi ketika suatu baris di dalam tabel dikenai operasi INSERT, UPDATE, ataupun DELETE. (Diringkas dari berbagai sumber)

MACAM-MACAM TRIGGER

Pada SQL Server 2000 , terdapat dua pilihan tipe trigger yaitu :

  1. AFTER, trigger akan dijalankan setelah prose INSERT, UPDATE, DELETE dijalankan. Untuk membuat after trigger kita dapat menggunakan statement AFTER atau FOR
  2. INSTEAD OF, trigger akan dijalankan sebelum proses INSERT, UPDATE, DELETE dijalankan. Pada SQL Server versi sebelumnya fasilitas Instead Of  ini tidak disediakan.
MEMPRAKTIKAN PENGOPERASIAN TRIGGER
Untuk membuat trigger, sebelumnya kita harus membuat tabel yang menampung setiap kejadian INSERT, UPDATE, ATAU DELETE. Pada contoh ini kita buat tabel baru dengan nama history :
create table history(keterangan varchar(100), tgl datetime)
MEMBUAT TRRIGER
Pada contoh ini, kita buat trigger pada saat kejadian penambahan data pada tabel siswa :
create trigger trg_tambahsiswa on siswa for insert as
insert into history(keterangan, tgl)
values (‘penambahan data pada tabel siswa’,getdate())

PERCOBAAN TRIGGER PADA TABEL SISWA

insert into siswa(nis, nama, alamat, jenkel, email)

values(‘0910110012′,’Firman’,’Cimahi’,’L’,‚Äôfirman_cimohai@yahoo.co.id‚Äô)

Lihat penambahan data di tabel siswa :

Melihat hasil dari trigger di tabel history :

Membuat Trigger untuk kejadian pada saat update & delete pada tabel siswa

  • Membuat trigger untuk kejadian pada saat ada pegubahan data pada tabel siswa

create trigger trg_tambahsiswa on siswa for update as

insert into history(keterangan, tgl)

values (‘pengubahan data pada tabel siswa’,getdate())

  • Membuat trigger untuk kejadian pada saat ada penghapusan data pada tabel siswa

create trigger trg_tambahsiswa on siswa for delete as

insert into history(keterangan, tgl)

values (‘penghapusan data pada tabel siswa’,getdate())

Untuk menguji trigger pada saat pengubahan data dan penghapusan data pada tabel siswa, lakukan seperti pada trigger pada saat penambahan data, yaitu dengan melakukan pengupdatean dan penghapusan data pada tabel siswa, kemudian cek kembali pada tabel history. Amati hasilnya!

Semoga bermanfaat…..¬† ūüôā

KONEKSI DELPHI 7 KE SQL SERVER 2000


1. Pendahuluan

–¬†¬†¬†¬†¬†¬†¬†¬†¬† Basis Data (database) merupakan kumpulan data yang saling berhubungan (punya relasi)

–¬†¬†¬†¬†¬†¬†¬†¬†¬† Basis Data (database) adalah kumpulan dari data yang saling berhubungan (berinteraksi) satu dengan yang lainnya, tersimpan di perangkat keras komputer dan digunakan perangkat lunak untuk memanipulasinya.

Basis data terdiri dari data yang di-share bagi banyak user dan memungkinkan penggunaan data yang sama pada waktu bersamaan oleh banyak user.

2. Software Yang Harus Di Persiapkan

–¬† SQL Server 2000 atau versi lebih tinggi (Sebagai Database Server)

–¬† Borland Delphi 7 atau versi lebih tinggi (Sebagai Program Aplikasi)

3. Pembuatan Database kepegawaian

–¬†¬†¬†¬†¬†¬†¬†¬†¬† Untuk memperlancar dalam penggunaan sintaks SQL ada baiknya saat pembuatan database kita gunakan SQL Query Analyzer jangan dulu menggunakan Enterprise Manager

Buka SQL Query Analyzer pada Start Menu>All Programs>Microsoft SQL Server>SQL Query Analyzer

Untuk lebih lengkapnya, silahkan baca file di bawah!

KONEKSI DELPHI 7 KE SQL SERVER 2000

Contoh Perancangan Basis Data Pengolahan Nilai


1. KASUS PERANCANGAN BASIS DATA

Perancangan basis data pengolahan nilai (school)

2. ENTITAS


3. ATRIBUT

atribut

4. MENGHUBUNGKAN ANTAR ENTITAS (ERD)

erd
Catatan : ERD diatas belum selesai‚Ķsilahkan dikembangkan !¬†ūüėÄ

5. TRANSFORMASI KE TABLE DATABASE

Aturan umum dalam pemetaan model data yang digambarkan dengan ER menjadi basis data fisik (level fisik dlm abstraksi data).

Contoh (hanya 1), tabel lainnya di coba sendiri ūüėĬ† :

transformasi

6. NORMALISASI

– Dokumen dasar yang akan dinormalisasi :

khs


– Tahap 1 : Unnormalisasi (Belum dinormalisasi)

nis nama jurusan thn_ajaran semester kd_mapel nama_mapel nilai predikat
506001 Mario Sistem Informasi 2005/2006 Ganjil M02 Matematika A Baik sekali
Genap F01 Fisika A Baik sekali
506002 Eko Saputra Sistem Informasi 2005/2006 Ganjil M02 Matematika C Cukup
B03 Biologi E Gagal
Genap F01 Fisika D Kurang
K04 Kimia E Gagal

– Tahap 2 : 1 NF (Normalisasi 1)

nis nama jurusan thn_ajaran semester kd_mapel nama_mapel nilai predikat
506001 Mario Sistem Informasi 2005/2006 Ganjil M02 Matematika A Baik sekali
506001 Mario Sistem Informasi 2005/2006 Genap F01 Fisika A Baik sekali
506002 Eko Saputra Sistem Informasi 2005/2006 Ganjil M02 Matematika C Cukup
506002 Eko Saputra Sistem Informasi 2005/2006 Ganjil B03 Biologi E Gagal
506002 Eko Saputra Sistem Informasi 2005/2006 Genap F01 Fisika D Kurang
506002 Eko Saputra Sistem Informasi 2005/2006 Genap K04 Kimia E Gagal

– Tahap 3 : 2 NF (Normalisasi 2)

Table siswa :

nis nama kd_mapel nama_mapel nilai kiteria kd_jurusan kd_sem
506001 Mario M02 Matematika A Baik sekali SI002 20051
506001 Mario F01 Fisika A Baik sekali SI002 20052
506002 Eko Saputra M02 Matematika C Cukup SI002 20051
506003 Eko Saputra B03 Biologi E Gagal SI002 20052
506004 Eko Saputra F01 Fisika D Kurang SI002 20051
506005 Eko Saputra K04 Kimia E Gagal SI002 20051

Tabel jurusan :

Kd_Jurusan Jurusan
TI001 Teknik Informatika
SI002 Sistem Informasi

Table semester :

kd_sem semester thn_ajaran
20051 Ganjil 2005/2006
20052 Genap 2005/2006

– Tahap 4 : 3 NF (Normalisasi 3)

Tabel siswa :

nis* nama kd_jurusan
506001 Mario TI001
506002 Eko Saputra TI001
506003 Achmad SI002
506004 Budi Santoso SI002

Table jurusan :

kd_jurusan* jurusan
TI001 Teknik Informatika
SI002 Sistem Informasi

Table mapel :

kd_mapel* nama_mapel
F01 Fisika
M02 Matematika
B03 Biologi
K04 Kimia

Table semester :

kd_sem* semester thn_ajaran
20051 Ganjil 2005/2006
20052 Genap 2005/2006

Tabel predikat :

nilai* angka predikat
A 5 Baik sekali
B 4 Baik
C 3 Cukup
D 2 Kurang
E 1 Gagal

Tabel ambil :

nis kd_mapel
506001 M02
506001 F01
506002 M02
506002 B03
506002 F01
506002 K04
506003 M02
506003 F01
506004 M02
506004 B03
506004 F01
506004 K04

Tabel nilai :

nis kd_mapel nilai kd_sem
506001 M02 A 20051
506001 F01 A 20051
506002 M02 C 20051
506002 B03 E 20051
506002 F01 D 20052
506002 K04 E 20052
506003 M02 B 20051
506003 F01 C 20051
506004 M02 D 20051
506004 B03 E 20051
506004 F01 D 20052
506004 K04 C 20052

7. MEMBUAT STRUKTUR TABEL

Tabel Jurusan
Field Name Tipe Data Field Size Keterangan
kd_jurusan Text 5 Primary Key
jurusan Text 20 Nama jurusan
Tabel Siswa
Field Name Tipe Data Field Size Keterangan
nis
nama
kd_jurusan
Tabel Matapelajaran
Field Name Tipe Data Field Size Keterangan
kd_mapel
nama_mapel
Tabel Semester
Field Name Tipe Data Field Size Keterangan
kd_sem
semester
thn_ajaran
Tabel Predikat
Field Name Tipe Data Field Size Keterangan
nilai
angka
predikat
Tabel Ambil
Field Name Tipe Data Field Size Keterangan
nis
kd_mapel
Tabel Nilai
Field Name Tipe Data Field Size Keterangan
nis
kd_mapel
nilai
kd_sem

8. IMPLEMENTASIKAN KE SEBUAH DATABASE (DBMS)

Misal : disini DBMS yang di pakai yaitu MS. Office Access 2007

a. Membuat database school :

create database school;

b. Membuat tabel-tabelnya :

– Perintah SQL untuk membuat tabel jurusan :

create table jurusan(kd_jurusan text(5), jurusan text(20),  primary key(kd_jurusan));

tjurusan

– Perintah SQL untuk membuat tabel siswa :

create table siswa(nis text(7), nama text(30), kd_jurusan text(5), primary key(nis));

tsiswa

– Perintah SQL untuk membuat tabel mapel :

create table mapel…… teruskan perintahnya !

– Perintah SQL untuk membuat tabel semester :

create table semester… teruskan perintahnya !

– Perintah SQL untuk membuat tabel ambil :

create table ambil…… teruskan perintahnya !

– Perintah SQL untuk membuat tabel predikat :

create table predikat…… teruskan perintahnya !

– Perintah SQL untuk membuat table nilai :

create table nilai……teruskan perintahnya !

–¬† Keterhubungan Antar Tabel (Relationship)

relationshiptable


9. PENGUJIAN BASIS DATA

Dalam pengujian basis data ini dilakukan untuk mengetes tabel-tabel yang sudah kita normalisasi apakah sudah normal atau belum. Untuk itu kita mesti mengonsep dulu kebutuhan informasi dari database yang kita buat itu. Tentunya  rencana informasi yang akan ditampilkan adalah tidak keluar dari cakupan database yang kita buat. Contohnya sbb :

a. Kebutuhan Informasi :

1. Menampilkan informasi nilai semester 1 dan 2 tahun ajaran 2005-2006 untuk siswa yang bernama Eko Saputra (nis : 506002)

nis nama nama_mp nilai kd_smt
… Eko Saputra … … …

2. Menampilkan informasi daftar nilai untuk siswa jurusan Teknik Informatika TA 2005-2006

nis nama jurusan nama_mp nilai thn_ajaran
… … Teknik Informatika … … …

b. Perintah SQL :

1. Perintah SQL untuk kebutuhan informasi 1 (Menampilkan informasi nilai semester 1 dan 2 tahun ajaran 2005-2006 untuk siswa yang bernama Eko Saputra (nis : 506002)):

SELECT siswa.nis, siswa.nama, mapel.nama_mp, nilai_mp.nilai, nilai_mp.kd_smt

FROM siswa INNER JOIN (mapel INNER JOIN nilai_mp ON mapel.kode_mp = nilai_mp.kd_mp) ON siswa.nis = nilai_mp.nis

WHERE (((siswa.nis)=”506002″));

2. Perintah SQL untuk kebutuhan informasi 2 (Menampilkan informasi daftar nilai untuk siswa jurusan Teknik Informatika TA 2005-2006):

SELECT siswa.nis, siswa.nama, jurusan.jurusan, mapel.nama_mp, nilai_mp.nilai, smt.thn_ajaran

FROM smt INNER JOIN ((jurusan INNER JOIN siswa ON jurusan.kd_jurusan = siswa.kd_jurusan) INNER JOIN (predikat INNER JOIN ((mapel INNER JOIN ambil ON mapel.kode_mp = ambil.kd_mp) INNER JOIN nilai_mp ON mapel.kode_mp = nilai_mp.kd_mp) ON predikat.nilai = nilai_mp.nilai) ON (siswa.nis = nilai_mp.nis) AND (siswa.nis = ambil.nis)) ON smt.kd_smt = nilai_mp.kd_smt

WHERE (((jurusan.jurusan)=”Teknik Informatika”));

c. Hasil Pengujian :

1. Hasil Pengujian untuk kebutuhan informasi 1 :

uji_1

2. Hasil Pengujian untuk kebutuhan informasi 2 :

uji_2

Untuk baca selengkapnya…silahkan klik file di bawah!

CONTOH TUGAS PBD SCHOOL

===== Selamat Mencoba, Semoga bermanfaat ūüôā =====


DAFTAR PUSTAKA

Yakub. 2008. Sistem Basis Data. Yogyakarta : Graha Ilmu

http://www.ilmukomputer.org