• Tidak ada hasil yang ditemukan

BAB 3 Proses Desain Database - BAB 3 PROSES DESAIN DATABASE.pdf

N/A
N/A
Protected

Academic year: 2018

Membagikan "BAB 3 Proses Desain Database - BAB 3 PROSES DESAIN DATABASE.pdf"

Copied!
5
0
0

Teks penuh

(1)

Pa

g

e

9

BAB 3 Proses Desain Database

Tujuan Pembelajaran Umum

Mahasiswa mampu mendesain database sederhana

Tujuan pembelajaran khusus

Mahasiswa mampu dan dapat menjelaskan proses desain database

alah satu cara yang terbaik untuk mengerti mengenai proses desain database adalah dengan memulai men-desain sebuat tabel flat-file dan kemudian masukkan sampel data ke dalam tabel untuk melihat apa yang terjadi. Dengan menganalisa contoh data, Anda dapat meng-identifikasi permasalahan yang disebabkan oleh desain awal tersebut. Anda dapat memodifikasi desain untuk menghilangkan masalah, coba lagi beberapa contoh data, cek masalah yang terjadi, modifikasi kembali, lanjutkan proses ini sampai Anda mendapatkan tabel yang konsisten dan bebas masalah.

Sekali Anda bisa menyesuaikan diri dengan masalah yang timbul dalam pembuatan tabel, Anda diharapkan untuk bisa melompati beberapa langkah desain dan langsung menuju desain tabel final.

Contoh Proses Desain

Kita akan mendesain sebuah database untuk mengetahui aktivitas olahraga para siswa. Kita akan mengikuti setiap aktivitas yang diikuti siswa dan bayaran per semester untuk melakukan aktivitas tersebut.

Step 1:Buat Tabel Aktivitas yang berisi field-field berikut: nama siswa, aktivitas dan biaya. Karena beberapa siswa mengambil lebih dari satu aktivitas, kita akan mengijinkan hal tersebut dan menambahkan field aktivitas kedua dan juga field biaya untuk aktivitas kedua. Sehingga struktur tabel kita adalah: Siswa, Aktivitas 1, Biaya 1, Aktivitas 2, Biaya 2.

Step 2 : Tes tabel dengan beberapa contoh data. Ketika Anda membuat contoh data, Anda harus melihat apa yang tabel ada dapat perbuat.Misalnya, tidak ada yang mencegah kita untuk memasukkan nama yang sama untuk siswa yang berbeda, atau biaya yang berbeda untuk aktivitas yang sama, dan lain-lain. Anda juga harus membayangkan membuat pertanyaan untuk data Anda dan mendapatkan jawaban (query data dan repport data). Contohnya, bagaimana saya dapat menemukan semua siswa yang mengambil aktivitas tenis?

Tabel Aktivitas Siswa

Siswa Aktivitas 1 Biaya 1 Aktivitas 2 Biaya 2

Ogi Tenis 36 000 Renang 17 000 Agung Catur 40 000 Renang 17 000 Ogi Tenis 36 000

Mega Renang 15 000 Golf 47 000

Step 3 : Analisa Data. Pada kasus ini, kita jelas mendapat masalah pada field pertama. Kita punya dua Ogi, dan kita tidak dapat memisahkan keduanya. Kita harus menemukan cara untuk mengidentifikasi tiap siswa secara unik.

Identifikasi Record Unik

Mari kita perbaiki masalah kita, kemudian kita cek lagi hasilnya.

Step 4: Modifikasi Desain. Kita dapat mengidentifikasi setiap siswa secara unik dengan memberi ID yang unik, Field baru yang kita tambahkan, adalah field ID. Kita pisahkan field Siswa dan tambahkan field ID. Catat bahwa tanda asterisk (*) dibelakang nama field ini

