Archive for April, 2007

Pesan-pesan dari Pesantren Virtual

April 13, 2007

قال صلى الله عليه وسلم:« من احتكر طعاما أربعين ليلة فقد برئ من الله تعالى وبرئ الله تعالى ‏منه، وأيما أهل عرصة أصبح فيهم امرؤ جائع فقد برئت منهم ذمة الله تعالى.‏

Beliau s.a.w berkata:”Barangsiapa menimbun makanan lebih 40 malam maka ia telah ‎meninggalkan Allah dan Allah meninggalkannya, dan Apabila satu desa, ada di antara ‎penduduknya yang kelaparan, maka semua penduduk desa itu telah meninggalkan ‎perjanjian Allah”. (H. R. Ahmad)‎

قال رسول الله صلى الله عليه وسلم”ما من عبد يذنب ذنبا فيحسن الطهور , ثم يقوم فيصلي ركعتين , ثم يستغفر الله إلا غفر الله له” أبو داود 2 / 86 والترمذي 2 / 257 وَالنَّسَائِيُّ وَابْن مَاجَهْ.

Rasulullah s.a.w. berkata:”Tidak ada hamba yang melakukan dosa, kemudian ia menyempurnakan wudlu, lalu ia berdiri dan sholat dua rakaat, lalu ia beristighfar minta ampunan Allah, kecuali Allah akan mengampuninya” H.R. Abu Dawud, Tirmidzi, Nasa’i dan Ibnu Majah.

عن أبي برزة قال قلت يا رسول الله مرني بعمل‎ ‎أعمله قال‎ ‎أمط‎ ‎الأذى عن الطريق فهو لك صدقة

Abu Barzah berkata:”Wahai Rasulullah perintahkan kepadaku pekerjaan yang bisa ‎kulakukan”. Rasul menjawab: “Singkirkan marabahaya dari jalan, itu ‎sedekah untukmu”(H.R. Ahmad)‎

Dari Juabirah: Suatu hari Rasulullah melewatinya seusai sholat pagi, ia sedang berdzikir. ‎Rasulullah kembali lewat saat menjelang siang dan Juaibirah masih berdzikir. Lalu beliau ‎berkata: “Aku telah mengucapkan 4 kalimat sebanyak 3 kali, saat berdiri melewatimu tadi ‎pagi yg itu lebih banyak, lebih utama dan lebih berat pahalanya dari yg kau ucapkan, ‎yaitu ‎

سُبْحَانَ اللَّهِ‎ ‎عَدَدَ خَلْقِهِ‎ ‎سُبْحَانَ اللَّهِ رِضَا نَفْسِهِ سُبْحَانَ‎ ‎اللَّهِ زِنَةَ عَرْشِهِ سُبْحَانَ اللَّهِ مِدَادَ كَلِمَاتِهِ ‏‎ ‎

Subhaanallaahi ‘adada khalqihi, subhaanallahi ridla nafsihi, subhaanallaahi zinata ‘arshihi, ‎subhaanallahi midaada kalimaatihi. (H.R. Ibnu Majah)

عن أبي هريرة رضي الله عنه قال

أوصاني خليلي بثلاث لا أدعهن حتى أموت صوم ثلاثة أيام من كل شهر وصلاة الضحى ونوم على وتر

Dari Abu Hurairah: Kekasihku memberi nasehatku tiga perkara dan aku tidak pernah meninggalkannya hingga mati: Puasa tiga hari setiap bulan, SHolat Dhuha dan Sholat Witir sebelum tidur” (H.R. Bukhari)

عن أبي هريرة قال قال رسول الله صلى الله عليه وسلم: “ثلاث جدهن جد وهزلهن جد النكاح والطلاق والرجعة”

Dari Abu Hurairah r.a. Rasulullah bersabda: Tiga perkara seriusnya jadi, isengnya pun jadi: nikah, talak dan ruju'” (H.R. Tirmidzi, Ibnu Majah, Abu Dawud)

عَنْ أَبِي مُوسَى الْأَشْعَرِيِّ أَنَّهُ قَالَ قَالَ رَسُولُ اللَّهِ صَلَّى اللَّهُ عَلَيْهِ وَسَلَّمَ الْاسْتِئْذَانُ ثَلَاثٌ فَإِنْ أُذِنَ لَكَ فَادْخُلْ وَإِلَّا فَارْجِعْ

Dari Abu Musa al-Asy’ari Rasulullah bersabda:”Meminta izin (untuk bertamu) itu tiga kali, kalau diizinkan maka masuklah, kalau tidak diizinkan maka kembalilah” (H.r. Muslim, Tirmidzi, Malik)

