Rabu, 16 September 2015

Pengertian Diagram UML

Jenis Jenis Diagram UML

Pengertian Diagram UML

object oriented program
UML (Unified Modeling Language) adalah sebuah bahasa untuk menetukan, visualisasi, kontruksi, dan mendokumentasikan artifact (bagian dari informasi yang digunakan atau dihasilkan dalam suatu proses pembuatan perangkat lunak. Artifact dapat berupa model, deskripsi atau perangkat lunak) dari system perangkat lunak, seperti pada pemodelan bisnis dan system non perangkat lunak lainnya.
UML merupakan bahasa standar untuk penulisan blueprint software yang digunakan untuk visualisasi, spesifikasi, pembentukan dan pendokumentasian alat-alat dari sistem perangkat lunak.





                                            Jenis-jenis Diagram UML, yaitu :

1. Use Case Diagram

Use case adalah abstraksi dari interaksi antara system dan actor. Use case bekerja dengan cara mendeskripsikan tipe interaksi antara user sebuah system dengan sistemnya sendiri melalui sebuah cerita bagaimana sebuah system dipakai.
use case diagram



Diagram Use Case berguna dalam tiga hal :
  • Menjelaskan fasilitas yang ada (requirement)
  • Komunikasi dengan klien
  • Membuat test dari kasus-kasus secara umum

Kelebihan:
  • Interaksi antara pengguna dan system lain dengan system yang akan di buat cukup tergambar dengan baik.
  • Penggambaran dengan sederhana membuat identifikasi kebutuhan dengan use case dapat dengan lebih mudah untuk dipahami.
  • Pendekatan identifikasi kebutuhan dapat berdasarkan top down (keinginan dari manajemen level atas) maupun bottom up (keinginan pengguna akhir).
  • Dapat meng-include (memasukkan) fungsionalitas use case lain sebagai bagian dari proses dalam dirinya.
  • dapat di-include oleh lebih dari satu use case lain, sehingga duplikasi fungsionalitas dapat dihindari dengan cara menarik keluar fungsionalitas yang common.
  • Dapat meng-extend (memperpanjang) use case lain dengan behaviour-nya sendiri.
  • Sementara hubungan generalisasi antar use case menunjukkan bahwa use case yang satu merupakan spesialisasi dari yang lain.
Kelemahan:
  • Kekurangan mengenai data masih kurang teridentifikasi dengan baik.

2. Activity Diagram

Activity diagram menyediakan analis dengan kemampuan untuk memodelkan proses dalam suatu sistem informasi. Activity diagram dapat digunakan untuk alur kerja model, use case individual, atau logika keputusan yang terkandung dalam metode individual3. Activity diagram juga menyediakan pendekatan untuk proses pemodelan paralel. Activity diagram lebih lanjut .





Pada dasarnya, diagram aktifitas canggih dan merupakan diagram aliran data yang terbaru. Secara teknis, diagram aktivitas menggabungkan ide-ide proses pemodelan dengan teknik yang berbeda termasuk model acara, statecharts, dan Petri Nets.


Notasi yang digunakan dalam activity diagram adalah sebagai berikut:
  1. Activity : Notasi yang menggambarkan pelaksanaan dari beberapa proses dalam aliran pekerjaan.
  2. Transition : Notasi yang digunakan untuk memperlihatkan jalan aliran control dari activity ke activity.
  3. Decision : Notasi yang menandakan kontro cabang aliran berdasarkan decision point.
  4. Synchronization bars : Aliran kerja notasi ini menandakan bahwa beberapa aktivitas dapat diselesaikan secara bersamaan (pararel).
3. Package Diagram

Package diagram utamanya digunakan untuk mengelompokkan elemen diagram UML yang berlainan secara bersama-sama ke dalam tingkat pembangunan yang lebih tinggi yaitu berupa sebuah paket. Diagram paket pada dasarnya adalah diagram kelas yang hanya menampilkan paket, disamping kelas, dan hubungan ketergantungan, disamping hubungan khas yang ditampilkan pada diagram kelas.





Sebagai contoh, jika kita memiliki sistem pendaftaran untuk kantor dokter, mungkin masuk akal untuk kelompok kelas pasien dengan kelas sejarah medis pasien bersama-sama untuk membentuk paket kelas pasien. Selain itu, dapat berguna untuk membuat paket perawatan yang mengandung gejala penyakit, penyakit, dan obat-obatan khas yang diresepkan untuk mereka. 

4. State Diagram

State diagram menggambarkan urutan keadaan yang dilalui objek dalam suatu kelas, karena suatu kejadian menyababkan suatu perpindahan aktivitas/state. State dari objek adalah penggolongan dari satu atau lebih nilai attribute pada kelas.
Bersifat dinamis. Diagram state ini memperlihatkan statestate pada system, memuat state, transisi, event, serta aktifitas. Diagram ini terutama penting untuk memperlihatkan sifat dinamis dari antarmuka, kelas, kolaborasi dan terutama penting pada pemodelan system – system yang reaktif.


