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
- Public API: Terbuka untuk umum (contoh: Google Maps API)
- Private API: Hanya untuk internal organisasi
- Partner API: Khusus mitra bisnis
b. Berdasarkan Arsitektur
- REST API: Menggunakan HTTP methods (GET, POST, PUT, DELETE)
- SOAP API: Menggunakan XML dan protokol khusus
- GraphQL API: Query fleksibel dengan single endpoint
Komponen Penting API
- Endpoint: URL tujuan request (contoh:
https://api.example.com/data
) - Method:
GET
untuk mengambil dataPOST
untuk mengirim data
- Headers: Informasi tambahan (Content-Type, Authorization)
- Parameters: Filter data (query params atau body)
- Response: Data yang dikembalikan (biasanya JSON)
Contoh Program dengan Python
a. Mengambil Data dari Public API (COVID-19)
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)
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())