Functional Dependency dan Link Download File Referensi
https://eu2.contabostorage.com/00f3241116844f24b628f46d81abb929:st1/folder6/6671/1656176521_functionaldependency_-_Matematika.ppt
2026-05-30 09:10:10 - Admin
<style> body { font-family: Arial, Helvetica, sans-serif; line-height: 1.6; margin: 0; padding: 0 20px; background-color: #f9f9f9; color: #333; } h1, h2, h3 { color: #004080; } pre { background:#eee; padding:10px; overflow:auto; } table { border-collapse: collapse; width: 100%; margin: 15px 0; } th, td { border:1px solid #ccc; padding:8px; text-align: left; } th { background:#e0e0e0; } a { color:#0066cc; text-decoration:none; } a:hover { text-decoration:underline; } </style> <h1>Functional Dependency (Ketergantungan Fungsional)</h1> <p>Ketergantungan fungsional (functional dependency atau FD) adalah konsep dasar dalam teori basis data relasional yang menggambarkan hubungan antara dua set atribut dalam suatu relasi. Pada dasarnya, FD menyatakan bahwa nilai satu set atribut (<em>determinant</em>) secara unik menentukan nilai atribut lainnya.</p> <h2>Definisi Formal</h2> <p>Misalkan <code>R</code> adalah suatu relasi dengan skema atribut <code>A, A, , A</code>. Untuk dua subset atribut <code>X</code> dan <code>Y</code> (<code>X, Y {A,,A}</code>), kita menulis:</p> <pre>X Y</pre> <p>Jika dan hanya jika, untuk setiap dua tuple <code>t</code> dan <code>t</code> dalam <code>R</code>, kondisi berikut terpenuhi:</p> <pre>t[X] = t[X] t[Y] = t[Y]</pre> <p>Artinya, bila dua baris memiliki nilai yang sama pada atributatribut <code>X</code>, maka mereka juga harus memiliki nilai yang sama pada atributatribut <code>Y</code>.</p> <h2>Contoh Sederhana</h2> <table> <thead> <tr><th>NRP</th><th>Nama</th><th>Program Studi</th><th>Fakultas</th></tr> </thead> <tbody> <tr><td>001</td><td>Ani</td><td>Informatika</td><td>Teknik</td></tr> <tr><td>002</td><td>Budi</td><td>Manajemen</td><td>Ekonomi</td></tr> <tr><td>003</td><td>Cici</td><td>Informatika</td><td>Teknik</td></tr> </tbody> </table> <p>Dalam tabel di atas, <code>NRP Nama, Program Studi, Fakultas</code> karena NRP adalah kunci unik. Selain itu, <code>Program Studi Fakultas</code> juga berlaku karena setiap program studi berada di satu fakultas saja.</p> <h2>Jenisjenis Ketergantungan Fungsional</h2> <ul> <li><strong>Trivial:</strong> <code>X Y</code> disebut trivial bila <code>Y X</code>. Contoh: <code>{A, B} A</code> selalu benar.</li> <li><strong>Nontrivial:</strong> Bila <code>Y</code> tidak termasuk dalam <code>X</code>, misalnya <code>A B</code>.</li> <li><strong>Proper (atau nontrivial proper):</strong> Ketika <code>X Y</code> nontrivial dan <code>X Y = </code>. Contoh: <code>A B</code> bila <code>A</code> dan <code>B</code> berbeda.</li> <li><strong>Partial Dependency:</strong> Ketergantungan dimana subset sebagian dari kunci utama menentukan atribut nonkunci. Misalnya pada tabel dengan kunci komposit <code>(A, B)</code>, apabila <code>A C</code>, maka <code>C</code> bergantung parsial pada <code>(A, B)</code>.</li> <li><strong>Transitive Dependency:</strong> Jika <code>A B</code> dan <code>B C</code>, maka secara transitif <code>A C</code>. Ini penting dalam proses normalisasi.</li> </ul> <h2>Aturan Inferensi (Armstrongs Axioms)</h2> <p>Armstrongs axioms menyediakan cara untuk menurunkan FD baru dari kumpulan FD yang ada:</p> <ol> <li><strong>Reflexivity (Refleksif):</strong> Jika <code>Y X</code>, maka <code>X Y</code>.</li> <li><strong>Augmentation (Penambahan):</strong> Jika <code>X Y</code>, maka <code>XZ YZ</code> untuk sembarang set <code>Z</code>.</li> <li><strong>Transitivity (Transitif):</strong> Jika <code>X Y</code> dan <code>Y Z</code>, maka <code>X Z</code>.</li> </ol> <p>Dari tiga aksioma ini dapat diturunkan aturan tambahan seperti:</p> <ul> <li><strong>Decomposition (Dekomposisi):</strong> Dari <code>X YZ</code> didapat <code>X Y</code> dan <code>X Z</code>.</li> <li><strong>Union (Penggabungan):</strong> Jika <code>X Y</code> dan <code>X Z</code>, maka <code>X YZ</code>.</li> <li><strong>Pseudotransitivity:</strong> Jika <code>X Y</code> dan <code>YW Z</code>, maka <code>XW Z</code>.</li> </ul> <h2>Peran FD dalam Normalisasi</h2> <p>Normalisasi adalah proses mengorganisasi tabel agar meminimalkan redundansi dan menghindari anomali pembaruan. FD adalah fondasi utama dalam menentukan bentuk normal:</p> <ul> <li><strong>1NF (First Normal Form):</strong> Memastikan setiap sel berisi nilai atomik, tidak berhubungan langsung dengan FD.</li> <li><strong>2NF (Second Normal Form):</strong> Semua atribut nonkunci harus bergantung sepenuhnya pada seluruh kunci utama, bukan pada bagian dari kunci (menghilangkan partial dependency).</li> <li><strong>3NF (Third Normal Form):</strong> Tidak ada ketergantungan transitif dari kunci utama ke atribut nonkunci (menghilangkan transitive dependency).</li> <li><strong>BCNF (BoyceCodd Normal Form):</strong> Setiap determinan harus menjadi superkunci. Lebih ketat dibanding 3NF.</li> </ul> <h2>Cara Menentukan FD dari Data</h2> <p>Dalam praktik, FD biasanya ditentukan oleh analis bisnis, bukan otomatis dari data. Namun, beberapa teknik dapat membantu:</p> <ol> <li><strong>Observasi langsung:</strong> Melihat kolom yang tampaknya unik (misalnya ID, NIK).</li> <li><strong>Analisis statistik:</strong> Menghitung jumlah nilai unik pada kombinasi kolom; kombinasi dengan jumlah nilai unik sama dengan jumlah baris dapat menjadi kandidat kunci.</li> <li><strong>Alat bantu:</strong> Software seperti <em>Dataedo</em>, <em>ER/Studio</em>, atau script Python dengan pandas untuk mencari pola deterministik.</li> </ol> <h2>Contoh Praktis Implementasi FD</h2> <p>Misalkan sebuah toko online memiliki tabel <code>OrderDetail</code> dengan atribut:</p> <pre>OrderID, ProductID, Quantity, UnitPrice, Discount</pre> <p>Berikut adalah FD yang relevan:</p> <ul> <li><code>(OrderID, ProductID) Quantity, UnitPrice, Discount</code> (kunci komposit)</li> <li><code>ProductID UnitPrice</code> (harga produk tetap pada satu waktu; jika harga berubah, harus ada tabel terpisah <code>Product</code>)</li> </ul> <p>Jika <code>ProductID UnitPrice</code> tetap berlaku, maka tabel <code>OrderDetail</code> mengandung redundansi karena <code>UnitPrice</code> dapat diturunkan dari <code>Product</code>. Normalisasi ke 3NF atau BCNF akan memindahkan <code>UnitPrice</code> ke tabel <code>Product</code>.</p> <h2>Kesimpulan</h2> <p>Ketergantungan fungsional adalah konsep kunci yang menjelaskan bagaimana nilai satu atribut (atau sekumpulan atribut) menentukan nilai atribut lain dalam sebuah relasi. Memahami FD memungkinkan perancang basis data:</p> <ul> <li>Mengidentifikasi kunci utama dan kandidat kunci.</li> <li>Melakukan normalisasi untuk mengurangi redundansi dan anomali.</li> <li>Mengoptimalkan struktur tabel untuk integritas data.</li> </ul> <p>Dengan mengaplikasikan aturan Armstrong serta prinsipprinsip normalisasi, basis data dapat dirancang secara logis, konsisten, dan mudah dipelihara.</p> <p>Untuk informasi lebih lanjut, kunjungi <a href="https://en.wikipedia.org/wiki/Functional_dependency" target="_blank">Wikipedia Functional Dependency</a> atau literatur klasik seperti Database System Concepts karya Silberschatz, Korth, dan Sudarshan.</p>