contoh :“Peminjaman Barang””
  1. Seorang peminjam yang akan meminjam akan mengisi form peminjaman.
  2. Sistem akan megecek keadaan barang. Barang tersebut tersedia apa tidak, atau barang tersebut dapat di pinjam atau tidak
  3. Setelah barang tersedia, sistem akan memvalidasi persetujuan peminjaman barang dan menyerahkan barang kepada peminjam. 
  4. Sistem juga akan mencari informasi tentang barang yang akan dipinjam, maka akan dilakukan permintaan akan informasi barang.
  5. Jika informasi yang diterima masih kurang, akan dilakukan permintaan ulang sampai seluruh informasi yang dibutuhkan didapatkan.
  6. Saat informasi sudah cukup, informasi tersebut akan diserahkan kepada peminjam barang tersebut.

5. Sequence Diagram

Sequence diagram menjelaskan interaksi objek yang disusun berdasarkan urutan waktu. Secara mudahnya sequence diagram adalah gambaran tahap demi tahap yang seharusnya dilakukan untuk menghasilkan sesuatu sesuai dengan use case diagram.
Bersifat dinamis. Diagram urutan adalah interaksi yang menekankan pada pengiriman pesan (message) dalam suatu waktu tertentu.
Sequence diagram menekankan penyusunan berbasis waktu untuk kegiatan yang dilakukan dengan satu set dari objek yang berkolaborasi. Sequence diagram sangat berguna dalam membantu analis, memahami spesifikasi real-time dan menggunakan kasus yang rumit (lihat di bawah). Diagram ini dapat diguanakan untuk mendeskripsikan baik secara fisik dan logis interaksi antara objek.



Pada contoh

sequence diagram
diatas digambarkan contoh use case investasi perdagangan. Pada diagram tersebut obyek yang berinteraksi adalah user, userinterface sistem, dan interface terhadap sistem eksternal.Pada diagram tersebut terlihat aliran secara umum,yakni :
  • User memilih account investment.
  • Kemudian, sistem akan mengirimkan pesan pada sistem investor untukmelakukan query harga saham dari investasi pada account user.
  • Sistem akan menampilkan harga saham pada account investasi user.
  • User memilih investasi dan jumlah saham yang akan dijual.
  • Sistem akan mengirimkan pesan kepada sistem investor untukmenyampaikan permintaan untuk menjual saham yang telah ditentukan oleh user.

6. Class Diagram (Class Diagram)

Class adalah dekripsi kelompok obyek-obyek dengan property, perilaku (operasi) dan relasi yang sama. Sehingga dengan adanya class diagram dapat memberikan pandangan global atas sebuah system. Hal tersebut tercermin dari class- class yang ada dan relasinya satu dengan yang lainnya. Sebuah sistem biasanya mempunyai beberapa class diagram. Class diagram sangat membantu dalam visualisasi struktur kelas dari suatu system.
Bersifat statis. Diagram ini memperlihatkan himpunan kelas-kelas, antarmuka, kolaborasi-kolaborasi, serta relasi-relasi. Diagram ini umum dijumpai pada pemodelan system berorientasi objek.
Kelas Diagram berfungsi untuk menjelaskan tipe dari object sistem dan hubungannya dengan object yang lain. Object adalah nilai tertentu dari setiap attribute kelas entity. Pada penggambaran kelas diagram ada dikenal dengan kelas analisis yaitu kelas ber-stereotype. Tapi yang biasanya dipakai adalah kelas diagram tanpa stereotype.

Kelemahan:
  1. Sulit untuk penentuan antara atribut atau kelas, sering terjadi kesalahan
  2. Pengimplementasian struktur data sukar dilakukan
Class memiliki 3 area pokok :
  1. Name (dan stereotype);
  2. Attribute;
  3. Method.



Penjelasan dari gambar di atas yaitu class pegawai memiliki hubungan langsung dengan slass department, class pelanggan memiliki keteterhubungan langsung dengan class transaksi, class transaksi tidak akan bisa tanpa adanya class departemen, begitu pun class produk yang dapat terbentuk tanpa adanya class transaksi, lalu class perlengkapan, makanan dan minuman dihungungkan menggunakan generalisasi ke class produk.

7. Communication Diagram

Communication diagram menggambarkan interaksi antar objek seperti sequence diagram, tetapi lebih menekankan pada peran masing-masing objek. Setiap message memiliki sequence number, dimana message dari level tertinggi memiliki Nomor 1. Diagram membawa informasi yang sama dengan diagram Sequence, tetapi lebih memusatkan atau memfokuskan pada kegiatan obyek dari waktu pesan itu dikirimkan.
Contoh : Diagram Collaboration “Pemesanan kamar di Hotel”



