Dari jenis data web, API publik berguna, tools tanpa coding, hingga kode Python siap pakai dan cara mensitasi data web dengan format APA 7th.
Sebelum scraping, pahami dulu jenis datanya. Ini menentukan tools dan metode yang tepat โ serta apakah data tersebut legal untuk diambil.
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.
Konten baru muncul setelah halaman dimuat, biasanya via JavaScript/AJAX. Contoh: Twitter/X, Instagram, Google Maps, marketplace. Butuh Selenium atau Playwright untuk scrape.
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.
Ulasan produk, komentar media sosial, berita online โ untuk analisis sentimen, topik modeling, NLP.
Tabel angka dari BPS, World Bank, WHO, OECD โ langsung bisa masuk ke SPSS atau R.
Harga saham, komoditas, e-commerce โ untuk penelitian ekonomi, manajemen, keuangan.
Data wilayah, populasi, fasilitas publik dari OpenStreetMap, Geoportal BIG.
Metadata jurnal, sitasi, abstrak dari Semantic Scholar API, CrossRef, OpenAlex.
Tweet, posting, hashtag โ untuk penelitian komunikasi, pemasaran, perilaku konsumen.
Output API โ paling umum. Mudah dikonversi ke DataFrame pandas.
Siap langsung buka di SPSS, Excel, atau R.
Perlu parsing dulu. Bisa dengan BeautifulSoup atau lxml.
Berikut daftar API yang paling berguna untuk penelitian akademis di Indonesia dan internasional โ lengkap dengan jenis data dan cara akses.
| API / Sumber | Jenis Data | Akses | URL |
|---|---|---|---|
| BPS Web API | Statistik resmi Indonesia (ekonomi, demografi, sosial) | API Key | webapi.bps.go.id |
| SATU DATA Indonesia | Data pemerintah lintas K/L | Gratis | data.go.id |
| DJPPR Kemenkeu | Data APBN, utang, obligasi | Gratis | djppr.kemenkeu.go.id |
| BMKG Open Data | Cuaca, gempa, iklim | Gratis | data.bmkg.go.id |
| IDX (Bursa Efek) | Data saham, emiten, laporan keuangan | Gratis | idx.co.id/data-market |
| API / Sumber | Jenis Data | Akses | URL |
|---|---|---|---|
| World Bank API | Indikator pembangunan dunia (200+ negara) | Gratis | data.worldbank.org/developers |
| WHO GHO API | Data kesehatan global | Gratis | ghoapi.azureedge.net |
| FRED (US Fed) | Data ekonomi makro AS & global | API Key | fred.stlouisfed.org/docs/api |
| Open Exchange Rates | Nilai tukar mata uang | Registrasi | openexchangerates.org |
| API / Sumber | Jenis Data | Akses | URL |
|---|---|---|---|
| OpenAlex API | 250 juta paper, sitasi, author, institusi | Gratis | api.openalex.org |
| Semantic Scholar | Metadata jurnal, sitasi, abstrak | Gratis | api.semanticscholar.org |
| CrossRef API | DOI, metadata publikasi | Gratis | api.crossref.org |
| arXiv API | Preprint sains, CS, ekonomi | Gratis | arxiv.org/help/api |
Banyak API bisa dipanggil langsung dari browser. Contoh untuk World Bank โ data GDP Indonesia:
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.
Pilih tools sesuai kemampuan dan kebutuhan. Tidak semua penelitian butuh coding โ banyak tools GUI yang powerful untuk kebutuhan akademis dasar.
Ekstrak tabel dari website dengan klik. Output langsung ke CSV/Excel. Cocok untuk data tabel sederhana.
Antarmuka point-and-click. Bisa menangani halaman dinamis (JS). Versi gratis cukup untuk penelitian kecil.
Template scraping siap pakai (Amazon, Twitter, dll). Scheduler otomatis. Populer di kalangan mahasiswa manajemen.
Formula bawaan Google Sheets. Cocok untuk mengambil data dari halaman statis langsung ke spreadsheet.
Bawaan Excel/Power BI. Bisa ambil data dari web, JSON, XML. Sangat powerful untuk akademisi yang familiar Excel.
GUI untuk mengakses API. Tidak perlu coding โ tinggal masukkan URL API dan klik Send. Ekspor ke JSON/CSV.
Mengambil konten halaman web (HTTP requests). Fondasi dari semua scraping Python.
Parsing HTML. Ekstrak elemen spesifik dari halaman web statis dengan sangat mudah.
Manipulasi dan ekspor data. pd.read_html() bisa baca tabel HTML langsung.
Otomasi browser. Perlu untuk halaman yang butuh login atau render JavaScript.
Framework scraping skala besar. Lebih kompleks tapi sangat powerful untuk dataset besar.
HTTP client asinkron. Jauh lebih cepat untuk memanggil banyak URL sekaligus.
Empat contoh lengkap โ dari yang paling sederhana hingga yang menggunakan API. Semua bisa langsung dijalankan di Google Colab (gratis, tanpa instalasi).
Cara termudah mengambil tabel dari halaman web tanpa parsing manual.
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())
Mengambil data indikator pembangunan Indonesia dari API World Bank yang gratis.
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)
Mengambil judul dan ringkasan berita dari halaman berita sederhana.
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)
Cari paper berdasarkan kata kunci โ berguna untuk systematic review atau bibliometrics.
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")
!pip install requests beautifulsoup4 pandas di cell pertama.
Ini bagian yang paling sering diabaikan mahasiswa. Pembimbing dan reviewer jurnal semakin kritis terhadap sumber data web โ pastikan kamu aman secara etis dan legal.
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.
https://www.namadomain.com/robots.txt
# Contoh isi robots.txt:
User-agent: *
Disallow: /private/
Disallow: /user-data/
Allow: /public/
Disallow.Data dari web harus disitasi dan dilaporkan dengan benar di Bab 3 Metodologi dan Daftar Pustaka. Berikut format yang benar sesuai APA 7th edition.
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].
Dari scraping, cleaning, sampai analisis dan interpretasi โ Ruang Statistika siap mendampingi.
๐ฌ Chat WhatsAppStatistisi Ahli ยท Demografer ยท Founder Ruang Statistika ยท AI Enthusiast
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.
Rp 250K
Per sesi 1 jam via Zoom/WA
Rp 500K
Analisis lengkap + interpretasi
Rp 1,2 Jt
Multi-sesi, awal sampai sidang