Nur Khamidah

Cara Mudah Scrape Data Review Produk Shopee Menggunakan Python dalam 5 Menit

Data dapat diperoleh dari mana saja. Ketika kita ingin menganalisis bagaimana pendapat para pelanggan mengenai kualitas sebuah produk, kita tentu membutuhkan ulasan-ulasan pelanggan mengenai produk tersebut. Dalam artikel ini akan diulas sedikit mengenai bagaimana mendapatkan data ulasan produk dari Shopee menggunakan Python.

Tentang Shopee

Shopee merupakan sebuah platform jual beli secara daring (e-commerce) yang didirikan pada tahun 2015 oleh Forrest Li. Shopee memungkinkan seorang pengguna dapat menjual atau membeli produk secara langsung dan dikirimkan oleh ekspedisi tertentu. Kini Shopee tersedia di 12 negara di dunia seperti Indonesia, Malaysia, Filipina, Singapura, Thailand, Vietnam, Taiwan, Brazil, Chile, Kolombia, dan Meksiko. Shopee menyediakan fitur-fitur seperti pembayaran online, chat antara pembeli dan penjual, serta sistem rating untuk penjual bahkan saat ini sudah merambah fitur baru seperti ShopeeFood yang fokus di bidang F&B.

Shopee memiliki sistem review yang berupa rating dan komentar untuk penjual yang tertera di setiap produk. Sistem review dalam hal ini memungkinkan pembeli untuk memberikan penilaian atas produk dan layanan yang diterima dari penjual setelah transaksi diselesaikan oleh pembeli. Penilaian ini dapat berupa bintang atau skor yang diberikan oleh pembeli dan ulasan mengenai produk yang diterima yang selanjutnya dapat digunakan oleh pembeli lain untuk memudahkan dalam membuat keputusan dalam melakukan transaksi terhadap produk tersebut.

Bagaimana Memanfaatkan Ulasan Produk Shopee?

Kita dapat menggunakan review Shopee untuk melakukan berbagai macam analisis, diantaranya:

  1. Analisis Sentimen : Kita dapat menganalisis komentar yang diberikan pembeli untuk mengevaluasi tingkat kepuasan pembeli terhadap produk dan layanan yang diterima dari penjual.
  2. Prediksi Penjual Terpercaya : Kita dapat menggunakan review yang diberikan pembeli untuk memprediksi penjual yang dianggap terpercaya.
  3. Segmentasi Penjual : Kita dapat menggunakan review untuk mengelompokkan penjual berdasarkan tingkat kepercayaannya, sehingga dapat dikembangkan strategi pemasaran yang sesuai.
  4. Analisis Produk : Kita dapat menganalisis review produk yang diterima dari pembeli untuk menentukan produk yang paling populer dan produk yang kurang diminati.
  5. Analisis Trend : Kita dapat menganalisis review yang diterima dari pembeli untuk mengetahui trend produk yang sedang populer saat ini.

Secara umum, data review Shopee dapat kita manfaatkan dalam mengevaluasi kinerja penjual dan kualitas produk yang dijual melalui platform ini, serta untuk mengembangkan strategi yang sesuai untuk meningkatkan penjualan. Misalnya, dengan analisis sentimen kita dapat mengetahui kira-kira dalam segi apakah penjual harus memperbaiki kualitas pelayanannya, dan sebagainya.

Bagaimana Cara Scrape Data dari Shopee?

Scraping adalah proses mengambil data dari satu atau lebih halaman web dengan mengumpulkan informasi dari halaman web yang ditentukan secara otomatis dan spesifik, yaitu mengambil informasi yang dibutuhkan ke dalam format yang lebih memudahkan untuk dilakukan proses selanjutnya (analisis).

Kita dapat mengambil data review Shopee dengan menggunakan beberapa cara, diantaranya:

  1. Python menyediakan berbagai library yang dapat kita manfaatkan untuk mengambil data dari Shopee, seperti BeautifulSoup, Scrapy, Selenium, Requests, dan lain-lain.
  2. Shopee saat ini menyediakan API (Application Programming Interface) yang dapat digunakan untuk mengambil data dengan mudah dan cepat tanpa perlu melakukan web scraping dengan tools tertentu. Untuk informasi lebih lanjut kamu dapat mengaksesnya melalui link ini.
  3. Terdapat beberapa situs web yang bisa kita manfaatkan untuk melakukan scraping data seperti import.io, scrapehero, atau webscraper.io.