.

8. Composite Structure Diagram

Diagram struktur komposit adalah diagram yang menunjukan struktur internal classifier, termasuk poin interaksinya ke bagian lain dari system. Hal ini menunjukkan konfigurasi dan hubungan bagian, yang bersama-sama melakukan perilaku classifier. Diagram struktur komposit merupakan jenis diagram struktur yang statis dalam UML, yang menggambarkan struktur internal kelas dan kolaborasi.







Struktur komposit dapat digunakan untuk menjelaskan:
  1. Struktur dari bagian-bagian yang saling berkaitan;
  2. Run-time struktur yang saling berhubungan.

9. Object Diagram

Object diagram merupakan sebuah gambaran tentang objek-objek dalam sebuah system pada satu titik waktu. Karena lebih menonjolkan perintah-perintah dari pada class, object diagram lebih sering disebut sebagai sebuah diagram perintah.
Object diagram sangat mirip dengan diagram kelas. Perbedaan utama adalah bahwa diagram objek menggambarkan objek dan hubungan mereka. Tujuan utama dari diagram objek adalah untuk memungkinkan analis untuk mengungkap rincian tambahan kelas. Dalam beberapa kasus, pernyataan variabel dari sebuah class diagram dapat membantu pengguna atau analis dalam menemukan atribut tambahan yang relevan, hubungan, dan atau operasi, atau mungkin menemukan bahwa beberapa atribut, hubungan, atau operasi yang salah tempat.
Bersifat statis. Diagram ini mempelihatkan objek-objek serta relasi-relasi antar objek. Diagram objek memperlihatkan instansiasi statis dari segala sesuatu yang dijumpai pada diagram kelas.





10. Timing Diagram

Memperlihatkan interaksi ketika tujuan utama diagram adalah waktu. Menggambarkan perubahan dalam state atau kondisi dari pengelompokkaninstance atau tugas berlebihan. Biasanya dipakai untuk memperlihatkan perubahan dalam state objectberlebihan dalam merespon ke external events. Dipakai untuk memperlihatkan perilaku dari sebuah/ beberapa object melaluiperiode waktu.


Ada 2 jenisTiming diagram yaitu
  1. Concise/simple notation: Dipakai untuk mengeksplorasi sebuah/beberapa object melalui periode waktu
  2. Robust notation



Diagram tersebut akan menjadi ideal ketika kita mampu menyeimbangkan ke-6 elemen yang ada, bukan menariknya ke satu atau dua arah saja. Tiap orang biasanya punya satu elemen yang dominan, tinggal bagaimana mengoptimalkan elemen-elemen yang lain saja.

11. Component Diagram

Diagram ini bila dikombinasikan dengan diagram penyebaran dapat digunakan untuk menggambarkan distribusi fisik dari modul perangkat lunak melalui jaringan. Misalnya, ketika merancang sistem client-server, hal ini berguna untuk menunjukkan mana kelas atau paket kelas akan berada pada node klien dan mana yang akan berada di server.





Diagram komponen juga dapat berguna dalam merancang dan mengembangkan sistem berbasis komponen. Karena berfokus pada analisis sistem berorientasi objek dan desain.

12. Deployment Diagram

Deployment diagram menggambarkan detail bagaimana komponen di deploy dalam infrastruktur system, dimana komponen akan terletak (pada mesin, server atau piranti keras), bagaimana kemampuan jaringan pada lokasi tersebut, spesifikasi server, dan hal-hal lain yang bersifat fisikal. Hubungan antar node ( misalnya TCP/IP) dan requirement dapat juga didefinisikan dalam diagram ini.



13. Interaction Overview Diagram

Interaction Overview Diagram adalah pecangkolan secara bersama antara activity diagram dengan sequence diagram. Interaction Overview Diagram dapat dianggap sebagai activity diagram dimana semua aktivitas diganti dengan sedikit sequence diagram, atau bisa juga dianggap sebagai sequence diagram yang dirincikan dengan notasi activity diagram yang digunakan untuk menunjukkan aliran pengawasan.



Pengertian UML

Pengertian UML

Definisi UML

  1. Unified Modeling Language merupakan metode pengembangan perangkat lunak (sistem informasi) dengan menggunakan metode grafis serta merupakan bahasa untuk visualisasi, spesifikasi, konstruksi serta dokumentasi [Adin05].
  2. Unified Modeling Language (UML) adalah bahasa yang telah menjadi standard untuk visualisasi, menetapkan, membangun dan mendokumentasikan arti suatu sistem perangkat lunak [Hend07].
  3. Unified Modeling Language (UML) dapat didefinisikan sebagai sebuah bahasa yang telah menjadi standar dalam industri untuk visualisasi, merancang dan mendokumentasikan sistem perangkat lunak [Afif02].
  4. Unified Modeling Language (UML) merupakan standard modeling language yang terdiri dari kumpulan-kumpulan diagram, dikembangkan untuk membantu para pengembang sistem dansoftware agar bisa menyelesaikan tugas-tugas seperti [Joml07] :
    • Spesifikasi
    • Visualisasi
    • Desain arsitektur
    • Konstruksi
    • Simulasi dan testing
    • Dokumentasi
