• Tidak ada hasil yang ditemukan

ALGORITMA UNTUK EKSTRAKSI TABEL HTML DI WEB

N/A
N/A
Protected

Academic year: 2021

Membagikan "ALGORITMA UNTUK EKSTRAKSI TABEL HTML DI WEB"

Copied!
6
0
0

Teks penuh

(1)

496

ALGORITMA UNTUK EKSTRAKSI TABEL HTML DI WEB

Detty Purnamasari1, I Wayan Simri Wicaksana2, Syamsi Ruhama 3

1,2

Teknologi Informasi, 3 Sistem Informasi, 1,2 Fakultas Pascasarjana, 3 Fakultas Ilmu Komputer & TI, Universitas Gunadarma

1,2,3

Jl. Margonda Raya No. 100 Pondok Cina Depok

{1 detty, 2 iwayan, 3 susi22}@staff.gunadarma.ac.id

Abstrak

Data di web dapat tersedia dalam format data terstruktur, semi struktur dan tidak terstruktur . Salah satu bentuk data terstruktur yang kerap disajikan pada halaman web adalah dalam bentuk tabel berbasis HTML. Pada keperluan bisnis kerap kali perlu untuk mengambil data dari berbagai sumber untuk digabungkan atau diproses lebih lanjut. Permasalahan yang timbul adalah bagaimana mengambil data dari tabel tersebut secara otomatis untuk kemudian dapat dilakukan proses lebih lanjut, seperti mengambil bagian yang dianggap penting, dan menggabungkan tabel dari halaman web yang lain. Penelitian yang dilakukan adalah mengembangkan algoritma untuk ekstraksi tiga bentuk tabel, yaitu tabel bentuk standar, tabel bentuk penggabungan baris (join row), dan tabel bentuk penggabungan cell/kolom (join coloum) dan memberikan ilustrasi dari algoritma yang dikembangkan.

Kata kunci : ekstraksi tabel, join column, join row, website

1. Pendahuluan

Data di web yang disajikan dalam bentuk tabel berbasis HTML, merupakan data terstruktur sehingga isi tabel tersebut dapat diambil datanya untuk dipergunakan untuk pengolahan lebih lanjut. Saat ini, sudah banyak tool yang dapat digunakan untuk melakukan ekstraksi tabel di web secara otomatis, salah satunya adalah web page table extractor dari Advanced Neural Network Investing/ANNI [7] yang melakukan ekstraksi tabel dalam format HTML diubah ke bentuk dokumen HTML yang baru atau menjadi bentuk file csv atau menjadi teks dasar.

Pada penelitian ini akan mengembangkan algoritma untuk melakukan ekstraksi dari tiga bentuk tabel, yaitu : tabel bentuk standar, tabel bentuk penggabungan baris (join row), dan tabel bentuk penggabungan cell/kolom (join coloum).

Penelitian untuk menemukan algoritma dan memperbaiki algoritma ekstraksi tabel di web sudah banyak dilakukan.

Penelitian untuk ekstraksi data pada HTML pernah dilakukan oleh Craven [1] dan Gatterbauer et.al [2] yang melakukan ekstraksi tabel di web. Penelitian yang dilakukan oleh Gruser [3] membuat tool graphical interfaces untuk ekstrak data di web, sedangkan Lerman et.al. [5] melakukan penelitian untuk ekstrak data dalam bentuk list dan tabel dari sumber web. Misalkan pada website penjualan

online, informasi tentang suatu barang seperti spesifikasi dan harga barang disajikan dalam bentuk kalimat atau baris yang dianggap mudah untuk dibaca bagi pengunjungnya, sedangkan komputer tidak mengerti data mana yang dapat disebut sebagai class, property, instance, dan sebagainya. Unsupervised learning Algorithms untuk memperoleh struktur dari list dan tabel yang ada di web dengan mengacu pada format halaman dan data yang ada didalamnya. Dalam algoritma Lerman et.al. [5] ini dibutuhkan analisa dari beberapa halaman web sebelum akhirnya dapat melakukan ekstrak data menjadi kolom dan baris. Padahal bisa saja pada web hanya ada 1 (satu) halaman, dan dari 1 halaman tersebut butuhkan ekstrak data.

Representasi pohon berdasarkan Document Object Model (DOM) yang merupakan penyusun suatu halaman web juga digunakan oleh peneliti untuk melakukan ekstraksi tabel yang ada di web, salah satunya digunakan oleh Lin et.al.[6].

Penelitian yang dilakukan oleh Gultom et.al [4] untuk ekstrak tabel di web dengan menggunakan aplikasi Xtractors, dimana aplikasi ini selain digunakan untuk mengekstrak juga untuk melakukan mashup. Aplikasi Xtractors mempunyai kemampuan untuk menterjemahkan secara otomatis Document Object Model (DOM) tree yang ada di HTML menjadi bentuk tabel yang sudah diekstrak.

