Selasa, 26 Agustus 2014

pengertian normalisasi dan anomali

NORMALISASI


Menurut Janner Simarmata & Iman Peryudi (2005) ”Normalisasi adalah teknik perancangan yang banyak digunakan sebagai pemandu dalam merancang basisdata relasional”. Pada dasarnya, normalisasi adalah proses dua langkah yang meletakkan data dalam bentuk tabulasi dengan menghilangkan kelompok berulang lalu menghilangkan data yang terduplikasi dari tabel relasional (www.utexas.edu).

Teori normalisasi didasarkan pada konsep bentuk normal. Sebuah tabel relasional dikatakan berada pada bentuk norml tertentu jika tabel memenuhi himpunan batasan tertentu.

Konsep Dasar

Menurut Janner Simarmata & Iman Peryudi (2005) “Normalisasi adalah bagian perancang basisdata”. Tanpa normalisasi, system basisdata menjadi tidak akurat, lambat, tidak efisien, serta tidak memberikan data yang diharapkan (www.microsoft-accessolutions.co.uk).
Pada waktu menormalisasi basisdata, ada empat tujuan yang harus dicapai, yaitu :
  1. Mengatur data dalam kelompok-kelompok sehingga masing-masing kelompok hanya menangani bagian kecil sistem.
  2. Meminimalkan jumlah data yang berulang dalam basisdata.
  3. Membuat basisdata yang datanya diakses dan dimanipulasi secara cepat dan efisien tanpa melupakan integrasi data.
  4. Mengatur data sedemikian rupa sehingga ketika memodifikasi data, anda hanya mengubah pada suatu tempat.
Perancangan basisdata terkadang menyebut keempat tujuan dengan istilah integrasi data, integritas referensial, dan pengaksesan data.
Tujuan normalisasi adalah membuat kumpulan tabel relasional yang bebas dari data berulang dan dapat memodifikasi secara benar dan konsisten. Ini berarti bahwa semua tabel pada basisdata relasional harus berada pada bentuk normal ketiga (3NF). Sebuah tabel relasional berada pada 3NF jika dan hanya jika semua kolom bukan kunci adalah (a) saling independen dan (b) sepenuhnya tergantung pada kunci utama. Saling independen berarti bahwa tidak ada kolom bukan kunci yang tergantung pada sembarang kombinasi kolom lainnya. Dua bentuk normal pertama adalah langkah antara untuk mencapai tujuan, yaitu mempunyai semua tabel dalam 3NF (Stephens and Plew, 2000).

Aturan Normalisasi

Berikut adalah aturan-aturan normalisasi :
  1. Hilangkan kelompok berulang, buat tabel terpisah untuk setiap himpunan atribut yang berhubungan dan tentukan kunci utama pada masing-masing tabel.
  2. Hilangkan data berulang, jika sebuah atribut hanya tergantung pada sebagian kunci utama gabungan, pindahkan atribut ke tabel lain.
  3. Hilangkan kolom yang tidak tergantung pada kunci, jika atribut tidak tergantung pada kunci, pindahkan atribut ke tabel lain.
  4. Pisahkan relasi majemuk, tidak ada tabel yang bias mengandung dua atau lebi relasi 1:n atau n:m yang tidak berhubungan langsung.
  5. Pisahkan relasi majemuk yang berhubungan secara semantik, ada batasan pada informasi yang memperbolehkan pemisahan relasi many-to-many yang berhubungan secara logis.
  6. Bentuk normal optimal, sebuah model hanya dibatasi oleh fakta sederhana.
  7. Bentuk normal domain-key, sebuah model harus terbebas dari semua anomaly (www.datamodel.org).

keuntungan dari normalisasi, yaitu :
  1. meminimalkan ukuran penyimpanan yang diperlukan yang diperlukan untuk menyimpan data.
  2. meminimalkan resiko inkonsistensi data pada basis data.
  3. meminimalkan kemungkinan anomali pembaruan.
  4.  memaksimalkan stabilitas struktur data.

langkah langkah pembentukan normalisasi :


LANGKAH - LANGKAH PEMBENTUKAN NORMALISASI:
1. Bentuk tidak normal (Unnormalized Form):Bentuk ini merupakan kumpulan data yang akan direkam, tidak ada keharusan mengikuti suatu format tertentu. Dapat saja data tidak lengkap atau terduplikasi. Data dikumpulkan apa adanya sesuai dengan saat menginput.

2. Bentuk Normal Ke Satu (1 NF/First Normal Form)Suatu relasi 1NF jika dan hanya jika sifat dari setiap relasi atributnya bersifat atomik. Atom adalah zat terkecil yang masih memiliki sifat induknya, bila dipecah lagi maka ia tidak memiliki sifat induknya.

