The Way Of Life
Google

Thursday, January 26, 2017

Dual Connection


Kali ini saya akan membagikan tips singkat, bagaimana membuat suatu aplikasi database menggunakan Visual Basic 6 yang terkoneksi dengan 2 database berbeda. Kasusnya adalah aplikasi ini bisa digunakan "offline" dan "online". "Offline" yang dimaksudkan di sini adalah aplikasi dibawa secara mobile menggunakan laptop. Kemudian posisi "Online" adalah aplikasi terkoneksi dengan database pusat ketika laptop tersebut ada pada jaringan kantor pusat. Pada saat "online" aplikasi bisa melakukan sinkronisasi data ( upload dan download ) sehingga data di kedua database sama. Database yang digunakan adalah Ms SQL Server 2000 untuk server pusat dan Ms Access untuk server lokal ( offline ). Database Ms Access digunakan karena instalasi yang sederhana, tidak serumit instalasi Ms SQL Server. Berikut langkah - langkah yang perlu dilakukan :

1. Pertama yang kita buat adalah connection string untuk kedua engine database tersebut.

Untuk SQL Server :
LogonStr = "PROVIDER=SQLOLEDB.1;DATA SOURCE= " & IPServer & ";initial catalog= " & DatabaseName & " ;User ID=user;Password=password;"

Untuk Ms Access :
LogonStr2 = "PROVIDER=Microsoft.ACE.OLEDB.12.0; Data Source=" & App.Path & "\databasename.accdb"

2. Engine SQL pada kedua database tersebut ada beberapa perbedaan, oleh karena itu ada beberapa penulisan query ( SQL ) yang harus disamakan. Karena kebetulan kedua database dibuat oleh Microsoft maka tidak terlampau sulit untuk membuat penyeragaman.Salah satunya adalah SQL untuk menghapus record :

Jika pada SQL Server cukup : DELETE table_name WHERE..
di Ms Access harus menggunakan FROM : DELETE FROM table_name WHERE.., maka anda harus menambahkan FROM pada semua SQL untuk menghapus record.

Juga pada SQL yang menggunakan INNER JOIN lebih dari table, pada SQL Server kita bisa langsung membuat query tambah separator seperti dibawah ini :

SELECT  *
FROM t_table_a aa
INNER JOIN t_table_b bb ON bb.code_b = aa.code_a
INNER JOIN t_tabel_c cc ON cc.code_c = aa.code_a

Pada Ms Access :

SELECT  *
FROM   (( t_table_a aa
INNER JOIN t_table_b bb ON bb.code_b = aa.code_a)
INNER JOIN t_tabel_c cc ON cc.code_c = aa.code_a)

3. Sinkronisasi.
Pada sinkronisasi, perlu diperhatikan aturan sikronisasi. misal aturannya untuk data master di server tidak boleh dihapus hanya boleh ditambah, maka pada saat sinkronisasi dari lokal ke server hanya bisa menambah tidak boleh menghapus, kemudian baru mengambil data master dari server yang baru. Dan masih banyak lagi, tergantung kebutuhan masing masing.

Kebetulan untuk Ms Access yang saya gunakan adalah Ms Access 2007, maka dibutuhkan driver untuk koneksi database bisa download pada link di bawah ini :

https://www.microsoft.com/en-us/download/details.aspx?id=23734
Office 2007


Tools :
Visual Basic 6.0
SQL Server 2000
Ms Access 2007


Labels: , , ,

Wednesday, January 13, 2016

Make it Simple!


Salah satu keuntungan menjadi orang yang mengerti IT adalah bisa membuat pekerjaan orang lain menjadi lebih mudah. Dengan membuat aplikasi komputer, kita bisa melakukan banyak hal yang bisa mempermudah pekerjaan orang lain. Salah satunya saya ambil dari saya sendiri. Belum lama ini saya dimintai tolong untuk membantu rekan saya yang berkerja di salah satu LSM. LSM ini sebelumnya sudah mempunyai sebuah aplikasi yang dibuat oleh salah satu vendor. Setelah program jadi, dan sudah berjalan maka vendor ini menjadi sulit dihubungi. Vendor ini meninggalkan sebuah program dan cara instalasi program. Akan tetapi cara instalasinya begitu rumit, sehingga ketika sebuah komputer akan diinstall program tersebut, maka user atau bahkan teman saya sangat kesulitan karena cara instalasinya yang cukup rumit bahkan bagi seorang programmer sekalipun. Akhirnya dia meminta bantuan saya untuk membuat installer atau bahasa "keren"nya itu dibuatkan single click installer.
Sebenarnya saya sendiri tidak berniat membuat installer dengan satu tombol saja, akan tetapi saya teringat apa yang dilakukan oleh Albert Einstein yaitu membuat rumus yang sangat sederhana tentang relativitas yaitu E=mc2 dari sesuatu yang seharusnya sangat rumit. Akhirnya dengan riset sederhana dan bantuan mbah Google tentu saja, aplikasi single installer akhirnya menjadi kenyataan.
Apllikasi peninggalan vendor tersebut adalah sebuah aplikasi web based dengan database PostgreSQL, dan Framework PHP Codeigniter. Aplikasi ini diinstall dikomputer lokal di hampir seluruh lokasi di Indonesia, jadi bisa dibayangkan jika komputernya bermasalah dan harus install ulang maka menjadi mimpi buruk bagi team IT karena tingkat kesulitan instalasinya.