(2)

497

Algoritma dibuat menggunakan teknik rekursif dengan GUI yang user-friendly.

Paper ini terbagi dalam empat bagian, pada bagian pertama merupakan pendahuluan yang berisi definisi masalah dan melihat beberapa literatur yang membahas topik sejenis. Bagian kedua akan menguraikan algoritma yang dikembangkan, dan bagian ketiga adalah ilustrasi terhadap tabel dengan menggunakan algoritma yang telah dikembangkan. Bagian terakhir merupakan penutup yang berisi kesimpulan.

2. Rancangan Algoritma Ekstraksi Tabel Digunakan tiga bentuk tabel yang digunakan untuk pengembangan algoritma di penelitian ini, seperti terlihat pada tabel 1, 2, dan 3.

Tabel 1. Bentuk 1 (Standar)

Tabel 1 merupakan tabel standar dengan susunan baris dan kolom membentuk irisan satu per satu menjadi cell.

Tabel 2. Tabel Bentuk 2 (Join Row)

Tabel 2 adalah tabel yang sudah dilakukan join antara baris. Pada contoh diatas dilakukan join terhadap baris yang ke-2 dan ke-3 pada kolom 3.

Tabel 3. Tabel Bentuk 3(Join Column )

Pada tabel 3 dilakukan join cell/kolom, contoh tabel diatas dilakukan join antara kolom 3 dan kolom 4 pada baris 3.

Berikut ini adalah source code dari tiga bentuk tabel yang dirancang dengan menggunakan format

HTML. Source code pada gambar 1 merupakan source code HTML untuk tabel bentuk standar dengan baris dan kolom tersusun satu per satu.

Gambar 1. Source Code Tabel Bentuk 1 Pada gambar 2 memperlihatkan source code untuk bentuk tabel yang sudah dilakukan join baris.

(3)

498

Gambar 3. Source Code Tabel Bentuk 3 Gambar 3 merupakan source code HTML untuk bentuk tabel yang mengalami join kolom.

Kemudian dibuat pohon class logika yang bersumber dari source code HTML dari ketiga bentuk tabel tersebut.

Gambar 5. Pohon Tabel Bentuk 1

Pohon tabel bentuk 1 (gambar 5) terdiri dari 3 tingkatan, yaitu : <table>...</table>” sebagai root yang menjadi satu tabel, ”Row ke-1 s/d ke-4 : <tr>...</tr>” adalah branch yang akan menyusun banyaknya baris pada tabel, dan ”cell : <td>...</td>” sebagai leaf yang membentuk baris menjadi kolom-kolom.

Gambar 6. Pohon Tabel Bentuk 2

Gambar 6 memperlihatkan pohon untuk tabel bentuk 2 yang dilakukan join pada barisnya (join row), dengan susunan tingkatan pohon yang sama pada pohon tabel bentuk 1 (standar). Jika dilakukan join pada satu baris di tabel untuk baris ke-2 dan ke-3, maka cell pada baris ke-3 akan digabungkan dengan cell yang ada di baris ke-2, sehingga jumlah cell pada Row ke-3 jumlahnya akan berkurang satu (-1).

Gambar 7. Pohon Tabel Bentuk 3

Pohon tabel bentuk 3 (gambar 7) adalah join pada kolom, pohon ini juga mempunyai susunan tingkatan pohon yang sama dengan tabel bentuk 1 (standar) yaitu : tabel sebagai root, row sebagai branch, dan cell sebagai leaf. Jika dilakukan join pada kolom ke-3 dan ke-4 yang berada pada baris ke-3, maka cell ke-4 yang ada di baris ke-3 akan digabungkan dengan cell ke-3 yang ada dibaris yang sama, sehingga jumlah cell pada Row ke-3 jumlahnya berkurang satu (-1).

Melihat dari karakter tabel dan tree model yang dibangun dari tiga tabel, diasumsikan row ke-1 adalah berisi property dari tabel yang bersangkutan, dimana cell setiap kolom di row ke-1 merupakan detail property yang bersangkutan. Sedangkan cell pada row yang berikutnya merupakan data yang bersesuaian dengan judul property pada kolom di atasnya. Permasalahan adalah untuk mengatasi row dan kolom yang digabung dan cell yang berisi tabel.

Algoritma ekstraksi untuk tiga bentuk tabel yang dikembangkan mempunyai aturan sebagai berikut :

1. Jika tag pertama yang ditemukan adalah <html> maka dapat dilakukan ekstraksi.

2. Semua tag, dan string sebelum tag <table> diabaikan karena bukan bagian dari tabel. 3. Tag dan string yang ditemukan setelah tag

<table> dan sebelum tag </table> merupakan penyusun tabel.

