Beranda BlogPengikisan web Pengikisan web dengan AI

Pengikisan web dengan AI

oleh Kadek

Di era digital, sangat penting bagi perusahaan, peneliti e-commerce, dan pengambil keputusan untuk mendapatkan wawasan berharga dari banyaknya data di Internet. Pengikisan web, tindakan mengekstraksi data dari situs web, telah menjadi praktik umum selama beberapa waktu.

Baru-baru ini, penggunaan AI menjadi semakin penting di berbagai industri dan telah meningkatkan serta mengoptimalkan aktivitas tertentu. Artikel ini menjelaskan bagaimana AI dapat digunakan dalam web scraping, pemrosesan data, dan analitik.

Teknik pengikisan web tradisional

Kami telah mencurahkan banyak artikel tentang scraping, mulai dari penjelasan tentang apa itu scraping hingga panduan scraping dalam berbagai bahasa pemrograman. Blog kami berisi artikel tentang scraping dengan Python, NodeJS, C# dan bahasa pemrograman lainnya, dan bahkan scraping situs web menggunakan Google Sheets.

Jika Anda ingin mempelajari lebih lanjut tentang web scraping dan mempelajari cara menulis skrip scraping untuk situs web apa pun, baik itu Zillow, Amazon, Google Maps, atau yang lainnya, kami sarankan Anda membaca tutorial mendetail di blog kami.

Bagaimana kecerdasan buatan dapat digunakan dalam web scraping?

Pada awalnya, program dan alat berbasis kecerdasan buatan hanya digunakan oleh perusahaan besar. Alasannya adalah banyaknya data web yang harus diproses - meskipun biayanya mahal. Namun seiring kemajuan teknologi AI dan pembelajaran mesin, alat AI ini menjadi lebih mudah diakses oleh semua orang.

Untuk lebih memahami manfaat penggunaan AI, mari kita lihat di mana AI dapat berguna dan bagaimana AI dapat digunakan.


Gunakan AI untuk mengikis

Namun, ini hanyalah beberapa area dan kemungkinan penggunaan AI. Jadi, mari kita bahas lebih lanjut tentang di mana dan bagaimana AI dapat memberikan manfaat.

Aplikasi AI dalam web scraping untuk berbagai area

Hampir tidak ada wilayah di mana AI tidak dapat digunakan. Penggunaan model seperti ini dapat berguna dimanapun data tersedia.

Namun, ada beberapa area yang paling sering digunakan:

  1. E-niaga dan ritel.
  2. Kesehatan dan Kedokteran.
  3. Keuangan dan Perbankan.
  4. Manufaktur dan rantai pasokan.
  5. Pemasaran dan periklanan.
  6. Transportasi dan logistik.
  7. Pendidikan dan e-learning.
  8. Penambangan data.
  9. Pemrosesan bahasa alami (NLP).
  10. Keamanan internet.

Salah satu kelebihan AI adalah dapat dilatih pada data apa pun menggunakan pembelajaran mesin. Artinya, tidak ada area yang datanya tidak sesuai. Siapa pun dapat membuat model dengan fokus sempit ketika berbicara tentang pengembangan ilmu pengetahuan atau bisnisnya.

Cara untuk mengintegrasikan AI ke dalam berbagai alur kerja

Jika kita melihat lebih dekat bagaimana kecerdasan buatan (AI) dapat digunakan, menjadi jelas bahwa AI sangat ideal untuk pemrosesan dan analisis data. Misalnya, di media sosial seperti LinkedIn, AI dapat membantu menghasilkan prospek, merencanakan kampanye iklan, dan menganalisis pesaing Anda. Di bidang keuangan, AI dapat mendeteksi perubahan saat ini dan membuat ringkasan analisis pasar.

Namun jika menyangkut bisnis eCommerce, manfaat ini bahkan lebih signifikan. Dengan menggunakan AI, Anda dapat memantau apa yang dilakukan pesaing Anda, belajar dari keberhasilan mereka, menerapkan praktik terbaik mereka pada operasi bisnis Anda, dan banyak lagi.

Dalam hal tugas pengembangan atau pemeliharaan seperti menemukan server proxy yang andal untuk setiap situs web, mengumpulkan tautan yang relevan, atau membantu aktivitas web scraping, tidak ada keraguan bahwa AI juga memiliki sesuatu yang berharga untuk ditawarkan di sini.

