# DOKUMEN ARSITEKTUR DATA: PERBANDINGAN STRUKTUR DATA
## Hierarki Murni (Biologi & COA) vs Matriks Fleksibel (Produk Sparepart)

Dokumen ini menjelaskan perbedaan mendasar dalam perancangan database antara struktur pohon kaku (*Strict Hierarchy*) dan struktur jaringan (*Network/Many-to-Many Matrix*). Pemahaman perbedaan ini krusial untuk mencegah kegagalan sistem pencarian data berskala besar.

---

### 1. Biologi & COA = Hierarki Murni (Strict Hierarchy / 1-to-Many)

Struktur Hierarki Murni mengadopsi model pohon (*Tree Model*). Sifat utama dari struktur ini adalah memiliki **Satu Induk Pasti (*Strict Single Parent*)**.

#### Karakteristik Aturan Data:
*   Satu objek di tingkat bawah **hanya boleh** menginduk pada satu objek di tingkat atasnya.
*   Data bercabang ke bawah secara teratur (*one-to-many*).
*   Nomor identitas (ID) dapat dibuat berurutan mencerminkan derajat levelnya (seperti nomor akun COA).

#### Analogi Visual & Contoh Kasus:

**A. Taksonomi Biologi (Carl Linnaeus)**
*   **Famili:** *Felidae* (Kucing-kucingan)
*   **Genus:** *Panthera* (Kucing Besar)
*   **Spesies:** *Panthera tigris* (Harimau)
*   *Aturan:* Harimau Sumatra hanya bisa masuk ke dalam satu Genus (*Panthera*). Harimau tidak mungkin bercabang masuk ke dalam genus *Canis* (Anjing) pada saat yang bersamaan.

**B. COA (Chart of Accounts) Akuntansi**
*   **Level 1 (Akun Utama):** `1` (Aset)
*   **Level 2 (Sub-Akun):** `110` (Aset Lancar)
*   **Level 3 (Akun Perkiraan):** `11010` (Piutang Dagang)
*   **Level 4 (Rekening Pembantu):** `110100001` (Piutang - PT. Abadi Jaya)
*   *Aturan:* Saldo atau mutasi milik PT. Abadi Jaya wajib menginduk 100% pada akun Piutang Dagang (`11010`) agar laporan keuangan seimbang (*Balance*).

---

### 2. Produk Sparepart = Matriks Fleksibel (Network / Many-to-Many)

Produk suku cadang—terutama komponen universal seperti baut—**tidak bisa** dipaksa menggunakan hierarki murni. Struktur ini menggunakan model jaringan (*Network Model*) yang bersifat **Banyak Induk (*Multi-Parent*)**.

#### Karakteristik Aturan Data:
*   Satu objek barang fisik di tingkat bawah dapat terikat pada **ratusan induk (tipe mobil/fungsi)** sekaligus di tingkat atasnya.
*   Hubungan antar data bersifat silang (*many-to-many*).
*   Data fisik barang dibuat datar (*Flat SKU*), sedangkan hubungan fungsi/mobil dikelola menggunakan *Tag/Metadata*.

#### Dampak Fatal Jika Sparepart Dipaksa Pakai Hierarki Kaku:
Jika Anda membuat folder berjenjang untuk baut: `Toyota ➔ Kijang 1997 ➔ Mesin ➔ Baut Karter (ID: BT-001)`, maka ketika baut yang sama persis ternyata cocok untuk mobil `Isuzu Panther`, Anda terpaksa membuat ID baru: `Isuzu ➔ Panther 2000 ➔ Mesin ➔ Baut Karter (ID: BT-002)`. 

Hal ini memicu **ledakan duplikasi data (ID palsu)**, stok gudang menjadi kacau, dan pencarian substitusi barang menjadi lambat.

#### Solusi Arsitektur Matriks Fleksibel (Flat + Tagging):

Barang fisik disimpan secara mendatar dalam satu tabel inventaris menggunakan *Single ID (SKU)* yang murni mewakili karakteristik fisiknya, lalu dihubungkan ke banyak variabel di latar belakang database.

```text
  [ Toyota Kijang 1997 ] ──┐
                           │
  [ Daihatsu Xenia 2015 ] ─┼──► [ SINGLE ID: SKU-8439 ] ◄── [ Tag Fungsi: Mesin ]
                           │     (Baut Fisik di Rak)
  [ Isuzu Panther 2000 ] ──┘
```

---

### 3. Tabel Perbandingan Karakteristik Arsitektur Data

| Parameter | Biologi & COA (Akuntansi) | Produk Sparepart & Substitusi |
| :--- | :--- | :--- |
| **Model Struktur** | Pohon Berjenjang (*Strict Tree*) | Jaringan / Matriks (*Network/Flat*) |
| **Sifat Relasi** | *One-to-Many* (1 Induk Pasti) | *Many-to-Many* (Bisa Banyak Induk) |
| **Desain Penomoran** | Smart ID Berlevel (`110100001`) | ID Sekuensial Flat Murni (`SKU-8439`) |
| **Tujuan Utama** | Ketertiban, Akurasi, & Kepatuhan | Kecepatan & Kemudahan Pencarian |
| **Teknologi Query** | Pemotongan Karakter Teks (`LEFT`) | Indeks Terbalik (*Inverted Index/Tag*) |

---

### 4. Kesimpulan Implementasi pada Sistem

Aplikasi supermarket *sparepart* maupun aplikasi perbankan modern wajib mengadopsi **dua mesin database yang berbeda tugas**:

1.  **Gunakan Mesin Hierarki Murni** untuk mengelola **COA Keuangan dan Rekening Pembantu**, guna memastikan sirkulasi uang terjurnal dengan tertib, rapi, dan mudah digabungkan secara berlevel ke atas.
2.  **Gunakan Mesin Matriks Fleksibel** untuk mengelola **Pencarian Produk dan Substitusinya**, sehingga pengguna/kasir dengan informasi terbatas dapat menemukan barang secara instan (< 50 milidetik) hanya dengan mengetik kalimat samar seperti *"baut mesin kijang 1997"*.
