Tuesday, November 13, 2012

selintas amanah berskala

assalamu'alaykum

rasanya dah makin susah aja ini nulis, apa karena sibuk? malas? atau ga ada yg bisa ditulis? mungkin tiga-tiganya kali ya. nah, kali ini saya coba deh buat nulis lagi, karena ada beberapa hal yg kayaknya seru buat ditulis, oke kita mulai!

kehidupan saya belakangan ini hanya terdiri dari tiga hal: ngurus perusahaan, ngajar, dan tesis pastinya. walau yg terakhir sering dilupakan haha. saya merasa bahwa ternyata sangat susah untuk membuat semuanya seimbang. itu baru tiga hal loh, makanya saya ga kebayang klo ada orang yg lebih dari itu. ada usaha lain, ada anak-istri, tambah ngajar di tempat lain, dll. dan jika orang tersebut masih dapat meng-handle semuanya dengan baik, hebat! saya aja yg "baru" tiga hal itu belum optimal, karena si "lima huruf" tidak mendapat proporsi yg sama dengan dua hal yg lain haha.

nah, berkaitan dengan hal ini, berarti kan intinya kita harus menentukan skala prioritas, dan mengatur waktu pastinya. dua hal ini sangat berbeda bagi tiap orang. contohnya untuk pengaturan waktu: ada yg kerja siang ada yg malam, jam tidurnya berapa, hari kerjanya kapan, day-based atau goal-based, dll. untuk skala prioritas, ini lebih rumit lagi, yg biasanya dibagi empat: penting mendesak, penting tidak mendesak, kurang penting mendesak, dan kurang penting tidak mendesak. tapi nyatanya toh ga semuanya juga bisa dikategorikan seperti itu, karena kita sendiri yg malah biasanya bingung untuk mengkategorikan suatu hal itu berada di bagian mana haha.

selain itu, menurut saya ada hal lain lagi yg harus diperhatikan dari skala prioritas, yaitu hubungannya dengan orang lain. jadi apakah hal yg kita lakukan akan berpengaruh seperti apa kepada orang lain. saya ambil contoh dari tiga hal yg saya lakukan. ngurus perusahaan, berarti hubungannya sangat erat dengan orang lain, yaitu gimana saya bisa tetap membuat orang-orang yg bekerja betah, dan gimana mencari proyek yg hubungannya dengan perusahaan lain juga. jadi apa yg saya lakukan dapat berdampak ke orang lain. klo tesis, yg ini hubungannya lebih kepada diri sendiri, karena jika saya menyelesaikan atau tidak, toh dampaknya hanya ke saya saja. ngajar, yg ini juga hubungannya sama orang lain, karena kita berinteraksi dengan orang lain, pastinya apa yg kita lakukan akan ada dampaknya.

sekarang saya ingin cerita dua pengalaman saya tentang hal ini, yg pastinya sangat membuat saya kesal haha. seseorang dari perusahaan saya yg memegang jabatan penting, dan sedang memegang peran penting di beberapa proyek juga, tiba-tiba menghilang. kan parah tuh, karena yg dia lakukan benar-benar berdampak bagi orang lain, yaitu perusahaan, dan pastinya klien. ini adalah sebuah contoh dimana kita gagal untuk menentukan skala prioritas yg hubungannya dengan orang lain tadi. malah setelah seseorang tersebut dapat menyelesaikan masalah ini, dia lebih memilih untuk menghilang, lagi. yg berarti menurut saya, dia gagal lagi.

cerita lain, semester lalu saya ditunjuk untuk menjadi koordinator suatu mata kuliah. tugas koordinator adalah mengatur perkuliahan (kurikulum, ujian, dll) dan mengawas dosen lain yg juga mengajar mata kuliah yg saya koordinasikan. nah, dari enam dosen yg ada, satu diantaranya bermasalah. dosen ini sering ga masuk, menyuruh asisten untuk mengajar, dan banyak tidak mengikuti aturan yg saya berikan. ini juga merupakan contoh dari kegagalan untuk menentukan skala prioritas dalam hubungannya dengan orang lain. saya rasa kegagalan ini sangat berbahaya, karena akan berdampak juga di masa mendatang. kok bisa?

dua kasus diatas merupakan contoh kegagalan menentukan skala prioritas dalam hubungannya dengan orang lain, yg erat kaitannya dalam mengemban amanah. karena itulah dapat berdampak di masa mendatang, karena amanah sangat berkaitan dengan trust, yg jika tidak diemban dengan baik, kita akan susah mendapat trust itu lagi. jadi, kita jangan sampai salah dalam penentuan skala prioritas dan manajemen waktu. karena jika berhubungan dengan orang lain, skala prioritas tersebut dapat menjadi lebih tinggi dibandingkan dengan sebelumnya kita duga.

wassalamu'alaykum

Saturday, May 05, 2012

selembar kode eksplorasi

assalamu'alaykum

kembali punya ide, tapi kali ini tentang koding. sebenernya sih ga mau dan ga biasa posting yg beginian, tapi karena ga ada ide lain gapapa jugalah ya, siapa tau ada yg butuh nanti, termasuk saya juga :). jadi maaf klo bahasanya agak berantakan haha.