Pengikisan data yang didukung AI sedang beraksi

Karena model AI berkualitas tinggi baru muncul di pasaran baru-baru ini, sebagian besar pengguna ingin mempelajari cara menggunakannya atau fitur apa yang mereka miliki. Jadi mari kita lihat lebih dekat bagaimana Anda dapat menggunakan model AI untuk scraping dan pemrosesan data, aturan apa yang harus Anda ikuti, dan batasan apa yang akan Anda hadapi.

Namun sebelum kita beralih ke contoh penggunaan AI untuk mengikis dan memproses data, mari kita lihat cara membuat perintah agar model AI memahami Anda. Pertama-tama, Anda perlu ingat bahwa kualitas hasil sepenuhnya bergantung pada Anda dan rumusan tugas.

Perlu juga disebutkan bahwa Anda memerlukan model AI suara seperti ChatGPT (OpenAI) untuk pengambilan dan pengumpulan data. Dari pengalaman Anda sendiri, ikuti aturan berikut untuk mencapai hasil yang baik:

  1. Beri tahu model bahwa Anda akan memberikan parameter tambahan. Model AI perlu diatur sebelum Anda menggunakannya. Anda dapat mengatakan: “Sekarang saya menentukan kondisi yang harus dipenuhi untuk pemrosesan data lebih lanjut.”
  2. Selanjutnya, atur parameternya. Model AI tidak tahu bagaimana harus bersikap. Jika Anda ingin berperilaku berbeda dari "default", tentukan ini di command prompt. Misalnya, jika Anda tidak ingin menggunakan kosakata yang rumit dalam jawabannya, Anda dapat menyatakan: "Hindari penggunaan kosakata yang rumit" atau "Gunakan bahasa alami".
  3. Tentukan gaya atau orang yang ingin Anda terima tanggapannya. Misalnya, “Bertindak sebagai pengembang” atau “Gunakan gaya resmi”.
  4. Jika Anda ingin menulis teks pendek yang menggunakan gaya penulisan Anda, berikan AI contoh teks Anda dan minta AI untuk mengingat gaya tersebut dan menggunakannya di masa mendatang: “Ini contoh teks saya. Itulah yang saya inginkan.” Selanjutnya, gunakan gaya yang sama.

Sekarang setelah Anda mengetahui cara membuat perintah untuk model AI, mari kita lihat opsi tentang apa dan bagaimana perintah tersebut dapat digunakan dalam pengikisan dan ekstraksi data.

Pengikisan dan pemrosesan data

Dan hal pertama yang dapat Anda gunakan untuk menggunakan model AI suara adalah memproses dan menganalisis teks. Anda dapat menyelesaikan hampir semua tugas pemrosesan kata dengan model bahasa AI. Misalnya, Anda dapat meminta AI untuk memasukkan kata kunci yang diinginkan ke dalam teks Anda atau menghapus kata-kata berhenti. Namun keuntungan terbesarnya adalah model bahasa tidak peduli apakah Anda menyediakan teks biasa atau teks yang menggunakan bahasa markup hypertext atau yang lainnya, sehingga Anda dapat menggunakannya sebagai alat pengikis web.

Mari kita lihat bagaimana ini bisa digunakan. Mari masuk ke halaman kutipan dan DevTools (tekan F12). Semua informasi pada halaman ditampilkan dalam tag body di semua situs web.


Pilih Badan

Untuk menyalin konten, klik kanan tag, lalu “Salin” dan “Salin outerHTML”.


Salin teks isi

Lalu buka model bahasa (kami menggunakan ChatGPT) dan minta untuk memproses data Anda:


Buat command prompt dengan kode HTML

Hasilnya, kami menerima jawaban berikut, yang kami sajikan di bawah ini:


Dapatkan data terstruktur

Seperti yang Anda lihat, kami dengan cepat menerima informasi yang kami butuhkan. Namun metode ini mempunyai banyak keterbatasan. Dan salah satunya adalah panjang query. Selama kode halamannya kecil, hal ini tidak menjadi masalah. Namun, saat kami menggunakan halaman toko sebenarnya dan menggunakan metode ini, kami mendapatkan pesan kesalahan yang melebihi jumlah karakter.