Setelah data dari Shopee diambil, kita dapat mengekstrak, mengolah, dan menganalisis data tersebut untuk mengevaluasi kinerja penjual dan produk yang dijual melalui platform Shopee, serta untuk mengembangkan strategi yang sesuai untuk meningkatkan penjualan.

Step by Step Scrape Data Shopee

Dalam kasus ini, kita akan menggunakan Python dengan memanfaatkan beberapa library seperti requests dan pandas. Pertama kita harus meng-import library yang dibutuhkan terlebih dahulu.

import re
import requests
import pandas as pd
  • Library re merupakan singkatan dari regular expressions yang digunakan sebagai pengaturan dalam manipulasi string dalam mencari data Shopee berdasarkan format string tertentu.
  • Library requests digunakan untuk web scraping
  • Library pandas untuk memanipulasi data yang telah diperoleh menjadi bentuk tabel.

Selanjutnya simpan tautan produk yang diinginkan ke dalam object url.

url = 'https://shopee.co.id/Premium-Brill-Eighty-eight-Flannel-Shirt-077-i.32031549.1991571675'

Selanjutnya tentukan manipulasi string yang akan dipakai untuk mengambil data. Dalam hal ini akan diambil data berupa user name, rating, dan kometar.

r = re.search(r'i\.(\d+)\.(\d+)', url)

shop_id, item_id = r[1], r[2]

ratings_url = 'https://shopee.co.id/api/v2/item/get_ratings?filter=0&flag=1&itemid={item_id}&limit=20&offset={offset}&shopid={shop_id}&type=0'

Kemudian, scrape data dilakukan dengan menjalankan baris kode berikut:

offset = 0
d = {'username': [], 'rating': [], 'comment': []}

while True:
data = requests.get(ratings_url.format(shop_id=shop_id, item_id=item_id, offset=offset)).json()
i = 1
for i, rating in enumerate(data['data']['ratings'], 1):
d['username'].append(rating['author_username'])
d['rating'].append(rating['rating_star'])
d['comment'].append(rating['comment'])

# mencetak review yang di-scrape
print(rating['author_username'])
print(rating['rating_star'])
print(rating['comment'])
print('-' * 80)

# menghentikan perulangan
if i % 20:
break

offset += 20

Proses eksekusi dapat memakan waktu cukup lama tergantung banyak hal, seperti kecepatan prosesor device yang digunakan atau ukuran data yang diambil. Semakin banyak review yang seharusnya diambil, semakin lama pula proses eksekusinya. Setelah itu, diperoleh hasil scraping sebagai berikut:

Data Scraping
Hasil scraping dengan Python

Hasil scraping di atas masih berupa dictionary Python, sehingga untuk memudahkan dalam pembacaan dan analisis selanjutnya, dapat dengan mengubahnya ke dalam bentuk data frame atau tabel sebagai berikut:

df = pd.DataFrame(d)

Hasil scraping juga dapat disimpan ke dalam file berformat .csv sebagai berikut:

df.to_csv('data.csv', index=False)

Sehingga diperoleh data review produk Shopee dari hasil scraping melalui Python seperti pada screen shot di bawah.

Hasil scraping data review produk Shopee

Penutup

Demikian hasil scraping review produk Shopee dengan menggunakan Python. Mudah bukan? Sebenarnya masih terdapat banyak lagi metode dan library yang bisa dimanfaatkan untuk melakukan scraping data dari situs web tertentu. Sampai jumpa di artikel-artikel selanjutnya, ya. Selamat mencoba!

Jika kamu memiliki kesulitan dalam hal analisis atau segala yang berkaitan dengan data, jangan sungkan-sungkan untuk menghubungi Exsight ya! Tim Exsight akan membantumu dengan sigap. Kamu dapat mengakses informasi lebih lengkap melalui link ini. Sampai jumpa!

Referensi

Come Make History With Us | Shopee Careers. Available at: https://careers.shopee.co.id/about.

Shopee open platform. Available at: https://open.shopee.com/documents/v2/v2.product.get_category?module=89&type=1

Cara Mudah Scrape Data Review Produk Shopee Menggunakan Python dalam 5 Menit Read More »

dashboard interaktif

Tutorial Membuat Dashboard Interaktif di Python dengan Streamlit #1

Pengantar

Dashboard interaktif adalah salah satu aplikasi data science berupa laman yang menampilkan sekumpulan visualisasi data yang bertujuan untuk menampilkan data sehingga menghasilkan insight yang lebih lengkap. Dalam hal ini, akan dibuat sebuah dashboard interaktif dengan menggunakan Streamlit di Python.