menunjukkan bahwa field ini adalah field kunci, berisi nilai yang unik untuk setiap record. Kita dapat menggunakan field tersebut untuk menampilkan record yang manapun secara spesifik. Ketika Anda membuat field kunci tersebut pada program database, program tersebut akan mencegah Anda untuk memasukkan nilai duplikasi pada field ini, untuk menjaga keunikan setiap record atau entry data.

(2)

g

e

10

Struktur tabel kita saat ini adalah: ID, Aktivitas 1, Biaya 1, Aktivitas 2, Biaya 2.

Tabel Aktivitas Siswa

ID* Aktivitas 1 Biaya 1 Aktivitas 2 Biaya 2

101 Tenis 36 000 Renang 17 000 102 Catur 40 000 Renang 17 000 103 Tenis 36 000

201 Renang 15 000 Golf 47 000

Komputer akan dengan mudah mengikuti jejak kode ID tersebut, tetapi hal ini tidak akan terlalu berguna untuk manusia. Karena itu kita akan membuat tabel kedua yang berisi daftar setiap ID dan siswa yang memiliki ID tersebut. Dengan menggunakan program database, secara gampang dapat kita buat kedua struktur tabel tersebut dan menghubungkannya dengan

menggunakan field ID. Kini kita mengubah tabel flat-file kita menjadi database relasional: database yang berisi banyak tabel yang dihubungkan dengan field kunci.

Tabel Siswa biasanya berisi nama awal, nama akhir, alamat, umur dan lainnya, dan juga ID. Untuk menjaga kemudahan kita akan membatasi tabel siswa dengan dua field saja yaitu nama dan ID siswa, dan kita akan fokus pada struktur tabel aktivitas siswa.

Step 5 : Tes Tabel dengan Contoh Data

Tabel Aktivitas Siswa

ID* Aktivitas 1 Biaya 1 Aktivitas 2

Biaya 2

101 Tenis 36 000 Renang 17 000

102 Catur 40 000 Renang 17 000

103 Tenis 36 000

201 Renang 15 000 Golf 47 000

Step 6: Analisa Data

Ternyata masih banyak kesalahan pada tabel aktivitas siswa.

1. Ruang terbuang. Tidak semua siswa mengambil aktivitas kedua, karena itu kita akan membuang percuma ruang yang ada pada saat kita menyimpan data. Hal ini tampaknya tidak akan terlalu mengganggu pada tabel ini, tetapi bagaimana bila kita berurusan dengan ribuan atau jutaan data?

2. Kesalahan Penambahan data. Bagaimana jika #201 ingin melakukan aktivitas ketiga? Sekolah memperbolehkan, tetapi tidak ada ruang pada struktur ini untuk aktivitas yang lain. Kita tidak dapat menambahkan record yang lain atas nama Mega karena akan merusak keunikan field ID, dan juga akan mempersulit apabila kita ingin melihat datanya secara keseluruhan dalam satu kesempatan.

3. Entry data yang berlebihan. Jika biaya tenis naik menjadi 39 000, kita harus merubah semua record yang berisi tenis dan memodifikasi biayanya.

4. Kesulitan query. Akan sangat sulit untuk melihat semua siswa yang melakukan aktivitas renang: kita harus mencari pada aktivitas 1 dan 2 untuk memastikan kita mendapat semuanya.

5. Informasi berlebih. Jika 50 siswa mengambil renang, kita harus memasukkan data dalam field aktivitas dan biaya untuk setiap siswa.

6. Data tidak Konsisten. Perhatikan bahwa terdapat dua harga untuk renang. Apakah 15 000 atau 17 000? Mana yang seharusnya? Hal ini terjadi jika satu record di-update sedangkan yang lain tidak.

Hilangkan field yang berulang.

Tabel Siswa masih bisa diterima, jadi kita akan menyimpannya. Tetapi, banyak yang kurang tepat pada tabel aktivitas siswa. Mari kita coba untuk memperbaikinya.

Tabel Siswa

Siswa ID*

Ogi 101

Agung 102

