Web Scraping Review Ulasan Aplikasi pada PlayStore

Web scraping merupakan cara pengambilan data dari sebuah website. Dibandingkan dengan melakukan pengambilan data secara manual. Web scraping menggunakan sebuah program lebih mudah untuk mengambil data dan dengan waktu yang singkat.

Web scraping review sebuah aplikasi bermanfaat untuk mendapatkan informasi atas kepuasan konsumen. Dengan memilki pengetahuan tersebut, pihak pengembang aplikasi dapat terbantu dalam meningkatkan layanan.

Selain itu di luar pihak pengembang aplikasi dapat juga digunakan untuk penelitian sentiment analisis mengenai kepuasan user aplikasi tersebut.

Untuk dapat melakukan web scraping, dapat dilakukan secara manual maupun otomatis. Otomasi web scraping akan mempermudah dan mempercepat untuk mendokumentasikan data dari website.

Kita dapat menggunakan library Python yang tersedia untuk mengambil review aplikasi dari Google Play Store. Menggunakan python bisa menjadi salah satu pilihan cara, jika perlu mengekstrak data dalam jumlah besar.

Dalam artikel ini akan menggunakan sebuah program dengan menggunakan library “google_play_scraper” dari bahasa pemrograman python

Langkah pertama dalam membuat program untuk web scraping review sebuah aplikasi dari play store menggunakan python adalah menginstall library “google_play_scraper” setelah membuka jupyter notebook dengan cara ketikkan “pip install google_play_scraper” lalu jalankan, tunggu hingga proses selesai.

Selanjutnya install pandas dengan cara ketik “pip install pandas’ lalu jalankan dan tunggu hingga proses installasi selesai.

Kemudian setelah proses installasi library yang diperlukan selesai lanjut dengan mengimport library yang diperlukan menggunakan kode berikut:

import pandas as pd

import numpy as np

from google_play_scraper import app

from google_play_scraper import Sort, reviews_all

 

Selanjutnya jika ingin mengambil semua data review aplikasi yang diinginkan menggunakan kode berikut untuk scrape semua review, caranya buka playstore di browser cari aplikasi yang akan discrape reviewnya kemudian dari URL yang ada, copy bagian seperti contoh yang diblok warna kuning lalu masukkan pada kode seperti contoh.

https://play.google.com/store/apps/details?id=com.tokopedia.tkpd&hl=id-ID

#scrape semua review

reviews = reviews_all(

    ' com.tokopedia.tkpd ', # aplikasi yang di scrape reviewnya

    sleep_milliseconds =0,

    lang = 'id',

    country = 'id',

    sort = Sort.NEWEST

)

 

Jika hanya ingin mengambil data dalam jumlah tertentu, contoh hanya mengambil 100 review aplikasi tokped dari playstore masukkan pada kode seperti contoh untuk aplikasinya dan jumlah review sesuai yang diinginkan pada bagian “count”.

#scrape sejumlah review

from google_play_scraper import Sort, reviews

result, continuation_token = reviews(

    ' com.tokopedia.tkpd ', # aplikasi yang di scrape reviewnya

    lang = 'id',

    country = 'id',

    sort = Sort.NEWEST,

    count = 100, #jumlah banyak review

    filter_score_with = None

)

 

Untuk menampilkan hasilnya

result

 


Dari hasil yang didapat berisi “reviewId”, “username”, “userImage”, “content”, “score”, “thumbsUpCount”, “reviewCreatedVersion”, “at”, “replyContent”, “repliedAt”, dengan data dalam bentuk dictionary. Setelah itu ubah hasil scrape menjadi Pandas DataFrame untuk mempermudah pengolahan data. Setelah diubah menjadi Pandas DataFrame data akan berbentuk table. Gunakan .head(10) untuk menampilkan 10 baris awal dari data.

rev_df = pd.DataFrame(result)

rev_df.head(10)

 


Selanjutnya dari data yang telah diperoleh tidak semua dipakai. Ambil hanya kolom yang diperlukan, dalam hal ini untuk analisis sentiment. Hanya ambil kolom “userName”, “content”, “score”, “at”.

review_df = rev_df[['userName', 'content', 'score', 'at']]

 


Untuk mengecek pembagian jumlah score review menggunakan kode

review_df['score'].value_counts()

 


Setelah semua berjalan dengan lancer dan sesuai yang diinginkan, simpan sebagai data yang telah discrape menjadi file CSV menggunakan kode.

