Archive for December, 2014

rubyonrails_shaped.sh-600x600Disaat kita membuat sebuat aplikasi yang besar, kompleks, banyak menu dan atau modul, akan sangat menyusahkan jika dalam meletakkan model-view-controller kita default sesuai dengan standard framework yang kita gunakan.

Dalam kasus ini yakni ruby on rails, secara default meletakkan file model-view-controller pada folder app/.

Custom sederhana pada path rails akan lebih mudah dalam pengkelompokan modul modul (modular) atau seperti HMVC (Hierarchial Model View Controller), namun hanya perlu config sederhana, tanpa perli menambahkan sebuah class third party. Config nya hanya seperti ini Om.

  1. Buat sebuah folder dengan nama modules di dalam direktori app/. *nama folder bisa disesuaikan.
  2. Config di bagian config/application.rb dan tambahkan kode baris berikut untuk bisa load path controller dan view pada folder app/modules/. 
    config.autoload_paths += Dir["#{config.root}/app/modules/**/**/**/"]
    
  3. Kemudian untuk load path view edit file app/controllers/application_controller.rb  ,dan tambahkan baris berikut :

    before_filter :set_view_path
    def set_view_path
       prepend_view_path Dir["#{Rails.root}/app/modules/**/**"]
    end
    
  4. Dan selanjutnya struktur mvc nya sebagai berikut :

    ss_hmvc_rails

    struktur modular

  5. Pindahkan file models, views dan controllers ke dalam folder modules.

Kali ini langkah langkah membuat modular ruby on rails ini saya diajarin dengan orang yang namanya Mas Udin. Demikian konfigurasi sederhana yang bisa diterapkan dalam framework ruby on rails, semoga bermanfaat.

oracle_database_logoDalam 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.

tree-menu

contoh tree menu

Contoh fungsi rekursif di PHP (Code Igniter) begini salah satunya (maap screenshoot nya gak komplit) :

ss_rekursif

fungsi rekursif

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.