Professional Documents
Culture Documents
5.1. Pendahuluan
Pada bab ini akan dibahas mengenai kemampuan dasar untuk memodelkan data sehingga kemudian dapat dengan mudah mengerti notasi dari entity relationship diagram, untuk selanjutnya dapat menggunakannya dalam proses pengembangan database.
Deskripsi
entitas
Halaman 1 dari 20
Pemodelan Data
Relationship set
relasi
Penghubung atribut dengan entitas dan entitas dengan relasi atribut
atribut
Key atribut
atribut
Derived atribut
atribut
Composite atribut
atribut
atribut
atribut
Nama Mat
SKS
Halaman 2 dari 20
Pemodelan Data
Model yang juga digunakan adalah model Martin dengan menggunakan simbol seperti di bawah ini : Tabel. 5.2. simbol ERD Model Martin Notasi
Mahasiswa
NIM
Mahasiswa
Dosen
NIM
Jadwal mengambil mempunyai Hari Waktu KDJur KDRu NRD NIM
NRD
mengajar digunakan
Jurusan
Ruangan
KDJur
KDRu
Halaman 3 dari 20
Pemodelan Data
Mapping Cardinality berdasarkan dua entity set (binary relationship set), dapat berupa : 1. Satu ke Satu (One to One) Ini berarti setiap entitas pada himpunan entitas A berhubungan dengan paling banyak satu entitas di himpunan entitas B, begitu pula sebaliknya setiap entitas pada himpunan B berhubungan paling banyak satu entitas yang ada di himpunan entitas A.
A
A1 A2 A3 A4
B
B1 B2 B3 B4
NIK
Nama
Alamat
Kode_Bagian
Nama_Bagian
KARYAWAN
mengepalai
BAGIAN
NIK
Kode_Bagian
2. Satu ke Banyak (One to Many) atau Banyak ke Satu Ini berarti setiap entitas pada himpunan entitas A dapat berhubungan dengan banyak entitas pada himpunan entitas B, tetapi tidak sebaliknya, dimana setiap entitas pada himpunan entitas B berhubungan dengan paling banyak yaitu satu entitas pada himpunan entitas A. Kardinalitas relasi satu ke banyak dan Banyak ke satu dapat dianggap sama, karena tinjauan kardinalitas relasi selalu dapat dilihat dari dua sisi (dari himpunan entitas A ke himpunan entitas B dan dari himpunan entitas B ke himpunan entitas A).
A
A1 A2 A3
B
B1 B2 B3 B4 B5
Halaman 4 dari 20
Pemodelan Data
Kode_jur
Nama_jur
Jenjang
NIM
Nama_MHS
Alamat
Jurusan
Mengambil
Mahasiswa
Kode_jur
NIM
3. Banyak ke Banyak (Many to Many) Ini berarti setiap entitas pada himpunan entitas A dapat berhubungan dengan banyak entitas pada himpunan entitas B dan demikian juga sebaliknya, dimana setiap entitas pada himpunan entitas B dapat berhubungan dengan banyak entitas pada himpunan entitas A.
A
A1 A2
B
B1 B2 B3
A3
B4
Kode_Cust
Nama
Alamat
Tgl_Beli
Qty
Kode_Brg Nama_Brg
Harga
Customer
Beli
Barang
Kode_Cust
Kode_Brg
Halaman 5 dari 20
Pemodelan Data
Jika suatu entity set tidak mempunyai primary key, maka entity set tersebut disebut weak weak entity, dan sebaliknya entitys set yang memiliki primary key disebut strong entity. Konsep ini berhubungan dengan konsep existence dependency yaitu suatu strong entity secara definisi adalah dominant entity, sementara weak entity adalah subordinate entity.
Karyawan
ISA
Upah_Harian
Harian
Kontrak
Lama_kontrak
2. Aggregation Satu keterbatasan dari model ERD adalah tidak mungkin mengekpresikan suatu relationship diantara relationship. Untuk mencegah hal itu, digunakan aggregation yaitu suatu abstraksi yang menunjukan bahwa suatu relationship dianggap sebagai sebagai suatu entity set yang tingkatnya lebih tinggi.
Halaman 6 dari 20
Pemodelan Data
Id_Pegawai
Nama
Id_Kerja
durasi
Id_Proyek
Nama_Proyek
Pegawai
Kerja
Proyek
Id_Pegawai M
Id_Proyek
Id_Kerja Menggunakan
3. Relasi Tunggal (Unary Relation) Implementasi relasi tunggal (unary relation) dari/ke himpunan yang yang sama dalam ER-Diagram tergantung pada derajat relasi. Untuk relasi satu ke banyak akan diimplementasikan table baru yang merepresentasikan relasi tersebut. Table baru ini mendapatkan field dari semua atribut relasi yang ditambahkan dengan atribut key dari himpunan entitas.
Halaman 7 dari 20
Pemodelan Data
Kode_Ang
Nama
Kode_Ang
ANGGOTA
Anak
Alamat
Tgl_Lahir
Kode_Anak
4. Relasi Multi Entitas (N-ary relation) Relasi multi entitas yang menghubungkan lebih dari dua himpunan entitas (N entitas, dimana N>2) akan diimplementasikan pada sebuah table khusus.
Kode_Cust Nama Alamat Kode_Cust Plat_No Plat_No Kelas Kapasitas
Customer
Reservasi
Bis
Kode_Petugas M Petugas
Tgl_Berangkat
Kode_Petugas
Nama Petugas
Halaman 8 dari 20
Pemodelan Data
Contoh Kasus
Sebuah perusahaan mempunyai beberapa bagian. Masing-masing bagian mempunyai pengawas dan setidaknya satu pegawai. Pegawai harus ditugaskan pada paling tidak satu bagian, tetapi dapat pula beberapa bagian. Paling tidak satu pegawai mendapat tugas sebuah proyek. Namun, seorang pegawai dapat libur dan tidak mendapat tugas proyek. Field data yang penting adalah Nama Bagian, Proyek, Pengawas, Nomor Pengawas, Nomor Pegawai dan Nomor Proyek. 1. Menentukan Entitas Entitas pada sistem adalah Bagian, Pegawai, Pengawas dan Proyek. Entitas perusahaan tidak termasuk dalam sistem karena dia hanya memiliki satu instansi. Entitas yang benar harus mempunyai lebih dari satu instansi. 2. Menentukan Relasi Kita membuat matriks relasi entitas, sebagai berikut : Bagian Bekerja di Pegawai milik menggunakan Pengawas Proyek Dipimpin oleh Bekerja pada -
Bagian Pegawai
Halaman 9 dari 20
Pemodelan Data
3. Gambar ERD sementara Kita menghubungkan entitas yang mempunyai relasi seperti yang ditunjukan pada matriks relasi entitas.
BAGIAN
Dipimpin oleh
PENGAWAS
Bekerja di
PEGAWAI
Bekerja pada
PROYEK
4. Tentukan Kardinalitas Dari deskripsi permasalahan kita, kita mengetahui bahwa : Setiap bagian dipimpin oleh satu pengawas. Seorang pengawas hanya memimpin satu bagian. Setiap bagian memiliki paling sedikit satu Pegawai. Setiap Pegawai bekerja di paling sedikit satu bagian. Setiap proyek menggunakan paling sedikit satu Pegawai. Seorang Pegawai dapat bekerja dalam banyak proyek atau bahkan tidak sama sekali.
BAGIAN M
Bekerja di
Dipimpin oleh
PENGAWAS 1
N PEGAWAI
Bekerja pada
N PROYEK
5. Tentukan kunci utama (Primary-keys) Kunci utama adalah Nama Bagian, Nomor Pengawas, Nomor Pegawaidan Nomor Proyek.
Halaman 10 dari 20
Pemodelan Data
BAGIAN M
Bekerja di
Dipimpin oleh
PENGAWAS 1 1
N PEGAWAI
Bekerja pada
N PROYEK
NoPEG
NoPRO
7. Menentukan Atribut Atribut yang diperlukan adalah Nama Bagian, Nama Proyek, Nama Pengawas, Nama Pegawaiselain primary-keys. 8. Pemetaan Atribut Atribut Nama Bagian Nama Proyek Nama Pengawas Nama Pegawai Entitas Bagian Proyek Pengawas Pegawai Atribut NmBag NoPro NoPws NoPeg Entitas Bagian Proyek Pengawas Pegawai
Halaman 11 dari 20
Pemodelan Data
BAGIAN M
Bekerja di
Dipimpin oleh
PENGAWAS
Masa Jabatan
Masa Kerja
N PEGAWAI M
Bekerja pada
Nomor Proyek
PROYEK
NoPEG
Nama Pegawai
NoPRO
Jika ada suatu relasi (hubungan antara 2 entitas) yang tidak digambarkan atributnya, hal ini berarti relasi tersebut hanya memiliki atribut minimal, yaitu atribut yang berasal dari key atribut 2 entitas yang dihubungkannya. 10. Periksa Hasil Lakukan pemeriksaan terhadap ER-D, bila tidak ada koreksi maka ER-D dapat memodelkan data dalam sistem dengan baik.
5.3. Normalisasi
Normalisasi berasal dari E.F. Codd salah satu perintis teknologi basis data, dimana metodologi ini digunakan untuk menciptakan struktur table (relasi) dalam basis data dengan tujuan mengurangi redundansi data. Normalisasi terkadang hanya dipakai sebagai perangkat verifikasi terhadap tabel-tabel yang dihasilkan oleh metodologi seperti ERD. Normalisasi memberikan acuan yang sangat membantu untuk mencegah membuat struktur table yang kurang fleksible atau mengurangi ketidakefisienan. Normalisasi adalah teknik perancangan yang banyak digunakan sebagai pemandu dalam merancang basisdata relasional. Teori normalisasi didasarkan pada konsep bentuk normal. Sebuah tabel relasional dikatakan pada bentuk normal tertentu jika tabel memenuhi himpunan batasan tertentu. Normalisasi adalah bagian perancangan basisdata. Tanpa normalisasi, sistem basisdata menjadi tidak akurat, lambat, tidak efisien. Perancangan dengan normalisasi, ada beberapa hal yang dingin dicapai, yaitu : Mengatur data dalam kelompok-kelompok sehingga masing-masing kelompok hanya menangani bagian kecil sistem. Meminimalkan jumlah data berulang dalam basisdata. Membuat basisdata yang datanya diakses dan dimanipulasi secara cepat dan efisien tanpa melupakan integritas data.
Halaman 12 dari 20
Pemodelan Data
Mengatur data sedemikian rupa sehingga ketika memodifikasi data, Anda hanya mengubah pada satu tempat (integritas referensial). Tujuan normalisasi adalah membuat kumpulan tabel relasional yang bebas dari data berulang dan dapat dimodifikasi secara benar dan konsisten. Normalisasi mengharuskan relasi pada suatu basisdata dalam bentuk normal. Bentuk normal sendiri merupakan seperangkat aturan yang dikenakan dan harus dipenuhi oleh relasi basisdata pada setiap level normalisasi. Beberapa level yang sering digunakan pada normalisasi adalah sebagai berikut : 1. Bentuk tidak normal ( Unnormalized Form) 2. Bentuk normal pertama ( 1NF/ First Normal Form) 3. Bentuk normal kedua ( 2NF/ Second Normal Form) 4. Bentuk normal ketiga ( 3NF/ Third Normal Form) 5. Bentuk normal Boyce-Codd ( BCNF/ Boyce-Codd Normal Form) 6. Bentuk normal keempat ( 4NF/ Fourth Normal Form) 7. Bentuk normal kelima ( 5NF/ Fifth Normal Form) Anomali adalah proses pada basis data yang memberikan efek samping yang tidak diharapkan, misalnya menyebabkan ketidak konsistenan data atau membuat sesuatu data menjadi hilang ketika data lain dihapus. Dependensi (ketergantungan) merupakan konsep yang mendasari normalisasi. Dependensi menjelaskan hubungan antar atribut atau secara lebih khusus menjelaskan nilai suatu atribut yang menentukan nilai atribut lainnya. Dependensi ini akan menjadi acuan bagi pendekomposisian data ke dalam bentuk yang paling efisien.
SISWA(No_siswa,Nama,Wali_studi,Kelas1,Kelas2,Kelas3)
Halaman 13 dari 20
Pemodelan Data
Siswa yang punya nomor siswa, nama dan wali studi mengikuti 3 mata pelajaran / kelas. Disini ada perulangan kelas sebanyak 3 kali, ini bukan bentuk 1NF. Contoh Data : No_Siswa Nama 22890100 Tanzania 22890101 Nia
Kelas_3 1543
Bentuk normal kesatu dari bentuk di atas menjadi : No_Siswa 22890100 22890100 22890101 22890101 22890101 Nama Tanzania Tanzania Nia Nia Nia Wali_studi Zaenudin Zaenudin Rizki Rizki Rizki Kelas_1 1234 1543 1234 1775 1543
2. Bentuk Normal Kedua (2NF/Second Normal Form) Bentuk normal kedua mempunyai syarat yaitu bentuk data telah memenuhi kriteria bentuk normal kesatu. Atribute bukan kunci haruslah bergantung secara fungsi pada kunci utama/ primary key. Sehingga untuk membentuk normal kedua haruslah sudah ditentukan kunci-kunci field. Kunci field haruslah unik dan dapat mewakili atribut lain yang menjadi anggotanya. Dari contoh relasi SISWA pada bentuk normal kesatu, terlihat bahwa kunci utama/primary key adalah nomor siswa. Nama siswa dan Wali_studi bergantung fungsi pada No_siswa, tetapi kode_kelas bukanlah fungsi dari SISWA maka file SISWA dipecah menjadi 2 relasi yaitu : Relasi SISWA No_Siswa Nama 22890100 Tanzania 22890101 Rizki Relasi AMBILKELAS (ada kelas). No_siswa kode_kelas 22890100 1234 22890100 1543 22890101 1234 22890101 1775 22890101 1543
3. Bentuk Normal Ketiga (3NF/Third Normal Form) Untuk menjadi bentuk normal ketiga relasi haruslah dalam bentuk normal kedua dan semua atribut bukan primer tidak punya hubungan yang transitif. Dengan kata lain, setiap atribut bukan kunci harus bergantung hanya pada primary key dan secara menyeluruh. Contoh pada bentuk normal kedua di atas termasuk juga bentuk normal ketiga karena seluruh atribut yang ada disitu bergantung penuh pada kunci primernya. 4. Boyce-Codd Normal Form (BCNF) Boyce-Codd Normal Form mempunyai paksaan yang lebih kuat dari bentuk normal ketiga. Untuk menjadi BCNF, relasi harus dalam bentuk normal kesatu dan setiap atribut harus bergantung fungsi pada atribut superkey. Pada contoh di bawah ini terdapat relasi SEMINAR, kunci primer adalah no_siswa + seminar. Siswa boleh mengambil satu atau dua seminar. Setiap seminar membutuhkan 2 instruktur dan siswa setiap dibimbing oleh salah satu diantara 2
Halaman 14 dari 20
Pemodelan Data
instruktur seminar tersebut. Setiap instruktur boleh hanya mengambil satu seminar saja. Pada contoh ini No_siswa dan Seminar menunjukkan seorang instruktur. Relasi SEMINAR No_Siswa Seminar 2281 22890100 2281 22890101 2291 22890102 2291 22890101 2291 22890109
Bentuk relasi SEMINAR adalah bentuk normal ketiga, tetapi tidak BCNF karena nomor seminar masih bergantung fungsi pada instruktur, jika setiap instruktur dapat mengajar hanya pada satu seminar. Seminar bergantung secara fungsi pada satu atribut bukan seperkey seperti yang disyaratkan oleh BCNF. Maka relasi SEMINAR haruslah dipecah jadi dua yaitu : Relasi PENGAJAR Instruktur Seminar 2281 Budi 2281 Kardi 2291 Mac 2291 Rachmat Relasi SEMINAR-INSTRUKTUR No_Siswa Instruktur Budi 22890100 Kardi 22890101 Mac 22890102 Rachmat 22890101 Rachmat 22890109
1. Step I bentuk unnormalized Bentuk menjadi tabel unnormalized, dengan memakai semua field data yang ada .
Q 10 10 10
Halaman 15 dari 20
Pemodelan Data
Menuliskan semua data yang akan direkam, bagian yang double tidak perlu ditulis. Terlihat record-record yang tidak lengkap, sulit untuk membayangkan bagaimana bentuk record yang harus dibentuk untuk merekam data tersebut. 2. Step II bentuk normal kesatu Bentuklah menjadi bentuk normal kesatu dengan memisah-misahkan data pada fieldfield yang tepat dan bernilai otomic, juga seluruh record harus lengkap adanya. Bentuk file adalah flat file. Dengan bentuk normal kesatu ini telah dapat dibuat satu file dengan 11 field yaitu No factur, kode supplier, nama supplier, kode barang, nama barang, tanggal, jatuh tempo, quantitas, harga, jumlah, total satu factur.
Q 10 10 10
Namun bentuk normal kesatu ini mempunyai banyak kelemahan yaitu a. Inserting/penyisipan Kita tidak dapat memasukkan kode dan nama supplier saja tanpa ada transaksi pembelian, sehingga supplier baru dapat masuk bila ada transaksi pembelian. b. Deleting/Penghapusan Bila satu record diatas dihapus misalnya No. 1 factur 779, maka berakibat pula menghapus data supplier SO2 (Hitachi), pada hal data supplier masih diperlukan. c. Updating/Pengubahan Kode dan nama supplier terlihat ditulis berkali-kali, bila suatu ketika terjadi perubahan nama supplier misalnya maka harus mengganti disemua record yang mengandung hal tersebut. Bila ada yang terlewat maka membuat data tidak konsisten lagi. d. Redundancy Field jumlah di atas merupakan redundancy, karena setiap kali harga dikalikan dengan quantitas akan menghasilkan jumlah. Maka field tersebut dapatlah dibuang, bila tidak dibuang maka mengakibatkan tidak konsisten. Tidak konsisten disini disebabkan karena bila ada perubahan harga, hanya data harga yang diubah, data jumlah tidak maka nilai jumlah tidak sama dengan q x harga. 3. Step III bentuk normal kedua Pembentukan bentuk normal kedua dengan mencari kunci-kunci field yang dapat dipakai sebagai patokan dalam pencarian dan sifatnya unik. Melihat kondisi dari permasalahan factur diatas dapat diambil kunci kandidat yaitu: Kode supplier Kode barang Bentuklah tiga tabel dengan kunci tersebut, lihatlah kebergantungan fungsional fieldfield lain terhadap field kunci, maka didapatkan tabel sebagai berikut :
Halaman 16 dari 20
Pemodelan Data
Tabel Supplier * Kode Supplier Nama Supplier Tabel Nota * No. Factur, Tanggal, Tempo, Qty, Harga, Total * Kode Supplier * Kode Barang
Keterangan * Kunci Primer dari tabel ** Kunci tamu/ penghubung dari tabel terhadap induknya
Dengan pemecahan seperti di atas maka sebagian dari pertanyaan perngujian pada bentuk normal kesatu yaitu inserting, deleting, updating dapat terjawab. Kode dan nama supplier baru dapat masuk kapanpun tanpa harus ada transaksi pada tabel Nota, cukuplah dibuka tabel Supplier dan disisipkan satu record baru. Demikian pula pada saat update dan delete baik itu tabel supplier dan juga tabel barang. Namun permasalahan masihlah ada yaitu pada tabel Nota. a. Field Q dan Harga pada tabel tersebut tidak bergantung penuh pada kunci primer no factur, ia juga bergantung fungsi pada kode barang. Hal ini disebut sebagai kebergantungan yang transitif dan haruslah dipisahkan dalam dua tabel. b. Masih terdapat redundancy data yaitu setiap kali satu factur yang terdiri dari 5 macam barang yang dibeli, maka 5 kali harus dituliskan no factur, tanggal factur, jatuh tempo, dan total. Ini harus pula dipisahkan bila terjadi penggandaan tulisan berulang-ulang. 4. Step IV Bentukl Normal Ketiga Bentuk normal ketiga mempunyai syarat setiap tabel tidak mempunyai field yang tergantung transitif, harus bergantung penuh pada kunci utama. Maka terbentuklah tabel sebagai berikut:
Tabel Supplier * Kode Supplier Nama Supplier Tabel Nota * No. Factur, Tanggal Tempo, Total, K **Kode Supplier
Tabel Barang * Kode Barang Nama Barang Tabel Transaksi Barang * No. Factur, * Kode barang Q, Harga
Halaman 17 dari 20
Pemodelan Data
5. Step V Pengujian dengan data contoh Pengujian disini untuk memastikan kebenaran isi tabel dan hubungan antara tabel tersebut. Ujilah bahwa setiap tabel haruslah punya hubungan dengan tabel yang lainya. Bila tidak ada hubungan antar tabel maka dapat dikatakan perancangan untuk membuat satu database adalah gagal. Table Supplier ode Nama Supplier Supplier G01 Gobel S02 Nustra Hitachi Tabel Nota No. Factur 779 996 Tabel Barang Kode Nama Barang Barang R01 Mouse A01 Monitor A02 CPU
Tabel Transaksi Barang No. Factur Kode Barang 779 R02 998 A01 998 A02
Q 10 10 10
6. Step VI Hubungan relasi antar tabel Gambar hubungan relasi antar file yang ada adalah :
Tabel Supplier
Tabel Barang
Tabel Nota
Pengertian relasi di atas adalah a. Satu supplier punya banyak Faktur. Faktur punya relasi terhadap supplier, Dalam hal ini tidaklah dapat dibalik supplier punya relasi terhadap Faktur. b. Satu faktur punya beberapa transaksi barang c. Satu barang terjadi beberapa kali transaksi pembelian barang 7. Step VII Kelengkapan Field-Field dalam perancangan Permasalahan di atas hanya mengacu pada satu dokumen factur pembelian barang, padahal pada kenyataannya factur tersebut punya dokumen pelengkap misalnya Factur Penjualan Barang, Laporan Stock barang, Laporan Pembelian dan masih banyak laporan dan dokumen data entry lainnya.
Halaman 18 dari 20
Pemodelan Data
Lewat step-step perancangan seperti di atas maka diperoleh field-field untuk melengkapi tabel-tabel yang ada dalam satu database, misalnya Tabel Barang dengan bertambahnya field yang lain menjadi : Tabel Barang Kode Barang Nama Barang Harga Beli Harga Jual Sisa Stock Akhir Sisa Stock Awal Bulan
Foreign key
Primary key
Halaman 19 dari 20
Pemodelan Data
Awalnya aplikasi basisdata dibuat dengan menggunakan sistem file dalam penyimpanan basisdatanya. Aplikasi basisdata juga belum mempunyai DBMS ( Database Management System) sendiri. Penggunaan sistem file dalam penyimpanan data memiliki beberapa kelemahan, diantaranya adalah sebagai berikut : 1. Pengulangandan inkonsistensi data. 2. Biasanya data disimpan dalam format file yang berbedabeda, sehingga dimungkinkan adanya duplikasi pada file yang berbeda. 3. Kesulitan dalam pengaksesandata. 4. Sulit dalam mengisolasi karena banyaknya file serta formatnya. 5. Masalah integritas 6. Constraint (batasan) integritasmenjadi bagian dari kode program. Sehingga akan cukup sulit ketika akan melakukan perubahan atau penambahan batasan tersebut. 7. Masalah keamanan 8. Akses data yang bersamaan oleh banyak pengguna.
5.4. Kesimpulan
Entity-relationship (E-R) data model didasarkan pada persepsi terhadap dunia nyata yang tersusun atas kumpulan objek-objek dasar yang disebut entitas dan relasi. Entitas digambarkan dalam basisdata dengan kumpulan atribut. Kumpulan semua entitas bertipe sama disebut kumpulan entitas / entity set. Relasi adalah hubungan antara beberapa entitas. Kumpulan relasi bertipe sama disebut kumpulan relasi / relationship set. Pemetaan Kardinalitas ( Mapping Cardinalities ) menyatakan jumlah entitas dimana entitas lain dapat dihubungkan ke entitas tersebut melalui sebuah himpunan relasi ( relationship set). Pemetaan berguna dalam menentukan himpunan relasi biner meskipun pemetaan dapat berperan dalam deskripsi himpunan relasi yang melibatkan lebih dari dua himpunan entitas.
PUSTAKA
Abraham Silberschatz & Henry F. Korth, Database System Concepts, 4Th Edition. Wikipedia, the free encyclopedia
Halaman 20 dari 20