review_df.to_csv('review_tokped.csv', index=False)

Selain menyimpan dalam bentuk CSV kita juga dpat menimpannya dalam bentuk excel.

review_df.to_xlsx('review_tokped.csv', index=False)

 

Dalam file CSV nya, berisi scraping dengan kolom “userName”, “content”, “score”, “at”. Dengan jumlah baris 100.


Contoh Soal Tes TKD

1.       Satu kata yang tidak memiliki kesamaan dalam hal tertentu dengan kata lain adalah ....

A.      Dapat

B.      Bisa

C.      Hebat

D.      Sanggup

E.       Mampu

2.       Surai >< ....

A.      Bubar

B.      Usai

C.      Purna

D.      Berhimpun

E.       Akhi

3.       Rokok : Asbak = Air : ….

A.      Pancur

B.      Selokan

C.      Panci

D.      Selang

E.       Keran

4.       Rabun >< ....

A.      Tajam

B.      Terang

C.      Tepat

D.      Jelas

E.       Samar

5.       Mana yang tidak masuk kelompoknya?

A.      Makan

B.      Berlari

C.      Tersohor

D.      Membaca

E.       Menegur

6.       Satu kata yang tidak memiliki kesamaan dalam hal tertentu dengan kata lain adalah ....

A.      Bakso

B.      Soto

C.      Sop

D.      Lontong

E.       Rawon

7.       60, 30, 90, 45, 135, ...., 202,5

A.      125,5

B.      56

C.      67,5

D.      42

E.       68

8.       Agus berjalan menempuh jarak sejauh 2/5 km hanya dalam waktu 5 menit, berapakah jarak perjalanan yang berhasil ditempuh Agus dalam 1 jam yang akan datang?

A.      4,5 km

B.      4,3 km

C.      5 km

D.      5,3 km

E.       4,8 km

9.       Jika x adalah 3,87 persen dari 2475 dan y adalah 4,75 persen dari 3870 maka

A.      X > y

B.      x = y

C.      Hubungan x dan y tidak dapat ditentukan

D.       x < y> E. x = y

10.   1; 0,5 ; 0,333 ; 0,25 ; … ; …

A.      0,2 ; 0,1667

B.      0,125 ; 0,0625

C.      0,111 ; 0,0125

D.      0,125 ; 0,111

E.       0,15 ; 0,04

 

Kunci:

1.       C

2.       D

3.       C

4.       D

5.       C

6.       D

7.       C

8.       E

9.       D

10.   A

 

 

 

 

 

 

References:

-          https://www.kitalulus.com/seputar-kerja/contoh-soal-tkd-bumn-dan-pembahasannya

-          https://www.viva.co.id/edukasi/1608703-20-contoh-soal-tkd-bumn-beserta-kunci-jawabannya?page=2

-          https://mamikos.com/info/contoh-soal-tkd-bumn-batch-2-kry/

 


Belajar Exploratory Data Analysis dengan Python

Exploratory Data Analysis adalah suatu proses awal mengidentifikasi pola, menemukan anomali, menguji hipotesis dan memeriksa asumsi pada data.  EDA berguna dalam mendeteksi kesalahan dari awal, dapat mengidentifikasi outlier, mengetahui hubungan antar data serta dapat menggali faktor-faktor penting dari data dan memberikan wawasan baru. EDA sangat bermanfaat untuk analisis statistik. EDA sering kali digunakan untuk menemukan hasil yang valid dan relevan sebagai arah tujuan bisnis yang diinginkan.

Berikut contoh program EDA:

Import library yang diperlukan

import pandas as pd

import numpy as np

Buka file yang diperlukan

data_df = pd.read_excel('Global Superstore Orders 2016.xlsx')

Data Understanding

Tampilkan 5 baris pertama data menggunakan .head()

data_df.head()



.tail() untuk menampilkan 5 baris terakhir  data

data_df.tail()




untuk menampilkan informasi tentang data gunakan .info(), dari fungsi ini kitab isa mengetahui nama dan type data dari masing2 kolom, selain itu kita juga bisa mengetahui ada berapa jumlah baris non-null dalam sebuah kolom

data_df.info()


.columns untuk menampilkan nama2 kolom dari data

data_df.columns



Kemudian untuk menampilkan nama kolom, banyaknya baris perkolom, dan nilai unik (tidak ada duplikasi) menggunakan kode di bawah. unique() digunakan untuk menampilkan nilai unik (tidak ada duplikasi)