Dari Abu Syuraih al-Ka’by Rasullah s.a.w. bersabda:”Barang siapa beriman kepada Allah dan Hari Akhir maka hendaknya ia menghormati tamunya dengan pemberiannya, sehari semalam. Menjamu tamu itu tiga hari, setelah itu sedekah. Tidak halal baginya menyindir agar tamu merasa tertekan. Barang siapa beriman kepada Allah dan Hari Akhir, maka berkatalah yang baik atau diam” (H.R. Bukhari, Muslim dll.)

عن أبي هريرة قال قال رسول الله صلى الله عليه وسلم الرؤيا ثلاث فرؤيا حق ورؤيا يحدث بها الرجل نفسه ورؤيا تحزين من الشيطان فمن رأى ما يكره فليقم فليصل.

Dari Abu Harairah, Rasululllah s.a.w. bersabda:”Mimpi itu ada tiga, mimpin benar, mimpi yang ditimbulkan oleh diri manusia sendiri dan mimpi menyedihkan yang datang dari syetan. Barangsiapa bermimpi buruk maka bangunlah dan sholatlah” (H.R. Nasa’i)

Pesantren Virtual: عن أبي أيوب الأنصاري أن رسول الله صلى الله عليه وسلم قال لا يحل لرجل أن يهجر أخاه فوق ثلاث ليال يلتقيان فيعرض هذا ويعرض هذا وخيرهما الذي يبدأ بالسلام.
Dari Abu Ayub al-Anshari, Rasulullah s.a.w. bersabda:”Tidak halal seorang lelaki memutus hubungan dengan saudaranya lebih tiga malam, keduanya bertemu lalu saling membuang muka, sebaik-baik mereka adalah yang memulai salam”. (H.R. Bukhari dll.)

Dari Abu Hurairah, Rasulullah s.a.w. bersabda:”Kalian bila tidur, maka syetan membuat 3 ikatan di kepala kalian yang membuat tidur kalian nyenyak, kalau kalian bangun dan berdzikir kepada Allah maka lepaslah satu ikatan, kalau wudlu maka lepaslah ikatan kedua dan ketika sholat maka lepaslah ikatan ketiga, maka kalian akan bangun pagi dengan giat dan hati yang bersih, kalau tidak maka kalian akan bangun malas dengan hati yang keruh” (H. R. Muslim)

عَنْ أَسْمَاءَ بِنْتِ يَزِيدَ قَالَتْ قَالَ رَسُولُ اللَّهِ صَلَّى اللَّهُ عَلَيْهِ وَسَلَّمَ لَا يَحِلُّ الْكَذِبُ إِلَّا فِي ثَلَاثٍ يُحَدِّثُ الرَّجُلُ امْرَأَتَهُ لِيُرْضِيَهَا وَالْكَذِبُ فِي الْحَرْبِ وَالْكَذِبُ لِيُصْلِحَ بَيْنَ النَّاسِ.

Dari Asma’ binti Yazid, Rasulullah bersabda:”Tidak halal bohong kecuali dalam tiga perkara: suami untuk mencari ridla isterinya, dalam peperangan dan untuk mendamaikan dua kelompok manusia yang bertikai” (H.R. Tirmidzi)
Pesantren Virtual: عَنْ أَبِي هُرَيْرَةَ أَنَّ النَّبِيَّ صَلَّى اللَّهُ عَلَيْهِ وَسَلَّمَ قَالَ ثَلَاثُ دَعَوَاتٍ مُسْتَجَابَاتٌ لَا شَكَّ فِيهِنَّ دَعْوَةُ الْوَالِدِ وَدَعْوَةُ الْمُسَافِرِ وَدَعْوَةُ الْمَظْلُومِ
Dari Abu Hurairah r.a. Rasulullah bersabda: “Tiga do’a dikabulkan Allah, tidak ragu lagi, yaitu: doa orang tua untuk anaknya, doa seorang musafir dan doa orang yang didlalimi” (H.R. Abu Dawud)

أَنَّ رَسُولَ اللَّهِ صَلَّى اللَّهُ عَلَيْهِ وَسَلَّمَ قَالَ لَهُ يَا عَلِيُّ ثَلَاثٌ لَا تُؤَخِّرْهَا الصَّلَاةُ إِذَا أَتَتْ وَالْجَنَازَةُ إِذَا حَضَرَتْ وَالْأَيِّمُ إِذَا وَجَدْتَ لَهَا كُفْئًا.

