Handout SIF306 BI Praktikum BI Lab 3 Mengakses data dari file teks tidak terstruktur dengan Data Integration Pentaho

Business Intelligence
Modul Praktikum

File Teks sebagai data Input pada Kettle Pentaho Data
Integration
Topik
Membaca file teks tidak terstruktur sebagai data masukan.

Tujuan
Setelah menyelesaikan praktikum ini, mahasiswa diharapkan mampu:
1. Mampu menggunakan komponen step Text file input untuk membaca file
teks tidak terstruktur.
2. Mampu menggunakan step Modified Java Script Value (yang ada pada
Grup Scripting) untuk mengolah data dari file teks tidak terstruktur dengan
menambahkan field pada data.
3. Mampu menggunakan step Regex Evaluation melakukan evaluasi
menggunakan ekspresi regular atau regular expression (regex) terhadap data
yang masuk, serta melakukan split data.
4. Mampu menggunakan step Row denormaliser untuk merubah kolom
menjadi baris.
5. Mampu menggunakan step Select values untuk melakukan seleksi terhadap

field (menentukan field tertentu) yang akan diloloskan.

Alat dan Bahan



Komputer dengan Pentaho Data Integration terinstall
Pentaho Data Integration dapat diperoleh di: http://community.pentaho.com/

Rangkuman/Teori
[Menjelaskan step (job entry) Text file input untuk membaca file teks yang berisi data
tidak terstruktur, step Modified Java Script Value , step Regex Evaluation, step Row
denormalizer, step Select values]

Step Text File Input untuk Membaca File Teks dengan Data Tidak
Terstruktur
Contoh file teks yang berisi data tidak terstruktur:

Step Text File Input merupakan step yang berada dalam grup Input pada suatu
Transformation, digunakan untuk membaca isi file teks yang digunakan sebagai

input pada suatu transformation. Step text file input juga bisa digunakan untuk
membaca file teks CSV. Step Text File Input hanya ada pada lingkungan kerja
Transformation.

Simbol:
Properties Text File Input:

Terdapat beberapa tab pada properties Text File Input, yaitu; File, Content, Error
Handling, Filters, Fields, dan Additional output fields.
Step Name: Untuk memberikan nama pada step.
Tab File (lihat gambar di atas)
Berikut adalah beberapa item yang sering di-set pada tab file:
File or Directory
dibuka.

: menentukan nama file dan lokasi file teks yang akan

Tekan tombol

untuk mencari file teks yang ingin dibuka,


tekan tombol
untuk memasukkan file yang kita pilih (melalui
browse) ke dalam daftar selected files.
Selected Files
Tombol

: Berisi daftar file yang sudah dipilih untuk dibuka.
digunakan untuk menghapus file yang sedang dipilih

pada daftar. Tombol
digunakan untuk mengubah atau
mengganti file yang sedang dipilih pada daftar.

Tab Content

Berikut adalah beberapa item yang sering di-set pada tab content:
Filetype

: menentukan tipe file yanga akan dibuka.


CSV: untuk membuka file teks tipe CSV (comma-separated values),
file teks yang berisi teks dengan coma atau titik-koma/semicolon
(;) sebagai pemisah kolom.
Fixed: untuk membuka file teks yang berisi teks dengan lebar kolom
fixed
Untuk file teks dengan data tidak terstruktur gunakan Filetype CSV.
Header

: Menentukan baris header pada data isi file teks.
Karena file teks tidak terstruktur tidak memiliki header data maka
un-check pada header.
No Empty Row
: Menentukan apakah tidak ada baris kosong pada isi file teks.
Karena file teks tidak terstruktur memiliki baris kosong maka uncheck pada No Empty Row.

Tab Fields

Untuk mendapatkan daftar fields tekan tombol Get Fields


Isi dengan angka 0 untuk Number of sample lines, agar seluruh lines dijadikan
sample, kemudian tekan tombol OK. Form yang tampil adalah hasil scan dari
sample data pada file teks, yang akan mendapatkan 1 buah field yaitu Field1
dengan tipe String.
Setelah menekan tombol close maka Field1 akan masuk dalam daftar Fields.
Tekan tombol Preview rows pada properties Tab Fields, sehingga kita dapat
melihat isi Field1 tersebut:

