No. 7 dari Seri Lead Magnet Gratis
๐Ÿ““ FREE EBOOK ยท SERI #7

Web Scraping untuk Penelitian

Dari jenis data web, API publik berguna, tools tanpa coding, hingga kode Python siap pakai dan cara mensitasi data web dengan format APA 7th.

Jenis Data dari Web
10+ API Publik Gratis
Tools Tanpa Coding
Kode Python Siap Pakai
Etika & Legal Scraping
Sitasi APA 7th
Y
Yogo Aryo Jatmiko, SST, M.Stat
Statistisi BPS ยท Dosen Polstat STIS ยท Founder Ruang Statistika

Data Apa Saja yang Bisa Diambil dari Web?

Sebelum scraping, pahami dulu jenis datanya. Ini menentukan tools dan metode yang tepat โ€” serta apakah data tersebut legal untuk diambil.

Tiga sumber utama data web

1. HTML Statis โ€” Halaman web biasa

Konten langsung ada di dalam kode HTML saat halaman dibuka. Contoh: tabel BPS, artikel berita, daftar harga di toko online, profil perusahaan. Paling mudah di-scrape dengan BeautifulSoup.

2. HTML Dinamis โ€” Konten yang dimuat JavaScript

Konten baru muncul setelah halaman dimuat, biasanya via JavaScript/AJAX. Contoh: Twitter/X, Instagram, Google Maps, marketplace. Butuh Selenium atau Playwright untuk scrape.

3. API (Application Programming Interface)

Website menyediakan "pintu" resmi untuk mengambil data dalam format JSON/XML. Contoh: Twitter API, BPS API, World Bank API. Cara paling bersih, cepat, dan legal.

Jenis data penelitian yang bisa dikumpulkan

Data Teks & Sentimen

Ulasan produk, komentar media sosial, berita online โ€” untuk analisis sentimen, topik modeling, NLP.

Data Tabular / Statistik

Tabel angka dari BPS, World Bank, WHO, OECD โ€” langsung bisa masuk ke SPSS atau R.

Data Harga & Ekonomi

Harga saham, komoditas, e-commerce โ€” untuk penelitian ekonomi, manajemen, keuangan.

Data Spasial & Demografi

Data wilayah, populasi, fasilitas publik dari OpenStreetMap, Geoportal BIG.

Data Bibliografi

Metadata jurnal, sitasi, abstrak dari Semantic Scholar API, CrossRef, OpenAlex.

Data Media Sosial

Tweet, posting, hashtag โ€” untuk penelitian komunikasi, pemasaran, perilaku konsumen.

Tips untuk Tesis/Disertasi
Data web dianggap data sekunder. Kamu tetap harus menjelaskan sumber, tanggal akses, metode pengumpulan, dan cara validasi data di Bab 3 Metodologi โ€” persis seperti data survei.

Format data yang dihasilkan

JSON

Output API โ€” paling umum. Mudah dikonversi ke DataFrame pandas.

CSV / Excel

Siap langsung buka di SPSS, Excel, atau R.

XML / HTML

Perlu parsing dulu. Bisa dengan BeautifulSoup atau lxml.

10+ API Publik Gratis untuk Penelitian

Berikut daftar API yang paling berguna untuk penelitian akademis di Indonesia dan internasional โ€” lengkap dengan jenis data dan cara akses.

Data Indonesia & Nasional

API / SumberJenis DataAksesURL
BPS Web APIStatistik resmi Indonesia (ekonomi, demografi, sosial)API Keywebapi.bps.go.id
SATU DATA IndonesiaData pemerintah lintas K/LGratisdata.go.id
DJPPR KemenkeuData APBN, utang, obligasiGratisdjppr.kemenkeu.go.id
BMKG Open DataCuaca, gempa, iklimGratisdata.bmkg.go.id
IDX (Bursa Efek)Data saham, emiten, laporan keuanganGratisidx.co.id/data-market

Data Internasional & Ekonomi Global

API / SumberJenis DataAksesURL
World Bank APIIndikator pembangunan dunia (200+ negara)Gratisdata.worldbank.org/developers
WHO GHO APIData kesehatan globalGratisghoapi.azureedge.net
FRED (US Fed)Data ekonomi makro AS & globalAPI Keyfred.stlouisfed.org/docs/api
Open Exchange RatesNilai tukar mata uangRegistrasiopenexchangerates.org

Data Bibliografi & Akademik