Berdasarkan beberapa pendapat yang dikemukakan diatas dapat ditarik kesimpulan bahwa “Unified Modeling Language (UML) adalah sebuah bahasa yang berdasarkan grafik atau gambar untuk menvisualisasikan, menspesifikasikan, membangun dan pendokumentasian dari sebuah sistem pengembangan perangkat lunak berbasis Objek (OOP)  (Object Oriented programming)”.

Langkah-langkah penggunaan Unified Modeling Language (UML)

Adapun langkah-langkah penggunaan Unified Modeling Language (UML) [Afif02] diantaranya sebagai berikut :
  1. Buatlah daftar business process dari level tertinggi untuk mendefinisikan aktivitas dan proses yang mungkin muncul.
  2. Petakan use case untuk setiap business process untuk mendefinisikan dengan tepat fungsional yang harus disediakan oleh sistem, kemudian perhalus use case diagram dan lengkapi denganrequirement, constraints dan catatan-catatan lain.
  3. Buatlah deployment diagram secara kasar untuk mendefinisikan arsitektur fisik sistem.
  4. Definisikan requirement lain non fungsional, security dan sebagainya yang juga harus disediakan oleh sistem.
  5. Berdasarkan use case diagram, mulailah membuat activity diagram.
  6. Definisikan obyek-obyek level atas package atau domain dan buatlah sequence dan/ataucollaboration utuk tiap alir pekerjaan, jika sebuah use case memiliki kemungkinan alir normal danerror, buat lagi satu diagram untuk masing-masing alir.
  7. Buatlah rancangan user interface model yang menyediakan antarmuka bagi pengguna untuk menjalankan skenario use case.
  8. Berdasarkan model-model yang sudah ada, buatlah class diagram. Setiap package atau domaindipecah menjadi hirarki class lengkap dengan atribut dan metodenya. Akan lebih baik jika untuk setiap class dibuat unit test untuk menguji fungsionalitas class dan interaksi dengan class lain.
  9. Setelah class diagram dibuat, kita dapat melihat kemungkinan pengelompokkan class menjadi komponen-komponen karena itu buatlah component diagram pada tahap ini. Selain itu, definisikantest integrasi setiap komponen untuk meyakinkan ia dapat bereaksi dengan baik.
  10. Perhalus deployment diagram yang sudah dibuat. Detailkan kemampuan dan requirement piranti lunak, sistem operasi, jaringan dan sebagainya. Petakan komponen ke dalam node.
  11. Mulailah membangun sistem. Ada dua pendekatan yang tepat digunakan:
    • Pendekatan use case dengan mengassign setiap use case kepada tim pengembang tertentu untuk mengembangkan unit kode yang lengkap dengan test.
    • Pendekatan komponen yaitu mengassign setiap komponen kepada tim pengembang tertentu.
  12. Lakukan uji modul dan uji integrasi serta perbaiki model beserta codenya. Model harus selalu sesuai dengan code yang aktual.
  13. Perangkat lunak siap dirilis

Ruang Lingkup UML

Dalam kerangka spesifikasi, Unified Modeling Language (UML) menyediakan model-model yang tepat [Adin05], tidak mendua arti (ambigu) serta lengkap.
Secara khusus, Unified Modeling Language (UML) menspesifikasikan langkah-langkah penting dalampengambilan keputusan analisis, perancangan serta implementasi dalam sistem yang sangat bernuansa perangkat lunak (software intensive  system).
Dalam hal ini, Unified Modeling Language (UML) bukanlah merupakan bahasa pemprograman tetapi model-model yang tercipta berhubungan langsung dengan berbagai macam bahasa pemprograman, sehingga adalah mungkin melakukan pemetaan (mapping) langsung dari model-model yang dibuat dengan Unified Modeling Language (UML) dengan bahasa-bahasa pemprograman berorientasi obyek, sepertiJava, Borland Delphi, Visual Basic, C++, dan lain-lain.
Pemetaan (mapping) Unified Modeling Language (UML) bersifat dua arah yaitu :
  1. Generasi  kode bahasa pemprograman tertentu dari Unified Modeling Language (UML) forward engineering.
  2. Generasi kode belum sesuai dengan kebutuhan dan harapan pengguna, pengembang dapat melakukan langkah balik bersifat iterative dari implementasi ke Unified Modeling Language (UML)hingga didapat sistem/peranti lunak yang sesuai dengan harapan pengguna dan pengembang.

Selasa, 01 September 2015

Tahap Normalisasi


