<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="id">
	<id>https://cbtlmsts.my.id/wikits/index.php?action=history&amp;feed=atom&amp;title=Anomali_data_dan_kebutuhan_normalisasi</id>
	<title>Anomali data dan kebutuhan normalisasi - Riwayat revisi</title>
	<link rel="self" type="application/atom+xml" href="https://cbtlmsts.my.id/wikits/index.php?action=history&amp;feed=atom&amp;title=Anomali_data_dan_kebutuhan_normalisasi"/>
	<link rel="alternate" type="text/html" href="https://cbtlmsts.my.id/wikits/index.php?title=Anomali_data_dan_kebutuhan_normalisasi&amp;action=history"/>
	<updated>2026-08-29T14:45:03Z</updated>
	<subtitle>Riwayat revisi halaman ini di wiki</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://cbtlmsts.my.id/wikits/index.php?title=Anomali_data_dan_kebutuhan_normalisasi&amp;diff=203&amp;oldid=prev</id>
		<title>Admin: ←Membuat halaman berisi &#039;==Tujuan Pembelajaran== Setelah mempelajari modul ini, mahasiswa diharapkan mampu: * Memahami konsep anomali data dalam basis data relasional * Menjelaskan pentingnya normalisasi dalam desain skema relasional * Menerapkan proses normalisasi hingga bentuk normal ketiga (3NF) * Mendesain skema relasional yang efisien dan bebas dari anomali data  ==Anomali Data dalam Basis Data Relasional== * Anomali data adalah masalah yang muncul akibat desain tabel yang tidak opt...&#039;</title>
		<link rel="alternate" type="text/html" href="https://cbtlmsts.my.id/wikits/index.php?title=Anomali_data_dan_kebutuhan_normalisasi&amp;diff=203&amp;oldid=prev"/>
		<updated>2025-05-12T17:39:45Z</updated>

		<summary type="html">&lt;p&gt;←Membuat halaman berisi &amp;#039;==Tujuan Pembelajaran== Setelah mempelajari modul ini, mahasiswa diharapkan mampu: * Memahami konsep anomali data dalam basis data relasional * Menjelaskan pentingnya normalisasi dalam desain skema relasional * Menerapkan proses normalisasi hingga bentuk normal ketiga (3NF) * Mendesain skema relasional yang efisien dan bebas dari anomali data  ==Anomali Data dalam Basis Data Relasional== * Anomali data adalah masalah yang muncul akibat desain tabel yang tidak opt...&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Halaman baru&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Tujuan Pembelajaran==&lt;br /&gt;
