Yudhi'm Blog

Blog yang berisi berbagai macam tulisan & tutorial umum. Enjoy the blog here!!!

Banner Iklan1

Banner Iklan1
Sudahkah keluarga Anda terlindungi?

Banner Iklan

Banner Iklan
970x90

Hubungan Reflexive

Tips dan Trik IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com

Djoni Darmawikarta
djoni_darmawikarta@yahoo.ca
Lisensi Dokumen:
Copyright © 2003 IlmuKomputer.Com
Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan disebarkan
secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus
atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap
dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin
terlebih dahulu dari IlmuKomputer.Com.
Memanfaatkan Hubungan Reflexive
Hubungan reflexsive sering kita temui dalam struktur data yang bersifat hirarki,
misalnya struktur organisasi dan komposisi produk.
Seorang karyawan bertanggung jawab (report) kepada atasannya (manager) Si
manager, sebagai karyawan, juga bertanggung jawab kepada atasannya lagi, dan
seterusnya. Sebuah sub-komponen merupakan bagian dari komponen; komponen
bagian dari sub-assembly; sub-assembly bagian dari assembly, assembly bagian dari
sub-produk, dan seterusnya.
Perlu diperhatikan bahwa, dalam rangkaian data dalam hirarki tersebut diatas, semua
bentuk datanya ditingkat manapun sama. Baik manajer ataupun bawahan adalah
karyawan (dalam contoh yang dibahas dibawah, semuanya memiliki nomor karyawan,
nama dan nomor karyawan manajer). Demikian juga dengan sub-komponen sampai
dengan semua ditingkat atasnya, harus memiliki bentuk data yang sama (kolom
datanya sama). Ini kriteria yang harus dipenuhi, selain struktrur hirarki, yang harus
dipenuhi agar bisa memanfaatkan teknik ‘hubungan reflexive’ yang diuraikan lebih
lanjut didalam tulisan ini.
Model data sederhana untuk struktur organisasi memiliki ER diagram seperti dibawah
ini. Nama ‘reflexive’ diberikan, karena hubungan kedirinya sendiri (self-loopback)
Nama lain yang sering ditemui adalah hubungan ‘recursive’. Karena banyak ditemui di
struktur hirarki, kadang disebut ‘treewalk link’.
1

Tips dan Trik IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com
Contoh Isi Tabel
Nomor_karyawan manajer adalah nomor karyawan milik manajer dari karyawan
bersangkutan.
nomor_karyawan
101
102
103
104
105
1001
1002
1003
10001
nama_karyawan
Adi
Basuki
Dedi
Rahmat
Dewi
Hadi
Yos
Wim
Mike
nomor_karyawan_
manajer
1001
1001
1001
1002
1002
10001
10001
10001
Dapat disiratkan dalam contoh ini, bahwa Mike adalah pejabat tertinggi. Ada tiga
bawahannya. Hanya Hadi dan Yos yang memiliki bawahan; Wim tidak, meskipun dia
adalah bawahannya Mike.
SQL Self-Join
Selain bentuk reflexive yang sederhana, fasilitas SQL self-join memudahkan
manipulasi data berstruktur hirarki yang dirancang sebagai hubungan reflexive.
Misalnya kita ingin mengetahui semua bawahan per manajer, dengan kata lain: Pilih
karyawan yang menjabat manajer (memiliki bawahan), dan daftarkan manajer ini
beserta bawahannya. Untuk ini, bisa digunakan SQL statement sebagai berikut.
SELECT m.nama_karyawan manajer, k.nama_karyawan bawahan
FROM karyawan m, karyawan k
WHERE m.nomor_karyawan = k.nomor_karyawan_manajer
ORDER BY m.nama_karyawan DESC
SQL statement ini menggunakan satu tabel karyawan dua kali; sekali sebagai m, kedua
kali sebagai k (m dan k adalah alias untuk tabel karyawan; m untuk ‘mewakili’ manajer,
k untuk bawahan)
2

Tips dan Trik IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com
Hasilnya:
manajer
Hadi
Hadi
Hadi
Yos
Yos
Mike
Mike
Mike
bawahan
Adi
Basuki
Dedi
Rahmat
Dewi
Hadi
Yos
Wim
Ini bukti bahwa dengan teknik hubungan self-reflexive, rancangan (model data) kita
memang betul, secara ‘terselubung’, meyimpan data yang memiliki struktur hirarki.
Bila Anda sedang merancang database (relasional) dan menemui kasus data
berstruktur hirarki, jangan lupa ada peluang untuk memanfaatkan hubungan reflexive
dan SQL self-join !
Bagikan :
+
Previous
Next Post »
1 Komentar untuk "Hubungan Reflexive"

terimakasih atas informasinya,,,
Semoga sukses selalu,,,

Informasi Pilihan Identitas:
Google/Blogger : Khusus yang punya Account Blogger.
Lainnya : Jika tidak punya account blogger namun punya alamat Blog atau Website.
Anonim : Jika tidak ingin mempublikasikan profile anda (tidak disarankan).

 
Template By Kunci Dunia
Back To Top