Dalam membuat suatu aplikasi, web khususnya, atau bisa juga desktop, biasanya kita menggunakan menu bertingkat (tree view) untuk mengkelompokkan modul, atau untuk menghemat space pada menubar. Untuk membuat tree menu bertingkat dinamis, digunakanlah perulangan untuk menampilkan menu tersebut dengan mengambil data dari database atau biasa dikenal dengan fungsi rekursif. Apa itu fungsi rekursif?, tinggal dibalik aja : Fungsi rekursif adalah sebuah fungsi yang memanggil dirinya sendiri di dalam fungsi tersebut.
Gampangnya begini Om, didalam menu itu ada menu lagi, nah jika data-data menu tersebut disimpan dalam database, maka biasanya (saya) digunakan fungsi rekursif itu untuk menyelesaikannya. Ini nih om contoh tree menu.
Contoh fungsi rekursif di PHP (Code Igniter) begini salah satunya (maap screenshoot nya gak komplit) :
Fungsi seperti ini yang biasanya digunakan untuk membuat tree menu, dulu yang ngajarin saya beginian namanya Om Welly, Om Lambang dkk. Tapi maap gak komplit contoh fungsi rekursif nya, karena yg kita bahas sekarang bukan membuat rekursif menu menggunakan fungsi seperti ini, tapi langsung menggunakan Queries Oracle.
Sumber dasar dokumentasi nya dari sini Om kalau mau lihat lengkap nya : http://docs.oracle.com/cd/B19306_01/server.102/b14200/queries003.htm
Contoh Query nya begini :
SELECT last_name, employee_id, manager_id, LEVEL
FROM employees
START WITH employee_id = 100
CONNECT BY PRIOR employee_id = manager_id
ORDER SIBLINGS BY last_name;
Hasilnya akan seperti ini Om:
LAST_NAME EMPLOYEE_ID MANAGER_ID LEVEL ------------------------- ----------- ---------- ---------- King 100 1 Cambrault 148 100 2 Bates 172 148 3 Bloom 169 148 3 Fox 170 148 3 Kumar 173 148 3 Ozer 168 148 3 Smith 171 148 3 De Haan 102 100 2 Hunold 103 102 3 Austin 105 103 4 Ernst 104 103 4 Lorentz 107 103 4 Pataballa 106 103 4 Errazuriz 147 100 2 Ande 166 147 3 Banda 167 147 3 ...
Kurang lebih begitu Om, menu otomatis tersusun secara tree sesuai dengan parent nya. Nanti langsung menggunakan perulangan di view nya. Dan query ini bisa digunakan untuk memanggil data yang bersifat hierarchial seperti struktur organisasi dan lain sebagainya. Semoga bermanfaat.