Rasulullah s.a.w. bersanda kepada Ali r.a.: “Wahai Ali, tiga perkara jangan kamu tunda, sholat ketika datang waktunya, jenazah ketika sudah siap dimakamkan dan gadis ketika telah menemukan pasangannya yang cocok” (H.R. Tirmidzi)

Advertisements

Membangun Aplikasi Sistem Informasi Dengan Kecepatan Optimal

April 11, 2007

Studi Kasus: Sistem Informasi dengan Delphi 5 dan database PostgreSQL

by: Agus Widodo, S.Kom

Kecepatan yang saya maksudkan di sini adalah kecepatan aplikasi (*.exe) yang akan di-’nikmati’ oleh user/pengguna aplikasi. Bukan kecepatan seorang programmer untuk menghasilkan sebuah form seperti halnya rapid application development (RAD) yang akan dinikmati oleh programmer.

Mengapa Harus Cepat?

Kecepatan program bagi seorang programmer menunjukkan juga kecakapan memproduksi aplikasi (coding) dengan cara yang tepat. Ingat! Proses adalah sebagian dari hasil. Hasil bagus pastilah terlahir dari proses yang matang, bagus, terencana dan tepat. Bukan kebetulan terjadi. Jika cara programming kita asal-asalan, siap-siaplah menuai kritik bahkan cemooh user: “wah kok lambat ya…”, “Masa untuk proses data harus di tinggal makan siang dulu mas…” D

Itu dari sudut programmer, bagi sudut corporate/company (dengan jumlah record transaksi yang besar), maka program yang robust dengan kecepatan handal adalah kebutuhan. Misalkan saja sebuah kasir pitstop sebuah depo container dengan antrian panjang. Satu detik saja sangat berharga, klo bisa, begitu di tekan tombol print maka proses cetak langsung ke dua printer dan sebuah form siap input sudah siap di isi tanpa terpengaruh dengan loading data untuk print dsb.

Beberapa Tips Untuk Mendapatkan Kecepatan Optimal

Berikut beberapa catatan singkat yang sempat terekam saat membangun aplikasi.

1. Pilihlah jenis koneksi database yang tepat

Sebelum terlalu jauh digunakan, cobalah beberapa alternatif koneksi yang memungkinkan. Bandingkan dan pilih dengan kecepatan yang paling optimal. Biasanya, koneksi langsung (direct connection) ke database jauh lebih cepat daripada harus melewati lapisan lagi semacam ODBC. Dalam kasus yang saya temui, saya menemukan bahwa koneksi ke PostgreSQL sangat jauh lebih cepat dengan Zeos daripada PsqlODBC.

2. Gunakan DLL untuk membuat program lebih moduler

DLL’s tersebut bisa kita gunakan menimpan prosedur2 yang sering di gunakan. Ini akan membuat file exe jadi lebih kecil ukurannya. DLL bisa dipanggil hanya ketika di perlukan.

3. Open dataset pada saat yang tepat dan memang di butuhkan

Jangan pasang semua dataset pada sebuah form dan di open semua saat form onShow. Open untuk dataset yang dibutuhkan . Jika ada dataset yang mungkin tidak mesti digunakan, open saat akan dibutuhkan saja. Misal dengan :

With Table1 do
if not Active then Open;

4. Gunakan query base daripada table base untuk form transaksi yang memerlukan banyak dataset

Query bisa kita atur untuk mengambil sebagian data saja, meskipun bisa juga dengan mennggunakan TTable dan di filter. Tapi itu akan jauh lebih lambat.

Akan lebih cepat Anda melakukan query dengan :

Insert into customer (nik,...) values ('0001' ... ...)

daripada:

Table1.Append;
Table.FieldByName(’nik’).AsString := ‘0001′;

Dengan query maka client tidak perlu meminta seluruh data (seperti pada table). Performance program akan terjaga. Jika menggunakan cara kedua (TTable), setiap bertambah record itu sama artinya menurunkan performance, semakin lama semakin lambat.

5. Load data sesuai yang diinginkan

Jika form hanyalah untuk input, maka gunakan komponen non DataAware, maksudnya komponen yang tidak berhubungan langsung dengan koneksi database missal TEdit (TDBEdit). Jadi begitu input langsung masukkan pada property SQL.Text := 'insert into ... bla... bla...'

Pilihlah Memory Table daripada TQuery yang dipasangkan dengan TUpdateSQL untuk menqoperasikan sebagian hasil query untuk di edit. Jangan pake Table yang di filter! Ini sama artinya meminta aplikasi load all data kemudian di pilihi.