API / SumberJenis DataAksesURL
OpenAlex API250 juta paper, sitasi, author, institusiGratisapi.openalex.org
Semantic ScholarMetadata jurnal, sitasi, abstrakGratisapi.semanticscholar.org
CrossRef APIDOI, metadata publikasiGratisapi.crossref.org
arXiv APIPreprint sains, CS, ekonomiGratisarxiv.org/help/api
Rekomendasi untuk Mahasiswa
Mulailah dengan World Bank API atau OpenAlex API โ€” keduanya gratis tanpa batas, tidak perlu API key, dan dokumentasinya ramah pemula. Cocok untuk skripsi dan tesis.

Cara panggil API tanpa coding (cukup browser)

Banyak API bisa dipanggil langsung dari browser. Contoh untuk World Bank โ€” data GDP Indonesia:

URLBrowser / Postman
https://api.worldbank.org/v2/country/ID/indicator/NY.GDP.MKTP.CD?format=json

Buka URL tersebut di browser, hasil berupa JSON yang bisa langsung di-copy atau disimpan. Gunakan Postman untuk eksplorasi yang lebih nyaman.

Tools Scraping: Dari Tanpa Coding hingga Python

Pilih tools sesuai kemampuan dan kebutuhan. Tidak semua penelitian butuh coding โ€” banyak tools GUI yang powerful untuk kebutuhan akademis dasar.

Tools tanpa coding (No-Code)

Import.io
No-Code

Ekstrak tabel dari website dengan klik. Output langsung ke CSV/Excel. Cocok untuk data tabel sederhana.

ParseHub
No-Code

Antarmuka point-and-click. Bisa menangani halaman dinamis (JS). Versi gratis cukup untuk penelitian kecil.

Octoparse
No-Code

Template scraping siap pakai (Amazon, Twitter, dll). Scheduler otomatis. Populer di kalangan mahasiswa manajemen.

Google Sheets ImportXML
No-Code

Formula bawaan Google Sheets. Cocok untuk mengambil data dari halaman statis langsung ke spreadsheet.

Tools berbasis spreadsheet / low-code

Power Query (Excel)
Low-Code

Bawaan Excel/Power BI. Bisa ambil data dari web, JSON, XML. Sangat powerful untuk akademisi yang familiar Excel.

Postman
Low-Code

GUI untuk mengakses API. Tidak perlu coding โ€” tinggal masukkan URL API dan klik Send. Ekspor ke JSON/CSV.

Ekosistem Python (direkomendasikan untuk tesis)

Requests
Python

Mengambil konten halaman web (HTTP requests). Fondasi dari semua scraping Python.

BeautifulSoup
Python

Parsing HTML. Ekstrak elemen spesifik dari halaman web statis dengan sangat mudah.

Pandas
Python

Manipulasi dan ekspor data. pd.read_html() bisa baca tabel HTML langsung.

Selenium
Python

Otomasi browser. Perlu untuk halaman yang butuh login atau render JavaScript.

Scrapy
Python

Framework scraping skala besar. Lebih kompleks tapi sangat powerful untuk dataset besar.

HTTPX / aiohttp
Python

HTTP client asinkron. Jauh lebih cepat untuk memanggil banyak URL sekaligus.

Panduan Memilih Tools
Data tabel statis โ†’ Pandas pd.read_html() atau Power Query.
API publik โ†’ Requests + json.
Halaman dinamis (scroll, login) โ†’ Selenium.
Ratusan halaman sekaligus โ†’ Scrapy.

Kode Python Siap Pakai

Empat contoh lengkap โ€” dari yang paling sederhana hingga yang menggunakan API. Semua bisa langsung dijalankan di Google Colab (gratis, tanpa instalasi).

Contoh 1 โ€” Baca tabel HTML langsung ke DataFrame

Cara termudah mengambil tabel dari halaman web tanpa parsing manual.

Pythonpandas ยท 5 baris
import pandas as pd

# Ambil semua tabel dari halaman Wikipedia
url = "https://en.wikipedia.org/wiki/List_of_countries_by_GDP"
tables = pd.read_html(url)

# Tabel pertama (index 0)
df = tables[0]
df.to_csv("gdp_data.csv", index=False)
print(df.head())

Contoh 2 โ€” Panggil API World Bank

Mengambil data indikator pembangunan Indonesia dari API World Bank yang gratis.

Pythonrequests ยท World Bank API
import requests
import pandas as pd

