Mengatur Format Jam/Tanggal di Kettle

Pendahuluan

Pada saat kita bekerja menangani data, maka hampir dipastikan kita tidak akan terhindar dari pengolahan data tanggal  dan jam (date/time) serta berbagai formatnya. Konversi format data mungkin adalah yang paling sering dilakukan karena antara berbagai sumber data kadang mempunyai restriksi khusus untuk menangani jam/tanggal.

Beruntung jika kita bekerja di Kettle maka pengolahan format jam/tanggal ini dapat dilakukan di sebagian besar step transformasi Kettle dari meta data editor yang menyertainya.

Salah satu contoh step editor dengan pengolahan meta data adalah step CSV Input. Dalam gambar di bawah terlihat kita dapat memasukkan kode format tanggal dan jam untuk field tgl_pendirian di kolom Format.



Kode Format

Kode-kode format yang digunakan di Kettle sama dengan kode format yang digunakan oleh Java. Berikut adalah tabel referensi kode-kode tersebut yang diambil dari http://java.sun.com/j2se/1.5.0/docs/api/java/text/SimpleDateFormat.html.

 Kode  Keterangan Tampilan
 Contoh
 G  Sebelum / sesudah masehi
 Teks  AD
 y  Tahun  Tahun  1996; 96
 M  Bulan
 Bulan  July; Jul; 07
 w  Minggu dalam tahun
 Angka  27
 W  Minggu dalam bulan
 Angka  2
 D  Hari dalam tahun
 Angka  189
 d  Hari dalam bulan
 Angka  10
 F  Hari dalam minggu dalam bulan
 Angka
 2
 E  Hari dalam minggu
 Teks  Tuesday; Tue
 a  Penanda AM/PM
 Teks  PM
 H  Jam dalam hari (0-23)
 Angka  0
 k  Jam dalam hari (1-24)
 Angka  24
 K  Jam dalam format am / pm (0-11)
 Angka
 0
 h  Jam dalam format am / pm (1-12)
 Angka
 12
 m  Menit dalam jam
 Angka  30
 s  Detik dalam menit
 Angka  55
 S  Milidetik
 Angka  978
 z  Zona waktu (Time zone)  General time zone
 Pacific Standard Time; PST; GMT-08:00
 Z  Zona waktu (Time zone)
 RFC 822 time zone
 -0800

Catatan :
  • Kode format ini penulisannya biasanya disesuaikan dengan jumlah karakter / angka yang diwakili. Misalkan untuk nilai 1 January 2008 maka format yang cocok adalah d MMM yyyy. Untuk bulan, dengan maksimal tiga karakter maka sudah mewakili penulisan penuh.

Contoh Penggunaan

  • Sebagai contoh, mari kita mengambil satu file csv cabang.csv yang menggunakan pemisah titik koma dengan data sebagai berikut. File ini bisa di-download di akhir artikel ini.

    "kode_cabang";"kode_cabang";"nama_cabang";"kode_kota";"nama_kota";"alokasi_operator";"jumlah_mesin";"tgl_pendirian"
    "CABANG-001";"001";"PHI Mini Market - Lhokseumawe 01";"KOTA-003";"Lhokseumawe";7;2;5. Dec. 1990
    "CABANG-002";"002";"PHI Mini Market - Bau-Bau 01";"KOTA-083";"Bau-Bau";7;2;15. Jan. 1991
    "CABANG-003";"003";"PHI Mini Market - Bogor 01";"KOTA-039";"Bogor";8;2;14. Feb. 1991
    "CABANG-004";"004";"PHI Mini Market - Medan 01";"KOTA-007";"Medan";5;1;6. Apr. 1991
    "CABANG-005";"005";"PHI Mini Market - Bogor 02";"KOTA-039";"Bogor";8;2;21. May. 1991
    "CABANG-006";"006";"PHI Mini Market - Sukabumi 01";"KOTA-043";"Sukabumi";7;2;9. Jul. 1991
    "CABANG-007";"007";"PHI Mini Market - Tegal 01";"KOTA-055";"Tegal";7;2;5. Sep. 1991
    "CABANG-008";"008";"PHI Mini Market - Jakarta Timur 01";"KOTA-048";"Jakarta Timur";8;2;20. Oct. 1991
    "CABANG-009";"009";"PHI Mini Market - Pasuruan 01";"KOTA-062";"Pasuruan";8;2;26. Nov. 1991
    "CABANG-010";"010";"PHI Mini Market - Langsa 01";"KOTA-002";"Langsa";6;2;22. Jan. 1992
  • Terlihat bahwa field terakhir yaitu tgl_pendirian memiliki format tanggal dengan hari dan bulan yang diakhiri tanda titik (contoh : 9. Jul. 1991). Untuk diambil dan dikenali sebagai tipe data tanggal di Kettle maka pada saat file ini dibaca dan diisi dengan tipe tanggal, kita harus menyusun format yang bersesuaian dengan kode format yang sesuai.
  • Untuk kasus ini, maka contoh format yang bersesuaian adalah dd. MMM. yyyy, perhatikan penggunaan titik di dua posisi yang disesuaikan dengan data kita.
  • Setelah kita tahu dengan definisi formatnya, masukkan step bertipe CSV File Input ke dalam lembaran kerja kita dengan konfigurasi berikut :
    • Delimiter : ;
    • Enclosure : "
    • Format untuk tgl_pendirian adalah dd. MMM. yyyy dengan tipe Date
  • Cobalah melakukan data preview pada step ini. Jika kita salah memasukkan format maka field tgl_pendirian tidak akan memiliki nilai.
  • Jika kita baca atau lempar ke step lain maka field ini bisa diolah selayaknya tipe data tanggal, contohnya dengan menggunakan step Modified Javascript Value. Sebagai contoh saya membuat step [Olah Tanggal] dengan menambahkan 1 field tgl_minggu_depan yang merupakan 1 minggu dari nilai tgl_pendirian yang dibaca. Detil kodenya adalah sebagai berikut :

    var tgl_minggu_depan = new Date();

    tgl_minggu_depan = dateAdd(tgl_pendirian, "d", 7);
  • Dan setelah itu kita tambahkan satu step [Ubah Format Tanggal] yang bertipe Select Values. Di bagian tab meta-nya ubah format tgl_minggu_depan menjadi dd-MM-yyyy.



  • Flow dari transformation kita akan tampak sebagai berikut :



  • Cobalah melakukan preview data pada step [Ubah Format Tanggal]. Jika semua berjalan baik maka akan tampak seperti gambar berikut.


  • Selesai

Penutup

Terlihat bahwa pengolahan tanggal di Kettle sangat mudah, dengan mengkombinasikan berbagai step antara lain step javascript dan select values - yang memiliki editor meta data - maka kita bisa mengkonversi format tanggal untuk berbagai keperluan kita.

Contoh-contoh dalam artikel ini dapat didownload dari attachment di bawah ini.

Info Lebih Lanjut

Jika Anda masih mengalami kesulitan dan ingin informasi lebih lanjut silahkan gabung ke user group kita di http://groups.google.com/group/pentaho-id atau di http://pentaho-id.ning.com.
ċ
baca_cabang.ktr
(7k)
Feris Thia,
Sep 9, 2008, 2:03 PM
ċ
cabang.csv
(1k)
Feris Thia,
Sep 9, 2008, 2:02 PM
Comments