Single Click Installer  yang saya buat mempunyai beberapa langkah yang saya rangkum menjadi satu, berikut potongan source code Visual Basic 6 yang saya buat :

Private Sub Command3_Click()
    

    'create registry for odbc driver
    CreateRegistry
   
    'copy file odbc
    CopyODBCFiles
   
    'sp folder and client folder to htdocs
    CopyWebFiles
   
    'copy php ini ( short tag setting )
    CopyPHPINI
   
    'copy pg_hba.conf
    CopyPostgreFiles
   
    'create db
    CreateDB
   
    'create batch file & restore db
    CreateBatchFile
   
    'load url
    LoadURL
   
End Sub


1. Pertama adalah saya meng-create registry Windows untuk odbc driver PostgreSQL.
2. Mencopykan file ODBC PostgreSQL ke driver lokal.
3. Mencopykan file aplikasi web ke komputer lokal
4. Setting short tag pada php.ini
5. Setting pg_hba.conf untuk restore database PostgreSQL.
6. Membuat database kosong.
7. membuat batch file untuk menjalankan restore database, setelah batchfile jadi langsung dijalankan.
8. Setelah semua tersetting, buka aplikasi melalui browser secara otomatis.

Sebelum Single Installer ini dijalankan, saya sudah menjalankan installer untuk web server dan PostgreSQL dari bitnami
Anda tidak perlu menjadi jenius seperti Albert Einstein untuk menyederhanakan sesuatu yang rumit, yang penting adalah keinginan atau niat untuk menyederhanakan sesuatu yang rumit tersebut. Semoga bisa menjadi inspirasi bagi rekan rekan. 

Labels: , ,

Thursday, June 25, 2015

ASCII to Entities


Kali ini saya ingin berbagi pengalaman ringan tentang karakter ASCII yang bermasalah pada saat digunakan di aplikasi web. Belum lama ini mendapat pesanan aplikasi desktop dan web yang mengakses satu database yaitu Microsoft SQL Server. Pesanan awal adalah aplikasi desktop yang dibuat dengan Visual Basic 6, kemudian ada permintaan dibuatkan aplikasi web juga. Akhirnya kami buat menggunakan PHP dengan CodeIgniter Framework yang ditanam di Web Server Linux Ubuntu 12.04. Koneksi PHP ke database Ms SQL Server 2000 menggunakan FreeTDS. Pada saat development menggunakan OS Windows 7 semua berjalan lancar tanpa ada masalah, tetapi ketika diupload ke web server Linux Ubuntu muncul masalah pada saat saat menampilkan data, setelah kami trace menggunakan firebug di Firefox muncul error pada json_encode, seperti di bawah ini.



A PHP Error was encountered

Severity: Warning

Message: json_encode(): Invalid UTF-8 sequence in argument

Filename: controllers/trskegiatan.php

Line Number: 90





Hal itu terjadi karena pada salah satu record yang tampil yaitu  terdapat karakter ASCII yang jika muncul di web berupa  \r\n yang menyebabkan error pada argument json_encode. Biasanya data tersebut import dari data Excel dan sejenisnya sehingga kurang "bersih". Setelah googling dan berjibaku selama dua hari akhirnya muncul beberapa solusi. Seperti setting FreeTDS ditambah client charset = UTF-8 dan sebagainya ternyata kurang manjur, akhirnya "resep" yang manjur adalah menggunakan fungsi Framework CodeIgniter yaitu :

ascii_to_entities()

Converts ASCII values to character entities, including high ASCII and MS Word characters that can cause problems when used in a web page, so that they can be shown consistently regardless of browser settings or stored reliably in a database. There is some dependence on your server's supported character sets, so it may not be 100% reliable in all cases, but for the most part it should correctly identify characters outside the normal range (like accented characters). Example:

$string = ascii_to_entities($string);