Kel. 1

Kel. 2

Kel. 3

Kel. 4

Kel. 5

Perhatikan data preview rows tersebut, nama field
adalah Field1 dan terlihat data mengelompok

dengan pemisah untuk setiap kelompok.
Langkah selanjutnya yang harus kita lakukan adalah
membuat penanda untuk setiap kelompok, sehingga
setiap kelompok akan memiliki Field yang berisi
nomor kelompoknya.
Untuk itu kita perlu pemrograman, yang dalam hal ini
akan digunakan Modified Java Script Value

Step Modifed Java Script Value untuk Menambahkan Field sebagai
Penanda (Key)
Step Modified Java Script Value merupakan step yang berada dalam grup Script
pada suatu Transformation, digunakan untuk memodifikasi data yang masuk ke
step ini secara pemrograman. Contohnya, kita akan menambahkan field pada data
yang masuk ke step ini, dan mengisi field tersebut sesuai nomor kelompok data.
Berikut adalah isi step pada transformation yang akan digunakan:

Step Modified Java
Transformation.

Script


Value

Simbol:
Properties Modified Java Script Value:

hanya

ada

pada

lingkungan

kerja

Step Name : Untuk memberikan nama pada step.
Script 1 : Tempat menulis script program.
Fields
: Tempat untuk membuat field baru yang akan ditambahkan pada data.

Misal kita ingin membuat field baru dengan nama Kelompok dan tipe integer,
maka isi pada fields;

Setelah kita membuat field Kelompok, selanjutnya kita ingin menghitung baris
pada data yang masuk ke step Modified Java Script Value ini, maka kita bisa
gunakan fungsi spesial yang terdapat pada Transform Functions  Special
Functions  GetProcessCount(Var)
Untuk menghitung baris gunakan GetProcessCount(‘r’), Var diganti dengan ‘r’,
yang artinya adalah row.
Misal kita ingin mengisi Field Kelompok dengan nomor urut baris data, maka
setelah kita membuat field Kelompok, tulis pada Script 1 seperti berikut:
var Kelompok;
Kelompok=getProcessCount('r');
Untuk melihat hasil dari script tersebut tutup properties modified java script
value, kemudian click kanan pada step modified java script value  Preview 
Click tombol Quick Launch pada form yang tampil, sehingga akan tampil output
dari script seperti berikut:
Perhatikan output tersebut, terlihat bahwa nomor urut baris data terisi pada field
kelompok.
Misal kita ingin mengisi field kelompok sesuai dengan nomor kelompok seperti yang

sudah dibahas di atas, maka mulai dari baris pertama data Field Kelompok akan
bernilai 1, jika ditemukan nilai Field1 = null maka Kelompok akan di tambah 1.
Untuk itu maka Script 1 harus diubah menjadi:
var Kelompok;
if(getProcessCount('r')==1) {
Kelompok = 1;
}
if(Field1==null) {
Kelompok++;

}
Maka jika kita lakukan preview click kanan pada step
modified java script value  Preview  Click tombol
Quick Launch, akan tampil seperti berikut:
Pada output preview
terlihat bahwa
sekarang field
Kelompok berisi nilai
yang sesuai dengan
nomor kelompoknya.

Perhatikan
preview
output dari modified
java script value,
yaitu; terdapat 2 field
pada output (Field1
dan Kelompok).
Field1
Propinsi: Kalimantan Barat
Ibu kota: Pontianak
Populasi: 516737

Kelompok
1
1
1

Padahal Propinsi seharusnya merupakan field dengan nilai Kalimantan Barat,
demikian juga dengan yang lainnya (seperti: Ibu Kota, Populasi, dsb).
Untuk itu maka kita perlu memisahkan nilai pada Field1, menjadi 2 Field (Nama

Field dan Nilai):
Nama
Nilai
Field
Propinsi
Kalimantan Barat
Ibu Kota
Pontianak
Populasi
516737
Untuk melakukan pemecahan field tersebut maka diperlukan script yang dapat
mendeteksi karakter yang menjadi pemisah. Perhatikan data berikut;
Field1
Propinsi: Kalimantan Barat

Nama Field
Propinsi

Ibu kota: Pontianak
Populasi: 516737