Namun, ada juga jalan keluarnya. Banyak layanan memungkinkan Anda mengurangi struktur dokumen HTML terlebih dahulu dan menghapus tag yang tidak diperlukan. Pembersih HTML, misalnya, cocok untuk ini.

Mari kita lihat seperti apa Zillow. Kami telah menulis cara mengikis Zillow dengan Python, dan sekarang kami akan menunjukkan cara melakukannya menggunakan model bahasa. Buka situsnya dan atur parameter yang diperlukan, lalu buka DevTools dan salin kode HTML hanya bagian yang berisi daftar properti. Anda dapat menggunakan penunjuk (Ctrl+Shift+C) untuk mencari.


Salin data utama

Lalu pergi ke halaman pembersih HTML untuk membersihkan kode dan menempelkannya ke kolom kode.


Bersihkan datanya

Bersihkan HTML, salin hasilnya, buka ChatGPT dan lakukan kueri kutipan yang sama. Hasilnya, kami mendapatkan hasil ekstraksi data berikut:


Dapatkan hasil terstruktur

Jadi hanya dalam beberapa menit dan tanpa banyak usaha, kami menerima data dari halaman untuk semua properti. Cara ini memiliki beberapa kelemahan, yang akan kita bahas nanti.

Visualisasi data

Pernahkah Anda memiliki teks di mana Anda memiliki teks tetapi harus segera meletakkannya di atas meja? Jika ya, Anda tahu bahwa AI dapat membantu. Pertama, mari kita ambil data pesanan sebelumnya yang kami terima dari Zillow dan meminta Anda mengirimkannya kembali kepada kami dalam bentuk tabel:


Buatlah tabel

Tapi itu cukup mudah. Kami telah menyediakan data terstruktur yang dapat dengan mudah dimasukkan ke dalam tabel. Sekarang mari kita jelaskan pro dan kontra penggunaan AI untuk melakukan scraping dalam bentuk tekstual dan mengambil kembali data ini dalam bentuk tabel:


AI pandai menganalisis data

Seperti yang Anda lihat, AI juga dapat membantu dalam hal ini.

Analisis data

Seperti yang telah kita lihat, AI sangat baik dalam berbagai pemrosesan kata, analisis, dan tugas lainnya.

Anda dapat menyediakan berbagai data untuk membantu Anda menganalisis dan mengekstrak informasi. Baik Anda perlu melakukan analisis statistik, membuat visualisasi, atau mengidentifikasi pola dalam data, ini dapat membantu Anda dalam berbagai tugas analisis data.

Anda dapat menggunakan AI untuk mendapatkan wawasan berharga tentang segmen produk atau layanan tertentu. Anda dapat menentukan produk mana yang paling populer, mengidentifikasi penjual dengan kinerja terbaik, dan melihat produk dan penjual mana yang menghasilkan penjualan lebih rendah. Memahami data ini sebelumnya akan membantu Anda membuat keputusan yang tepat untuk meningkatkan bisnis Anda.

AI juga dapat membantu Anda menganalisis masukan pelanggan dengan cepat, sehingga memudahkan untuk melihat apa yang mereka suka dan tidak suka. Saat Anda menggunakan AI untuk web scraping, Anda bisa mendapatkan wawasan tentang pengalaman pelanggan yang mungkin terlewatkan. Anda dapat mengidentifikasi pola respons mereka dan mempelajari cara terbaik untuk meningkatkan layanan atau produk Anda untuk mencapai kepuasan maksimal.

Klasifikasi teks

Model bahasa dapat mengklasifikasikan teks ke dalam kategori atau label yang telah ditentukan sebelumnya. Ini dapat berguna untuk analisis sentimen, klasifikasi topik, deteksi spam, atau deteksi niat.

Pengakuan Entitas Bernama (NER)

AI dapat digunakan untuk mengidentifikasi dan mengekstrak informasi penting dari teks. Teknologi ini berguna bagi perusahaan yang ingin menganalisis situs pesaingnya dan bagi peneliti yang mencari data penting dari berbagai sumber. Entitas bernama seperti nama pribadi, nama organisasi, lokasi, atau data dapat diidentifikasi dan diekstraksi menggunakan teknik AI web scraping.

Analisis sentimen