7. Bijaksanalah menggunakan CalculatedField

Pilihlah query yang cukup kompleks untuk ambil dari beberapa table daripada Anda open satu dataset kemudian menggunakan event onCalculated, yang akan mengisikan field Calculated. Karena onCalculated akan terus di eksekusi sebanyak record yang harus di load. Jika query maka server hanya sekali menerima perintah, di proses dan kirim lagi. Ini juga akan mengurangi beban jaringan daripada cara CalculatedField.

Output Program

1. Cetak Ke Layar

  • Jika dataset sudah tersedia maka jangan pilih report dengan koneksi langsung ke database seperti crytal report tapi pilih reporting tool yang bisa ambil data dari dataset yang sudah terisi pada form.
  • Jika dataset tidak tersedia (biasanya kita masukkan dalam menu laporan input parameter laporan), baru menggunakan report yang akan mengquery data
  • Jika ingin mengeluarkan output ke office document seperti excel, jangan gunakan OleContainer tapi gunakan excel report tool (banyak VCL yang free). OleContainer akan meminta program handle dokumen yang dihasilkan. Ini salah satu (diagnosa saya) yang menyebabkan kadang terasa sangat lambat untuk pasing data. Lain dengan Excel Report yang hanya open excel dan create dokumen, lempar data.
  • Jika ada penghitungan, sorting, dan gruping, pilihlah option untuk hitung di server, tentunya saya memakai asumsi bahwa computer server memang di sediakan untuk operasi data dengan cepat dan handal.
  • Untuk laporan yang menggunakan image (misal foto) yang tersimpan. Batasi ukuran file saat penyimpanan saja. Sehingga saat laporan tidak memberatkan.

2. Pencetakan

  • Pilih print langsung ke printer jika memang tidak memerluka print via jaringan.
  • Gunakan Thread untuk open koneksi dataset untuk dataset yang aman. Thread memungkinan membuka dataset secara bersamaan dalam satu waktu. Jadi tidak sekuensial. Akan tetapi, ini akan menjadi ‘petaka’ manakala kita tidak hati2 dengan mengecek status opennya saat akan menggunakan. karena meski dataset belum open, form sudah bisa di lihat user.

Browse Data dan UI

1. Minimalisasi penggunaan mouse

  • Gunakan shortcut
  • Pemakaian tombol2 yang tepat. Jangan meminta user untuk menekan/klik tombol jika memang transaksi bisa dilakukan tanpa melakukannya. Contoh tombol Add/Edit
  • Minimalisasi browse data dengan jumlah besar. Lebih cepat validasi data setelah user input. Browse data hanya digunakan untuk pencarian jika user memang tidak memegang data transaksi secara jelas(masih perlu proses pencarian).
  • Jika memerlukan browse data, usahakan untuk meminimalisi query dengan minta bantuan user menginput sebagian data. (gunakan ‘ilike’)

2. Efisiensi coding

  • Efisiensikan pemakaian variable pada coding, karena semakin tidak efisien semakin memeberatkan memory. Juga perhatikan coding kita, jangan terburu2 membuat looping yang memerlukan variable jika sebenarnya tidak perlu.
  • Jangan terlalu banyak memakai komponen yang bermacam-macam dari VCL yang berbeda-beda. Ingat semakin banyak unit (kita deklarasikan dengan frasa Uses) akan semakin membuat ukuran file kita besar dan aka mengurangi performance. Misal, klo sudah pakai Developer Express, maka untuk grid, editor2 nya usahakan sama saja. Kecuali memang ada tujuan betul2 khusus. Jika Anda mengganti komponen (menghapusnya dan menggantikan dengan lainnya), usahakan untuk cek di Uses jangan sampai unit2nya masih tertempel terus pada form Anda.
  • Jika Anda menggunakan Skin (seperti SuiSki / Dynamic Skin Form) untuk mempercantik tampilan, sertakan file skin dengan exe. Lebih baik tidak di buat built in. ini menghindari ukuran aplikasi yang membengkak. Jangan lupa untuk men-skin form hanya untuk form itu saja.

Jika ada catatan saya yang salah, sudilah kiranya saya diberi pencerahan ke email langsung. Terima kasih sebelumnya.

Agus Widodo, S.Kom

EDP / System Dept.
PT Indra Jaya Swastika
www.ijs.co.id – One Stop Container Depot
(system_at_ijs.co.id / guswid_at_telkom.net)