4. Tag dan string setelah tag </table> diabaikan karena bukan lagi bagian dari tabel.

5. Baris pada tabel diawali dengan tag <tr> dan diakhiri dengan </tr>, dan jumlah baris yang menyusun tabel tergantung dari jumlah tag <tr> ... </tr> yang ada didalam tag <table> ... </table>

(4)

499

6. Tag <tr> ... </tr> yang pertama (row pertama) terdiri dari beberapa cell dimana setiap cell adalah nama property dari tabel.

7. Tag <tr> ... </tr> kedua dan selanjutnya merupakan isi atau data dari tabel.

8. Jumlah row di tentukan dari banyaknya <tr> ... </tr>, tetapi bisa terjadi penggabungan row sehingga jumlah row pada sebuah kolom bisa berbeda (lihat aturan 11)

9. Tag <td> berada didalam tag <tr> yang menandakan kolom yang menyusun baris tersebut, dan akan diakhiri dengan tag </td>, isi dari <td> ... </td> disebut cell. Jumlah kolom pada satu baris ditentukan dari jumlah tag <td> ... </td> yang ada didalam tag <tr> ...</tr>, kecuali ditemukan kondisi seperti aturan 10.

10. Jika diantara <td> ... </td> ditemukan variabel ”colspan” berarti beberapa kolom digabungkan menjadi 1, sehingga jumlah kolom akan berkurang sebanyak nilai colspan-1.

11. Jika diantara <td> ... </td> ditemukan variabel rowspan berarti beberapa row digabungkan menjadi 1, sehingga jumlah baris akan berkurang sebanyak nilai rowspan-1

Dengan aturan pada ekstraksi tabel diatas, maka berikut ini adalah algoritma ekstraksi untuk tiga bentuk tabel yang dikembangkan :

Algoritma Ekstraksi Tabel Dasar Input

Tabel HTML;

Proses

1. Baca tag <table> ... tag </table>;

2. Hitung tag <tr>....</tr> di tag <table> ... </table>, jumlah <tr>....</tr> = R; #jumlah baris dalam tabel 3. Hitung tag <td> ... </td> di tag <tr> ... </tr> yang

pertama, jumlah <td> ... </td> = C; #jumlah kolom dalam baris

4. {Tag <td> ... </td>}<tr> ... </tr>1 = {nama property};

5. Tag <tr> ... </tr>m...R;

6. Tag <td> ... </td>m,n..C

7. Jika colspan (cs) > 1 maka C = C – (cs -1) ; 8. Jika colspan (cs) > 1 maka cellm,n = cellm,n U

...U cellm,n+cs-1;

9. Jika rowspan (rs) > 1 maka R = R – (rs-1) ; 10. Jika rowspan (rs) > 1 maka cellm,n = cellm,n U

...U cellm+rs-1,n; Output Data

{Properties} = {cell1,1..C};

Record = Individu = {cellm,1..C};

3. Illustrasi

Mengacu kepada algoritma data ekstraksi akan didemonstrasikan untuk mengekstrak contoh tabel pada tabel 4.

Tabel 4. Tabel Ilustrasi Join Row & Join Kolom

Berikut ini adalah HTML dari tabel ilustrasi join row dan kolom dengan langkah-langkah algoritma ekstraksi tabel yang dikembangkan.

Gambar 8. HTML Tabel Ilustrasi (a)

Pada gambar 8 adalah awal HTML dengan dibaca nya tag <html>, kemudian di baca tag <tabel> yang merupakan langkah 1 dari algoritma sebagai awal dari tabel yang akan diekstraksi. Langkah 2 algoritma adalah dibacanya tag <tr> ... </tr> sebagai row, dan pada gambar diatas tag <tr> ... </tr> merupakan row yang ke-1 yang selanjutnya akan dihitung semua tag <tr> ... </tr> yang ada pada tag <table> ... </table>. Kemudian langkah 3 dibaca tag <td> ... </td> sebagai cell dari satu row yang ada didalam tag <tr> ... </tr> yang pertama, dan dihitung jumlahnya. (didapatkan C = 15). Pada tag <tr> ... </tr> yang pertama kali dibaca akan menjadi nama property yang merupakan langkah 4 dari algoritma.

(5)

500

Selanjutnya akan dibaca tag <tr> ... </tr> yang kedua dan ketiga, yang dapat dilihat pada gambar 9 berikut ini.

Gambar 9. HTML Tabel Ilustrasi (b) Gambar 9 terdapat dua tag <tr> ... </tr> yang menjadi row ke-2 dan row ke-3. Dibaca ada kondisi dimana colspan > 1 (cs = 3), maka akan dilakukan penggabungan cell yang ada di row ke-2 sebanyak tiga cell (langkah 7 dan 8 dari algoritma). Selain itu, ditemukan juga kondisi rowspan > 1 (rs = 3), maka akan dilakukan penggabungan satu cell yang ada di row ke-2, row ke-3, dan row ke-4, yang mengakibatkan jumlah cell yang ada di row ke-3 dan row ke-4 berkurang satu (langkah 9 dan 10 dari algoritma).