AI dapat digunakan untuk menentukan sentimen di balik teks, misalnya dari ulasan pelanggan atau postingan media sosial. Ini jauh lebih sulit dilakukan secara manual daripada sekadar menganalisis ulasan di halaman produk pasar. Model bahasa bermanfaat dalam tugas ini dan memberikan wawasan mengenai apakah suatu opini yang diungkapkan dalam kata-kata itu positif, negatif, atau netral.

Terjemahan bahasa

Kita semua pernah mengalami frustrasi dalam penerjemahan mesin – kata-kata diterjemahkan kata demi kata, konteks diabaikan dan terkadang maknanya dapat terdistorsi. Meskipun penerjemah otomatis telah mengalami kemajuan akhir-akhir ini, AI dapat menawarkan solusi yang lebih andal.

Model AI belajar dari data yang dikumpulkan sebelumnya dalam bahasa tertentu, mengingat pola dan frasa standar untuk menafsirkan makna di luar kata-kata individual. Oleh karena itu, terjemahan tidak hanya mempertimbangkan definisi literal, namun juga mempertimbangkan kesesuaiannya dengan konteks yang lebih luas agar akurasinya lebih baik.

Pembuatan teks

AI sangat berguna dalam menghasilkan teks berdasarkan data. Katakanlah Anda memiliki layanan atau produk untuk ditawarkan. Dalam hal ini, web scraping dapat membantu Anda mengumpulkan prospek dan informasi dari situs web mereka dan kemudian memberikan data ini ke AI untuk mengotomatiskan pembuatan surat yang disesuaikan untuk setiap calon prospek. Anda dapat membuat penawaran yang sangat dipersonalisasi yang menarik dan bernilai berdasarkan kebutuhan Anda - semuanya tanpa harus menulisnya dengan tangan.

Menggores pembuatan kode

Penggunaan ChatGPT untuk scraping mungkin terbatas, namun menggunakan AI untuk membuat scraper atau crawler dapat membantu Anda mengatasi keterbatasan ini. Anda mungkin masih memerlukan bantuan untuk masalah lain, seperti: Misalnya menyelesaikan captcha, menggunakan proxy dan menghindari pemblokiran atau rendering JavaScript. Untungnya, berbagai kasus penggunaan, seperti: Beberapa alat, seperti web scraping API, membuat tugas Anda lebih mudah dan memberikan hasil yang dapat diandalkan.

Misalnya, kita dapat menggunakan perintah ini:

Tulis scraper di Python untuk mendapatkan data dan menyimpannya ke tabel dari situs web quotes.toscrape.com dengan struktur ini:
<body>…</body>

Hasilnya adalah scraper berikut, yang, seperti yang ditunjukkan oleh pengujian kami, dapat kami simpan dan gunakan segera:

import requests
from bs4 import BeautifulSoup
import pandas as pd

# Send a GET request to the website
url="http://quotes.toscrape.com"
response = requests.get(url)

# Create a BeautifulSoup object
soup = BeautifulSoup(response.text, 'html.parser')

# Find all the quote elements
quote_elements = soup.find_all('div', class_='quote')

# Initialize lists to store the extracted data
quotes = ()
authors = ()
tags = ()

# Extract data from each quote element
for quote in quote_elements:
    # Extract the quote text
    quote_text = quote.find('span', class_='text').text
    quotes.append(quote_text)
    
    # Extract the author name
    author_name = quote.find('small', class_='author').text
    authors.append(author_name)
    
    # Extract the tags
    tag_elements = quote.find_all('a', class_='tag')
    tag_list = (tag.text for tag in tag_elements)
    tags.append(tag_list)

# Create a DataFrame from the extracted data
data = {'Quote': quotes, 'Author': authors, 'Tags': tags}
df = pd.DataFrame(data)

# Save the DataFrame to a CSV file
df.to_csv('quotes.csv', index=False)

Mari kita lakukan perintah yang sama, kecuali kita akan menggunakan NodeJS dan bukan Python:

const axios = require('axios');
const cheerio = require('cheerio');
const fs = require('fs');
const ObjectsToCsv = require('objects-to-csv');