Ciri-ciri 1 NF :• Setiap data dibentuk dalam flat file, data dibentuk dalam satu record demi satu record nilai dari field berupa "atomic value".
• Tidak ada set atribute yang berulang atau bernilai ganda.
• Tiap field hanya satu pengertian.

3. Bentuk Normal Ke Dua (2 NF /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 atribute lain yg menjadi anggotanya.

4. Bentuk Normal Ke Tiga (3 NF / Third Normal Form)Untuk menjadi bentuk normal ketiga maka relasi haruslah dalam bentuk normal kedua dan semua atribute bukan primer tidak punya hubungan yang transitif. Dengan kata lain, setiap atribute bukan kunci haruslah bergantung hanya pada primary key dan pada primary key secara menyeluruh.

5. Boyce-Codd Normal Form ( BCNF)BCNF mempunyai paksaan yg lebih kuat dari bentuk normal ketiga. Untuk menjadi BCNF, relasi harus dalam bentuk normal kesatu dan setiap atribute harus bergantung fungsi pada atribute superkey

6. Bentuk Normal Ke Empat (4 NF)Relasi R adalah bentuk 4 NF jika dan hanya jika relasi tersebut juga termasuk BCNF dan semua ketergantungan multivalue adalah juga ketergantungan fungsional.

7. Bentuk Normal Ke Lima (5 NF)Disebut juga PJNF (Projection Join Normal Form) dari 4 NF dilakukan dengan menghilangkan ketergantungan join yang bukan merupakan kunci kandidat.



ANOMALY merupakan penyimpanan-penyimpanan atau eror atau inkonsistensi data yang terjadi pada saat dilakukan proses insert, delete maupun update.

WELL STRUCTURE RELATION
adalah sebuah relasi yang jumlah kerangakapan datanya sedikit (minimum amount of redundancy), serta memberikan kemungkinan bagi user untuk melakukan INSERT,DELETE, dan MODIFY terhadap baris-baris data pada relation tersebut, yang tidak berakibat terjadinya ERROR atau INKONSESTENSI DATA, yang disebabkan oleh operasi operasi tersebut.

jenis jenis anomali

• Anomali Penyisipan(Insertion Anomaly)

Yaitu error atau kesalahan yang terjadi sebagai akibat operasi menyisipkan tuple/record pada sebuah relasi.
Contoh: Jika ada obat baru yang akan dimasukkan/disisipkan, maka obat tersebut tidak dapat disisipkan ke dalam relasi sampai ada pasien yang mengambil jenis obat tersebut.

• Anomali Penghapusan(Deletion Anomaly)

Yaitu error atau kesalahan yang terjadi sebagai akibat operasi penghapusan terhadap tuple/record dari sebuah relasi.
Contoh: Jika pasien yang memiliki No_Pasien P001 membatalkan tidak jadi menebus resep obat tersebut, maka jika record tersebut dihapus akan menyebabkan hilangnya informasi tentang Kode_Obat Kd01.

• Anomali Peremajaan(Update Anomaly)

Yaitu error atau kesalahan yang terjadi sebagai akibat operasi perubahan tuple/record dari sebuah relasi.

Contoh: Jika harga obat untuk kode_obat Kd01 dinaikkan menjadi 5000, maka harus dilakukan beberapa kali modifikasi terhadap record-record pasien yang menebus kode_obat Kd01, agar data selalu tetap konsisten.






pengertian entitas, atribut, dan kardinalitas relasi



  • ENTITAS

Entitas memiliki peranan penting dalam sistem basis data ,karena jika tidak ada sekumpulan entitas sistem basis data tidak terbentuk. Karena Sistem Basis Data terbentuk dari satu data dan dijadikan satu kemudian dihubungkan agar menghasilkan informasi yang jelas,

Entitas merupakan sesuatu yang dapat digambarkan oleh data. Entitas dapat juga diartikan sebagai sebuah individu yang mewakili sesuatu yang nyata serta dapat dibedakan oleh sesuatu yang lain (Fathansyah, 1999).

memodelkan struktur data dan hubungan antar data dan mengimplementasikan basis data secara logika maupun secara fisik dengan DBMS (Database Management system)


Contoh :

Entitas dalam lingkungan Bank
– Nasabah
– Simpanan
– Hipotik
– Supplier
– Part
– Shipment



  • ATRIBUT

Pada dasarnya Atribut merupakan karakteristik dari Entity atau relationship, yang menyediakan penjelasan detail tentang entity atau relationship tersebut. Atau merupakan nama-nama property dari sebuah kelas yang menjelaskan batasan nilainya dari property yang dimiliki oleh sebuah kelas tersebut.

Atribut terdiri dari beberapa jenis. Diantaranya adalah:

- Atribut Value:
Merupakan data aktualatauinformasi yang disimpanpadasuatuatribut di dalamsuatu entity atau relationship.

- Atribut Key
Merupakan atribut yang digunakan untuk menentukan suatu Entity secara unik dan berbeda.

- Atribut Simple
Merupakan Atribut yang hanya memiliki nilai tunggal.

- Atribut Multivalue
Merupkan Atribut yang memiliki sekelompok nilai untuk setiap instant Entity

- Atribut composite
Merupakan Suatu atribut yang terdiri dari beberapa atribut yang lebih kecil yang mempunyai arti tertentu.

- Atribut Derivatif
Merupakan suatu atribut yang berasal atau dihasilkan dari atribut yang lain


  
  • KARDINALITAS RELASI
Kardinalias relasi menggambarkan banyaknya jumlah maksimum entitas dapat ber-relasi dengan entitas pada himpunann entitas yang lain.

Terdapat beberapa relasi antar entitas antara lain:

-          One to one, yang hubungan satu kesatu.
 Contohnya : seorang dosen mengepalai satu jurusan.

-          One to many, yang hubungan satu ke banyak.
 Contohnya : seorang pelanggan membeli beberapa mobil.

-          Many to many, yang hubungan banyak ke banyak.
Contohnya : banyak mahasiswa mengambil banyak matakuliah.

Jumat, 22 Agustus 2014

sytem development life cycle

DEFINISI SIKLUS HIDUP

jika ditinjau dari sisi definisi, siklus hidup memiliki beberapa definisi sebagai berikut ?

  •  dari gustafson (dalam buku theory and problems of software engineering, 2002) definisi ini meyatakan bahwa siklus hidup adalah urutan dari kegiatan yang ada didalam sebuah pengembangan perangkat lunak.

  • dari keyes ( dalam buku software engineering handbook,2005 ) definisi ini menekankan bahwa sebuah perangkat lunak bisa saja mengalami sebuah siklus hidup tergantung dari proses pengembangannya mulai dari ide besar sampai lahir perangkat lunak itu sendiri.


kesimpulan dari 2 definisi siklus hidup diatas adalah bahwa siklus hidup perangkat lunak merupakan urutan hidup sebuah perangkat lunak berdasarkan perkembangan perangkat lunak yang ditentukan oleh pengembang perangkat lunak itu sendiri....


sytem development life cycle

SDLC adalah tahapan-tahapan pekerjaan yang dilakukan oleh analis sistem dan programmer dalam membangun sistem informasi. Langkah yang digunakan meliputi :

1. Melakukan survei dan menilai kelayakan proyek pengembangan sistem informasi
2. Mempelajari dan menganalisis sistem informasi yang sedang berjalan
3. Menentukan permintaan pemakai sistem informasi
4. Memilih solusi atau pemecahan masalah yang paling baik
5. Menentukan perangkat keras (hardware) dan perangkat lunak (software)
6. Merancang sistem informasi baru
7. Membangun sistem informasi baru
8. Mengkomunikasikan dan mengimplementasikan sistem informasi baru
9. Memelihara dan melakukan perbaikan/peningkatan sistem informasi baru bila diperlukan

System Development Lyfe Cycle (SDLC) adalah keseluruhan proses dalam membangun sistem melalui beberapa langkah. Ada beberapa model SDLC. Model yang cukup populer dan banyak digunakan adalah waterfall. Beberapa model lain SDLC misalnya fountain, spiral, rapid, prototyping, incremental, build & fix, dan synchronize & stabilize.
Dengan siklus SDLC, proses membangun sistem dibagi menjadi beberapa langkah dan pada sistem yang besar, masing-masing langkah dikerjakan oleh tim yang berbeda.
Dalam sebuah siklus SDLC, terdapat enam langkah. Jumlah langkah SDLC pada referensi lain mungkin berbeda, namun secara umum adalah sama. Langkah tersebut adalah

1. Analisis sistem, yaitu membuat analisis aliran kerja manajemen yang sedang berjalan
2. Spesifikasi kebutuhan sistem, yaitu melakukan perincian mengenai apa saja yang dibutuhkan dalam pengembangan sistem dan membuat perencanaan yang berkaitan dengan proyek sistem
3. Perancangan sistem, yaitu membuat desain aliran kerja manajemen dan desain pemrograman yang diperlukan untuk pengembangan sistem informasi
4. Pengembangan sistem, yaitu tahap pengembangan sistem informasi dengan menulis program yang diperlukan
5. Pengujian sistem, yaitu melakukan pengujian terhadap sistem yang telah dibuat
6. Implementasi dan pemeliharaan sistem, yaitu menerapkan dan memelihara sistem yang telah dibuat

Siklus SDLC dijalankan secara berurutan, mulai dari langkah pertama hingga langkah keenam. Setiap langkah yang telah selesai harus dikaji ulang, kadang-kadang bersama expert user, terutama dalam langkah spesifikasi kebutuhan dan perancangan sistem untuk memastikan bahwa langkah telah dikerjakan dengan benar dan sesuai harapan. Jika tidak maka langkah tersebut perlu diulangi lagi atau kembali ke langkah sebelumnya.
Kaji ulang yang dimaksud adalah pengujian yang sifatnya quality control, sedangkan pengujian di langkah kelima bersifat quality assurance. Quality control dilakukan oleh personal internal tim untuk membangun kualitas, sedangkan quality assurance dilakukan oleh orang di luar tim untuk menguji kualitas sistem. Semua langkah dalam siklus harus terdokumentasi. Dokumentasi yang baik akan mempermudah pemeliharaan dan peningkatan fungsi sistem.


  • Model-model yang digunakan pada Software Development Life Cycle (SDLC) yaitu:

a.    Model Waterfall

Merupakan model pengembangan system yang paling mudah dan paling sering digunakan. Model pengembangan ini bersifat linear dari tahap awal pengembangan system yaitu tahap perencanaan sampai tahap akhir pengembangan system yaitu tahap pemeliharaan. Tahapan berikutnya tidak akan dilaksanakan sebelum tahapan sebelumnya selesai dilaksanakan dan tidak bisa kembali atau mengulang ke tahap sebelumnya. Tahap-tahap yang dilakukan pada model Waterfall ini digambarkan pada gambar berikut ini :

  • kelebihan :
 metode ini masih lebih baik digunaka walaupun sudah tergolong "kuno". daripada menggunakn pendekatan asal asalan. selain itu, metode ini juga masih masuk akal jika kebutuhan sudah diketahui dengan baik.

  • kekurangan :
  1. pada kenyataannya, jarang mengikuti urutan sekuensial seperti pada teori. iterasi sering terjadi menyebabkan masalah baru.
  2. sulit bagi pelanggan untuk menentukan sama kebutuhan secara eksplisit.
  3. pelanggan harus sabar. karena pembuatan perangkat lunak akan dimulai ketika tahap desain sudah selesai. sedangkan pada tahap sebelum desain bisa memkan waktu yang lama
  4. kesalahan diawal tahap berakibat sangat fatal pada tahap berikutnya.

b.    Model Iterasi

Merupakan model pengembangan system yang bersifat dinamis dalam artian setiap tahapan proses pengembangan system dapat diulang jika terdapat kekurangan atau kesalahan. Setiap tahapan pengembangan system dapat dikerjakan berupa ringkasan dan tidak lengkap, namun pada akhir pengembangan akan didapatkan system yang lengkap pada pengembangan system. Terdapat dua jenis model iterasi, yaitu :

-            Model Incremental, merupakan model pengembangan system yang dipecah sehingga model pengembangannya secara increment/bertahap. Kebutuhan pengguna diprioritaskan dan prioritas tertinggi dimasukkan dalam awal increment. Model Incremental digambarkan sebagai berikut :

 
 -        Model Spiral, merupakan model pengembangan system yang digambarkan berupa spiral. Model spiral ini tidak merepresentasikan rangkaian tahapan dengan penelusuran balik (back-tracking), tidak ada fase-fase tahapan yang tetap seperti spesifikasi atau perancangan. Setiap untaian pada pada spiral menunjukkan fase software process. Model Spiral ini digambarkan sebagai berikut :


c.    Model Rapid Application Development (RAD)

Merupakan model pengembangan system yang melakukan beberapa penyesuaian terhadap SDLC pada beberapa bagian sehingga lebih cepat untuk sampai ke tangan pengguna system. metodologi ini biasanya mensyaratkan beberapa teknik dan alat-alat khusus agar proses bisa cepat, misalnya melakukan sesi Joint Application Development (JAD), penggunaan alat-alat Computer Aided Software Engineering (CASE Tools), kode generator dan lain-lain. Model RAD ini digambarkan sebagai berikut :


d.    Model Prototyping

Merupakan model pengembangan system yang proses iterative dalam pengembangan sistem dimana requirement diubah ke dalam sistem yang bekerja (working system) yang secara terus menerus diperbaiki melalui kerjasama antara user dan analis. Prototype juga bisa dibangun melalui beberapa tool pengembangan untuk menyederhanakan proses. Prototyping merupakan bentuk dari Rapid Application Development (RAD). Model Prototypig digambarkan sebagai berikut :