Ogi 103

(3)

Pa

g

e

11

Step 7 : Modifikasi desain. Kita dapat memperbaiki empat masalah kita yang pertama dengan membuat record yang terpisah untuk setiap aktivitas yang diambil oleh siswa, daripada satu record untuk semua aktivitas yang diambil oleh siswa.

Pertama kita hilangkan field Aktivitas 2 dan Biaya 2, kemudian kita harus menyesuaikan struktur tabel sehingga kita dapat memasukkan banyak record untuk setiap siswa. Untuk melakukan hal itu, kita re-definisikan field kunci yang ada sehingga akan terdiri dari dua field, ID dan Aktivitas. Karena setiap siswa hanya boleh mengambil satu aktivitas dalam satu

kesempatan, maka kombinasi ini akan menciptakan kunci yang unik untuk setiap record.

Tabel aktivitas kita kini sudah disederhanakan menjadi: ID, Aktivitas, Biaya. Catat bagaimana struktur tabel yang baru tidak membatasi kegiatan yang diambil oleh siswa

Step 8 : Tes Contoh Data

ID* Aktivitas 1 Biaya 1

101 Tenis 36 000

101 Renang 17 000

102 Catur 40 000

102 Renang 17 000

103 Tenis 36 000

201 Renang 15 000

201 Golf 47 000

201 Catur 40 000

Step 9: Analisa Data. Kita tahu kita masih punya masalah dengan data berlebih (biaya aktivitas berulang), data tidak konsisten (Berapa biaya sebenarnya untuk renang?) Kita harus

memperbaikinya, dimana keduanya adalah masalah editing atau modify data.

Hilangkan penyimpangan entry data

Sebaiknya, kita juga harus melihat apakah fungsi data yang lain berjalan dengan baik, seperti tambah atau hapus data.

Jika Anda melihat secara teliti, Anda akan menemukan bahwa ada masalah potensial ketika kita menambah atau menghapus data:

- Penyimpangan Penambahan. Bagaimana jika sekolah kita mengenalkan aktivitas yang baru, seperti, Karambol, dengan biaya 10 000. Dimana kita dapat menyimpan informasi ini? Dengan desain kita yang terakhir, kita tidak dapat menyimpannya sampai ada siswa yang mendaftar.