// Send a GET request to the website
const url="http://quotes.toscrape.com";
axios.get(url)
  .then(response => {
    // Load the HTML response into Cheerio
    const $ = cheerio.load(response.data);

    // Find all the quote elements
    const quoteElements = $('.quote');

    // Initialize arrays to store the extracted data
    const quotes = ();
    const authors = ();
    const tags = ();

    // Extract data from each quote element
    quoteElements.each((index, element) => {
      const quoteElement = $(element);

      // Extract the quote text
      const quoteText = quoteElement.find('.text').text().trim();
      quotes.push(quoteText);

      // Extract the author name
      const authorName = quoteElement.find('.author').text().trim();
      authors.push(authorName);

      // Extract the tags
      const tagElements = quoteElement.find('.tag');
      const tagList = tagElements.toArray().map(tag => $(tag).text().trim());
      tags.push(tagList);
    });

    // Create an array of objects with the extracted data
    const data = quotes.map((quote, index) => {
      return {
        Quote: quote,
        Author: authors(index),
        Tags: tags(index)
      };
    });

    // Convert the data array to CSV format
    const csv = new ObjectsToCsv(data);

    // Save the CSV file
    csv.toDisk('quotes.csv', { append: false })
      .then(() => {
        console.log('Data successfully saved to quotes.csv');
      })
      .catch(err => {
        console.error('Error saving data to quotes.csv:', err);
      });
  })
  .catch(error => {
    console.error('Error retrieving data:', error);
  });

Dan untuk contoh terakhir kita menggunakan bahasa pemrograman R:

library(rvest)
library(writexl)

# Specify the URL of the website
url <- "http://quotes.toscrape.com"

# Send a GET request to the website and read the HTML content
page <- read_html(url)

# Extract the quote elements using CSS selectors
quote_elements <- page %>% html_nodes(".quote")

# Initialize empty vectors to store the extracted data
quotes <- character()
authors <- character()
tags <- list()

# Extract data from each quote element
for (quote_element in quote_elements) {
  # Extract the quote text
  quote <- quote_element %>% html_node(".text") %>% html_text() %>% trimws()
  quotes <- c(quotes, quote)

  # Extract the author name
  author <- quote_element %>% html_node(".author") %>% html_text() %>% trimws()
  authors <- c(authors, author)

  # Extract the tags
  tag_nodes <- quote_element %>% html_nodes(".tag")
  tag_list <- tag_nodes %>% html_text() %>% trimws()
  tags <- c(tags, list(tag_list))
}

# Create a data frame with the extracted data
data <- data.frame(Quote = quotes, Author = authors, Tags = tags, stringsAsFactors = FALSE)

# Specify the output file path
output_file <- "quotes.xlsx"

# Save the data frame to an Excel file
write_xlsx(data, path = output_file)

# Print a success message
cat("Data successfully saved to", output_file, "\n")

Seperti yang bisa kita lihat, kita bisa menggunakan bahasa pemrograman apa saja dan kita hanya perlu mengatur dan mempersiapkan lingkungannya dengan baik.

Ringkasan teks

AI juga merupakan alat yang hebat untuk menyaring teks yang panjang dan meringkasnya dengan cepat. Misalnya, jika Anda telah menyusun daftar prospek potensial tetapi tidak yakin mana yang mungkin tertarik dengan apa yang Anda tawarkan atau paling cocok untuk bisnis Anda, AI dapat membantu dengan memadatkan konten dalam jumlah besar menjadi lebih kecil. ringkasan yang menangkap poin-poin penting dan rincian penting.

Menjawab pertanyaan

Anda tidak bisa hanya menggunakan model bahasa yang sudah jadi. Dengan menggunakan pembelajaran mesin, Anda dapat membuat kumpulan data sendiri yang disesuaikan dengan kebutuhan Anda. Misalnya, jika Anda menjalankan perusahaan dan ingin mengurangi beban kerja staf pendukung teknis, kecerdasan buatan mungkin tepat untuk Anda.

Untuk melatih model yang efektif untuk tujuan ini, cukup berikan pertanyaan pengguna faktual dan tanggapan dari orang-orang yang berperan dalam layanan pelanggan. Setelah cukup data dikumpulkan dan diproses oleh algoritma AI. Mereka memiliki alat canggih yang memungkinkan Anda menjawab sebagian besar pertanyaan tentang produk Anda dengan cepat dan akurat.

Pengambilan keputusan berdasarkan data

Jika Anda dihadapkan pada keputusan yang rumit, Anda dapat mendiskusikan masalah Anda dengan AI. AI dapat membantu Anda menganalisis data yang tersedia, menghasilkan wawasan, dan menyarankan kemungkinan tindakan berdasarkan informasi yang diberikan.