Dengan fungsi tersebut maka semua karakter ASCII pada data yang bisa menyebabkan masalah di browser langsung dikonversi.
Semoga artikel ini bisa membantu rekan -rekan.
 
tools:
Sencha ExtJS
Microsoft SQL Server 2000
Visual Basic 6
Linux Ubuntu 12.04
FreeTDS
CodeIgniter PHP Framework

Labels: , , , ,

Tuesday, June 02, 2015

Leader Creates Leaders

Hendry Santriago merupakan salah satu orang Indonesia yang dipercaya untuk memimpin GE di Indonesia. Pada salah satu kesempatan dia pernah mengatakan bahwa GE adalah perusahaan  yang unik karena bisa bertahan selama 123 tahun pada saat tulisan ini dibuat ( GE berdiri sejak 1892 ). Bagaimana sebuah perusahaan bisa bertahan begitu lama? Salah satu alasannya adalah kultur di GE yaitu pemimpin menciptakan pemimpin baru. Pemimpin di sini tidak selalu anak dari pemilik perusahaan tetapi juga orang luar yang mampu untuk memimpin GE. Tidak ada yang salah jika sebuah perusahaan dilanjutkan kepemimpinannya oleh anak, cucu atau saudara dari pemilik perusahaan tersebut. Akan tetapi jika memang anak, cucu atau saudara tersebut tidak mampu maka bisa dibuka kesempatan oleh orang luar yang lebih mampu.

Oei Tiong Ham salah satu pengusaha di Indonesia yang terkenal dengan julukan "Raja Gula dari Semarang" pada era awal abad 19, puncak kejayaan bisnis berada di periode 1920-an. Untuk pemikiran di era-nya Oei Tiong Ham sudah "open mind" karena dia hanya memilih anaknya yang memang berbakat untuk melanjutkan bisnisnya ( dia mempunyai 26 anak dari 8 istri ). Karena hal inilah juga dia pindah ke Singapura karena keputusannya bertentangan dengan salah satu  hukum Belanda saat itu, yaitu hukum waris. Hukum waris Belanda mengharuskan Oei Tiong Ham membagi rata warisannya kepada semua anak dan itu tidak dilakukan oleh Oei Tiong Ham. Meskipun demikian akhirnya kerajaan bisnis Oei Tiong Ham runtuh pada tahun 1964 karena kondisi politik Indonesia saat itu.

Sepeninggal Steve Jobs, banyak orang bertanya tanya mengenai kelangsungan Apple tanpa Steve Jobs. Dapatkah Apple bertahan dengan gempuran dari kompetitor? Dapatkan Tim Cook dan team Apple menciptakan produk yang unik dan inovatif seperti Apple dahulu. Dan sekarang kita bisa lihat Apple masih mempunyai taring, karena Steve Jobs atau Apple berhasil menciptakan pemimpin baru sehingga Apple masih bisa berjaya.
Sangat penting sebuah perusahaan untuk meng-create New Leader demi kelangsungan hidup perusahaan.

Labels: ,

Monday, April 13, 2015

Automatic Vehicle Counter Software


Saat ini masih jarang pengembang software di Indonesia yang mengembangkan software atau aplikasi untuk menghitung kendaraan yang lewat di jalan raya secara otomatis. Di beberapa lokasi, dinas perhubungan masih menugaskan anggota-nya untuk menghitung kendaraan secara manual. Hal ini tentu saja sangat melelahkan dan butuh konsentrasi tinggi.

Beberapa artikel tentang penghitungan kendaraan secara manual:

Hitung Volume Pemudik
Menghitung Volume kendaraan di Jl MH Thamrin
Kisah Edi Warsito menghitung kendaraan secara Manual
Counter : Alat penghitung kendaraan

Padahal di negara - negara maju sudah menggunakan software yang canggih. Dan ternyata orang kita pun tidak kalah canggih karena team kami sudah bisa membuat software untuk menghitung jumlah kendaraan secara otomatis, dan juga dapat memilah tipe-nya.


Pesawat Sukhoi S-35S radarnya mempunyai kemampuan  mengunci 30 sasaran sekaligus dan menyerang 8 diantaranya secara simultan.


Software yang kami kembangkan juga mempunyai kemampuan "mengunci" banyak obyek kendaraan sekaligus, kami sedang mencoba 3 algoritma yang nantinya akan kami pilih yang paling akurat dan stabil. Kondisi lalu lintas di Indonesia tidaklah serapi di luar negeri, jika anda melihat contoh software yang sama di YouTube, terlihat aliran lalu lintas yang rapi. Sedangkan pada video yang anda bisa lihat di bawah, terlihat barisan "bebek" (baca: motor bebek) yang melawan arah, meskipun aplikasi kami tetap bisa "mengunci" object tersebut. Kami akan terus menyempurnakan software yang kami buat menjadi lebih sempurna secara bertahap sesuai kondisi nyata di lapangan.