Jika kita ingin membuat sebuah dashboard atau koleksi visualisasi data yang dapat diaplikasikan secara interaktif, maka kita memerlukan tools-tools pembuat dashboard seperti Google Dashboard, R Shiny, Microsoft PowerBI, Tableau, dan lain-lain. Streamlit merupakan salah satu package yang terdapat dalam bahasa pemrograman Python yang memungkinkan penggunanya merepresentasikan dashboard dengan tampilan yang praktis dan minimalis. Beberapa keunggulan Streamlit antara lain:

  • Open source
  • Tidak membutuhkan proses penginstalan lain/aplikasi tambahan karena pada dasarnya Streamlit mirip dengan package lain yang terdapat pada Python
  • Dapat bekerja dengan baik bersama dengan package visualisasi data lainnya pada Python seperti TensorFlow, Keras, PyTorch, Pandas, Numpy, Matplotlib, Seaborn, Altair, Plotly, Bokeh, Vega-Lite, dan lain-lain.
  • Dapat membangun aplikasi yang praktis sederhana walaupun berasal dari ratusan/ribuan baris kode Python yang kompleks
  • Tampilan minimalis dan tidak membutuhkan prosedur yang rumit dalam membangun aplikasi.

Namun Streamlit juga memiliki kekurangan. Beberapa kekurangan Streamlit yang penulis rasakan selama ini antara lain

  • Membutuhkan konfigurasi tambahan ketika menggunakan package lain di Python
  • Membutuhkan pengaturan html tertentu jika ingin melakukan kostumisasi tampilan di Streamlit
  • Aplikasi berjalan melamban seiring semakin banyak dan kompleksnya diagram yang ditampilkan/diinteraksikan
  • Streamlit sangat bergantung pada source code yang dibuat, jika source code memiliki bug atau terdapat error, maka aplikasi tidak akan tampil/berjalan

Membuat Aplikasi Data Science

Berikut merupakan beberapa tutorial untuk membuat aplikasi data science sederhana berupa dashboard interaktif dengan menggunakan Streamlit. Dalam hal ini, kami menggunakan IDE Visual Studio Code dan menggunakan bahasa pemrograman Python. Untuk diagram yang ditampilkan, digunakan package Plotly agar lebih menarik dan interaktif. Package Plotly dan Streamlit dapat di-install melalui terminal dengan code berikut:

pip install plotly
pip install streamlit

Selain Plotly dan Streamlit, digunakan pula package lain seperti Pydataset karena dalam hal ini digunakan dataset Titanic sebagai contoh data yang divisualisasikan. Dalam praktik kali ini, dibuat sebuah file bernama steamlit.py (nama file dan lokasi yang digunakan bebas).

Import Package yang Digunakan

Beberapa package yang akan dipakai dalam aplikasi ini antara lain Plotly dan Pydataset, yang selanjutnya di-import dengan:

import streamlit as st
from pydataset import data
import plotly.express as px
import plotly.graph_objects as go
Menjalankan Aplikasi di Local

Ketika membangun sebuah aplikasi dengan Streamlit, tentu secara periodik kita ingin melihat bagaimana aplikasi kita ditampilkan dan apakah ada bug/error sehingga kita dapat secara langsung memperbaiki error tersebut. Menjalankan aplikasi Streamlit di local/komputer dapat menghemat waktu dan memori yang digunakan, selain proses ini tidak membutuhkan koneksi internet sebagaimana ketika men-deploy aplikasi. Untuk menjalankan aplikasi di local, dapat dengan mengetikkan code berikut tepat di lokasi di mana file kode Streamlit disimpan.

streamlit run <nama file streamlit>.py

Atau dapat dilihat pada gambar berikut:

Proses menjalankan aplikasi Streamlit di lokal.
Membuat Konfigurasi Halaman

Setelah melakukan import package, dilakukan beberapa konfigurasi halaman sesuai dengan kebutuhan aplikasi yang dibuat. Konfigurasi halaman dilakukan dengan menggunakan fungsi st.set_page_config() sebagai berikut:

st.set_page_config(
page_title = "titanic!",
page_icon = "🦈", # emoji ikon untuk ikon tab, bisa dengan "random"
layout = "wide", #centered atau #wide
menu_items = {
'Get Help' : None, #atau string
'Report a bug' : "https://www.google.com",
'About' : "Ini adalah about"
},
initial_sidebar_state = "auto",
)