# GDP per kapita Indonesia 2000-2023
url = ("https://api.worldbank.org/v2/country/ID"
       "/indicator/NY.GDP.PCAP.CD"
       "?format=json&per_page=30&mrv=24")

resp = requests.get(url)
data = resp.json()[1]  # index 1 = data aktual

df = pd.DataFrame([{
    "tahun": d["date"],
    "gdp_per_kapita_usd": d["value"]
} for d in data if d["value"]])

df.to_csv("indonesia_gdp_perkapita.csv", index=False)
print(df)

Contoh 3 โ€” Scraping HTML statis dengan BeautifulSoup

Mengambil judul dan ringkasan berita dari halaman berita sederhana.

Pythonrequests + BeautifulSoup
import requests
from bs4 import BeautifulSoup
import pandas as pd

url = "https://example-news-site.com/ekonomi"
headers = {"User-Agent": "Mozilla/5.0"}
resp = requests.get(url, headers=headers)
soup = BeautifulSoup(resp.text, "html.parser")

hasil = []
for artikel in soup.find_all("article"):
    judul = artikel.find("h2")
    tanggal = artikel.find("time")
    if judul:
        hasil.append({
            "judul": judul.text.strip(),
            "tanggal": tanggal["datetime"] if tanggal else "N/A"
        })

pd.DataFrame(hasil).to_csv("berita.csv", index=False)

Contoh 4 โ€” Ambil data bibliografi via OpenAlex API

Cari paper berdasarkan kata kunci โ€” berguna untuk systematic review atau bibliometrics.

PythonOpenAlex API ยท gratis tanpa key
import requests
import pandas as pd

keyword = "structural equation modeling Indonesia"
url = f"https://api.openalex.org/works?search={keyword}&per-page=50"

resp = requests.get(url)
results = resp.json()["results"]

papers = [{
    "judul": r.get("title", ""),
    "tahun": r.get("publication_year"),
    "sitasi": r.get("cited_by_count"),
    "doi": r.get("doi", "")
} for r in results]

df = pd.DataFrame(papers)
df.to_csv("paper_sem_indonesia.csv", index=False)
print(f"Ditemukan {len(df)} paper")
Jalankan di Google Colab
Semua kode di atas bisa langsung dijalankan di Google Colab (colab.research.google.com) tanpa instalasi apapun. Cukup install library yang dibutuhkan dengan !pip install requests beautifulsoup4 pandas di cell pertama.

Etika & Aspek Legal Web Scraping

Ini bagian yang paling sering diabaikan mahasiswa. Pembimbing dan reviewer jurnal semakin kritis terhadap sumber data web โ€” pastikan kamu aman secara etis dan legal.

Apa yang boleh dan tidak boleh di-scrape?

โœ…
Boleh: Data publik yang tidak dilindungi login, data dari API resmi, data pemerintah (BPS, data.go.id), data yang disediakan untuk publik secara eksplisit.
โš ๏ธ
Perlu perhatian: Konten berita dan blog (cek robots.txt dan ToS), data e-commerce, media sosial (ada API resmi โ€” gunakan itu), data yang bisa diidentifikasi individu (GDPR/UU PDP).
โŒ
Tidak boleh: Konten di balik login tanpa izin, data yang Terms of Service-nya eksplisit melarang scraping, data yang mengidentifikasi individu tanpa consent, konten yang dilindungi copyright untuk dipublikasi ulang.

Cek robots.txt sebelum scraping

File robots.txt adalah dokumen yang website gunakan untuk memberi tahu bot/scraper mana bagian yang boleh dan tidak boleh diakses. Selalu cek dulu sebelum mulai.

URLCek manual di browser
https://www.namadomain.com/robots.txt

# Contoh isi robots.txt:
User-agent: *
Disallow: /private/
Disallow: /user-data/
Allow: /public/

Checklist etika sebelum scraping

Catatan untuk Jurnal Internasional
Reviewer jurnal Q1/Q2 sering menanyakan persetujuan etis (ethical clearance) untuk penelitian yang melibatkan data pengguna dari media sosial, bahkan jika datanya "publik". Siapkan argumen etis yang jelas di bagian metodologi.

Cara Melaporkan & Mensitasi Data Web (APA 7th)

Data dari web harus disitasi dan dilaporkan dengan benar di Bab 3 Metodologi dan Daftar Pustaka. Berikut format yang benar sesuai APA 7th edition.

Format sitasi untuk berbagai sumber web