Namun, bukan berarti Anda harus bergantung sepenuhnya pada AI untuk mengambil keputusan. Itu hanya dapat membantu dan menyarankan pilihan, tetapi Anda harus memutuskan.

Tantangan saat menggunakan AI

Pengikisan web dapat menghadirkan beberapa tantangan, terutama jika Anda menggunakan kecerdasan buatan (AI) untuk melakukan pekerjaan tersebut. Solusi AI adalah alat canggih yang keberhasilannya memerlukan pertimbangan dan penerapan yang cermat. Bergantung pada kompleksitas tugas web scraping Anda, AI terkadang hanya memberikan solusi optimal dan mungkin menghadirkan beberapa tantangan.

Pembatasan panjang

Masalah pertama yang harus Anda hadapi saat menggunakan AI untuk memproses atau mengikis data adalah batas panjang kueri. Misalnya, model GPT 3.5 paling populer memiliki batas token maksimum sebesar 4096 token per input. Panjang token bervariasi, tetapi rata-rata sesuai dengan kata atau karakter. Penting untuk dicatat bahwa jika masukan melebihi batas token ini, masukan tersebut harus dipotong atau dipotong agar sesuai dengan batasan.

Harga

Mari kita lihat penggunaan ChatGPT API dan Scrape-It.Cloud web scraping API untuk mengetahui mana yang lebih menguntungkan untuk scraping.

Pertama, lihat penelitian ini. Ini memeriksa lebih dari satu miliar halaman web dan menyimpulkan bahwa rata-rata halaman web berbobot 2 MB. Artinya 1 karakter sama dengan 1 byte. Jadi jika halaman web berbobot 2 MB, maka berisi 1.048.576 karakter atau 157.286 token.

Layanan khusus mengurangi data hingga batas maksimum yang diizinkan untuk pemrosesan halaman di ChatGPT. Dalam kasus kami, tidak lebih dari 4096 token. Harga 1000 token adalah 0,002 $. Artinya, untuk scraping halaman kita menggunakan 0,008 $.

Sekarang mari kita lihat paket harga API web scraping. Biaya terendah untuk satu paket adalah $30 per bulan. Ini mencakup 50.000 kredit atau 5.000 permintaan. Mari kita bandingkan penggunaan web scraping API dan AI untuk web scraping:

Nama belakang

Harga awal

Harga untuk 5.000 permintaan

API Pengikisan Web Scrape-It.Cloud

30 $ per 1 bulan

30 $

API ObrolanGPT

5 $ per 3 bulan

40 $

Namun, dari hasil pengujian kami, kami menemukan bahwa dengan ChatGPT Anda tidak akan dapat mengambil data dari semua halaman karena tidak semua halaman dapat diperkecil ke ukuran yang diperlukan.

Bekerja dengan sumber daya eksternal

Sayangnya, AI web scraping tidak semudah memasukkan link saja. Anda perlu mempertimbangkan struktur halaman yang ingin Anda jelajahi dan memberikan informasi tersebut. Selain itu, jika Anda mencari data yang dibuat setelah tanggal pelatihan model AI Anda, ini mungkin tidak membantu Anda.

AI bisa saja salah

AI dapat menghasilkan jawaban berdasarkan data pelatihan, namun tidak seperti manusia, AI tidak dapat berpikir kritis. Artinya meskipun jawabannya salah, AI masih bisa sangat yakin dengan jawabannya.

Kesimpulan dan temuan

Hasil kami menunjukkan bahwa penggunaan AI dapat membantu dalam menangani data. Model seperti ini memberikan dukungan analisis dan pemrosesan yang sangat baik. Namun AI hanya bisa digunakan sebagai alat yang juga membutuhkan kendali manusia.

Model AI dapat menavigasi struktur situs web yang kompleks, menafsirkan data tidak terstruktur, dan beradaptasi dengan perubahan situs web seiring waktu. Dengan kemampuannya untuk mempelajari dan menggeneralisasi data dalam jumlah besar, AI membuka pintu bagi teknik web scraping yang lebih akurat, efisien, dan terukur.

Namun, ini juga tidak cocok untuk menggores halaman yang besar, dapat membuat keputusan yang salah jika didasarkan pada data yang meragukan, dan memiliki beberapa keterbatasan.

Pos terkait

Tinggalkan Komentar