Kedepan kami akan mengembangkan menjadi suatu sistem yang terintegrasi seperti konsep kota pintar ( smart city ). Yaitu software untuk mengenali plat nomor mobil yang lewat, sehingga pihak kepolisian dapat dengan cepat mendeteksi keberadaan suatu mobil, tentu saja ini harus menggunakan kamera resolusi tinggi yang tersebar di seluruh kota dan database terintegrasi. Untuk perkembangan software ini akan kami ulas secara bertahap di artkel ini.

13.04.2015
Automatic Vehicle Counter Beta Version
This software is used to calculate the number of vehicles on the road automatically and automatically makes the classification of vehicles . We will also create integrated applications , such as automatic vehicle license plate recognition system that will allow the police to search for the missing car . For progress development of this software will we update on this blog.
 



  • Camera and Video Source.
  • Available for Single Direction Traffic and Double Direction Traffic.
  • Horizontal and Vertical angle.
  • Realtime Graphic Counter.

gambar diambil dari sini

contact : budy_wijaya@yahoo.com

Labels: ,

Tuesday, March 10, 2015

Menghilangkan Jamur di Lemari Pakaian

 Jamur di Lemari Pakaian

Musim penghujan di satu sisi menjadikan udara di dalam rumah menjadi lembab. Salah satunya tentu udara yang ada di dalam lemari pakaian kita. Kadang meskipun kita sudah menggunakan kapur barus / kamper atau produk penyedot udara lembab / dehumidifier , jamur masih tumbuh subur di luar ataupun di dalam lemari. Salah satu cara ampuh menghilangkan jamur di lemari pakaian selain dengan mencegahnya adalah dengan cairan karbol.


Caranya isi ember dengan air secukupnya kemudian campurkan cairan karbol, lalu masukan kain pel yang bersih atau kain bekas apa saja yang masih bersih. Lalu peras sampai air tidak menetes, kemudian lap bagian lemari yang ditumbuhi jamur sampai bersih.
Dijamin untuk waktu yang cukup lama jamur tidak akan tumbuh lagi di lemari kita, asal kita menjaga kelembaban udara di lemari kita agar selalu kering.
Semoga bermanfaat.

Labels: ,

Tuesday, February 10, 2015

Power in the economy of code

 
Salah satu sub bab dalam buku jQuery in Action terbitan Manning, karya Bear Bibeault dan Yehuda Katz, mempunyai sub bab Power in the economy of code. Dimana framework jQuery menjadikan kita menulis kode jauh lebih irit / ekonomis.
Contoh di dalam buku tersebut yaitu, dari kode yang panjang seperti di bawah ini;

var checkedValue;
var elements = document.getElementsByTagName('input');
  for (var n = 0; n < elements.length; n++) {
   if (elements[n].type == 'radio' &&
       elements[n].name == 'someRadioGroup' &&
       elements[n].checked) {
     checkedValue = elements[n].value;
   }  
  }
menjadi kode jQuery yang singkat seperti di bawah ini:
var checkedValue = $('[name="someRadioGroup"]:checked').val();
Hal ini juga terjadi ketika saya dan rekan mulai belajar salah satu framework javascript yaitu ExtJS dari Sencha. ExtJS dibuat sebagai framework yang mempunyai banyak sekali object sehingga mirip sekali dengan aplikasi desktop. Dalam rangka proyek konversi dari aplikasi desktop ke web, otomatis kami mencari persamaan object di ExtJS. Salah satu object tersebut adalah form searching / pencarian. Setelah cukup lama browsing akhirnya kami menemukan caranya, yaitu di web mbahsomo. Awalnya kami tidak percaya dengan kode yang ditampilkan di web tersebut, form searching merupakan form yang cukup "kompleks" di aplikasi web, tapi mbahsomo hanya menampilkan kode yang kami rasa sangat singkat. Setelah kami pelajari ternyata benar, form tersebut bisa ditampilkan hanya dengan kode yang minimalis dan ekonomis, berkat framework ExtJS.
Sama juga seperti framework yang lain, fungsinya adalah mempersingkat pekerjaan, dan satu lagi yaitu standarisasi. Jika kita bekerja dalam team harus ada standarisasi, sehingga selain kode menjadi rapi juga gampang dipahami orang team yang lain.

Berikut tampilan form searching a la mbahsomo:


dan dibawah ini adalah form searching yang kami kembangkan dari form mbahsomo


related links:
Combo Multi Column with Grid
Framework Or Not Framework

Labels: , , ,