Data dari API Lembaga Resmi (World Bank, BPS)
Format APA 7th
World Bank. (2024). GDP per capita (current US$) โ€” Indonesia [Data set]. World Bank Open Data. https://data.worldbank.org/indicator/NY.GDP.PCAP.CD?locations=ID

Catatan: Sertakan tahun akses di teks ("diakses pada 15 Januari 2025") karena data bisa diperbarui.
Data dari BPS
Format APA 7th
Badan Pusat Statistik. (2024). Produk Domestik Bruto atas Dasar Harga Berlaku menurut Lapangan Usaha 2020โ€“2023 [Data set]. BPS Web API. https://webapi.bps.go.id
Artikel berita yang di-scrape
Format APA 7th
Nama Penulis/Redaksi. (Tahun, Bulan Tanggal). Judul artikel. Nama Media. URL

Contoh:
Kompas Ekonomi. (2024, 10 Maret). Inflasi Indonesia turun ke 2,5 persen pada Februari 2024. Kompas.com. https://ekonomi.kompas.com/...
Data dari media sosial (Twitter/X)
Format APA 7th
Nama Akun [@username]. (Tahun, Bulan Tanggal). Isi tweet/post [Tweet]. Platform. URL

Contoh:
Bank Indonesia [@bank_indonesia]. (2024, 5 Februari). BI rate dipertahankan di level 6,00% [Tweet]. X (formerly Twitter). https://x.com/...
Dataset hasil scraping yang kamu buat sendiri
Format APA 7th
Nama Kamu. (Tahun). Judul dataset [Data set]. Institusi/Repositori. URL atau "Dataset tidak dipublikasikan"

Bila dataset disimpan di repositori (GitHub, Zenodo, OSF), cantumkan DOI-nya. Ini juga meningkatkan reproducibility penelitianmu.

Cara melaporkan metode scraping di Bab 3

Template paragraf metodologi pengumpulan data web

Data penelitian ini dikumpulkan melalui teknik [web scraping / akses API] terhadap [nama sumber] pada periode [rentang tanggal]. Pengambilan data menggunakan bahasa pemrograman Python dengan library [nama library]. Data yang dikumpulkan meliputi [sebutkan variabel] dengan total [N] observasi. Sebelum scraping dilakukan, Terms of Service dan file robots.txt dari sumber data telah diperiksa dan tidak ditemukan larangan penggunaan untuk keperluan penelitian akademis non-komersial. Data disimpan dalam format [CSV/JSON] dan diproses menggunakan [nama software].

Hal wajib disebutkan di metodologi

Tips Reproducibility
Simpan kode scraping kamu di GitHub dan cantumkan linknya di lampiran tesis. Ini standar transparansi penelitian modern dan sering diapresiasi reviewer jurnal. Kamu juga bisa simpan dataset di Zenodo.org untuk mendapatkan DOI permanen.

Butuh Bantuan Olah Data Web?

Dari scraping, cleaning, sampai analisis dan interpretasi โ€” Ruang Statistika siap mendampingi.

๐Ÿ’ฌ Chat WhatsApp
๐ŸŒ Ruang Statistika

Tentang Penulis

Y

Yogo Aryo Jatmiko, SST, M.Stat

Statistisi Ahli ยท Demografer ยท Founder Ruang Statistika ยท AI Enthusiast

10+ Tahun Pengalaman 8+ Publikasi Jurnal Pembicara Webinar Nasional

Yogo Aryo Jatmiko adalah Statistisi Ahli di BPS Indonesia dan Dosen Demografi di Politeknik Statistika STIS Jakarta. Dengan lebih dari 10 tahun pengalaman di bidang statistik dan data, ia aktif membantu mahasiswa S1โ€“S3 dalam olah data, metodologi, dan pelaporan hasil penelitian.

Ruang Statistika lahir dari kepedulian bahwa banyak mahasiswa cerdas tersandung di statistik bukan karena tidak mampu, tapi karena kurang mendapat penjelasan yang tepat dan terjangkau.

Layanan Konsultasi

Konsultasi Singkat

Rp 250K

Per sesi 1 jam via Zoom/WA

Olah Data

Rp 500K

Analisis lengkap + interpretasi

Pendampingan Penuh

Rp 1,2 Jt

Multi-sesi, awal sampai sidang

Kontak & Temukan Saya

๐Ÿ’ฌ WhatsApp

+62-896-5500-3613

๐Ÿ“ธ Instagram

@ruangstatistika01

๐Ÿ“ง Email

yj29289@gmail.com