TAHAPAN NORMALISASI


Assalamu'alaikum Warahmatullahi Wabarakatuh...
Salam sejahtera untuk kita semua, Alhamdulillah atas segala Kenikmatan-Nya. Aamiin....

Perkenalkan nama saya Ilham Fajar F, saya adalah salah seorang Pelajar Di SMK Taruna Bangsa Kota Bekasi Saya mengambil jurusan Teknik Informatika. Langsung saja, dalam kesempatan yang berbahagia ini saya akan menjelaskan apa itu Tahapan Normalisasi, Normalisasi itu sendiri serta hal-hal yang saling berkaitan.

NORMALISASI merupakan sebuah teknik dalam logical desain sebuah basis data yang mengelompokkan atribut dari suatu relasi sehingga membentuk struktur relasi yang baik (tanpa redudansi). NORMALISASI adalah proses pembentukan struktur basis data sehingga sebagian besar ambiguity bisa dihilangkan.

  • TUJUAN NORMALISASI : untuk menghilangkan kerangkapan data, untuk mengurangi kompleksitas, serta untuk mempermudah pemodifikasian data.
  • PROSES NORMALISASI : data diuraikan dalam bentuk tabel, selanjutnya dianalisis berdasarkan persyaratan tertentu ke beberapa tingkat, apabila tabel tersebut perlu dipecah menjadi beberapa tabel yang lebih sederhana sampai memenuhi bentuk yang optimal.
  • TAHAPAN NORMALISASI : Tahapan Normalisasi dimulai dari tahap ringan (1NF) hingga paling ketat (5NF). Biasanya hanya sampai pada tingkat 3NF atau BCNF karena sudah cukup memadai untuk menghasilkan tabel-tabel yang berkualitas baik. Urutannya : 1NF, 2NF, 3NF, BCNF, 4 NF, 5NF
  1. Bentuk Tidak Normal
  2. Bentuk Normal Pertama (1NF) : Menghilangkan Perulangan Grup
  3. Bentuk Normal Kedua (2NF) : Menghilangkan Ketergantungan Parsial
  4. Bentuk Normal Ketiga (3NF) : Menghilangkan Ketergantungan Transitif
  5. Bentuk Normal Boyce-Code Form (BCNF) : Menghilangkan anomali-anomali hasil dari ketergantungan fungsional
  6. Bentuk Normal Keempat (4NF) : Menghilangkan ketergantungan multivalue
  7. Bentuk Normal Kelima : Menghilangkan anomali-anomali yang tersisa

  • FUNGSIONAL DEPENDENSI : misalkan kita pakai notasi A--> B adalah atribut dari sebuah tabel. Berarti secara fungsional A menentukan B atau B tergantung pada A, jika dan hanya jika ada 2 baris data dengan nilai A yang sama, maka nilai B juga sama. Sebagai contohnya, ada sebuah nota seperti pada gambar di bawah ini :
fungsi formulir ?
masalah yang muncul ?
jumlah atribut ?
Kemudian dijadikan ke dalam bentuk
  1. Un-Normal Form
  • Berupa relasi umum, sesuai kenyataan
  • Mencerminkan item data nyata
  • Mencerminkan bagian dari suatu sistem
  • Belum dapat digunakan sebagai database
  • Bentuk Flat Table menggambarkan jumlah atribut

2. Bentuk Normal Tahap Pertama (1NF)
  • Bentuk normal 1NF terpenuhi jika sebuah tabel tidak memiliki atribut bernilai banyak (multivalued attribute), atribut composite atau kombinasinya dalam domain data yang sama.
  • Setiap atribut dalam tabel tersebut harus bernilai atomic (tidak dapat dibagi-bagi lagi).

Masalah yang muncul : Duplication, Inconsistency, Data Isolation, dan Un-Efficiency
3. Bentuk Normal Tahap Kedua (2NF)
  • Bentuk Normal 2NF terpenuhi dalam sebuah tabel jika telah memenuhi bentuk 1NF, dan semua atribut selain primary key, secara utuh memiliki Functional dependency pada primary key.
  • Sebuah tabel tidak memenuhi 2NF, jika ada atribut yang ketergantungannya (Functional Dependency) hanya bersifat parsial saja (hanya tergantung pada sebagian dari primary key).
  • Jika terdapat atribut yang tidak memiliki ketergantungan terhadap primary key, maka atribut tersebut harus dipindah atau dihilangkan.
Lanjutan dari materi diatas, bahwa tabel yang sudah ada tadi yang berisi atribut Nota No., Tanggal, Tuan, Alamat, Kota, Phone, Seri, Nama Barang, Jumlah, Harga, Satuan, Jumlah Harga, dan Total.
Kita dapat urai lagi menjadi beberapa tabel baru, sebagai contoh saya bagi tiga tabel baru. Untuk penamaannya terserah kita. Misalkan kita dapat pecah dengan nama Tabel NTT, Tabel TAKP, dan Tabel SNJHS-J seperti pada gambar berikut :