Tag <tr> ... </tr> yang menandakan row ke-4 dapat dilihat pada gambar 10. Pada row ke-4 ini, jumlah cell berkurang satu karena adanya penggabungan row yang ada di row ke-2.

Pada gambar 11, merupakan tag <tr> ... </tr> untuk row ke-5. Kemudian dibaca tag </table> yang merupakan akhir dari pembacaan tabel dan

adanya tag </html> yang menjadi penutup dari perintah html.

Gambar 10. HTML Tabel Ilustrasi (c)

(6)

501

4. Penutup

Penelitian ini dikembangkan algoritma untuk melakukan ekstraksi pada tiga bentuk tabel, yaitu tabel bentuk standar, tabel bentuk penggabungan baris (join row) dan tabel bentuk penggabungan cell/ kolom (join column).

Selanjutnya, dari algoritma yang dikembangkan ini dapat diujikan untuk berbagai bentuk konfigurasi tabel lainnya, seperti tabel dalam tabel. Aplikasi yang dikembangkan akan bermanfaat untuk otomatisasi pengambilan data terstruktur dari Internet secara langsung

Daftar Pustaka:

[1] Craven, Timothy, C., 2003, HTML Tags as Extraction Cues for Web Page Description Construction, Informing Science Journal, Vol 6

[2] Gatterbauer. Wolfgang, Bohunsky. Paul, Herzog. Marcus, Krupl. Bernhard, Pollak. Bernhard, 2007, Towards

Domain-Independent Information Extraction from Web Tables, Proceedings of the 16th International Conference on World Wide Web, Canada,

pp.71-80

[3] Gruser. Jean-Robert, Raschid. Louiqa, Vidal. Maria Esther, Bright. Laura, 1998, Wrapper Generation for Web Accessible Data Sources, New York, Cooperative Information Systems, 1998. Proceedings. 3rd IFCIS International Conference page 14-23 [4] Gultom, R.A.G, Fitri Sari, R, Budiarjo, B.

2011. Proposing the new Algorithm and Technique Development for Integrating Web Table Extraction and Building a Mashup. Journal of Computer Science 7 (2) : 129-142, ISSN 1549-3636

[5] Lerman, K, Knoblock, C, Minton, S., 2001. Automatic Data Extraction from Lists and Tables in Web Sources. In Proceedings of Automatic Text Extraction and Mining workshop (ATEM-01), IJCAI-01

[6] Lin, J, Wong, J, Nichols, J, Cyper, A. 2009. End-User Programming of Mashups with Vegemite. Proceedings of the 13th

international conference on Intelligent user interfaces pp. 97-106

[7] Web page table extractor,

Gambar

Gambar 3. Source Code Tabel Bentuk 3
Tabel 4. Tabel Ilustrasi Join Row &amp; Join Kolom
Gambar 9. HTML Tabel Ilustrasi (b)

Referensi

Dokumen terkait

Berdasarkan uraian dari permasalahan di atas maka tujuan penelitian ini adalah untuk mengetahui peningkatkan hasil belajar siswa pada materi dimensi tiga melalui

Siswa di MAN 2 Wates Yogyakarta” penelitian ini menjelaskan tentang pengelolaan kegiatan khitobah yang didalamnya terdapat bagaimana proses pelaksanaan kegiatan khitobah

Aktifitas siswa menunjukkan kesungguhan dan kemampuan berpikir dengan menguasai soal-soal prestasi belajar matematis yang diberikan pada siklus I adalah sebesar 68%

Lampiran 17 Hasil pengujian formal dengan spesifikasi tren nilai rata-rata hasil evaluasi mata kuliah pada fakultas setiap tahun. Lampiran 18 Hasil pengujian non formal

Kodisi laba per lembar saham juga menurun dari tahun ke tahun, dari hasil perhitungan tersebut di atas terlihat bahwa kesejahteraan pemegang saham menurun, penurunan ini

Analisis petrografi bertujuan untuk penamaan batu sedimen serta memperoleh data penunjang bagi Provenance agar dapat diketahui bagaimana kandungan persentase batuan baik

Dari data diatas dapat dideskripsikan nilai hasil belajar siswa dengan menerapkan model pembelajaran inside outside circle pada mata pelajaran Fiqih materi sedekah dan infak

Berdasarkan pengetahuan dan kemampuan yang ada serta ditunjang kesepakatan bersama mengenai Visi dan Misi Pemerintah Kabupaten Kutai Kartanegara,