Adapun beberapa line code di atas mengandung arti sebagai berikut:

  • page_title : Memberikan nama halaman, konfigurasi ini akan terlihat pada nama tab aplikasi Streamlit yang terdapat di browser kamu.
  • page_icon : Mengatur ikon tab aplikasi Streamlit setelah dilakukan deployment.
  • layout : Mengatur bagaimana halaman aplikasi kamu ditampilkan, bisa dengan wide (jika ingin menampilkan halaman dalam format lebat), centered (jika ingin menampilkan halaman dalam format di tengah).
  • menu_items : Mengonfigurasi beberapa menu yang disediakan dalam aplikasi Streamlit, seperti Get Help (bagaimana aplikasi menyediakan layanan bantuan), Report a bug (bagaimana aplikasi menyediakan link yang mengarahkan pengguna ke laman tertentu untuk melaporkan adanya bug/error, serta About (jika kamu ingin menambahkan keterangan tambahan mengenai aplikasi yang sedang dijalankan). Konfigurasi ini akan ditampilkan berupa menu yang muncul di pojok kanan aplikasi.
  • initial_sidebar_state : Bagaimana sidebar seharusnya ditampilkan.
Membuat Judul dan Caption Judul

Judul dalam halaman aplikasi Streamlit dibuat dengan menggunakan st.title(). Judul diletakkan setelah konfigurasi halaman sebagai berikut:

st.title("Visualisasi Dataset Titanic di Python dengan Streamlit")

Caption merupakan sederet kalimat tambahan yang muncul di bawah sebuah objek dan menjelaskan keberadaan objek tersebut. Dalam hal ini akan dibuat sebuah caption di bawah judul yang menjelaskan halaman yang sedang dibuat. Caption dibuat dengan menggunakan st.caption() sebagai berikut:

st.caption("Ini adalah simulasi pembuatan web dashboard dengan streamlit menggunakan dataset Titanic.")

Sehingga judul dan caption akan muncul dalam format sebagai berikut:

Judul dan Caption yang telah dibuat dengan Streamlit
Menambahkan Gambar

Gambar dapat ditambahkan dengan menggunakan st.image() sebagai berikut:

st.image("https://images.pexels.com/photos/843085/pexels-photo-843085.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2", width=600)

Gambar dapat diambil dari local atau dari link tertentu sesuai dengan kebutuhan. Dalam hal ini, gambar diambil dari sumber link secara open source yang tersedia di internet yang kemudian ditampilkan dalam bentuk sebagai berikut:

Caption berisi link di atas ditambahkan dengan menggunakan st.caption() dengan format link berupa [Nama Link](Link/URL) sebagai berikut:

st.caption("Ini bukan gambar kapal titanic. [Sumber disini.](https://www.pexels.com/photo/white-ship-during-golden-hour-843085/)")

Namun ada yang kurang bukan? Seharusnya kita meletakkan gambar di tengah dan bukan di tepi. Lalu bagaimana caranya agar gambar di atas terletak di tengah halaman? Maka dari itu, digunakan konfigurasi kolom halaman.

Pengaturan Kolom Halaman

Pengaturan kolom ini mirip ketika kita mengatur halaman pada html, di mana halaman dibagi ke dalam kolom-kolom elemen sehingga tata letak elemen dapat diatur sesuai kemauan kita. Dalam hal ini, untuk membuat gambar sebelumnya menjadi posisi tengah, maka dilakukan pembagian halaman menjadi 3 kolom di mana kolom tengah berisi gambar dan kolom kiri kanan berisi elemen kosong.

Ilustrasi pembagian kolom yang akan dibuat

Pembagian kolom dilakukan dengan menggunakan st.columns() sebagai berikut:

g1, g2, g3 = st.columns([1,2,1])
with g1:
st.write(" ")
with g3:
st.write(" ")
with g2:
st.image("https://images.pexels.com/photos/843085/pexels-photo-843085.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2", width=600)

Sehingga diperoleh hasil sebagai berikut:

Gambar menjadi tengah setelah dilakukan pengaturan kolom.
Menambahkan Teks

Menambahkan paragraf dalam aplikasi Streamlit dapat dengan tiga cara, yaitu dengan menggunakan st.write(), dengan langsung mengetikkan teksnya, serta dengan menggunakan st.markdown().

Menggunakan st.write() dan secara langsung mengetikkan teks dapat dilakukan ketika kita tidak membutuhkan format tertentu dalam menampilkan teks/paragraf.

"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."

st.write("Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Elit ullamcorper dignissim cras tincidunt lobortis feugiat. Neque laoreet suspendisse interdum consectetur libero id faucibus nisl. Convallis tellus id interdum velit.")

Code di atas dapat ditampilkan sebagai berikut:

Pembuatan paragraf dengan st.write() dan menuliskan teks secara langsung.

Menggunakan st.markdown() dilakukan jika kita ingin menambahkan format tertentu ke dalam paragraf seperti rata kanan-kiri (justify), rata kiri, rata kanan, teks miring, dan lain-lain. Kostumisasi format dapat dilakukan dengan menggunakan format tag html.

st.markdown('<div style="text-align:justify">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut faucibus pulvinar elementum integer enim. Vestibulum lorem sed risus ultricies. Libero nunc consequat interdum varius sit. In est ante in nibh mauris cursus mattis molestie. Mattis aliquam faucibus purus in massa tempor nec feugiat nisl. Eget duis at tellus at urna. Morbi tristique senectus et netus et malesuada fames ac turpis. Mus mauris vitae ultricies leo integer malesuada nunc vel. Dolor magna eget est lorem ipsum dolor.</div>', unsafe_allow_html=True)
st.markdown('<div style="text-align:justify">Nisl nisi scelerisque eu ultrices vitae auctor eu augue ut <i><b>lectus arcu bibendum</b></i> at varius vel pharetra vel turpis nunc eget lorem dolor sed viverra ipsum nunc <b>aliquet bibendum enim</b> facilisis gravida neque convallis a cras semper auctor neque vitae.</div>', unsafe_allow_html=True)

Beberapa tag html yang sering dipakai antara lain <div></div> untuk paragraf biasa, <h1></<h1> hingga <h6></h6> untuk heading-subheading, <i></i> untuk teks miring, <b></b> untuk teks tebal, dan lain-lain. Menggunakan st.markdown() juga harus disertai dengan argumen unsafe_allow_html = True untuk memungkinkan teks yang diketik menggunakan tag html.

Berdasarkan code di atas, paragraf ditampilkan menjadi bentuk berikut:

Tampilan paragraf dengan st.markdown()
Menampilkan Data Frame

Data frame atau tabel data merupakan hal yang umum di dalam data science. Jika kamu ingin menampilkan dataset di dalam aplikasi Streamlit kamu, dapat digunakan st.dataframe(). Dalam hal ini karena dataset memiliki amatan yang banyak, sehingga data frame disimpan dalam sebuah expander atau tampilan yang bisa di-minimize atau di-maximize sesuai dengan kebutuhan.

titanic = data('titanic')
st.markdown('<h4 style="text-align:center">Visualisasi Dataset Titanic</h4>', unsafe_allow_html=True)
st.markdown('<h5 style="text-align:justify">Menampilkan Dataset</h5>', unsafe_allow_html=True)
with st.expander('Dataset Titanic', expanded=False):
st.dataframe(titanic)

Data ditampilkan seperti pada GIF berikut:

Menampilkan dataset dengan expander.
Menampilkan Baris Kode

Baris kode dapat ditampilkan di aplikasi Streamlit dengan menggunakan st.code() sebagai berikut:

'Dataset di atas ditampilkan dengan code berikut:'
expander = '''with st.expander('Dataset Titanic', expanded=False):
st.dataframe(titanic)'''
st.code(expander, 'python')

Dan kode ditampilkan sebagai berikut:

Menampilkan baris kode dengan st.code()
Input Widget

Streamlit memiliki berbagai macam input widget yang dapat dipakai sebagai input yang menghasilkan output berupa plot. Beberapa input widget yang dimiliki Streamlit antara lain:

Nama WidgetKegunaanKode
ButtonMirip seperti tombol yang dapat melakukan eksekusi tertentu ketika diklikst.button()
Download ButtonSeperti pada widget Button, tetapi mengeksekusi pengunduhan filest.download_button()
CheckboxBerupa kotak centang yang bisa diaktifkan atau tidakst.checkbox()
RadioMemungkinkan memilih satu dari beberapa opsi dengan bentuk mirip tombol radiost.radio()
SelectboxMemilih lebih satu opsi yang disediakan dengan model input berupa dropdownst.selectbox()
MultiselectMemilih lebih dari satu opsi yang disediakan dengan model input dropdownst.multiselect()
SliderMemilih angka pada rentang tertentust.slider()
Select-sliderMemilih beberapa opsi dengan menggeser point pada garis vertikalst.select_slider()
Text inputMemasukkan teks singkatst.text_input()
Number inputMemasukkan angka tertentu dari beberapa opsi yang disediakan berupa dropdownst.number_input()
Text areaMemasukkan lebih dari satu baris teksst.text_area()
Date inputMasukan berupa tanggalst.date_input()
Time inputMasukan berupa jamst.time_input()
File uploaderMemungkinkan dapat mengunggah filest.file_uploader()
Camera inputMemungkinkan user dapat memberikan input berupa gambar yang diambil secara langsung melalui camerast.camera_input()
Color pickerMemasukkan warna melalui pallette warna yang munculst.color_picker()

Dalam hal ini akan ditampilkan sebuah pie chart dengan menggunakan dua widget input, antara lain radio dan select box.

st.selectbox()

p1a, p1b = st.columns([1,3])

with p1a:
st.markdown('<h6 style="text-align:center">Widget input yang digunakan: Select Box</h6>', unsafe_allow_html=True)
sb = st.selectbox('Pilih Variabel:', ['class', 'age', 'sex', 'survived'])

with p1b:
pie = px.pie(titanic, names=sb)
st.plotly_chart(pie)

Dan pie chart dataset titanic akan ditampilkan sebagaimana berikut:

Visualisasi pie chart dataset titanic dengan st.selectbox()

st.radio()

p2a, p2b = st.columns([1,3])

with p2a:
st.markdown('<h6 style="text-align:center">Widget input yang digunakan: Radio</h6>', unsafe_allow_html=True)
rd = st.radio('Pilih Variabel:', ['class', 'age', 'sex', 'survived'])

with p2b:
pie1 = px.pie(titanic, names=rd)
st.plotly_chart(pie1)

Dengan st.radio(), pie chart ditampilkan sebagai berikut:

Visualisasi pie chart dataset titanic dengan st.radio()

Terakhir, jika kamu ingin meng-explore lebih banyak lagi seputar widget input yang dimiliki Streamlit beserta contoh-contohnya, kamu dapat mengunjungi laman dokumentasi Streamlit melalui link ini.

Penutup

Nah, itu dia sedikit tutorial bagaimana membangun aplikasi data science sederhana dengan menggunakan Streamlit di Python. Semoga tutorial ini dapat sedikit membantu kamu, ya! Sampai jumpa di artikel-artikel selanjutnya.

Kemudian, untuk kamu yang mengalami kesulitan mengenai instalasi Python, kamu dapat membaca terlebih dahulu artikel ini. Jika kamu mengalami permasalahan lainnya seputar data analytics, kamu dapat menghubungi Exsight melalui link ini juga. Sekian dari saya!

Referensi

https://docs.streamlit.io/

Tutorial Membuat Dashboard Interaktif di Python dengan Streamlit #1 Read More »

Operasi Aljabar di R

Mengenal Ryacas, Bagaimana Mengerjakan Operasi Aljabar dan Kalkulus Melalui R

Yacas (Yet Another Computer Algebra System) adalah interface dari sistem aljabar komputer yang penggunaannya sangat fleksibel. Dengan Ryacas, Yacas dapat dioperasikan dengan interface R. Ryacas memungkinkan komputer dapat melakukan operasi aljabar di dalam komputer melalui bahasa R.

Mengenal Ryacas

Ryacas, mesin melakukan operasi matematika
Pexels | Sora Shimazaki

Ketika melakukan analisis data, R lebih fokus dalam operasi numerik dibandingkan dengan operasi kalkulus. Namun, seringkali dalam melakukan analisis data, seseorang melakukan pengolahan fungsi seperti mencari fungsi turunan, fungsi hasil integrasi, ekspansi fungsi, dan lain-lain. Package dasar R belum mampu menyelesaikan permasalahan ini. Sehingga, diperkenalkan sebuah package yang dapat melakukan pengolahan fungsi kalkulus, yaitu Ryacas.

Ryacas merupakan sebuah package dalam R yang bisa digunakan untuk melakukan berbagai hal utamanya dalam melakukan pengolahan fungsi yang diselesaikan secara kalkulus. Dalam artikel ini akan dibahas beberapa contoh kasus dalam aljabar dan kalkulus yang dapat diselesaikan dengan package Ryacas, seperti menemukan turunan fungsi, integrasi fungsi, menyelesaikan suatu fungsi, menemukan fungsi ekspansi, pemfaktoran, dan lain-lain. Selain itu, dalam artikel ini juga dibahas bagaimana Ryacas dapat melakukan operasi matriks seperti menemukan kebalikan atau invers dari matriks dengan package Ryacas.

Instalasi Ryacas

Package Ryacas dapat di-install melalui github dengan cara sebagai berikut:

devtools::install_github("r-cas/ryacas")

atau dapat di-install sebagaimana meng-install package dalam R sebagai berikut:

install.packages("Ryacas")
library(Ryacas)

Fungsi as_y() dan as_r()

Fungsi as_y() dalam Ryacas mengubah karakter matriks dalam R ke dalam representasi yacas. Sedangkan sebaliknya, as_r(), mengubah karakter yacas dalam bentuk matriks yang direpresentasikan dalam R.

Untuk lebih jelasnya dapat dilihat pada contoh pembuatan matriks berikut.

mat_A <- matrix(c("1", "4", "3", "5", "2", "2", "4", "9", "5"), byrow = T, nrow=3, ncol=3)

Karena pada mulanya mat_A dibuat dalam bentuk matriks dalam R, maka ketika dipanggil, objek mat_A akan menampilkan format sebagaimana matriks dalam R.

mat_A

Untuk menjadikan objek mat_A menjadi objek yang terepresentasi dalam yacas dan bisa dilakukan operasi di dalam sistem yacas, maka objek tersebut perlu dikonversi ke dalam objek yacas dengan fungsi as_y().

A <- as_y(mat_A)
A

Begitupun jika ingin mengembalikan objek ke dalam representasi R, digunakan fungsi as_r(). Objek ini nanti akan terbaca sebagai matriks dengan nilai-nilai elemen yang bertipe string.

as_r(A)

Fungsi yac_str() dan yac_expr()

Pada dasarnya, penggunaan package Ryacas dalam R dilakukan dengan mengetikkan string instruksi yang menjadi argumen dalam fungsi yac_str() atau yac_expr(). Fungsi yang diketikkan dalam yac_str() akan menghasilkan string fungsi sesuai dengan fungsi Ryacas yang diinstruksikan. Fungsi yac_expr() akan menghasilkan ekspresi R yang bisa digunakan untuk eksekusi selanjutnya jika dibutuhkan. Sementara fungsi eval() akan mengevaluasi sebuah fungsi dan menghasilkan output penyelesaian dari fungsi yang diinginkan. Penggunaan fungsi ini akan dijelaskan lebih rinci pada beberapa contoh kasus yang melibatkan command-command atau perintah-perintah tertentu.

Perintah Expand()

Perintah Expand() digunakan jika ingin melakukan penjabaran fungsi sebagaimana contoh berikut.

yac_str('Expand((x^2+3*x-1)*(x-3))')

## [1] "x^3-10*x+3"

Dari output di atas dapat dilihat bahwa ekspansi dari fungsi (x2 + 3x -1)(x – 3) adalah x3 – 10x + 3.

Perintah Solve()

Jika ingin mencari himpunan penyelesaian dari suatu fungsi, dapat digunakan command Solve() dalam fungsi yac_str() yang mengembalikan string penyelesaian dari fungsi yang dikehendaki.

solve <- yac_str('Solve(x^2-3*x+1 == 0, x)')
solve
## [1] "{x==(Sqrt(5)+3)/2,x==(3-Sqrt(5))/2}"

Dapat diperoleh bahwa penyelesaian dari fungsi x2 – 3x + 1 = 0 adalah x = (sqrt(5) + 3)/2 atau x = (sqrt(5) – 3)/2.

Untuk mendapatkan hasil dalam vektor bukan string, dapat dengan melakukan operasi dengan pipe operator sebagai beirkut.

solve %>% y_rmvars() %>% yac_expr() %>% eval()
## [1] 2.618034 0.381966
Perintah Simplify()

Jika ingin melakukan penyederhanaan dari sebuah fungsi, maka dapat dengan menggunakan command Simplify() seperti contoh berikut:

simplify <- yac_str('Simplify(9*x^3-50*x^2+69*x+2*x^2-2*3^2 == 0)')
simplify
## [1] "3*(3*x^3-16*x^2+23*x-6)==0"

Jadi, penyederhanaan dari fungsi 9x3 – 50x2 + 69x + 2x2 – 2(32) = 0 adalah 3(3x3 – 16x2 + 23x – 6) = 0. Kemudian jika ingin dicari penyelesaian fungsi di atas dengan Solve(), dapat dengan memanfaatkan pipe operator sebagaimana berikut.

simplify %>% y_fn("Solve", "x") %>% y_rmvars() %>% yac_expr() %>% eval()
## [1] 0.3333333 2.0000000 3.0000000
Perintah Factor()

Dengan Ryacas juga dapat dilakukan pemfaktoran dengan menggunakan command Factor() sebagai berikut.

factor <- yac_str('Factor(x^2 - 5*x + 6)==0')
factor
## [1] "(x-2)*(x-3)==0"

Sehingga diperoleh faktorisasi dari x2 – 5x + 6 = 0 adalah (x-2)(x-3) = 0. Kemudian jika ingin dicari penyelesaian dari fungsi di atas dapat dengan mengetikkan sintaks berikut.

factor %>% y_fn('Solve', 'x') %>% y_rmvars() %>% yac_expr() %>% eval()
## [1] 2 3
Perintah D(x)

Turunan fungsi dapat dicari dengan menggunakan prosedur yang sama dengan perintah D() seperti contoh berikut.

derivative <- yac_str('D(x) x^3+3*x^2-7*x+3*x^(1/2)')
derivative
## [1] "3*x^2+6*x+3/(2*Sqrt(x))-7"
Perintah Integrate(x)

Integrasi fungsi juga dapat dilakukan di R dengan menggunakan command Integrate().

yac_str('Integrate(x) 2*x^(1/2)+3*x^3')
## [1] "(4*Sqrt(x)^3)/3+(3*x^4)/4"
Perintah Sum()

Kemudian, jika ingin melakukan operasi penjumlahan berulang, dapat dengan mengetikkan command Sum(), seperti contoh berikut:

yac_str('Sum(x, 1, 10, 2*x^2-17)')
## [1] "600"
Perhitungan Matriks

Selain melakukan operasi bilangan skalar atau fungsi seperti biasa, package Ryacas juga dapat melakukan operasi pada matriks sebagai berikut:

mat_A <- matrix(c("1", "4", "3", "5", "2", "2", "4", "9", "5"), byrow = T, nrow=3, ncol=3)
A <- as_y(mat_A)
A %>% y_print()

Fungsi y_print() digunakan untuk melakukan print atau menampilkan output matriks yang terstruktur sebagaimana penulisan matriks dalam matematika. Dari kode di atas, diperoleh output hasil pembentukan matriks dalam representasi yacas sebagai berikut.

Kemudian, dengan menggunakan command Inverse(), dapat diperoleh kebalikan dari matriks A.

A %>% y_fn('Inverse') %>% yac_str() %>% y_print()

Selain itu dengan command Transpose(), dapat diperoleh putaran atau transpose dari matriks A.

A %>% y_fn('Transpose') %>% yac_str() %>% y_print()

Penutup

Package Ryacas membantu kita ketika ingin melakukan operasi aljabar dan kalkulus dengan menggunakan interface yacas dalam R. Masih banyak yang perlu dipelajari dalam penggunaan command-command di dalam package ini sekaligus pengembangannya yang masih terus dilakukan. Untuk mempelajari lebih lanjut terkait penggunaan package ini, kamu dapat membuka dokumentasi package yang disertakan di bagian referensi.

Sampai jumpa di artikel-artikel selanjutnya! Jika kamu mengalami kesulitan mengenai bagaimana menganalisis data atau menggunakan R, kamu bisa membaca artikel-artikel Exsight lainnya di sini, ya. Atau kamu bisa bertanya langsung melalui laman ini. Jangan lupa jaga kesehatan dan selalu gunakan aplikasi open source ya! Hindari penggunaan aplikasi bajakan. Terima kasih.

Referensi

Andersen, M. M., & Højsgaard, S. (2019). Ryacas: A computer algebra system in R. The Journal of Open Source Software4(42), 1763.

Dokumentasi Yacas

Andersen, M. M. (2019). Major update of Ryacas (R Interface to the Yacas Computer Algebra System). Diakses pada 2 November 2022.

Mengenal Ryacas, Bagaimana Mengerjakan Operasi Aljabar dan Kalkulus Melalui R Read More »

Hubungi Admin
Halo, selamat datang di Exsight! 👋

Hari ini kita ada DISKON 20% untuk semua transaksi. Klaim sekarang!