Dari ketiga tabel tersebut masih ada beberapa masalah yang muncul yakni masalah :
  • Lose-Less Decomposition
  • Dependency Preservation. Coba kita lihat pada tabel SNJHS-J, atribut Jumlah serta Jumlah Harga masih juga samar-samar jadi permasalahan yang muncul adalah Transitive Dependency. Maka perlu dilakukan langkah normalisasi bentuk ketiga (3NF).
4. Bentuk Normal Tahap Ketiga (3NF)
  • Bentuk normal 3NF terpenuhi jika telah memenuhi bentuk 2NF, dan jika tidak ada atribut non primary key yang memiliki ketergantungan terhadap atribut non primary key yang lainnya,
  • Untuk setiap Functional Dependency dengan notasi X-->A, maka :
  • X harus menjadi superkey pada tabel tersebut.
  • Atau A merupakan bagian dari primary key pada tabel tersebut.
Coba kita lihat lagi tabel SNJHS-J, kita dapat memecah kembali tabel tersebut dengan membagi atribut Seri, Nama Barang, Harga, dan Satuan menjadu satu tabel. Untuk Tabel NTT dan Tabel TAKP sudah tidak ada masalah lagi. Jadi sampai bentuk ketiga ini kita sudah memiliki 4 tabel baru.
Dengan tambahan dari pemecahan tabel SNJHS-J menjadi SNHS dan SJJ. Seperti pada gambar di bawah ini :





Apakah perlu dilakukan tahapan selanjutnya ke BCNF? Dari awal sudah ada penjelasan bahwa untuk Tahap Ketiga ini tabel-tabel sudah berkualitas baik. Kalau bisa dilakukan ke BCNF tidak masalah. OK...daripada bingung-bingung saya jelaskan langsung saja Apa itu BCNF.
5. Boyce-Code Normal Form (BCNF)
  • Bentuk BCNF terpenuhi dalam sebuah tabel, jika untuk setiap Functional Dependency terhadap setiap atribut atau gabungan atribut dalam bentuk : X --> Y maka X adalah Super Key.
  • Tabel tersebut harus di dekomposisi berdasarkan Functional Dependency yang ada, sehingga X menjadi super key dari tabel-tabel hasil dekomposisi.
  • Setiap tabel dalam BCNF merupakan 3NF. Akan tetapi setiap 3NF belum tentu termasuk BCNF. Perbedaannya, untuk Functional Dependency X--> A, BCNF tidak membolehkan A sebagai bagian dari primary key.
6. Bentuk Normal Tahap Keempat (4NF) atau MVD dan PJNF
  • Bentuk normal 4NF terpenuhi dalam sebuah tabel jika telah memenuhi bentuk BCNF, dan tabel tersebut tidak boleh memiliki lebih dari sebuah multivalued attribute.
  • Untuk setiap multivalued attribute (MVD) juga harus merupakan Functional Dependency
7. Bentuk Normal Tahap Kelima (5NF)
  • Bentuk normal 5NF terpenuhi jika memiliki sebuah loseloss decomposition menjadi tabel-tabel yang lebih kecil.
  • Jika 4 bentuk normal sebelumnya dibentuk berdasarkan Functional Dependency, 5NF dibentuk berdasarkan konsep Join Dependence. Yakni apabila sebuah tabel telah di dekomposisi menjadi tabel-tabel lebih kecil, harus bisa digabungkan lagi untuk membentuk tabel semula.
8. Overnormalisasi
  • Analisa Overnormalisasi diperlukan jika :
  • Database ini digunakan untuk sistem multi user
  • Tabel-tabel yang sudah normal ini digabungkan dengan fungsi lain yang ada di lapangan, misalnya; untuk fungsi retur, untuk fungsi inventori, untuk fungsi sales order maupun order pembelian, untuk fungsi keamanan database, dan lain-lain.

Semoga bermanfaat sobat....!!!!

Jenis-jenis Atribut Kunci (Key Field) dalam Basis Data

Jenis-jenis Atribut Kunci (Key Field) dalam Basis Data


Pengertian Atribut (Field/Kolom)


Atribut identik dengan istilah “kolom data” tetapi dapat menunjukkan fungsinya sebagai pembentuk karakteristik (sifat-sifat) yang melekat dalam sebuah tabel.Pada penerapan aturan normalisasi, bisa berdampak pada penghilangan atau penambahan kolom tertentu, atau bahkan dapat memebentuk suatu tabel baru.


contoh basis data

Contoh :
  • Tabel kelompokfilm memiliki 2 atribut, yaitu : jenis dan harga_sewa
  • Tabel film memiliki 5 atribut, yaitu : kode_film, jenis, judul, jml_keping, jml_film