Setelah mempelajari modul ini, mahasiswa diharapkan mampu:&lt;br /&gt;
* Memahami konsep anomali data dalam basis data relasional&lt;br /&gt;
* Menjelaskan pentingnya normalisasi dalam desain skema relasional&lt;br /&gt;
* Menerapkan proses normalisasi hingga bentuk normal ketiga (3NF)&lt;br /&gt;
* Mendesain skema relasional yang efisien dan bebas dari anomali data&lt;br /&gt;
&lt;br /&gt;
==Anomali Data dalam Basis Data Relasional==&lt;br /&gt;
* Anomali data adalah masalah yang muncul akibat desain tabel yang tidak optimal, seringkali disebabkan oleh redundansi data. Anomali ini dapat mengganggu integritas dan konsistensi data.&lt;br /&gt;
&lt;br /&gt;
==Jenis-Jenis Anomali:==&lt;br /&gt;
1. &amp;#039;&amp;#039;&amp;#039;Anomali Penyisipan (Insertion Anomaly):&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Terjadi ketika penambahan data baru tidak dapat dilakukan tanpa adanya data lain yang belum tersedia.&lt;br /&gt;
* Contoh: Tidak dapat menambahkan data mahasiswa baru karena belum memiliki data mata kuliah yang diambil.&lt;br /&gt;
&lt;br /&gt;
2. &amp;#039;&amp;#039;&amp;#039;Anomali Penghapusan (Deletion Anomaly):&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Terjadi ketika penghapusan data menyebabkan hilangnya informasi penting lainnya.&lt;br /&gt;
* Contoh: Menghapus data mahasiswa terakhir yang mengambil mata kuliah tertentu menyebabkan informasi tentang mata kuliah tersebut hilang.&lt;br /&gt;
&lt;br /&gt;
3. &amp;#039;&amp;#039;&amp;#039;Anomali Pembaruan (Update Anomaly):&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Terjadi ketika perubahan data pada satu tempat tidak konsisten dengan data di tempat lain.&lt;br /&gt;
* Contoh: Mengubah nama dosen di satu baris tidak secara otomatis mengubahnya di baris lain yang terkait.&lt;br /&gt;
&lt;br /&gt;
==Normalisasi: Solusi untuk Anomali Data==&lt;br /&gt;
&lt;br /&gt;
* Normalisasi adalah proses sistematis untuk mengorganisasi data dalam basis data guna mengurangi redundansi dan meningkatkan integritas data. Proses ini melibatkan pemecahan tabel menjadi tabel-tabel yang lebih kecil dan mendefinisikan hubungan di antara merea.&lt;br /&gt;
&lt;br /&gt;
Manfaat Normalisasi:&lt;br /&gt;
* Mengurangi redundansi data.&lt;br /&gt;
* Meningkatkan konsistensi dan integritas data.&lt;br /&gt;
* Mempermudah pemeliharaan dan pembaruan data.&lt;br /&gt;
* Meningkatkan efisiensi penyimpanan.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Proses Normalisasi: Dari UNF ke 3F==&lt;br /&gt;
&lt;br /&gt;
Proses normalisasi dilakukan melalui beberapa tahap, masing-masing dengan tujuan spesifik:&lt;br /&gt;
&lt;br /&gt;
1. &amp;#039;&amp;#039;&amp;#039;Unnormalized Form (UNF):&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Data belum terstruktur dengan baik; mungkin terdapat grup berulang atau atribut multivalued.&lt;br /&gt;
&lt;br /&gt;
2. &amp;#039;&amp;#039;&amp;#039;First Normal Form (1NF):&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Menghilangkan grup berulang; setiap atribut harus memiliki nilai atomik (tidak dapat dibagi lagi).&lt;br /&gt;
&lt;br /&gt;
3. &amp;#039;&amp;#039;&amp;#039;Second Normal Form (2NF):&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Memenuhi 1NF dan semua atribut non-kunci harus sepenuhnya bergantung pada kunci utama.&lt;br /&gt;
&lt;br /&gt;
4. &amp;#039;&amp;#039;&amp;#039;Third Normal Form (3NF):&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Memenuhi 2NF dan tidak ada ketergantungan transitif antara atribut non-kunci.&lt;br /&gt;
&lt;br /&gt;
==Studi Kasus: Normalisasi Data Mahasiswa==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Data Awal (UNF):&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! NIM  !! Nama Mahasiswa !! Kode MK !! Nama MK  !! Dosen&lt;br /&gt;
|-&lt;br /&gt;
| 101  || Andi           | MK001   || Basis Data    || Dr. Budi&lt;br /&gt;
|-&lt;br /&gt;
| 101  || Andi           | MK002   || Algoritma     || Dr. Siti&lt;br /&gt;
|-&lt;br /&gt;
| 102  || Budi           | MK001   || Basis Data    || Dr. Budi&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Setelah 1F:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Setiap entri memiliki nilai atomik; tabel tetap sama namun struktur data lebih terdefiisi.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Setelah 2F:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Pisahkan data menjadi dua tabel untuk menghilangkan ketergantungan parial.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Tabel Mahasiswa:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! NIM  !! Nama Mahasiswa&lt;br /&gt;
|-&lt;br /&gt;
| 101  || Andi&lt;br /&gt;
|-&lt;br /&gt;
| 102  || Budi&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Tabel Mata Kuliah:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Kode MK !! Nama MK    !! Dosen&lt;br /&gt;
|-&lt;br /&gt;
| MK001   || Basis Data || Dr. Budi&lt;br /&gt;
|-&lt;br /&gt;
| MK002   || Algoritma  || Dr. Siti&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Tabel Pengambilan:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! NIM  !! Kode MK&lt;br /&gt;
|-&lt;br /&gt;
| 101  || MK001&lt;br /&gt;
|-&lt;br /&gt;
| 101  || MK002&lt;br /&gt;
|-&lt;br /&gt;
| 102  || MK001&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Setelah 3F:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
* Pisahkan informasi dosen ke dalam tabel tersendiri untuk menghilangkan ketergantungan transtif.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Tabel Dosen:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! ID Dosen !! Nama Dosen&lt;br /&gt;
|-&lt;br /&gt;
| D001     || Dr. Budi&lt;br /&gt;
|-&lt;br /&gt;
| D002     || Dr. Siti&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Tabel Mata Kuliah (revisi):&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Kode MK !! Nama MK    !! ID Dosen&lt;br /&gt;
|-&lt;br /&gt;
| MK001   || Basis Data || D001&lt;br /&gt;
|-&lt;br /&gt;
| MK002   || Algoritma  || D002&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Implementasi Skema Relasional di MySQL (Ubuntu 24.04)==&lt;br /&gt;
&lt;br /&gt;
Setelah melakukan normalisasi hingga 3NF, kita dapat mengimplementasikan skema relasional tersebut di MySQL. Berikut adalah contoh implementasi berdasarkan studi kasus sebelumnya&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;1. Tabel Mahasiswa&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Menyimpan data mahasiswa dengan atribut `nim` sebagai primary key&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE mahasiswa (&lt;br /&gt;
     nim VARCHAR(10) PRIMARY KEY,&lt;br /&gt;
     nama_mahasiswa VARCHAR(100)&lt;br /&gt;
 );&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;2. Tabel Dosen&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Menyimpan data dosen dengan atribut `id_dosen` sebagai primary key&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE dosen (&lt;br /&gt;
     id_dosen VARCHAR(10) PRIMARY KEY,&lt;br /&gt;
     nama_dosen VARCHAR(100)&lt;br /&gt;
 );&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;3. Tabel Mata Kuliah&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Menyimpan data mata kuliah dengan atribut `kode_mk` sebagai primary key dan `id_dosen` sebagai foreign key yang mereferensikan tabel `dosen`&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE mata_kuliah (&lt;br /&gt;
     kode_mk VARCHAR(10) PRIMARY KEY,&lt;br /&gt;
     nama_mk VARCHAR(100),&lt;br /&gt;
     id_dosen VARCHAR(10),&lt;br /&gt;
     FOREIGN KEY (id_dosen) REFERENCES dosen(id_dosen)&lt;br /&gt;
 );&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;4. Tabel Pengambilan&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Menyimpan relasi antara mahasiswa dan mata kuliah yang diambil, dengan kombinasi `nim` dan `kode_mk` sebagai composite primary key&lt;br /&gt;
