Upload
others
View
8
Download
0
Embed Size (px)
Citation preview
1
Perancangan dan Pembuatan Crawler Website Partsouq
Menggunakan Beautiful Soup 4
Artikel Penelitian
Peneliti:
Carlson tan (672015022)
Dr. Sri Yulianto Joko Prasetyo ,S.Si., M.Kom.
Program Studi Teknik Informatika
Fakultas Teknologi Informasi
Universitas Kristen Satya Wacana
Salatiga
April 2019
2
3
4
5
6
7
8
Perancangan dan Pembuatan Crawler Website Partsouq
Menggunakan Beautiful Soup 4
Carlson Tan1, Sri Joko Yulianto Prasetyo2
Fakultas Teknologi Informasi
Universitas Kristen Satya Wacana
Jl. Dr. O. Notohamidjojo, Kel. Blotongan, Kec. Sidorejo, Salatiga 50714
Jawa Tengah – Indonesia
E-mail : [email protected], [email protected]
Abstract
Nowadays the need for spare part data in insurance world is really big. That why Master Spare
Part Database is built. When Master Spare Part Database is build, there also other process. Process
of taking data from the website. But the process of taking data from website is very conventional. Its
take a really long time to do it and the accuracy of data is somewhat questionable. For giving best
service to client, it needed an improvement in process of taking data from website. In this research to
solving the problem is create web crawler which can automatically taking data from website. The test
method is comparing the accuracy and speed of web crawlers with conventional methods in terms of
retrieving data from http://partsouq.com. As a result, web crawlers can provide the same result in short
time and can also be run automatically and scheduled.
Keywords : Sparepart Data, Crawling, Scraping
Abstrak
Kebutuhan akan data sparepart di dalam dunia asuransi sangatlah besar. Maka dari itu munculah
Master Sparepart Database. Dalam pembangunan Master Sparepart Database dilakukan pengambilan
data kendaraan yang sangat banyak. Namun cara yang digunakan untuk mengambil data tersebut
sangatlah konvensional. Selain menghabiskan banyak waktu juga memiliki tingkat keakuratan yang
rendah. Untuk meningkatkan pelayanan terhadap nasabah, dibutuhkan sebuah kemajuan dalam proses
pengambilan data dari website. Dalam penelitian ini untuk menyelesaikan permasalahan tersebut
dibuatlah sebuah web crawler yang mampu mengambil data secara otomatis dari website. Metode
pengujiannya adalah dengan membandingkan ketepatan dan kecepatan web crawler dengan metode
konvensional dalam hal pengambilan data dari website https://partsouq.com. Hasilnya web crawler
mampu memberikan hasil yang sama dengan waktu yang sangat cepat, web crawler juga dapat
dijalankan secara otomatis dan terjadwal.
Kata Kunci : Data Sparepart, Crawling, Scraping
1Mahasiswa Program Studi Teknik Informatika, Fakultas Teknologi Informasi, Universitas Kristen
Satya Wacana Salatiga. 2Staf Pengajar Fakultas Teknologi Informasi Universitas Kristen Satya Wacana Salatiga.
9
1. Pendahuluan
Asuransi bukanlah sesuatu yang asing lagi untuk masyarakat Indonesia. Kemunculan
Asuransi di Indonesia dimulai ketika masa penjajahan bangsa Belanda. Asuransi pada masa
penjajahan lebih bertujuan untuk mengamankan (Perlindungan) aktivitas perdagangan
pemerintahan kolonial Belanda pada sektor perkebunan dan perdagangan. Seiring
perkembangan zaman mulai muncul asuransi-asuransi yang tidak hanya berfokus pada
perlindungan saja tetapi juga menawarkan banyak jenis produk asuransi lainnnya, seperti
asuransi kendaraan bermotor, asuransi penjaminan, dan produk asuransi yang lain [1].
Berdasarkan data dari Badan Pusat Statistika jumlah perusahaan asuransi di Indonesia
terus meningkat, data terbaru (29 September 2015) jumlah perusahaan asuransi meningkat
menjadi 146 perusahaan dari tahun 2010 dengan jumlah 142 perusahaan [2]. Dengan
banyaknya pesaing dalam dunia asuransi, PT. Asuransi Sinar Mas terus memperbaiki pelayanan
untuk memberikan yang terbaik bagi masyarakat Indonesia tentunya pelayanan dalam bidang
Asuransi. Melihat perkembangan teknologi yang terus berkembang PT. Asuransi Sinar Mas
melakukan perubahan dalam sisi teknologi dengan Membuat Master Sparepart Database.
Database ini berisikan data data sparepart terbaru dan gabungan antara beberapa sumber seperti
Website, Software EPC, dan buku katalog.
Beberapa perusahaan asuransi lainnya juga didapati kesulitan dalam mencari sparepart
asli dari kendaraan. Jika perusahaan tersebut tidak menemukan sparepart asli maka
keputusannya akan membuat sparepart palsu sehingga dapat mengakibatkan bentuk atau ukuran
tidak standar, merusak sparepart lainnya, dan kinerja tidak maksimal. [x1] Selain itu perusahaan
asuransi lainnya ternyata juga kesulitan dalam mencari sparepart seperti yang tercantum
didalam berita detik news. [x2] Didalam berita tersebut diketahui bahwa nasabah harus
menunggu selama 3 minggu lebih karena list bumper yang belum ada karena tidak satu paket.
Solusinya adalah dengan pembuatan Master Sparepart Database untuk mempercepat proses
pencarian sparepart tersebut.
Dalam melakukan proses pengumpulan data untuk Master Sparepart Database
ditemukan bahwa ketika mengambil data dari website masih menggunakan cara tradisional.
Yaitu dengan cara membuka website yang di inginkan (https://partsouq.com/) dan mengcopy
data yang diinginkan kedalam excel. Hal ini tentu memakan waktu, tenaga kerja yang banyak
dan tingkat keakuratan data yang kurang. Hal ini dikarenakan data diambil secara manual.
Maka dari itu dibuatlah sebuah Web Crawler menggunakan Beautiful Soup 4. Dengan
adanya Web Crawler ini diharapkan pengambilan data bisa lebih cepat dan memiliki keakuratan
data yang tinggi.
2. Tinjauan Pustaka
1. Penelitian Terdahulu
Pada penelitian yang berjudul Penggunaan Web Crawler Untuk Menghimpun
Tweets dengan Metode Pre-Processing Text Mining membahas bagaimana cara
pengambilan data yang optimal menggunakan Web Crawler pada situs media sosial twitter
yang akan mengumpulkan tweets menjadi data yang siap diolah lebih lanjut dengan sesuai
kebutuhan user [3]. Perbedaan dengan penelitian ini adalah pada tema yang diambil, tema
penelitian tersebut adalah sosial dan tema penelitian ini adalah bisnis. Cara preprocessing
text dan pengelolaan tulisannya tidak menggunakan analisa sentimen, melainkan hanya
mengambil teks dari tag html.
Pada penelitian yang berjudul Crawling Website E-Government Pemerintah
Daerah Jawa Tengah Berbasis Ontology membahas bagaimana dibuatnya crawler berbasis
ontology yang disertai dengan pengecekan relevansi menggunakan Term Frequency -
Inverse Frequency (TFIDF) dan cosine similarity dapat menghasilkan crawler yang lebih
efisien dan lebih terklasifikasi [4]. Perbedaan dengan penelitian ini adalah setelah diambil
teks html lalu dilakukan pengolahan berupa pengambilan tag-tag tertentu dari teks html
10
tidak menggunakan metode Term Frequency – Inverse Frequency (TFIDF) maupun
consine similarity. Penelitian ini juga menggunakan metode task scheduling, dimana proses
crawler dilakukan secara berkala sehingga mendapatkan data yang aktual. Pada penelitian
yang berjudul Pemanfaatan Robot Crawler Pada Pembuatan Toko Buku Online membahas
tentang bagaimana crawler bisa mengambil data dari website toko buku online dan
memasukkannya kedalam database dan dimana dengan adanya crawler ini diharapkan
dapat mempermudah kerja admin dan mengurangi kesalahan jika melakukan input buku
secara manual [5]. Perbedaan dengan penelitian ini adalah banyaknya data yang diambil.
Didalam penelitian ini banyak jumlah sparepart yang akan diambil, sehingga diperlukan
sebuah sistem yang mampu mengambil banyak sparepart secara besamaan.
Pada penelitian Perancangan Aplikasi Web Crawler Untuk Menghasilkan
Dokumen Teks Pada Domain Tertentu membahas bagaimana mesin pencarian yang
melakukan pencarian berdasarkan kata kunci. Lalu bagaimana kita dapat mengambil data
yang ada di internet dalam waktu yang singkat dan dapat diberikan index secara otomatis
dan bisa di masukan kedalam database [6]. Perbedaan dengan penelitian ini adalah data
sparepart yang diambil berjumlah sangat banyak dan terjadwal.
Riset ini sangat berkontribusi bagi pengusaha dalam bidang otomotif terutama
dalam pencarian sparepart yang sesuai dan orisinil sesuai dengan kendaraan. Melihat
banyak kasus pencarian sparepart yang lama seperti pada berita dalam detik news [x2] dan
akibat pemakaian sparepart yang tidak orisinil seperti bentuk dan ukuran tidak standar,
merusak sparepart lainnya dan kinerja tidak maksimal. [x1]
2. Web Crawler
Web Crawler adalah sebuah perangkat lunak yang digunakan untuk menjelajah
serta mengumpulkan halaman-halaman web yang selanjutnya di index oleh mesin pencari
[7]. Sering juga disebut dengan web spider atau web robot yang menjelajahi halaman
website dengan menggunakan web browser. Pengertian lain dari Web Crawler adalah
sebuah program yang memberikan suatu atau lebih seed url yang akan mengunduh
halaman-halaman dari url yang dituju dan mengekstrak beberapa konten yang ada
didalamnya [8]. Selain itu menurut Dipanegara Computer Club yang dikutip oleh Deny
Triawan (2016) Web Crawler lebih dikenal sebagai sebuah program/script otomatis yang
memproses halaman web. Bisa juga disebut sebagai web spider atau web robot, berfungsi
mengidentifikasi hyperlink dan melakukan proses kunjungan/visit secara rekursif [9].
Gambar 1. Arsitektur Web Crawler
11
Cara kerja sebuah Web Crawler adalah dengan mengunduh halaman web, biasanya
untuk sebuah mesin pencari web atau web cache. Kira-kira, crawler dimulai mencari situs
yang berhubungan dengan perintah pencarian melalui crawling terhadap sitemap situs. Dari
sitemap tersebut dilakukan pencocokan META TAG dan META DESCRIPTION dengan
perintah pencarian lalu dengan satu set awal URL S0. Ini pertama kali menempatkan S0
dalam antrian, dimana semua URL yang akan diambil disimpan dan diprioritaskan. Dari
antrian ini, crawler mendapat URL (dalam beberapa order), mengunduh halaman, ekstrak
URL apapun di halaman tersebut, dan menempatkan URL baru dalam antrian. Proses ini
diulang sampai crawler memutuskan untuk berhenti, untuk salah satu dari berbagai alasan.
Setiap halaman yang diambil diberikan kepada klien yang menyimpan halaman, membuat
index untuk halaman, atau menganalisis konten halaman [10].
Web Crawler dapat memperoleh informasi sesuai dengan kata kunci yang
diberikan, sama halnya dengan mesin pencari atau search engine. Web Crawler dirancang
untuk menelusuri halaman web dan memasukkannya ke dalam database lokal. Crawler
pada dasarnya digunakan untuk membuat replika dari semua halaman yang dikunjungi
yang kemudian diproses dan mengindeks halaman web yang telah diunduh untuk
membantu dalam pencarian yang relatif cepat [11]. Dalam penelitian ini yang menjadi
sumber search engine sparepart adalah https://www.partsouq.com.
3. Text Mining
Text mining (penambangan teks) adalah penambangan yang dilakukan oleh
komputer untuk mendapatkan sesuatu yang baru, sesuatu yang tidak diketahui sebelumnya
atau menemukan kembali informasi yang tersirat secara implisit, yang berasal dari
informasi yang diekstrak secara otomatis dari sumber-sumber data teks yang berbeda-beda
[12]. Text mining merupakan teknik yang digunakan untuk menangani masalah klasifikasi,
clustering, information extraction dan information retrival [13].
Pada dasarnya proses kerja dari text mining banyak mengadopsi dari penelitian
data mining namun yang menjadi perbedaan adalah pola yang digunakan oleh text mining
diambil dari sekumpulan bahasa alami yang tidak terstruktur sedangkan dalam data mining
pola yang diambil dari database yang terstruktur [14]. Beberapa teknik penambangan text
dapat diimplementasi dalam penelitian ini, berikut adalah diantaranya :
2.3.1. Kategoriasi
Kategorisasi adalah penentuan tema utama suatu teks dan pengelompokan
teks berdasarkan tema tersebut ke dalam kategori yang telah ditentukan [15].
Dalam penelitian ini terbagi 10 kategori pengambilan data. Berikut adalah kategori
beserta deskripsinya :
No Kategori Deskripsi
1 Brand Nama brand
2 Catalog Kode brand
3 Name Nama panel
4 Model Model panel
5 Description Deskripsi panel
6 Date Tanggal produksi panel
7 Framecolor Warna bingkai
8 Trimcolor Warna trim
9 ProdPeriod Jangka waktu produksi panel
10 Options Opsi tambahan panel
Tabel 1. Kategori Data Crawling
Kategori pada tabel 1 nantinya akan dijadikan target pengambilan data
yang berasal dari teks. Setiap kategori memiliki pola katanya masing-masing dan
menggunakan library Beautiful Soup 4 yang sebagian besar metodenya
menggunakan regular expression.
12
2.3.2. Pengenalan Pola
Pengenalan pola berasal dari kebutuhan mesin untuk mengenali objek
secara otomatis, sinyal atau gambar, atau kebutuhan untuk pengambilan keputusan
secara otomatis berbasis sekumpulan parameter. Sekumpulan variabel dipercaya
membawa informasi berbeda tentang sebuah objek untuk diidentifikasi dari objek
tersebut. Sekumpulan dari fitur dari sebuah objek dengan pertimbangan tertentu,
disebut pola atau pattern [16]. Tujuan dari sistem pengenalan pola adalah untuk
mengetahui pola seperti apa yang informasinya akan diambil. Contohnya adalah
sebagai berikut :
Gambar 2. Pola Nama Brand
Bagian ini menjelaskan bagaimana cara mengambil nama brand sesuai
pola yang ada didalam tag html. Pertama-tama adalah dengan mendapatkan tag
nama brand, dalam gambar 2 diketahui bahwa <H4> merupakan tag untuk
mengambil data nama brand. Tag <H4> merupakan tag umum dan banyak
digunakan didalam html. Jika mencari isi didalam tag <H4> maka akan
menghasilkan banyak jawaban, untuk itu perlu didetailkan kembali bagian mana
yang akan diambil isi dari tag <H4>.
Gambar 3. Detail Tabel Nama Brand
Tabel yang memiliki class “table.table-ordered-n.table-condensed.table-
str…” berisikan tag <H4> yang merupakan nama brand. Maka dari itu
kesimpulannya adalah pola <table class=”table.table-ordered-n.table-
condensed.table-str…”> <H4> (hasil) <H4> </table> merupakan pola untuk
mendapatkan informasi nama brand.
2.3.3. Ekstrasi Informasi
Ekstraksi informasi adalah suatu cara untuk mengambil informasi yang
berasal dari teks. Teks biasanya ditulis secara bebas, tidak terstruktur, atau dalam
bahasa natural. Hasil dari ekstraksi informasi berupa teks yang terstruktur [17].
Hasil ekstraksi informasi digunakan sebagai informasi yang berguna. Sistem
ekstraksi informasi menggunakan teknik pencocokan pola. Setiap pola terdiri dari
suatu ekspresi regular dan pemetaan dari bentuk sintaksis ke logis [18]. Fungsi
ekstraksi informasi digunakan untuk mencari isi dari tag html yang akan diambil.
Contoh implementasinya adalah sebagai berikut :
Hasil Crawling <div class="panel-body">
<table style="margin-bottom: 0px"
class="table table-bordered-n table-condensed
table-stripped">
<tbody>
<tr>
13
<th></th>
<th>Brand</th>
<th>Name</th>
<th>Code</th>
</tr>
<tr>
<td class=""><img
src="/images/brands/global/bmw.png"></td>
<td class=""><h4>BMW</h4></td>
<td class="">BMW</td>
<td class="">BMW201810</td>
</tr>
</tbody>
</table>
</div>
Regular Expression \<table(.*[\n].*)+\<\/table\>
Hasil Olah Teks <table style="margin-bottom: 0px"
class="table table-bordered-n table-condensed
table-stripped">
<tbody>
<tr>
<th></th>
<th>Brand</th>
<th>Name</th>
<th>Code</th>
</tr>
<tr>
<td class=""><img
src="/images/brands/global/bmw.png"></td>
<td class=""><h4>BMW</h4></td>
<td class="">BMW</td>
<td class="">BMW201810</td>
</tr>
</tbody>
</table>
Tabel 2. Implementasi Ekstrasi Informasi 1
Gambar 4 menunjukkan bagaimana mendapatkan tabel dengan nama class
“table table-bordered-n table-condensed table-stripped”. Implementasi regular
expression pada hasil web crawling dapat mengambil tabel tersebut. Regular
expression atau yang sering disebut sebagai regex adalah sebuah formula untuk
pencarian pola suatu kalimat/string. Regular expression umumnya digunakan oleh
banyak pengolah kata/text editor dan peralatan lainnya untuk mencari dan
memanipulasi kalimat berdasarkan kepada suatu pola tertentu [19].
Hasil Olah Teks <table style="margin-bottom: 0px"
class="table table-bordered-n table-condensed
table-stripped">
<tbody>
<tr>
<th></th>
<th>Brand</th>
<th>Name</th>
<th>Code</th>
</tr>
14
<tr>
<td class=""><img
src="/images/brands/global/bmw.png"></td>
<td class=""><h4>BMW</h4></td>
<td class="">BMW</td>
<td class="">BMW201810</td>
</tr>
</tbody>
</table>
Regular Expression \<h4\>(.*)\<\/h4\>
Hasil Merk BMW
Tabel 3. Implementasi Ekstrasi Informasi 2
Setelah berhasil memisahkan isi tabel tersebut dari isi keseluruhan htmlnya,
lalu mengambil isi dari tag <H4> yang ada di dalam tabel tersebut.
Implementasinya masih sama menggunakan regular expression hanya polanya saja
yang berbeda.
3. Metode Penelitian
Tahapan penelitian yang akan digunakan dalam perancangan dan pembuatan Crawler
Website Partsouq dapat dilihat pada Gambar 6.
Gambar 6. Tahapan Penelitian
1. Identifikasi Masalah
Pada proses pembuatan Master Sparepart Database diperlukan data yang sangat
banyak dan berbagai macam. Data ini di dapatkan dengan mengambil data dari website.
Website yang kita gunakan kali ini adalah https://partsouq.com. Masalah yang kita miliki
adalah proses ini sangat memakan waktu yang sangat lama karena dilakukan secara manual.
Selain lama proses ini juga tidak akurat karena bisa terjadinya kesalahan ketika
pengambilan data atau human error.
Hal ini bisa kita optimalkan dengan penggunaanya web crawler. karena
webcrawler adalah bot yang secara otomatis akan mengambil data dari website. hal ini tentu
sangat membantu kecepatan pengambilan data dan tingkat keakuratan data. maka dari itu
akan dibuat sebuah Web Crawler untuk mengambil data dari website https://partsouq.com.
2. Studi Literatur
Pada studi literatur dilakukan pencarian referensi atau penelitian terdahulu yang
relevan dengan web crawling. Referensi tersebut adalah sebagai berikut :
- “Penggunaan Web Crawler untuk Menghimpun Tweets dengan Metode
Preprocessing Text Mining”
15
- “Crawling Website E-Government Pemerintah Daerah Jawa Tengah Berbasis
Ontology”
- “Pemanfaatan Robot Crawler pada Pembuatan Toko Buku Online”
- “Perancangan Aplikasi Web Crawler untuk Menghasilkan Dokumen Teks pada
Domain Tertentu”
3. Pengumpulan Data
Pada tahap pengumpulan data, mulai mengumpulkan data apa saja yang harus
diambil oleh web crawler dan bagaimana cara data itu akan diolah. Karena kita akan
mengambil data mengenai sparepart kendaraan. Maka hal yang perlu kita ambil adalah.
Brand kendaraan apa yang akan kita ambil, Model kendaraan apa yang akan kita ambil. Hal
ini meliputi tahun kendaraan dan juga tipe transmisi kendaraan.
Pada saat proses ini dapat dilihat bahwa sparepart kendaraan di simpan ke dalam
sebuah kelompok atau grouping. Misal grouping engine berisikan sparepart yang
bersangkutan dengan mesin kendaraan, Contohnya adalah busi,Blok mesin. Yang
dimaksudkan data sparepart adalah, Nama sparepart, Jumlah barang yang akan digunakan.
List kendaraan yang bisa menggunakan sparepart tersebut, Posisi data sparepart pada
gambar.
Selain mengambil Data sparepart. Web Crawler yang di buat ini dapat mengambil
gambar dari sparepart yang bersangkutan. Data gambar ini akan disimpan dalam format
Character Large Object (CLOB). Karena hal ini memudahkan ketika kita ingin menyimpan
kedalam database dan menggunakannya di sistem pega nantinya.
4. Perancangan Sistem
Pada tahap perancangan sistem, membuat perancangan dengan menggunakan UML
(Unified Modelling Language) untuk menentukan alur program yang akan dibuat. Diagram
yang akan dibuat meliputi use case diagram, activity diagram, deployment diagram.
3.4.1. Use Case Diagram
Gambar 7. Use Case Diagram
Terdapat satu Actor, Actor tersebut bertugas untuk menginputkan vin
kendaraan yang ingin diambil datanya ke dalam sebuah vin List. Setelah itu crawler
akan dijalankan oleh Actor dan akan mengambil vin dari vin List. Setelah sudah
mendapatkan vin yang ingin di crawling, maka crawler akan berjalan secara
otomatis untuk mengambil data dari website Partsouq. Ketika Crawler telah selesai
mengambil data dari partsouq. Crawler akan Menghasilkan file CSV dan Aktor
bisa mengcopynya.
16
3.4.2. Activity Diagram
Gambar 8. Activity Diagram
Gambar 8 adalah activity diagram dari user. Activity diagram berfungsi
untuk memodelkan proses bisnis dan urutan aktivitas yang terjadi pada sebuah
proses berdasarkan aktor yang terdapat pada use case diagram
Digambarkan proses dari seorang user untuk melakukan penarikan data
secara otomatis (Scraping). Awalnya user menginputkan vin kedalam sistem.
Setelah vin itu tersimpan ke dalam sistem, Maka user sudah bisa menjalankan
proses scraping. User hanya perlu menjalankan script yang telah disediakan.
Ketika script dijalankan maka sistem akan membaca list vin dari vin.CSV. Setelah
didapatkan vin yang di inginkan. Maka sistem akan mencoba Generate / mencoba
untuk membuat link sparepart untuk vin tersebut. Jika link tidak berhasil dibuat
maka sistem akan mengeluarkan pemberitahuan bahwa vin tidak ada. Sedangkan
link berhasil dibuat, Maka proses scraping akan berlanjut. Sistem akan mengambil
data - data yang sudah ditentukan. Jika semua proses ini berjalan lancar. Maka
crawler akan mengeluarkan hasil scraping sparepart yang berupa csv. Namun jika
terjadi putus koneksi atau Time Out ketika melakukan proses scraping spareparts.
Maka scraper akan secara otomatis masuk ke masuk ke mode sleep dan akan
mencoba melanjutkannya kembali nanti sampai koneksi kembali. Hal ini bertujuan
agar scraper tidak harus kembali melakukan scraping dari awal. Sehingga dapat
mempercepat pekerjaan pengambilan data.
17
3.4.3. Deployment Diagram
Gambar 9. Deployment Diagram
Pada gambar 4 dapat dilihat bahwa dibutuhkan komputer dengan
spesifikasi minimal Core i3, Ram 8 Gb, Free space sebesar 1 gb. Pastikan
komputer sudah terinstall python 3.6.5. Lalu crawler akan mengakses website
https://partsouq.com/ menggunakan Internet.
5. Pembuatan Sistem
Metode development sistem yang digunakan adalah metode waterfall. Mengapa
menggunakan hal ini. Karena metode ini sangat terstruktur sehingga lebih mudah untuk
melakukan pengawasan / pengontrolan project . Penggunaan metode waterfall ini sudah
sangat ideal untuk pembuatan project kali ini. Karena mulai dari perancangan sistem
sampai sistem selesai dan di gunakan,sistem sudah memiliki struktur yang jelas.
6. Pengujian Sistem
Tahap Pengujian Sistem, pada Tahap ini dilakukan pengujian sistem dengan
menggunakan Black Box Testing. Dimana akan dilihat apakah program bisa berjalan
dengan baik seperti yang diharapkan.
Script ini telah dicoba oleh Team dan berhasil mengambil data dari website
https://partsouq.com/ . Berikut adalah contoh ketika aplikasi berjalan dan sedang
melakukan scraping data dari website https://partsouq.com/.Indikasi dari berjalannya
crawler adalah keluarnya link Sparepart yang akan di crawling.
Gambar 10. Crawling Data
Ketika crawler berhasil melakukan crawling data. didapatkan hasil berupa csv yang
berisikan data sparepart.
18
Gambar 11. Hasil Data
7. Penulisan Laporan
Di tahap akhir ini dilakukan penulisan laporan. Laporan ini berisikan bagaimana
cara crawler bekerja. dan bagaimana kinerja dari crawler tersebut. Dengan kata lain laporan
ini digunakan sebagai dokumentasi pembuatan crawler.
4. Pembahasan
Dalam proses pengambilan data sparepart kendaraan terdapat 3 sumber yang digunakan.
Di Antara lain adalah E-Katalog, Buku katalog, dan Website. Proses pengambilan data dari
sumber ini masih menggunakan cara yang manual. Terutama pada pengambilan data di website.
Website yang akan kita crawling adalah https://partsouq.com/. Berikut adalah halaman utama
dari website partsouq.
Gambar 12. Website Partsouq
Di dalam website ini terdapat banyak sekali informasi yang ingin kita ambil. Tetapi
ada juga Informasi yang juga tidak kita perlukan. Maka dari itu harus dilakukan penyaringan
data yang akan diambil. Sebagai contoh hal yang harus kita perhatikan adalah merek kendaraan,
Model kendaraan, dan juga tahun perakitan kendaraan tersebut.
Namun karena Partsouq menyediakan pencarian berdasarkan vin. Maka ini sangat
mempermudah proses pengambilan data. Data vin ini di dapatkan dari polis asuransi. Yang
berarti kita bisa mencari sparepart untuk semua kendaraan yang pernah melakukan klaim
asuransi.
19
Gambar 13. Menu Sparepart
Setelah kita mencoba membuka website partsouq nya. Sekarang kita mencoba untuk
mencari dimana letak data yang kita inginkan. Data yang mau kita ambil adalah data mengenai
model kendaraan tersebut dan juga sparepart apa saja yang digunakan pada kendaraan tersebut.
Gambar 14. Lokasi Data yang Akan Diambil
Data yang akan diambil adalah merek dan model dari kendaraan tersebut. Contohnya
Toyota Yaris. Setelah itu kita akan mengambil data sparepart untuk kendaraan yang
bersangkutan. Pada contoh diatas bisa kita lihat Sparepart dibagi menjadi grouping besar dulu.
Seperti Engine Grup yang berisikan sparepart yang berhubungan dengan Mesin, Dan Body
Group yang berisikan sparepart body kendaraan.
Gambar 15. Lokasi Keterangan Model Kendaraan
20
Sebagai contoh ketika kita mau mengambil data dari button ini . kita dapat
melancaknya dengan cara menggunakan Elements. Cara ini saya lakukan menggunakan Google
Chrome. Tapi hal ini juga bisa dilakukan menggunakan browser lain. Bisa kita lihat di contoh
ini class yang akan kita ambil adalah “120”.
Gambar 16. Lokasi Keterangan Sparepart Kendaraan
Berikut adalah contoh lainnya. Bisa di lihat data yang akan kita ambil berada di class
“part-search-tr”. Maka akan di buat perulangan untuk mengambil data dari class - class
tersebut.
1. import request,csv,selenium,beautifulsoup,time,pandas,base64
Kode Program 1. Import Library
Tahap pertama adalah menyiapkan library yang dibutuhkan dalam sistem, dalam hal ini library
yang dibutuhkan adalah :
a. Request
Request merupakan library yang sudah terinstall tanpa perlu mengunduh, karena sudah ada
didalam package python. Library ini berguna untuk melakukan request HTTP.
b. Csv
Csv merupakan library yang berguna untuk python dapat mengolah data dari file berformat
csv.
c. Selenium
Selenium merupakan library untuk crawling website yang berbasis javascript render.
Beberapa website tidak dapat di crawling dengan menggunakan library request, karena
library request tidak mendukung javascript render.
d. Beautifulsoup4
Beautifulsoup44 merupakan library untuk menparsing data html. Library ini memiliki dasar
metode yaitu regular expression.
e. Time
Library ini berguna untuk mencatat waktu, menghitung berapa lama proses crawling
berjalan.
f. Pandas
Library ini berguna untuk mengolah hasil crawling. Dapat mengkonversi data menjadi
spreadsheet atau csv.
g. Base64
Library ini berguna untuk mengkonversi atau encoding gambar menjadi kode base64.
1. Set website location ("https://partsouq.com")
2. Buat List Header("VIN", "GROUP_PART", "ASSEMBLY_PART",
"ASSEMBLY_IMAGE_BASE64", "LINK_IMAGE", "LINK_ASSEMBLY")
3. Baca VIN.CSV
21
4. Buat Variabel
("header_model","headers_model","headers_sparepart","header_sparepart","data_
models","data_model","data_image","links_group","names_group","data_sparepar
t","data")
5. Request Link ke website
a. IF : VIN ada : 'Print(Link)'
b. IF : Timeout : Sleep
6. Buat fungsi beautifulsoup
7. Buat fungsi cek Vin
a. IF : VIN tidak ada : "VIN TIDAK ADA"
Kode Program 2. Cek Vin
Selanjutnya adalah mencari dan menyimpan link yang dibutuhkan. Hal ini dilakukan
dengan cara memasukkan jin kedalam website dan menunggu apakah mendapatkan link balasan.
Jika link di dapatkan maka vin tersebut valid dan bisa dilakukan proses scraping. jika tidak
maka output vin tidak ada. Berikut adalah penjelasan dari kode program 2 :
1. Menetapkan link website
Dalam penelitian ini website yang akan digunakan untuk mengambil data sparepart
adalah http://partsouq.com. Website ini dinilai sangat lengkap dan kredibel. Telah
digunakan oleh beberapa perusahaan selama bertahun-tahun.
2. Menetapkan header spreadsheet
Header ini berguna menjadi nama kolom yang mewakili data yang diambil.
3. Membaca data vin
Data vin yang akan digunakan berupa csv. Dalam hal ini python memiliki library
bernama pandas yang dapat melakukan konversi data csv menjadi tipe pandas yang
dapat diakses oleh python.
4. Pembuatan variabel
Variabel ini dibentuk untuk mewakili data yang akan diambil dan akan menjadi
tempat penampungan data hasil crawling tersebut.
5. Crawling website
Tahap kelima merupakan tahap mengambil isi html didalam website. Didukung
dengan library request proses ini berjalan dengan baik.
6. Implementasi beautiulsoup
Setelah mendapatkan isi html, lalu mengambil isi dari tag html menggunakan
library beautifulsoup. Library ini dapat diandalkan dan mudah untuk
diimplementasi karena memiliki dasar metode regular expression.
Gambar 17. Proses Penginputan Vin
Setelah itu dibuatlah webdriver. Fungsi dari webdriver ini adalah memencet tombol
yang berisikan informasi kendaraan.
22
Gambar 18. Informasi pada Button
Setelah itu dilakukan parsing data menggunakan beautiful soup 4. Bisa kita lihat di
dalam tabel ada 2 kolom. yang berisikan header dan isi informasi yang kita butuhan. Kedua
informasi dari kolom ini akan kita ambil menggunakan perulangan sederhana.
1. Simpan url ke dalam list (links_group)
2. buat webdriver
3. do pencet tombol ("button.popup-marker.btn.btn-default.btn-sm")
4. Parsing data menggunakan beautifulsoup4
5. Masukkan data kendaraan ke model
6. Buat perulangan untuk mengambil model kendaraan
For model in model
for x in datarow
simpan kolom 1 ke header
simpan kolom 2 ke dataset
if : "Destination" in dataset
simpan data ke dataset
for x in range (0,len(dataset))
simpan dataset ke data_model
else
Simpan header ke header_model
7. simpan data_model ke data_models
Kode Program 3. Pengambilan Informasi Model Kendaraan
Selanjutnya akan diambil grouping kendaraan. Hal ini digunakan untuk mengetahui
grouping sparepart dari kendaraan tersebut. Misal bagian mesin, body, electrical. Dalam
pengambilan data ini digunakan perulangan sehingga jika ada pergantian jumlah baris, Data
akan tetap terambil. Berikut adalah penjelasan dari kode program 3 :
1. Kumpulan link
Link yang akan di crawling disimpan kedalam bentuk list agar dapat dilakukan
perulangan.
2. Pembuatan webdriver
Webdriver berguna untuk membuka website dengan bantuan library selenium.
Webdriver yang digunakan berupa chrome.
3. Interaksi webdriver
Selenium dapat melakukan interaksi terhadap website contohnya dalam kasus ini
adalah melakukan pemencetan tombol dengan nama kelas “button.popup-
marker.btn.btn-default.btn-sm”.
4. Parsing data
Parsing data merupakan tahap mengambil isi tag html. Data yang diambil
merupakan data kendaraan.
5. Menyimpan data kendaraan
23
Data kendaraan dikelompokan berdasarkan model kendaraannya masing-masing.
6. Grouping kendaraan
Proses ini perulangan data pada setiap kendaraan dan menyimpan data tersebut
kedalam bentuk dictionary yang berisi list data kendaraan.
7. Simpan model
Model kendaraan tersebut disimpan dalam bentuk dictionary.
Gambar 4. Grouping Kendaraan
1. parsing data menggunakan beautifulsoup4
2. simpan (“ul.list-unstyled.tree”) ke group
3. for group in group
simpan link b ke nams_group
simpan link a ke length_data
for new_group in range (0,len(length_data))
simpan nama grouping ke names_group
simpan link grouping ke links_group
for grouped in range (0,len(links_group))
simpan link ke req_group
Except
Sleep
Kode Program 4. Pengambilan Grouping
Pengambilan data gambar dilakukan dengan cara perulangan sederhana. Pertama kita
identifikasi data yang akan kita ambil. Berikut adalah penjelasan kode program 4 :
1. Parsing hasil grouping
Dari hasil grouping yang didapat lalu diparsing kembali menggunakan
beautifulsoup4 karena masih dalam bentuk tag tabel html.
2. Parsing isi list
Parsing yang dilakukan dengan mengambil sebuah tag html berjenis ul yang
memiliki kelas “ul.list-unstyled.tree”
3. Menyimpan hasil parsing
Hasil parsing disimpan berdasarkan nama groupnya masing-masing. Data yang
diparsing berupa gambar seperti pada gambar 20.
24
Gambar 20. Gambar yang Akan Diambil
Pertama kita lihat bagian mana yang akan kita ambil “div.thumbnail.thumb-boss”. di
sini terdapat semua informasi yang kita butuhkan. kita bisa mengambil semua image di halaman
web dengan menggunakan perulangan. jumlah dari “div.thumbnail.thumb-boss” akan menjadi
seberapa banyak perulangan.
Gambar 21. Assembly Name yang Akan Diambil
Bisa kita lihat “h5”. informasi ini akan kita ambil dan menjadi nama assembly. dengan
menggunakan perulangan bisa kita ambil semua data yang ada.
Gambar 22. Link Gambar
"a.fancybox" akan digunakan untuk membuat link gambar. hal ini dilakukan dengan
cara menggunakan perulangan. di dalam "a.fancybox" terdapat link yang unik untuk masing
masing gambar. maka kita biasa mendapatkan link secara full dengan cara meng-concat natural
location dengan link dari "a.fancybox".
Setelah itu dilakukan pengambilan gambar dan dilakukan konversi menggunakan
base64. dan semua data yang sudah terkumpul akan disimpan ke dalam data image.
25
1. Parsing data menggunakan beautifulsoup4
2. simpan (“table.glow.pop-vinyl.table.table-bordered-1.table-hover.table-
condensed”) ke assembly
3. for assembly in assembly
simpan ("div.thumbnail.thumb-boss") ke length_data
for new_assembly in range(0,len(length_data))
buat list image
a : select ("a.fancybox") dari assembly
simpan (natural location + a) ke link_image
b simpan data ("h5") ke assembly
simpan (natural location + b) ke link_sparepart
simpan ("VIN","names_group","nama assembly") ke image
convert gambar menjadi base64
simpan gambar ke dalam image_raw
simpan image_raw ke dalam image ("utf-8")
simpan ("link_image","link_sparepart") ke image
Simpan image ke data_image
Kode Program 5. Pengambilan Data Gambar
Berikut adalah penjelasan kode program 5:
1. Parsing gambar
Parsing gambar menggunakan library beautifulsoup4.
2. Mengambil tag gambar
Tag gambar dicirikan dengan memiliki kelas bernama “table.glow.pop-
vinyl.table.table-bordered-1.table-hover.table-condensed”. Kelas ini dijadikan
parameter pengambilan data gambar.
3. Menyimpan data gambar
Data gambar tersebut kemudian di encode menggunakan base64 sehingga akan
berubah menjadi rangkaian huruf dan angka. Hasil tersebut dapat di decode
kembali sehingga menjadi sebuah gambar.
Gambar 23. Informasi Sparepart
Ini adalah table(“table.glow.pop-vin.table.table-bordered-1.table-hover.table-
condensed”) yang menyimpan semua data sparepart yang akan kita ambil. Kita akan
mengambil data sparepart menggunakan perulangan.
1. parsing data menggunakan beautifulsoup4
2. simpan ("table.glow.pop-vin.table.table-bordered-1.table-hover.table-condensed")
ke spareparts
3. for all_spare in spareparts
simpan "th" ke dalam thread
for thread in range(0,len(thread))
simpan "th"ke headers
if headers not in header_sparepart
simpan headers ke headers_sparepart
26
simpan all_spare.select("tr.part-search-tr") ke tbody
for tbody in range(0,len(tbody))
buat array trd dengan variabel dari tbody
buat list sp
simpan ("VIN","names_group","nama assembly") ke sp
for ini in range(0,len(trd))
simpan (trd.select("td")) ke td
simpan td ke sp
Simpan sp ke Data_sparepart
Kode Program 6. Pengambilan Data Sparepart
Dengan menggunakan perulangan kita bisa memisahkan header dengan data sparepart
sesungguhnya dan dapat menambahkan informasi seperti vin, nama grouping dan nama
assembly dari table. setelah semua data berhasil dipisah pisahkan. Data akan disimpan ke
dalam Data Sparepart. Berikut adalah penjelasan kode program 6:
1. Parsing data
Pertama-tama melakukan parsing data menggunakan beautifulsoup4 untuk
mengambil data sparepart.
2. Simpan hasil parsing
Tag html yang memiliki kelas “table.glow.pop-vin.table.table-bordered-1.table-
hover.table-condensed” diambil lalu disimpan.
3. Mengambil data sparepart berdasarkan list sparepart
Setelah mendapatkan sparepart lalu mencari part dari hasil parsing nomor 2,
dengan isi tag <td> yang berada dalam tag <tr> berkelas “tr.part-search-tr”.
1. buat csv untuk gambar
write (image)
write (headers_image)
write (data_image)
2. buat csv untuk sparepart
write (sparepart)
write (headers_sparepart)
write (data_sparepart)
3. simpan ("Driver's Position","Body","Grade","Fuel Induction","Gear Shift
Type","Engine","Destination") ke header_model
4. simpan header_model ke headers_model
buat csv untuk sparepart
write (model)
write (headers_model)
write (data_model)
Kode Program 7. Simpan Data ke CSV
Berikut adalah penjelasan dari kode program 7:
1. Menyimpan hasil crawling gambar
Library pendukung penyimpanan hasil crawling gambar kedalam csv adalah
library pandas. Penyimpanannya tidak berupa gambar, melainkan gambar yang
telah di encode menjadi base64.
2. Menyimpan hasil crawling sparepart
Library pendukung penyimpaan hasil crawling sparepart kedalam csv adalah
library pandas.
3. Membuat list berupa nama kolom
Nama kolom yang berada didalam list nantinya akan digunakan pada proses nomor
4 yaitu saat menyimpan hasil crawling sparepart.
4. Menyimpan hasil crawling sparepart berdasarkan model
27
Library pendukung penyimpanan hasil crawling sparepart berdasarkan model
kedalam csv adalah library pandas.
Berdasarkan wawancara langsung terhadap pegawai yang melakukan pengambilan
data secara manual pada website, Dibutuhkan waktu 6 - 12 jam untuk menyelesaikan 1 model
kendaraan. Dan dengan menggunakan Web Crawler ini hanya dibutuhkan waktu kurang lebih
sekitar 2 menit saja.
Hal ini menjelaskan bahwa dengan menggunakan web crawler ini proses pengambilan
data dinilai lebih efisien 360 % hingga 720 %. selain peningkatan kecepatan yang sangat
signifikan. Web Crawler berjalan secara otomatis dan tidak membutuhkan bantuan dari
Manusia. Ini tentunya sangat berpengaruh dengan tingkat keakuratan data.
Dengan tingkat pengambilan data dan ketepatan data yang sangat tinggi. Web Crawler
berhasil mengoptimalisasi proses pengambilan data sparepart untuk pembangunan Master
Sparepart Database dengan cara menggantikan proses pengambilan data secara manual menjadi
Web Crawler.
Gambar 24. Hasil Output Web Crawler
Berikut adalah detail hasil pengujian yang dilakukan dalam pengambilan beberapa sparepart :
No Nama Brand
Nama Model
Sparepart Lama Proses Kesesuaian Data
Teks Gambar Teks Gambar
1 Honda Accord
E-1-1: THROTTLE BODY(2.4L) 0.29896907 1.15625 sesuai sesuai
E-2: PURGE CONTROL SOLENOID VA LVE(2.4L) 0.30927835 0.8125 sesuai sesuai
E-3-1: INTAKE MANIFOLD(2.4L) 0.21649485 0.78125 sesuai sesuai
E-3-1: INTAKE MANIFOLD(2.4L)E-3-11: FUEL INJECTOR(2.4L)(1) 0.36082474 1 sesuai sesuai
E-3-16: ENGINE COVER(2.4L) 0.26804124 1.125 sesuai sesuai
2 Isuzu TBR (GM-
INDONESIA)
50919~022: 0-22 - ENGINE MOUNTING 0.20618557 0.78125 sesuai sesuai
50919~033: 0-33 - FAN AND FAN BELT 0.29896907 1.15625 sesuai sesuai
50919~041: 0-41 - FUEL FILTER AND BRACKET 0.26804124 0.84375 sesuai sesuai
50919~045: 0-45 - EVAPORATOR SYSTEM; ENGINE 0.40206186 0.71875 sesuai sesuai
50919~056: 0-56 - EMISSION SYSTEM 0.35051546 0.875 sesuai sesuai
Tabel 4. Pengujian Crawling Partsouq
Tabel 4 merupakan hasil pengujian crawling partsouq dengan menggunakan 2 brand, pada setiap brand
dilakukan pengujian satu model dengan 5 sparepart yang berbeda-beda. Pengujian ini melihat dari
kecepatan crawling dilakukan dan kesesuaian data hasil crawling dengan yang diinginkan.
28
5. Kesimpulan dan Saran
1. Kesimpulan
Dengan kemajuannya teknologi sekarang ini kebutuhan akan data semakin besar.
Dan proses pengumpulan data secara manual bisa menjadi salah satu bottleneck dari proses
pengumpulan data. Selain data diambil dengan memakan waktu yang sangat lama, Hasil
data juga tidak bisa di jamin 100% akurat.
Maka dari itu dibuatlah Web Crawler untuk membantu pengambilan data sparepart
ini. Dengan adanya crawler sparepart ini proses pengambilan data menjadi lebih praktis,
cepat, dan akurat. Melihat dari hasil pengujian crawling partsouq diketahui bahwa lama
rata-rata proses pengelolaan teks adalah 0.30 detik dan rata-rata proses pengelolaan gambar
adalah 0.93 detik. Pengelolaan gambar lebih lama dikarenakan proses encoding gambar
menjadi tipe data base64. Lama proses tersebut didapat berubah-ubah sesuai dengan
kualitas gambar yang diolah.
2. Saran
Setelah melakukan penelitian dan membuat script untuk melakukan scraping
sparepart. Bisa dilihat bahwa dengan adanya crawler sparepart ini tentu sangat membantu
proses pengambilan data dari website https://partsouq.com/. Namun Hasil dari crawler ini
masih bisa dibilang mentah. Akan lebih baik jika dibuat proses sistem secara keseluruhan
terlebih dahulu.
Contoh setelah data sparepart di dapatkan. Tahap selanjutnya adalah melakukan
cleaning data. Dan setelah itu data dimasukkan ke dalam database. Dengan begitu akan
lebih baik jika semua fitur terintegrasi sehingga semua proses pengolahan sparepart bisa
dilakukan secara otomatis.
29
6. Daftar Pustaka
[1] https://www.asura.co.id/blog/sejarah-dan-perkembangan-asuransi-di-indonesia diakses
pada tanggal 15 November 2018.
[2] https://www.bps.go.id/publication/2017/07/26/b598fa587f5112432533a656/statistik-
indonesia-2017.html diakses pada tanggal 15 November 2018.
[3] Aditya, B. 2015. Penggunaan Web Crawler untuk Menghimpun Tweets dengan Metode
Preprocessing Text Mining. ISSN : 2085 – 3688.
[4] Wijaya, J. 2015. Crawling Website E-Government Pemerintah Daerah Jawa Tengah
Berbasis Ontology.
[5] Nafi’iyah, N. 2016. Pemanfaatan Robot Crawler pada Pembuatan Toko Buku Online.
ISSN : 2503 – 07103.
[6] Agustino Halim, Rudy Dwi Nyoto dan Novi Safriadi. 2017. Perancangan Aplikasi Web
Crawler untuk Menghasilkan Dokumen pada Domain Tertentu. Pontianak : Universitas
Tanjungpura.
[7] Gatial, E. 2005. Focused Web Crawling Mechanism Based on Page Relevance. Institute
of Informatics Slovak Academy of Science.
[8] Olston, C and Najork, M. 2010. Web Crawling, Foundation and Trends R. Information
Retrival Vol 4 No 3, pp 175 – 246.
[9] Triawan, D. 2016. Implementasi Web Crawling Perbandingan Harga Smartphone pada
Situs Jual Beli Online. Yogyakarta : Sekolah Tinggi Manajemen Informatika.
[10] Putra, R. P. 2013. Optimalisasi Potensi Pengujung pada Website Shoppingmagz.com
Menggunakan Search Engine Optimization (SEO).
[11] Trupti V, Udapure, R.D.K and Rajesh C. D. 2014. Study of Web Crawler and its Different
Types. IOSR Journal of Computer Engineering (IOSR-JCE) Vol 16 Issue 1 Ver VI.
[12] Feldman, R. and Sanger, J. 2007. Text Mining Handbook: Advanced Approaches in
Analyzing Unstructured Data. New York: Cambridge University Press.
[13] Berry, M. W. and Kogan, J. 2010. Text Mining Application and Theory. WILEY : United
Kingdom.
[14] Han, J. and Kamber M. 2006. Data Mining: Concept and Techniques. Morgan Kauffman
Publisher. San Francisco.
[15] Marfian, D. 2015. Klasifikasi Pengkategorian Komentar Twitter untuk Kota Bandung
dan Yogyakarta.
[16] Polikar, R. 2006. Pattern Recognition. New Jersey : Rown University Glassboro.
[17] Robert, G. and Wilks, Y. 1998. Information Extraction: Beyond Documen Retrival.
Computational Lingustic and Chinese Language Processing Vol 3 Edition 2 pp 17 – 60.
[18] Kaiser, K. and Miksch, S. 2005. Information Extraction A Survey. Report for Asgaard-
TR-2005-6.
[19] Muliantara, M. 2009. Penerapan Regular Expression dalam Melindungi Alamat Email
dari Spam Robot pada Konten Wordpress. Jurnal Ilmu Komputer Vol 2 No 1.