Please Wait, Loading...

Monday 24 October 2011

Membuat Jaringan Tree di SQL

           Bagaimana jika ada kasus untuk membuat sebuah jaringan model tree di Tabel dalam satu kolom? Jawaban dari kasus diatas sangat bervariasi, untuk kali ini penulis akan memaparkannya dengan menggunakan fungsi LPAD bawaan dari SQL. Secara teknis berikut adalah contoh kasus yang pernah penulis hadapi, yaitu membuat fungsi tree untuk menampilkan data dari sistem organisasi dari sebuah institusi, bagaimana tabel yang diharapkan, gambar berikut adalah tabel yang diharapkan dan beserta script SQLnya dan penjelasannya  :

SELECT Level AS "Hirarki Data",    LPAD(' ',3*(LEVEL-1) )||a.Nama_Anak as "Nama Unit Kerja"
FROM Nama_Skema.Nama_Tabel a
CONNECT BY PRIOR  a.Kode_Anak IN (a.Kode_Induk)
START WITH a.Kode_Anak IN (SELECT a.Kode_Anak FROM Nama_Skema.Nama_Tabel
WHERE a.Kode_Induk IS NULL );


Dan berikut adalah penjelasan dari script diatas :
  1. SELECT Level AS "Hirarki Data",  Maksudnya yaitu menampilkan hirarki data dengan mengaliaskan nama kolomnya dengan nama "Hirarki Data".
  2. LPAD(' ',...,...), Left PAD adalah suatu fungsi yang dimiliki Query SQL yang menangani masalah hirarki data, secara umum fungsi ini digunakan untuk untuk menambahkan karakter padding ke sisi kiri string sampai panjang tertentu, dengan default karakter Pad berupa spasi.
  3. LEVEL-1, adalah suatu  algoritma yang menyatakan adanya pengurangan nilai 1 terhadap data LEVEL, dalam hal ini maksudnya pada kolom Hirarki Data nilainya akan berkurang 1 jika script dijalankan.
  4. 3*(LEVEL-1), maksudnya memberikan jumlah string sesuai dengan hasil dari algoritma Level-1           ( Contoh Jika hasil Level-1 adalah 1 maka jumlah string di sisi kiri string sebanyak 3 karakter.)
  5. Connect By Prior adalah  Sebuah kondisi yang mengidentifikasikan mengenai hubungan antara baris induk dan baris anak secara hirarki.
  6. Start With  maksudnya,  Menetukan kondisi yang mengidentifikasikan baris string untuk digunakan sebagai root string dari hirarki query.
  7. " ...||a.Nama_Anak as "Nama Unit Kerja"... ", penggabungan string dengan mengaliaskan nama kolom dengan nama "Nama Unit Kerja".

Demikian Artikel mengenai membuat jaringan tree di SQL, semoga bermanfaat.. Amin