Ibu Kota
Populasi

Nilai
Kalimantan
Barat
Pontianak
516737

Karakter pemisahnya adalah karakter :
Untuk itu diperlukan script yang dapat melakukan evaluasi terhadap karakter : dan
memisahkan nilai yang di kiri dan kanan karakter :

Step Regex Evaluation untuk Split Nilai suatu Field
Step Regex Evaluation merupakan step yang berada dalam grup Script pada
suatu Transformation, digunakan untuk melakukan evaluasi menggunakan
ekspresi regular atau regular expression (regex) terhadap data yang masuk
ke step ini.
Hasil evaluasi terhadap regular expression tersebut kemudian bisa digunakan untuk
memodifikasi data yang masuk ke step ini secara pemrograman. Contohnya, kita
akan memecah (split) nilai suatu field pada data yang masuk ke step ini, dan
menjadikannya sebagai nilai untuk 2 field baru.

Berikut adalah isi step pada transformation yang akan digunakan:

Step Regex Evaluation hanya ada pada lingkungan kerja Transformation.

Simbol:

Properties Regex Evaluation:

Step Name

: Untuk memberikan nama pada step.

Field to evaluate : Nama field dari input yang akan dievaluasi.
Create fields for capture groups
: checked agar dibuatkan field dari hasil
evaluasi sebagai penampung hasil split.
Regular expression
: Ekpresi yang akan dicari dievaluasi pada field. Tuliskan
pola ini (.+):(.+)
Pola ekspresi yang digunakan pada disini memakai aturan pola
dan simbol dari RegExp Java Script, seperti;
(
)
.
*
+

:
:
:
:
:

start capture group
end capture group
any character
any number
one or more expression

Contoh:
(.+) : artinya, ambil setiap karakter dan beberapa ekspresi
selanjutnya.
(.+):(.+) : artinya, ambil setiap karakter dan beberapa ekspresi
selanjutnya yang berada di sebelah kiri simbol : dan
ambil setiap karakter dan beberapa ekspresi selanjutnya

yang berada di sebelah kanan simbol :
diambil).