Selain penamaan yang unik berdasarkan fungsinya di tiap tabel, atribut juga dapat dibedakan berdasarkan sejumlah pengelompokkan sbb :
  • Atribut kunci dan Atribut Deskriptif
  • Atribut Sederhana ( Simple Attribute ) dan Atribut Komposit ( Composite Attribute )
  • Atribut Bernilai Tunggal ( Single-Valued Attribute ) dan Atribut Bernilai Banyak ( Multi-Valued Attribute )
  • Atribut Harus Bernilai ( Mandatory Attribute ) dan Atribut Nilai Null ( Null Value Attribute)
  • Atribut Turunan ( Derrived Attribute )
Atribut Kunci

Atribut Kunci adalah satu atau gabungan dari beberapa atribut yang dapat membedakan semua baris data dalam tabel secara unik. Dikatakan unik jika pada atribut yang dijadikan kunci tidak boleh ada baris data dengan nilai yang sama.

Dalam metode relasional, ada 6 kunci yaitu :
Kunci Calon (Candidat key)

Kunci calon adalah salah satu rangkaian yang mempunyai nilai unik untuk membedakan atau mengidentifikasi nilai-nilai kombinasi yang unik diantara semua kejadian yang spesifik dari entetitas. Kunici calon ini tidak boleh berisi atribut dari tabel yang lain. kombinasi dari atribut yang dapat digunakan untuk mengidentifikasi secara unik rekor database tanpa data apapun yang asing. Setiap tabel dapat memiliki satu atau lebih kunci calon.
Contoh:
Tabel pegawai berisi atribut
  • nip
  • no_ktp
  • nama
  • tempat_lahir
  • tanggal_lahir
  • alamat
  • Kota

Kunci Calon disini adalah:
  • nip
  • no_ktp
Kunci Utama (Primary Key)

Kunci utama adalah atribut merupakan kunci calon yang telah dipilih untuk mengidentifikasi setiap record secara unik. Kunci utama harus merupakan atribut yang benar-benar unik dan tidak boleh ada nilai NULL. Kunci utama adalah suatu nilai dalam basis data yang digunakan untuk mengidentifikasi suatu baris dalam table. Salah satu dari kunci calon dapat dipilih menjadi kunci utama dengan 3 kriteria sbb:
  • Kunci tersebut lebih natural untuk dijadikan acuan
  • Kunci tersebut lebih sederhana
  • Kunci tersebut cukup unik

No induk dan no ktp adalah kunci calon (Candidate Key) dan untuk kunci utama (primary key) adalah salah satu yang dipilih dari kunci calon. Misalnya No. induk di jadikan primary key, maka primary key nya adalah no induk.
Kunci Alternatif (Alternate Key)

Kunci Alternatif adalah kunci alternatif yang tidak terpilih. Misal : dalam suatu entitas terdapat dua atribut yang bisa dijadikan sebagai kunci. Sementara yang boleh dijadikan kunci hanya satu, maka anda harus memilih salah satu. Atribut yang dipilih, disebut kunci utama. sedangkan atribut yang tidak dipilih disebut dengan kunci .
Contoh:
  • Tabel pegawai berisi atribut
  • nip
  • no_ktp
  • nama
  • tempat_lahir
  • tanggal_lahir
  • alamat
  • kota

nip dan no_ktp adalah kunci calon dan untuk kunci utama adalah salah satu yang dipilih dari kunci calon. Misalnya nip di jadikan kunci utama, maka no_ktp otomatis menjadi kunci alternatif.
Kunci Tamu (Foreign Key)

Jika sebuah kunci utama terhubungan ke tebel lain, maka keberadaan kunci utama pada tersbut di sebut sebagai kunci tamu. Kunci tamu adalah Sebuah kumpulan atribut dalam satu relasi yang digunakan untuk me“refer” (menunjuk) ke suatu baris (tuple) pada relasi yang lain (harus berkorespondensi dengan kunci utama pada relasi yang kedua), seperti: ‘logical pointer’.

Sedangkan hubungan antara keduanya (kunci utama dan kunci tamu) di jelaskan sebagai berikut:
  • Kunci utama adalah atribut kunci dari suatu tabel yang menunjukkan bahwa atribut tersebut tidak bisa diisi dengan data yang sama, atau dengan kata lain kunci utama menjadikan setiap record memiliki identitas sendiri-sendiri yang membedakan satu sama lainnya (unik).
  • Kunci tamu adalah atribut yang melengkapi satu relationship yang menunjukan ke induknya, dengan kata lain keduanya saling berkaitan.

Kunci Utama & Kunci Tamu

Perhatikan gambar diatas, atribut jenis pada tabel kelompokfilm adalah kunci utama karena bersifat unik. Pada tabel film juga terdapat atribut jenis disebut sebagai kunci tamu karena digunakan me”refer” dengan atribut jenis yang terdapat pada tabel kelompok film.

