Data Collection – APIs

Data Collection – APIs

Pengertian API

API (Application Programming Interface) adalah antarmuka yang memungkinkan komunikasi antara sistem berbeda. Dalam konteks pengumpulan data, API menyediakan akses terstruktur ke data dari sumber eksternal seperti:

  • Platform media sosial (Twitter API, Facebook Graph API)
  • Layanan pemerintah (Data.go.id)
  • Layanan cuaca (OpenWeatherMap API)
  • Layanan keuangan (Yahoo Finance API)

Karakteristik API:

  • Menggunakan protokol HTTP/HTTPS
  • Format data umum: JSON, XML
  • Memerlukan autentikasi (API Key, OAuth)
  • Memiliki rate limiting (batas request per waktu)

Jenis-Jenis API

a. Berdasarkan Akses

  1. Public API: Terbuka untuk umum (contoh: Google Maps API)
  2. Private API: Hanya untuk internal organisasi
  3. Partner API: Khusus mitra bisnis

b. Berdasarkan Arsitektur

  1. REST API: Menggunakan HTTP methods (GET, POST, PUT, DELETE)
  2. SOAP API: Menggunakan XML dan protokol khusus
  3. GraphQL API: Query fleksibel dengan single endpoint

Komponen Penting API

  1. Endpoint: URL tujuan request (contoh: https://api.example.com/data)
  2. Method:
    • GET untuk mengambil data
    • POST untuk mengirim data
  3. Headers: Informasi tambahan (Content-Type, Authorization)
  4. Parameters: Filter data (query params atau body)
  5. Response: Data yang dikembalikan (biasanya JSON)

Contoh Program dengan Python

a. Mengambil Data dari Public API (COVID-19)

python
import requests
import pandas as pd

# Endpoint API COVID-19
url = "https://api.covid19api.com/summary"

# Mengirim GET request
response = requests.get(url)

# Cek status code
if response.status_code == 200:
    data = response.json()
    
    # Konversi ke DataFrame
    df_global = pd.DataFrame(data['Global'], index=[0])
    df_countries = pd.DataFrame(data['Countries'])
    
    print("Data Global:")
    print(df_global[['TotalConfirmed', 'TotalDeaths', 'TotalRecovered']])
    
    print("\n5 Negara Terdampak:")
    print(df_countries.sort_values('TotalConfirmed', ascending=False)[['Country', 'TotalConfirmed']].head())
else:
    print("Error:", response.status_code)

Output:

Data Global:
   TotalConfirmed  TotalDeaths  TotalRecovered
0       165234567      3425678       150456789

5 Negara Terdampak:
        Country  TotalConfirmed
76         USA        32567890
44         India       28765432
12         Brazil      19876543
...         ...            ...

b. Menggunakan API dengan Autentikasi (Twitter API)

python
import requests
from requests.auth import OAuth1
import os

# Konfigurasi API Key
consumer_key = os.getenv('TWITTER_API_KEY')
consumer_secret = os.getenv('TWITTER_API_SECRET')

# Autentikasi OAuth
auth = OAuth1(consumer_key, consumer_secret)

# Endpoint search tweet
url = "https://api.twitter.com/2/tweets/search/recent"
params = {
    'query': 'python lang:id',
    'max_results': 5
}

response = requests.get(url, auth=auth, params=params)

if response.status_code == 200:
    tweets = response.json()
    for tweet in tweets['data']:
        print(tweet['text'])
        print("---")
else:
    print("Error:", response.json())

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply

Your email address will not be published. Required fields are marked *