for col in data_df.columns:

    print(col, len(data_df[col].unique()), data_df[col].unique())



Kemudian untuk mendeskripsikan data seperti nilai rata2, nilai maks, nilai minimal dari data dll, menggunakan describe(), hanya data numerik yang akan dimunculkan.

data_df.describe()


Jika diawal menggunakan .info() untuk menampilkan nama kolom, berapa jumlah baris non-null dan type data kolom. Kita juga bisa hanya menampilkan nama kolom dan type datanya menggunakan .dtypes

data_df.dtypes



Kemudian cek apakah ada dan berapa jumlah nilai null dalam kolom. Dari gambar dibawah menunjukkan ada kolom berisi nilai null yaitu kolom “Postal Code” sebanyak 41296.

data_df.isna().sum()



Data Visualization

from matplotlib import pyplot as plt

import seaborn as sns

Pecah kolom “Order Date” menjadi 3 kolom yaitu: “Order Day”, ”Oder Month”, ”Order Year”

data_df['Order Day'] = data_df['Order Date'].dt.day

data_df['Order Month'] = data_df['Order Date'].dt.month

data_df['Order Year'] = data_df['Order Date'].dt.year

 

Buat variable baru yang berisi jumlah penjualan menurut bulan tahun

penjualan_df = data_df.groupby(['Order Year', 'Order Month'])

penjualan_df = penjualan_df[['Sales']].sum().reset_index()

Dari barplot di bawah menunjukkan jumlah  penjualan mengalami naik turun tiap bulan antar tahunnya.

sns.barplot(data = penjualan_df,

            x='Order Month', y= 'Sales',

            hue='Order Year'            

             ).set_title('sum of sales based on month')



Grafik lineplot lebih mudah untuk diamati, yaitu di setiap tahunnya pada bulan ke 2, 4, 7, dan 10 jumlah penjualan mengalami penurunan. Sedangkan pada bulan 3, 6, 8, 9, 11 cenderung mengalami kenaikan. Dari hasil ini dapat digunakan untuk menentukan seperti penambahan jumlah stok pada bulan adanya kenaikan jumlah penjualan, ataupun pengurangan stok pada bulan Ketika mengalami penurunan jumlah penjualan.

sns.lineplot(x='Order Month', y= 'Sales',

             data = penjualan_df,

             hue='Order Year', style='Order Year', markers=True,

             dashes=False).set_title('sum of sales based on month')

# plt.xlim(1)

plt.ylim(0)



Buat variable baru yang berisi jumlah penjualan menurut tahun

penjualan_df_year = data_df.groupby(['Order Year'])

penjualan_df_year = penjualan_df_year['Sales'].sum().reset_index()

Dari barplot dan lineplot di bawah menunjukkan bahwa jumlah penjualan mengalami peningkatan tiap tahunnya

sns.barplot(x='Order Year', y= 'Sales',

            data = penjualan_df_year).set_title('sum of sales based on year')



sns.lineplot(x='Order Year', y= 'Sales',

             data = penjualan_df).set_title('sum of sales based on year')



Buat variable baru yang berisi jumlah penjualan menurut kategori

penjualan_df_category = data_df.groupby(['Category'])

penjualan_df_category = penjualan_df_category['Sales'].sum().reset_index()

Menampilkan jumlah penjualan per kategori menggunakan dictionary

dict_cat_sales={}

category= data_df['Category'].unique()

# print('category: {}'.format(category))

for c in category:

    dict_cat_sales[c] = (penjualan_df_category['Sales'][penjualan_df_category['Category']==c].sum())

print('dictt_cat_sales: {}'.format(dict_cat_sales))



Dari barplot di bawah menunjukkan kategori Technology memiliki jumlah penjualan tertinggi dan Office Suply memiliki jumlah penjualan terendah

sns.barplot(x='Category', y= 'Sales',

             data = penjualan_df_category).set_title('sum of sales based on category')



 

 




Source Code dan file: https://github.com/javid321/Data-Science-Data-Analyst/tree/main/EDA

 

Reference:

https://dqlab.id/data-analisis-machine-learning-untuk-proses-pengolahan-data

https://algorit.ma/blog/exploratory-data-analysis-2022/



Belajar Machine Learning Mudah dengan Sumber Belajar Gratis & Terpercaya Cocok untuk Pemula

📚 Daftar Isi Apa Itu Machine Learning? Pentingnya Machine Learning di Era Sekarang Jenis-Jenis Machine Learning ...