jadi selama sebulan terakhir saya mencoba beberapa framework PHP untuk coba dikoneksikan dengan DBMS yg "agak ga populer" di kalangan praktisi, yaitu oracle. setelah berhasil terkoneksi, saya coba performanya dengan membuat CRUD standar. lingkungan yg saya pakai yaitu windows 7, oracle 11g express (11.2.0), xampplite 1.7.3, code igniter 2.1.0, yii 1.1.10, dan zend 1.11.11 (minimal). berikut langkah-langkah dan hasil ujinya:

1. Instalasi Oracle 11g Express
yg belum punya software-nya, bisa di-download di situs oracle, besarnya sekitar 312 mb. tapi harus punya akun oracle dulu sih. daftar aja, gratis kok. lakukan instalasi seperti biasa, yg penting adalah isi password untuk akun SYSTEM (admin DB) dan jangan sampai lupa :)

2. Konfigurasi Apache HTTP Server
buka file php.ini (biasanya ada di folder "tempat_instalasi/php"), uncomment (hapus karakter ';') pada baris "extension=php_oci8.dll" (untuk ci dan zend) atau pada baris "extension=php_pdo_oci.dll" (untuk yii), untuk mengaktifkan library php oracle connection interface. save php.ini, jalankan (atau restart) apache. jika tidak terjadi error "oci missing" dsb, maka konfigurasi sukses. jika error, maka ada masalah dengan instalasi oracle atau konfigurasi apache-nya

3. Manajemen DB Oracle
kelola DB dengan memakai aplikasi bawaan instalasi oracle, sql*plus. aplikasi ini console-based, jadi kalau mau yg lebih ber-"UI" bisa menggunakan sqldeveloper, bisa di-download di situs oracle juga. oracle juga mempunyai aplikasi bawaan yg web-based yaitu application express (bisa diakses lewat browser di localhost:8080/apex). application express berguna untuk monitoring, maintenance, user management, workspacing, dan wizard untuk membuat aplikasi berbasis DB oracle. di oracle 10g, pengelolaan DB dapat dilakukan juga disini. tapi di oracle 11g tidak bisa, atau saya yg kurang eksplorasi :)

4. Code Igniter
nah sekarang sudah masuk ke tiap framework. untuk ci, ternyata mudah konfigurasinya. di file konfigurasi DB ("application/config/database.php") cukup bagian ini saja yg diganti:

$db['default']['hostname'] = ''; //kosongkan saja
$db['default']['username'] = 'SYSTEM'; //user
$db['default']['password'] = 'oracle'; //password
$db['default']['database'] = ''; //kosongkan saja
$db['default']['dbdriver'] = 'oci8'; //nama driver untuk oracle

setelah itu, buat CRUD standarnya. catatan untuk ci, nama tabel dan kolom yg diambil harus memakai huruf kapital, walau DB yg dibuat tidak memakai huruf kapital (behavior oracle). jika keluar error "$rowcount not defined" dsb, berarti tidak ada masalah dengan koneksi dan fetch datanya. ternyata ini adalah masalah (bug) pada file driver untuk koneksi PHP ke DB oracle. solusinya, ganti kata "$rowcount" menjadi "$this->num_rows" pada file "system/database/drivers/oci8/oci8_result.php". seharusnya sudah tidak error lagi :). untuk versi ci 2.1.0 ternyata terdapat lumayan banyak masalah (sumber: bugtracker ci), jadi jika tidak ingin mengambil resiko, silakan memakai ci 2.0.3, karena lebih stabil (setelah saya coba, langsung bisa dan tidak terjadi error seperti sebelumnya)

5. Yii
untuk yii, konfigurasi DB ("namafolderaplikasi/protected/config/main.php") seperti ini:

 'db'=>array(
     'connectionString' => "oci:dbname=XE;charset=UTF8",
     'username' => 'SYSTEM',
     'password' => 'oracle',
 ),

tetapi ketika mengakses gii untuk membuat kelas model dari DB dengan model generator-nya, maximum execution time of 60 seconds exceeded. jadi ganti dulu di php.ini variabel "max_execution_time" menjadi lebih besar. memang berat resource sekali oracle ini :)

6. Zend
untuk zend, agak sulit untuk meletakkan konfigurasi DB di "namafolderaplikasi/application/configs/application.ini", juga untuk generate kelas model dari DB. jadi saya langsung mencoba di controller, yaitu seperti ini:

 $db = Zend_Db::factory('oracle', array(
       'username' => 'SYSTEM',
       'password' => 'oracleplus',
       'dbname'   => '//localhost/XE'
 ));

jangan lupa, pengaksesan kolom memakai huruf kapital

7. Performa
sebenernya saya ga pakai metode atau aplikasi tes sih, cuma melihat dari sisi waktu load-time aja. dari ketiga framework itu, CI paling cepat, disusul zend, dan yg terakhir yii. perkiraan saya, mungkin karena yii memakai kelas model dan yii memakai PDO (PHP data object) untuk akses koneksinya

oke segitu dulu racauan dari saya, semoga membantu bagi yg mau coba-coba framework PHP dengan oracle

wassalamu'alaykum