(simbol : tidak

Capture Group Fields : Berisi daftar nama field yang akan menampung ekspresi
hasil dari evaluasi dengan pola regex yang kita tuliskan pada
isian regular expression.
Dalam hal ini kita membuat field Nama Field untuk
menampung nilai yang di sebelah kiri simbol : dan field Nilai
untuk menampung nilai yang di seblah kiri simbol :
Jika kita lakukan preview click kanan pada step Regex Evaluation  Preview 
Click tombol Quick Launch, akan tampil seperti berikut:

Perhatikan hasil preview di atas, sekarang data memiliki 4 field, yaitu; Field1,
Kelompok, Nama Field, Nilai.
Selanjutnya kita akan membuat baris data dengan fields; Propinsi, Ibu Kota, dan
Populasi. Sedangkan field tersebut merupakan isi dari field Nama Field, dan nilai
untuk field tersebut berada pada field Nilai. Dengan demikian maka kita harus

mengubah kolom menjadi baris, untuk mengubah kolom menjadi baris bisa
digunakan step Row Denormaliser.

Step Row Denormaliser untuk Mengubah Baris Menjadi Kolom
Step Row Denormaliser merupakan step yang berada dalam grup Transform
pada suatu Transformation, digunakan untuk mengubah kolom menjadi baris
terhadap data yang masuk ke step ini.
Berikut adalah isi step pada transformation yang akan digunakan:

Step Row Denormaliser hanya ada pada lingkungan kerja Transformation.

Simbol:
Properties Row Denormaliser:

Step Name

: Untuk memberikan nama pada step.

The key field

: Untuk menentukan field yang isinya akan menjadi kunci
pencocokan dalam pengambilan nilai. (isi dari field yang

dimasukkan dalam key field ini akan menjadi nilai yang akan
dicocokkan dengan key value pada target fields).
Pada contoh kita menggunakan field Nama Field sebagai key
field, yang berisi nilai diantaranya; Propinsi, Ibu kota, Populasi.
Group field

: Untuk menentukan field yang berisi nomor group. (pada contoh
group field adalah field Kelompok)

Target fields

: Untuk menentukan field baru (kolom) yang akan dibuat dari baris.
Target fieldname : Untuk membuat nama field yang akan
ditampilkan.
Pada contoh kita akan membuat field dengan
nama; Propinsi, Ibu Kota, dan Populasi.
Value fieldname : Diisi dengan field yang akan digunakan
nilainya sebagai isi pada tiap field baru (kolom
menjadi baris).
Pada contoh field yang akan digunakan isinya
adalah field Nilai.
Key value

:

Diisi dengan kata-kata yang akan dicari
kesesuaiannya dengan nilai yang ada pada field
yang ditulis pada the key field.
Pada contoh kita menggunakan kata:
 Propinsi, yang nantinya kata tersebut akan
dicari pada the key field (Nama Field),
kemudian nilai Value fieldname (field Nilai)
pada baris yang sama akan diambil untuk
diisikan pada field baru (Propinsi).
 Ibu kota, yang nantinya kata-kata tersebut
akan dicari pada the key field (Nama
Field), kemudian nilai Value fieldname (field
Nilai) pada baris yang sama akan diambil
untuk diisikan pada field baru (Ibu Kota).
 Populasi, yang nantinya kata-kata tersebut
akan dicari pada the key field (Nama
Field), kemudian nilai Value fieldname (field
Nilai) pada baris yang sama akan diambil
untuk diisikan pada field baru (Populasi).

Jika kita lakukan preview click kanan pada step Row Denormaliser  Preview 
Click tombol Quick Launch, akan tampil seperti berikut:

Perhatikan hasil dari preview pada step Row Denormaliser, sudah tidak ada field
Nama Field dan field Nilai, terdapat 3 field baru (Propinsi, Ibu Kota, Populasi) yang
memiliki isi yang didapat dari baris pada field Nilai.
Yang kita inginkan adalah field Propinsi, Ibu Kota, dan Populasi, tapi masih ada field
lain yang tidak diperlukan. Untuk melakukan seleksi atau memilih field tertentu
yang akan diloloskan, kita gunakan step Select values.

Step Select Values untuk Menyeleksi Field
Step Select values merupakan step yang berada dalam grup Transform pada
suatu Transformation, digunakan untuk menyeleksi atau memilih field yang
akan diloloskan sebagai keluarannya.
Berikut adalah isi step pada transformation yang akan digunakan:

Step Select values hanya ada pada lingkungan kerja Transformation.

Simbol:
Properties Select values:

Step Name

: Untuk memberikan nama pada step.

Fields

: Untuk menentukan field mana saja yang akan diloloskan.
Fieldname : Untuk menentukan nama field mana saja yang
akan diloloskan
Rename to : Untuk merubah nama field (jika diinginkan)

Jika kita lakukan preview click kanan pada step Select values  Preview  Click
tombol Quick Launch, akan tampil seperti berikut:

Praktek
Pada bagian ini, akan dibahas mengenai praktek yang akan dilakukan.

Praktek 1: Mengakses data dari file teks tipe CSV
Ikuti langkah-langkah berikut ini untuk membuat transformation yang akan
membaca data nama dari file teks tipe CSV daftar nama.csv!
Langkah 1:
Jalankan spoon.bat
Langkah 2:
Buat transformation baru, file  new  transformation.
Langkah 3:
Click & Drag (atau shift+double click) Text file input dari
entries Input ke ruang kerja
Langkah 4:
Double Click pada step Text file input, untuk membuka
properties
Langkah 5:
Pada properties step name, isikan nama step (=daftar nama
anggota).
Langkah 6:
Click tombol browse untuk mencari file Daftar Nama
Anggota.txt.
Langkah 7:
Karena file Daftar Nama Anggota.txt merupakan file teks
tidak terstruktur, lakukan pembacaan data dari file teks tersebut
dengan menggunakan beberapa step (seperti; Modified Java Script
Value, Reges Evaluation, Row Denormaliser, dan Select values)
agar data keluaran memiliki baris data dengan field; Nama, Jenis
Kelamin, dan Tanggal Lahir.

Analisa Hasil Praktek
Berdasarkan praktek yang telah Anda lakukan, jawablah beberapa pertanyaan
berikut ini:
1. …?

Tugas
1. ….!