&lt;br /&gt;
 CREATE TABLE pengambilan (&lt;br /&gt;
     nim VARCHAR(10),&lt;br /&gt;
     kode_mk VARCHAR(10),&lt;br /&gt;
     semester VARCHAR(10),&lt;br /&gt;
     PRIMARY KEY (nim, kode_mk),&lt;br /&gt;
     FOREIGN KEY (nim) REFERENCES mahasiswa(nim),&lt;br /&gt;
     FOREIGN KEY (kode_mk) REFERENCES mata_kuliah(kode_mk)&lt;br /&gt;
 );&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Evaluasi Desain Skema==&lt;br /&gt;
&lt;br /&gt;
Setelah implementasi, penting untuk mengevaluasi desain skema untuk memastikan&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Integritas Data:&amp;#039;&amp;#039;&amp;#039; Apakah relasi antar tabel sudah tepat dan mencegah anomali data&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Efisiensi Query:&amp;#039;&amp;#039;&amp;#039; Apakah struktur tabel mendukung query yang efisien&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Kebutuhan Aplikasi:&amp;#039;&amp;#039;&amp;#039; Apakah skema mendukung kebutuhan fungsional dari aplikasi yang akan dibangun&lt;br /&gt;
&lt;br /&gt;
==Kesimpulan==&lt;br /&gt;
&lt;br /&gt;
* Normalisasi hingga 3NF membantu dalam mengurangi redundansi dan mencegah anomali data.&lt;br /&gt;
* Implementasi skema relasional di MySQL harus mengikuti hasil normalisasi untuk memastikan integritas dan efisiensi data.&lt;br /&gt;
* Evaluasi desain skema setelah implementasi penting untuk memastikan bahwa skema tersebut memenuhi kebutuhan sistem dan aplikasi yang akan digunakan.&lt;br /&gt;
&lt;br /&gt;
==Pranala Menarik==&lt;br /&gt;
&lt;br /&gt;
* [[Database: Kuliah]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
</feed>