Biasanya table yang berisi atribut kunci primer yang di”refer” oleh tabel lain sering disebut table induk. Contohnya pada gambar diatas, tabel kelompokfilm merupakan tabel induk bagi tabel film. Sedangkan tabel yang mengandung kunci tamu yang merefer tabel lain disebut sebagaia tabel anak. Dalam contoh diatas maka tabel film merupakan tebel anak bagi tabel kelompokfilm.
Kunci Komposit (Composite key)

Dalam desain basisdata, kunci komposit adalah kunci yang terdiri dari 2 atau lebih atribut yang secara unik mengidentifikasi suatu kejadian entitas. Setiap atribut yang membentuk kunci senyawa adalah kunci sederhana dalam haknya sendiri.
Hal ini sering bingung dengan kunci gabungan, meskipun ini juga merupakan kunci yang terdiri dari 2 atau lebih atribut yang secara unik mengidentifikasi suatu kejadian, setidaknya satu atribut yang membentuk kunci komposit bukanlah kunci sederhana.



Sebagai contoh pada tabel detailmenyewa dapat kita ketahui bahwa baik atributkode_sewa maupun kode_film tidaklah bersifat unik karena merupakan kunci tamu dari tabelmenyewa dan tabel film. Namun jika digambungkan (dikompositkan), yaitu kode_sewa +kode_film, maka diperoleh atribut komposit yang bersifat unik dimana tidak ada kode_sewayang sekaligus memiliki kode_film yang sama.
Kunci Sekunder (Secondary Key)

Kunci sekunder adalah sebuah atribut atau kombinasi yang digunakan hanya untuk tujuan pengambilan data.
Atribut Deskriptif
Atribut Deskriptif adalah atribut-atribut yang tidak menjadi atau merupakan anggota dari primary key.Jadi, dalam tabel mahasiswa yang menjadi atribut deskriptif adalah selain NIM.
Atribut Sederhana (simple attribute )
Atribut Sederhana adalah atribut atomik yang tidak dapat dipilah lagi. Contoh Atribut Sederhana pada tabel customer adalah no_identitas dan jaminan, dimana atribut ini tidak bisa dipecah lagi.
Atribut Komposit (composite attribute )
Atribut Komposit (composite attribute ) adalah atribut yang masih dapat diuraikan lagi menjadi sub-sub atribut yang masing-masing memiliki makna.

Contoh pada tabel customer adalah atribut alamat, dimana dapat diuraikan lagi menjadi alamat, kota dan kode_pos.

Atribut Bernilai Tunggal (single-valued attribute)
Atribut bernilai tunggal adalah atribut-atribut yang memiliki paling banyak satu nilai untuk setiap baris data. Contoh : Bila seorang mahasiswa memiliki 2 tempat tinggal, maka hanya 1 saja yang boleh diisikan ke atribut alamat_mhs.
Atribut Bernilai Banyak (multiple-valued attribute)
Atribut bernilai banyak adalah atribut-atribut yang dapat diisi dengan lebih dari satu nilai, tetapi jenisnya sama. Contoh : Atribut hobi pada data mahasiswa.Ada mahasiswa yang punya banyak hobi, ada yang cuma satu hobi dan ada yang tidak ada sama sekali.
Atribut Harus Bernilai (mandatory attribute)
Atribut harus bernilai adalah jika berisi data dan nilainya tidak boleh kosong.
Contoh : no_identitas dan nama_customer harus ada nilainya dalam tabel customer.
Atribut Nilai Null ( non-mandatory attribute )
Atribut nilai null adalah atribut yang nilainya boleh dikosongkan. Dapat digunakan untuk menyatakan/mengisi atribut-atribut yang nilainya memang belum siap atau tidak ada.Nilai null tidak sama dengan spasi.
Atribut Turunan
Atribut turunan adalah atribut-atribut yang nilai-nilainya diperoleh dari pengolahan atau dapat diturunkan dari atribut tabel lain yang berhubungan.Dapat ditiadakan dari sebuah tabel, karena nilainya bergantung pada nilai yang ada di atribut lain.
http://www.resepkuekeringku.com/2014/11/resep-donat-empuk-ala-dunkin-donut.html http://www.resepkuekeringku.com/2015/03/resep-kue-cubit-coklat-enak-dan-sederhana.html http://www.resepkuekeringku.com/2014/10/resep-donat-kentang-empuk-lembut-dan-enak.html http://www.resepkuekeringku.com/2014/07/resep-es-krim-goreng-coklat-kriuk-mudah-dan-sederhana-dengan-saus-strawberry.html http://www.resepkuekeringku.com/2014/06/resep-kue-es-krim-goreng-enak-dan-mudah.html http://www.resepkuekeringku.com/2014/09/resep-bolu-karamel-panggang-sarang-semut-lembut.html