Salah satu masalah yang mesti anda jumpa bila nak buat webapp ialah: macam mana nak dapat data?
Contohnya:
- App compare harga kereta → perlukan data model, harga, spec, gambar
- App cari restoran halal → perlukan data restoran, lokasi, menu, gambar
Ramai orang stuck dekat sini sebab tak tahu cara yang sesuai. Ada yang spend masa berbulan-bulan buat crawler yang super complex, padahal data dia cuma 20 items je. Ada yang manual copy paste 5000 items sebab tak tahu ada cara lain yang lebih senang.
Hari ni kita breakdown 4 cara untuk dapatkan data, bila nak guna mana satu, dan macam mana nak decide.
- API
- Web crawling
- AI-assisted
- Manual input
1. API (Cara Paling 'Proper')
Apa itu API? API macam pintu belakang yang owner data sediakan untuk developer ambik data mereka secara teratur. Contohnya Twitter ada API untuk ambik tweets, Google Maps ada API untuk ambik location data.

Ada dua jenis API yang anda patut tahu:
Official API - Company sendiri yang provide. Twitter API, Google Maps API, Stripe API, YouTube API. Kalau website besar biasanya ada official API.
Unofficial API - Third party yang buat. Macam apify.com, dekat sini ada macam-macam API yang orang dah buat, kebanyakannya perlu bayar untuk guna.
Bila nak guna API ni?
Guna bila website tu ada provide API. Senang cerita, check dulu ada ke tak. Kalau ada, guna je. Jangan complicated kan.
API ni bagus sebab data tersusun (biasanya format JSON), reliable sebab company maintain, dan legal sebab official permission. Tapi downside dia, ramai charge (free tier limited), dan ada rate limits. Contohnya cuma boleh guna 10 kali sehari je.

Tips untuk API:
- Bagitau je dekat Claude Code / Codex / Cursor / Antigravity API apa yang anda nak guna.
- Kalau tak jadi, bagi link documentation API tu sekali.
- Kalau tak jadi jugak, copy paste je documentation tu terus bagi dekat dia.
2. Web Crawling (Cara Power User)
Okay ni cara yang lebih advanced. Crawling ialah automated process untuk baca website dan extract data yang anda nak. Macam anda buka 1000 pages manually, tapi ada code yang buat.

Ada beberapa tools yang popular:
Beautiful Soup - Paling simple untuk start, Python based. Bagus untuk static websites yang tak banyak JavaScript. Saya sendiri guna ni untuk simple scraping sebab senang.
Selenium & Puppeteer - Ni lagi power sebab boleh kawal browser sebenar. Boleh handle JavaScript websites yang complex. Kelemahan dia slow sikit. Kebanyakan anda tengok AI agent yang boleh buka website, klik sana sini tu guna tool ni la.
Bila nak guna crawling?
Guna bila anda perlukan data yang banyak, website tak ada API, dan data yang perlu selalu update. Sebab crawling ni akan ambil masa untuk setup, jadi perlu make sure proses tu berbaloi.
Kelemahan crawling:
- Website boleh detect dan block kalau anda crawl terlalu agresif
- Structure website boleh berubah bila-bila masa → code anda mungkin perlu diupdate selalu
- Dari segi legal, sebenarnya ini grey area → cek terms of service dulu sebelum mula
Satu lagi yang penting - respect website owner. Kalau dia clearly tak bagi orang crawl, jangan buat.
3. AI-Assisted (Cara Paling Underrated)
Ni cara yang paling underrated dan saya paling suka guna untuk quick validation. Dengan AI tools sekarang, anda boleh dapat data dengan cepat tanpa coding. Perfect untuk MVP atau one-time setup.
Tools yang anda boleh guna:

ChatGPT Deep Research - Dia akan search web untuk anda, compile information, dan buat format yang baik. Super powerful untuk research-heavy data.
Gemini dengan Search - Google punya AI, ada live search. Free tier pun permurah.
Grok - X punya, bagus untuk real-time data atau trending info.
Macam mana nak guna?
Senang je. Minta je AI research dan format data untuk anda. Contoh prompt:
"Saya nak buat car comparison app. Tolong research dan listkan semua model Proton yang current (2024-2025) dengan details:
- Model name
- Starting price (RM)
- Engine type
- Fuel type
- Key features (list)
Output dalam format JSON supaya senang copy paste ke dalam database."

AI akan research, compile, format. Anda copy paste je.
Bila nak guna AI ni?
Guna cara ni bila anda perlukan kurang daripada 50 item, untuk setup sekali sahaja, quick validation, atau data yang memang mudah jumpa secara online. Jangan guna untuk ribuan item sebab tak scalable. Dan sentiasa verify data yang penting — AI kadang-kadang boleh tersalah.
Contoh sebenar dari projek saya: Untuk BeliKereta, saya perlukan data semua model Proton. Mula-mula cuba crawl, tapi tak jadi. Lepas tu guna ChatGPT Deep Research, dapat semua data dalam masa lebih kurang 10 minit. Copy paste masuk Codex, minta dia simpan dalam database, settle.
Tips:
* Spesifik dengan format output yang anda nak
* Minta AI tunjuk sumber supaya boleh verify
* Pecahkan request besar kepada bahagian kecil
Jangan minta 100 item sekaligus, buat sikit-sikit.
4. Manual Input (Kadang-kadang paling sesuai)
Ini option paling basic, tapi dalam banyak situasi, ini sebenarnya paling praktikal.
Manual input maksudnya anda copy-paste atau type sendiri data ke dalam sistem.
“Eh manual? Bukannya slow ke?”
Ya, memang slow. Tapi ada masa manual ni pilihan paling betul.
Bila nak guna manual?
Kurang daripada 10 item
Nak setup crawler untuk 10 item? Overkill.
Data sangat kritikal
Kalau ketepatan data sangat penting, manual lebih selamat. Contoh: harga untuk dokumen legal, info kesihatan, data kewangan.
Testing MVP
Nak validate idea cepat? Masukkan dulu 5–10 sample item secara manual. Kalau idea jadi, baru automate.
Data unik
Data yang anda je ada, tak ada online. Contoh: portfolio sendiri, team anda, produk anda.
Ramai developer buang masa optimize benda yang tak perlu optimize. “Saya nak buat crawler untuk 5 produk.” Tak perlu pun sebenarnya, copy paste je. 10 minit settle. Jangan over-engineer.
Tips untuk manual input:
- Kumpulkan semua data dulu dalam Google Sheets atau Excel
- Lepas tu bagi file tu dekat AI coding tools anda
- Minta AI buatkan admin page supaya senang untuk anda betulkan mana-mana data yang tak tepat
Macam Mana Nak Pilih Cara Dapatkan Data?
Flowchart ni ialah framework ringkas untuk bantu anda decide cara paling sesuai nak dapatkan data untuk webapp anda: