Minggu, 03 Juli 2011

Koneksi data ke Text File 01 - Introduction

(1 dari 4)

Muatan :

  • Kilasan tentang data pada sebuah text file
  • Text File Data Provider
  • Contoh text file, schema.ini, dan hasil koneksi


Kilasan tentang data pada sebuah text file

Text file yang tersturktur dapat dianggap sebagai sebuah tabel data. Kumpulan text file dalam sebuah folder seakan-akan membentuk sebuah database. Maka folder yang berisi text file dapat dianggap sebagai sebuah database. Konsep inilah yang digunakan dalam memandang text file terstruktur sebagai sebuah tabel data.



Text file terstruktur yang dimaksud disini adalah text file yang berisi kumpulan data, yang merupakan salinan dari suatu tabel database. Kaidah sebuah tabel database harus tercermin didalamnya. Beberapa kaidah tabel database yang harus terpenuhi untuk bisa membuat sebuah text file sebagai text file terstruktur antara lain :
  • pemisah antar kolom yang tetap atau lebar kolom yang tetap
  • baris data yang kontinyu (tidak ada baris kosong diantara baris data)
  • sebuah kolom berisi data yang datatype-nya sama
Text file terstruktur (selanjutnya disebut sebagai text file) hanya dianggap sebagai sebuah tabel data, maka kedudukannya tetaplah bukan sebuah object tabel data dari sebuah database engine. Hakikat inilah yang membuat text file memiliki banyak keterbatasan.


Text File Data Provider

Text file akan memberi informasi dari data yang disimpannya dengan bantuan data provider. Hal yang perlu diperhatikan dalam kolaborasi antara data provider dengan text file ini adalah pada proses konversi data, sehingga terbentuk sebuah object dataset yang terstruktur dan berkaidah database.

Data provider yang sering digunakan adalah Microsoft Jet 4 OLE DB dan Microsoft Text Driver ODBC. Kedua data provider ini memiliki keterbatasan dalam proses konversi ketika berhadapan dengan data text file yang terformat bukan sebagai format dasar. Fungsi-fungsi yang dimiliki kedua data provider ini juga tidak selengkap database engine maupun aplikasi seperti Excel. Contoh format dasar untuk bilangan adalah general. Format ini tidak menyertakan pemisah ribuan. Contoh format dasar lainnya adalah format datetime, yaitu YYYY-MM-DD HH:mm:ss.

Ketika data text file telah menyertakan pemisah ribuan pada data bilangan atau penulisan nama bulan pada data datetime, maka tingkat kemungkinan terjadinya kesalahan konversi data semakin tinggi. Kemungkinan kesalahan akan semakin tinggi ketika karakteristik setting locale data text file berbeda dengan setting locale komputer. Misalnya sebuah data text file yang disusun dengan locale setting English akan digunakan pada komputer dengan setting locale Indonesia. Kedua setting locale memiliki perbedaan karakter pemisah nilai desimal. Pada data text file yang menyertakan pemisah ribuan, maka kemungkinan terjadinya kesalahan tafsir oleh data provider terhadap bagian data yang berupa nilai desimal akan semakin tinggi. Contoh, nilai 1,234,567 bisa dikonversi menjadi 1,234567 atau malah menjadi NULL.

Dari wacana ini, maka dapat disusun suatu kondisi ideal sebuah data text file, yaitu :
  • data bilangan berformat 'General', seperti 1234567.8901
  • data tanggal berformat 'YYYY-MM-DD HH:mm:ss', seperti 2011-06-02 13:05:07
Pada kegiatan sehari-hari, tidak seluruh data text file dengan mudah disusun hingga memiliki kondisi ideal tersebut, terutama pada text file hasil sebuah ekspor data suatu form report. Banyak sekali sistem aplikasi yang melakukan proses ekspor data ke text file seperti apa adanya susunan report dalam suatu form. Hal ini akan menuntut kerja data provider yang lebih banyak, karena dibutuhkan proses interogasi data melalui suatu query yang lebih panjang prosesnya. Panjangnya proses oleh data provider dapat dipindahkan ke aplikasi interface, dan akan membuat aplikasi mendapatkan beban tambahan. Misalnya, diperlukannya suatu kolom berisi formula tertentu ketika menggunakan Excel sebagai aplikasi interface.


Contoh text file, schema.ini, dan hasil koneksi

Data menggunakan locale setting English. Hasil menggunakan locale setting Indonesia.
    Data text file disediakan oleh Pak Him Mah dengan pengubahan beberapa kolom agar lebih mudah untuk dipelajari.
  1. Text File dengan kondisi ideal
    • Data
    • File schema.ini
        [bln06.txt]
        Format=TabDelimited
        ColNameHeader=FALSE
        DateTimeFormat=yyyy-mm-dd
        DecimalSymbol=.
        Col1=RECNO integer
        Col2=INVNO Char Width 17
        Col3=CUSTID Char Width 3
        Col4=ACCID Char Width 10
        Col5=INVDATE Date
        Col6=AMOUNT float

    • Hasil koneksi

    • Keterangan
      Meskipun locale setting antara sistem yang memproduksi text file dengan hasil koneksi data berbeda, seluruh konversi nilai berjalan dengan baik.

  2. Text File hasil report suatu sistem aplikasi
    • Data

    • File schema.ini
        [bln06.txt]
        Format=TabDelimited
        ColNameHeader=TRUE
        DateTimeFormat=dd/mm/yyyy
        DecimalSymbol=.
        Col1=RECNO Integer
        Col2=INVNO Char Width 17
        Col3=CUSTID Char Width 3
        Col4=DUEDATE Char Width 8
        Col5=INVDATE Date
        Col6=AMOUNT float

    • Hasil koneksi

    • Keterangan
      Data dengan bilangan yang membawa pemisah ribuan membuat hasil konversi menjadi tidak sesuai. Hal ini tampak pada kolom Amount di tabel hasil koneksi data. Perbedaan format tanggal antara kolom DueDate dengan InvDate termasuk salah satu hal yang harus diperlakukan khusus ketika kolom DueDate juga akan ditampilkan sebagai data tanggal yang ber-type datetime. Data seperti ini membutuhkan perlakuan lebih melalui sebuah proses yang bisa disusun sebagai proses tambahan dalam query di sisi data provider maupun proses lanjutan terhadap tabel hasil koneksi di aplikasi interface.


Closing :

Koneksi data ke text file harus memperhitungkan format bilangan yang ada dalam text file tersebut, untuk meminimalisasi kemungkinan kesalahan hasil yang terpengaruh oleh locale setting dengan tanda pemisah desimal yang berbeda dengan yang digunakan oleh text file.

Kelanjutannya ada pada coretan ke-2 dari 4 coretan tentang koneksi data ke text file, yaitu mempersiapkan schema.ini dan membuat DSN baru jika memilih menggunakan Microsoft Text ODBC.


File(s) :

Seluruh coretan dengan seri Koneksi data ke TextFile menggunakan file :

Unzip flatfile_datasource.zip ke root directory drive E:


Coretan terkait :



Tidak ada komentar:

Posting Komentar