- Penyimpangan Penghapusan. Jika Mega (#201) pindah ke almamater yang lain, semua informasi mengenai golf, akan hilang dari database kita, karena hanya dia yang mengambil aktivitas ini.

Step 10 : Modifikasi Desain. Akar permasalahan kita untuk kedua hal yang tersisa adalah karena kita mempunyai field bukan-kunci yang tergantung kepada sebagian field kunci (biaya terhadap aktivitas). Biaya untuk setiap aktivitas tidak tergantung kepada ID siswa, yang merupakan bagian dari field kunci kita (ID + Aktivitas). Biaya tenis, misalnya, akan tetap 36 000, siapapun juga siswa yang mengambilnya- jadi ID siswa tidak mempunyai pengaruh terhadap nilai yang tersimpan dalam field ini. Biaya aktivitas murni hanya tergantung dari aktivitasnya itu sendiri. Dengan memeriksa struktur tabel kita dan memastikan bahwa semua field bukan-kunci tergantung pada field kunci, kita akan menghilangkan semua permasalahan kita yang tersisa.

Desain final kita akan terdiri dari tiga tabel: Tabel Siswa, Tabel Partisipan, Tabel Aktivitas yang dimodifikasi.

Tabel Siswa

Siswa ID*

Ogi 101

Agung 102

Ogi 103

(4)

g

e

12

Jika anda periksa tabel ini, terlihat bahwa semua field bukan-kunci bergantung pada field kunci: nama siswa bergantung kepada ID siswa; biaya aktivitas bergantung kepada aktivitas. Tabel partisipan kita dasarnya adalah data yang sudah terdapat pada tabel yang lain, dan setiap fieldnya merupakan field kunci.

Step 8 : Tes Contoh Data

Step 11: Tes Contoh Data.

Step 12 : Analisa Hasil. Tabel-tabel ini terlihat bagus:

-

Tidak ada informasi berlebih. Anda hanya perlu mendata biaya aktivitas

sekali saja.

-

Tidak ada inkonsistensi data. Hanya ada satu tempat dimana Anda

memasukkan biaya tiap aktivitas, jadi tidak ada kesempatan untuk membuat

data yang tidak konsisten. Apabila ada kenaikan harga, Anda hanya perlu

meng-update data yang ada.

-

Tidak ada penyimpangan penambahan. Anda dapat menambah aktivitas baru

ke dalam tabel aktivitas tanpa harus menunggu siswa yang mendaftar.

-

Tidak ada penyimpangan penghapusan. Jika #201 pindah, kita masih punya

data tentang golf.

Rangkuman

Walaupun desain database Anda tergantung dari seberapa kompleks data yang anda

miliki, setiap kali Anda mendesain database, pastikan hal berikut ini terpenuhi:

-

Field yang terdiri dari dua bagian, pecahkan menjadi dua, misalnya nama

menjadi Nama awal dan Nama akhir.

-

Buat field kunci yang akan mengidentifikasi record secara unik. Anda

mungkin perlu membuat field ID (dengan tabel lookup untuk melihat

nilainya).

-

Hilangkan field yang berulang. Misal: jika tabel anda terdiri dari field

lokasi1, lokasi 2, lokasi 3 yang berisi data yang mirip, ini merupakan

peringatan yang jelas.

Tabel Siswa

Siswa ID*

Ogi 101

Agung 102

Ogi 103

Mega 201

ID* Aktivitas*

101 Tenis

101 Renang

102 Catur

102 Renang

103 Tenis

201 Renang

201 Golf

201 Catur

Tabel Aktivitas

Aktivitas*

Biaya

Tenis

36 000

Renang

17 000

Catur

40 000

Golf

47 000

(5)

Pa

g

e

13

-

Hilangkan masalah modifikasi record dengan memastikan bahwa

tiap field

bukan-kunci tergantung sepenuhnya pada field kunci

. Untuk melakukan ini,

Gambar

Tabel Aktivitas Siswa
Tabel Siswa
Tabel Siswa

Referensi

Dokumen terkait

BAB III SUSUNAN PANITIA PEMBUATAN SANITASI ,%-..

c) Ketika kecepatan angin mencapai 20 km/jam modem akan mengirimkan pesan ber-level “SIAGA” ke nomor yang telah di-setting pada modem. Jika kecepatan angin mencapai

Proses karakterisasi jelaga karbon dilakukan dengan pengujian hambatan, pengujian transparansi, dan pengujian X-Ray Diffraction (XRD). Hasil penelitian menunjukkan bahwa: 1)

Hal ini dapat dilihat dari beberapa kenyataan antara lain seperti adanya program pemberdayaan masyarakat dari unit kerja pemerintah yang tidak dikoordinasikan

• Hubungan Kemanusiaan atau gaya yang lunak dihubungkan pada pemimpin yang tidak k dihubungkan pada pemimpin yang tidak mempertimbangkan perbedaan yang besar diantara teman-teman

Transformator kering yang mempunyai gawai proteksi arus Transformator kering yang mempunyai gawai proteksi arus lebih pada sambungan sekunder, dengan kemampuan atau lebih pada

Sebagai bentuk ketidakpuasan terhadap kinerja PSSI—yang selama delapan tahun masa kepengurusan Nurdin Halid tidak menghasilkan prestasi di tingkat internasional—kompetisi yang

Uji potensi sebagai tabir surya dari fraksi etil asetat kulit batang tanaman bangkal dilakukan secara in vitro dengan menentukan nilai SPF (Sun Protection Factor)