Lewati ke konten utama

Tutorial FastAPI: Pengantar Menggunakan FastAPI

Jelajahi framework FastAPI dan temukan cara menggunakannya untuk membuat API di Python
Diperbarui 5 Jun 2026  · 13 mnt baca

API (Application Programming Interface) adalah tulang punggung arsitektur modern karena memungkinkan aplikasi bersifat modular dan terlepas. Artinya, Anda dapat membangun aplikasi dengan cepat dan mudah, sehingga lebih mudah dirawat dan diperbarui. 

API juga sangat penting dalam machine learning karena memungkinkan berbagai aplikasi berbagi data dan bekerja sama, menghemat waktu dan tenaga. Ada banyak framework berbeda untuk membangun API di Python. Beberapa framework paling populer untuk membuat API di Python adalah Django, Flask, dan FastAPI. Tutorial ini membahas secara mendalam salah satu framework tersebut, yaitu FastAPI.

Jika Anda ingin mendalami topik ini, saya merekomendasikan kursus berikut: Deploying AI Into Production With FastAPI.

Apa itu API?

API adalah singkatan dari Application Programming Interface. API adalah perantara perangkat lunak yang memungkinkan dua aplikasi saling berkomunikasi. Saat Anda menggunakan aplikasi di ponsel, aplikasi tersebut terhubung ke Internet dan mengirim data ke server. Server kemudian memproses data dan mengirimkannya kembali ke ponsel Anda. Aplikasi di ponsel Anda lalu menafsirkan data tersebut dan menampilkannya kepada Anda dengan cara yang mudah dibaca. 

API ibarat pelayan di restoran. Pelayan mencatat pesanan Anda dan mengirimkannya ke dapur. Dapur kemudian menyiapkan makanan dan mengirimkannya kembali ke pelayan. Pelayan lalu menyajikan makanan kepada Anda. 

Dengan cara yang sama, API menerima permintaan dari sebuah aplikasi dan mengirimkannya ke server. Server kemudian memproses permintaan tersebut dan mengirimkan data kembali ke aplikasi. Aplikasi kemudian menafsirkan data itu dan menyajikannya kepada pengguna.

Desain arsitektur API sederhana

Sumber Gambar: https://www.techfunnel.com/wp-content/uploads/2021/07/api.png

Jika Anda ingin mempelajari lebih lanjut tentang pipeline machine learning, API, dan MLOps, Anda dapat melihat Tutorial Machine Learning, Pipelines, Deployment, dan MLOps kami.

Apa itu FastAPI

FastAPI adalah web framework berkinerja tinggi untuk membangun API dengan Python 3.7+ berdasarkan type hints standar Python. Framework ini membantu pengembang membangun aplikasi dengan cepat dan efisien. FastAPI dibangun di atas server web Starlette dan mencakup fitur-fitur yang memudahkan pembuatan aplikasi web, seperti validasi data otomatis, penanganan error, dan dokumentasi API interaktif. 

Kita akan melihat semua fitur ini satu per satu di bagian ini. Pertama, mari kita lihat fitur-fitur kunci seperti yang dijelaskan dalam dokumentasi asli FastAPI.

  • Kinerja: Sejajar dengan NodeJS dan bahasa Go.
  • Kecepatan: Meningkatkan kecepatan pengembangan 2-3X.
  • Mudah: Dukungan editor yang hebat. Pelengkapan di mana-mana. Mudah dipelajari dan digunakan.
  • Tangguh: Kode siap produksi dengan dokumentasi interaktif otomatis.
  • Berbasis OpenAPI: Sepenuhnya kompatibel dengan OpenAPI dan JSON Schema.

Memasang FastAPI

FastAPI memerlukan Python 3.7+. Dapat dipasang menggunakan pip. Anda perlu memasang FastAPI dan server ASGI `uvicorn`.

``

# install fastapi

pip install fastapi




# install uvicorn
pip install uvicorn

``

Buat API sederhana

Mari langsung membuat API mainan yang sangat sederhana. Saya menggunakan VS Code untuk menerapkannya, tetapi Anda dapat menggunakan editor apa pun yang Anda sukai.

```

from typing import Union

from fastapi import FastAPI




app = FastAPI()




@app.get("")

def read_root():

    return {"Hello": "World"}




@app.get("/items/{item_id}")

def read_item(item_id: int, q: Union[str, None] = None):

    return {"item_id": item_id, "q": q}

```

(Contoh diambil dari dokumentasi asli). Terima kasih kepada @tiangolo.

Sekarang gunakan terminal baris perintah, jalankan API ini dengan perintah berikut:

```

uvicorn main:app –reload

```

`main` adalah nama file Python, dan `app` adalah variabel yang menyimpan kelas FastAPI. Anda bisa menamainya sesuka Anda. Setelah menjalankan perintah di atas, Anda akan melihat sesuatu seperti ini di terminal:

Terminal Perintah

Buka tautan tersebut di browser Anda, dan jika Anda melihat halaman yang menampilkan `Hello World,` berarti API sudah aktif dan berjalan.

API berjalan di localhost di browser

Gambar oleh Penulis

Selamat atas pembuatan API pertama Anda. 

Dokumentasi API Interaktif

FastAPI menghasilkan "skema" dengan semua API Anda menggunakan standar OpenAPI untuk mendefinisikan API. "Skema" adalah definisi atau deskripsi tentang sesuatu. Bukan kode yang mengimplementasikannya, melainkan deskripsi abstrak. Skema OpenAPI adalah yang mendukung dua sistem dokumentasi interaktif yang disertakan dalam FastAPI.

Untuk melihat dokumentasi, cukup tambahkan `/docs` ke URL (`http://127.0.0.1:8000/docs`). Tautan ini akan menampilkan dokumentasi API interaktif otomatis.

Dokumentasi otomatis yang dibuat oleh FastAPI

Gambar oleh Penulis

Klik tombol `Try it out` di pojok kanan atas untuk menguji API.

Dokumentasi otomatis yang dibuat oleh FastAPI 2

Gambar oleh Penulis

Anda dapat melihat body respons berupa dictionary. Ini adalah nilai kembalian dari fungsi `read_item` yang didefinisikan di `main.py`. Anda juga dapat melihat URL permintaan `http://127.0.0.1:8000/items/1?q=orange`. `1` dan `orange` adalah masukan kita ke API.

Ada dokumentasi otomatis interaktif alternatif yang tersedia di FastAPI. Untuk mencobanya, buka http://127.0.0.1:8000/redoc`. Tampilannya seperti ini:

Dokumentasi otomatis yang dibuat oleh FastAPI 3

Gambar oleh Penulis

Contoh yang lebih lanjut

Saat membangun API, "path" mendefinisikan rute atau endpoint dari permintaan. Namun, ada satu pilihan lagi yang harus kita tentukan, yaitu “Operation.” Kata `operation` di sini merujuk pada salah satu "metode" HTTP. Dengan menggunakan satu (atau lebih) dari metode tersebut, Anda dapat berkomunikasi dengan setiap path yang didukung oleh protokol HTTP. Biasanya, Anda akan menggunakan:

  • POST: untuk membuat data.
  • GET: untuk membaca data.
  • PUT: untuk memperbarui data.
  • DELETE: untuk menghapus data.
  • Dan beberapa metode lanjutan lainnya 

FastAPI mendukung semua metode HTTP tersebut. 

Fakta bahwa FastAPI dibangun di atas type hints Python adalah aspek kunci lainnya dari framework ini. Type hints didukung pada Python 3.6 dan yang lebih baru. Type hints adalah jenis sintaks khusus yang memungkinkan Anda mendeklarasikan tipe sebuah variabel. 

Mendeklarasikan tipe untuk variabel Anda memungkinkan editor dan alat lainnya memberi bantuan yang lebih baik. Mari kita lihat contoh lanjutan.

Kita akan memodifikasi file `main.py` untuk menyertakan permintaan `PUT` baru yang akan menerima beberapa masukan dengan tipe data berbeda. 

```

from typing import Union




from fastapi import FastAPI

from pydantic import BaseModel




app = FastAPI()




class Item(BaseModel):

    name: str

    price: float

    is_offer: Union[bool, None] = None




@app.get("")

def read_root():

    return {"Hello": "World"}




@app.get("/items/{item_id}")

def read_item(item_id: int, q: Union[str, None] = None):

    return {"item_id": item_id, "q": q}




@app.put("/items/{item_id}")

def update_item(item_id: int, item: Item):

    return {"item_name": item.name, "item_id": item_id}

```

(Contoh diambil dari dokumentasi asli). Terima kasih kepada @tiangolo.

Perubahannya:

Sebuah permintaan `put` ditambahkan yang menerima dua masukan. `item_id` adalah integer dan tipe `item` merujuk pada kelas kustom `Item` yang dibuat dan mewarisi `BaseModel` dari `pydantic`. Kelas `Item` berisi tiga atribut: `name`, `price`, `is_offer`, dan semuanya memiliki tipe data yang berbeda.

FastAPI akan memeriksa: 

  • `name` adalah `str`.
  • `price` adalah `float`.
  • `is_offer` adalah bool, jika ada.

Keuntungan menggunakan type hints adalah Anda cukup sekali mendeklarasikan tipe parameter, body, dll. sebagai parameter fungsi dengan Python standar (3.6+). Anda akan mendapatkan:

  • Dukungan editor, termasuk pelengkapan otomatis, pemeriksaan tipe
  • Validasi data
  • Konversi data masukan
  • Konversi data keluaran
  • Error yang mudah dipahami.

Perbandingan FastAPI dengan Django dan Flask

Ketiga framework ini adalah web framework Python yang dapat Anda gunakan untuk mengembangkan aplikasi web. Masing-masing memiliki kelebihan dan kekurangannya.

Django adalah framework lengkap yang mencakup semua yang Anda butuhkan untuk memulai, termasuk ORM bawaan dan panel admin. Bisa terasa sedikit rumit bagi pemula, tetapi dokumentasinya yang komprehensif membuatnya mudah dipelajari.

Flask adalah microframework yang ringan dan mudah untuk mulai digunakan. Tidak selengkap Django dalam hal fitur, tetapi sangat cocok untuk proyek sederhana.

FastAPI adalah framework baru yang dirancang cepat dan mudah digunakan. Ia mencakup fitur seperti validasi data otomatis dan dokumentasi. 

 

Django

Flask

FastAPI

Komunitas

Besar. 

66K bintang GitHub

Besar. 

61K bintang GitHub

Besar. 

50K bintang GitHub

Kinerja

Django itu besar. Bukan yang terbaik dari sisi kinerja.

Flask adalah micro web framework. Kinerjanya lebih baik dibanding Django.

FastAPI adalah salah satu web framework tercepat dengan dukungan async native yang menambah efisiensi framework. 

Dukungan Async

Ya, dengan latensi terbatas.

Tidak. 

Butuh Asyncio

FastAPI menyediakan dukungan async native.

Kemudahan penggunaan

Django besar dan karena itu agak rumit untuk dipelajari.

Flask mudah dipelajari dan cukup lugas digunakan.

FastAPI adalah yang paling sederhana di antara ketiganya.

Dokumentasi Interaktif

Tidak interaktif

Tidak

Ya (OpenAI, Redoc)

Verifikasi Data

Tidak

Tidak

Ya


Benchmark Kinerja FastAPI

Menurut hasil pengujian yang dijalankan oleh techempower, FastAPI unggul dibanding framework lainnya dalam hal kinerja keseluruhan. 

Benchmark Kinerja API

Sumber: https://www.techempower.com/benchmarks/

Contoh: Membangun Pipeline machine learning end-to-end dengan PyCaret dan melakukan deployment dengan FastAPI 

Pada bagian ini, kita akan dengan cepat membangun pipeline machine learning lalu membuat API untuk menyajikan modelnya. Kita akan menggunakan library Python low-code PyCaret untuk membangun pipeline dan membuat API. PyCaret memiliki integrasi dengan FastAPI, yang membuat pembuatan dan penyajian model machine learning sebagai API menjadi sangat mudah.

PyCaret

PyCaret adalah library machine learning open-source dan low-code di Python yang mengotomatisasi alur kerja machine learning. Ini adalah alat end-to-end untuk machine learning dan manajemen model yang mempercepat siklus eksperimen secara eksponensial dan membuat Anda lebih produktif.

```

pip install pycaret

```




```

import pycaret

pycaret.__version__

>>> 2.3.10

```

Kita akan menggunakan dataset `insurance` dalam contoh ini. Ini adalah kasus regresi untuk memprediksi biaya medis berdasarkan usia, jenis kelamin, BMI, dan wilayah. 

```

from pycaret.datasets import get_data

data = get_data(‘insurance’)

```

Contoh Dataset

Gambar oleh Penulis

Selanjutnya kita akan menginisialisasi fungsi `setup` dari pycaret. Fungsi ini menginisialisasi eksperimen di PyCaret dan membuat pipeline transformasi berdasarkan semua parameter yang diberikan dalam fungsi. 

`setup` harus dieksekusi terlebih dahulu sebelum fungsi lainnya. Fungsi ini memerlukan dua parameter untuk bekerja yaitu `data` dan `target`. Semua argumen lainnya dalam `setup` bersifat opsional. Fungsi `setup` bertanggung jawab mengendalikan seluruh prosedur prapemrosesan data. Lihat dokumentasi PyCaret untuk rangkuman komprehensif semua prosedur prapemrosesan yang didukung di PyCaret.

```

from pycaret.regression import *

s = setup(data, target = 'charges')

```

Keluaran dari fungsi setup PyCaret

Gambar oleh Penulis Keluaran dipangkas.

Setelah setup selesai, kita dapat mulai melatih dan memilih model hanya dengan satu baris kode: `compare_models`. Melalui cross-validation, fungsi ini melatih dan mengevaluasi kinerja model dari semua estimator dalam pustaka model. Hasil dari fungsi ini adalah grid penilaian yang berisi skor rata-rata yang diperoleh dari cross-validation.

Pra-pemrosesan untuk Machine Learning di Python

Tertarik mempelajari lebih lanjut cara menyiapkan data yang telah dibersihkan untuk pemodelan? Ikuti kursus Pra-pemrosesan untuk Machine Learning di Python kami.

Mulai sekarang
```

best = compare_models()

```

Keluaran dari fungsi compare_models PyCaret

Gambar oleh Penulis

Berdasarkan ini, model dengan kinerja terbaik adalah `Gradient Boosting Regressor`. Jika mau, kita bisa menganalisis model melalui visualisasi dan berupaya lebih lanjut meningkatkan kinerja melalui hyperparameter tuning atau ensembling model, tetapi kita tidak akan melakukannya dalam tutorial ini. 

Kita akan langsung membangun API dari model terbaik untuk menyajikan prediksi di produksi menggunakan FastAPI. Ingat, PyCaret memiliki integrasi dengan FastAPI, sehingga dapat otomatis membuat REST API dari model menggunakan fungsi `create_api`.

```

create_api (best, 'insurance_prediction_model')

```

API Berhasil Dibuat

Sekarang untuk menjalankan API ini, buka terminal command prompt dan arahkan ke folder tempat Notebook Anda berada lalu jalankan perintah berikut `python insurance_prediction_model.py`. 

Baris Perintah

Buka `http://127.0.0.1:8000/docs` dan Anda akan melihat UI yang sama seperti yang telah Anda lihat sebelumnya di tutorial ini

API di http:::127.0.0.1:8000:docs

Gambar oleh Penulis

API di http:::127.0.0.18000:docs

Gambar oleh Penulis

Anda juga dapat melihat dokumentasi interaktif alternatif dengan membuka `http://127.0.0.1:8000/redoc

API di http:::127.0.0.1:8000:docs3

Gambar oleh Penulis

Ingat, baik dokumentasi interaktif default maupun redoc didukung menggunakan standar OpenAPI. 

Jika Anda ingin melihat file yang dibuat PyCaret saat Anda menggunakan fungsi `create_api`, Anda dapat memeriksa file tersebut di folder yang sama dengan Notebook Anda. Tampilannya seperti ini:

```

import pandas as pd

from pycaret.regression import load_model, predict_model

from fastapi import FastAPI

import uvicorn




# Create the app

app = FastAPI()




# Load trained Pipeline

model = load_model('my_lr_api')




# Define predict function

@app.post('/predict')

def predict(age, sex, bmi, children, smoker, region):

    data = pd.DataFrame([[age, sex, bmi, children, smoker, region]])

    data.columns = ['age', 'sex', 'bmi', 'children', 'smoker', 'region']

    predictions = predict_model(model, data=data) 

    return {'prediction': list(predictions['Label'])}




if __name__ == '__main__':

    uvicorn.run(app, host='127.0.0.1', port=8000)




```

Kesimpulan

Artikel ini membahas konsep API dan alasan penggunaannya. API penting dalam arsitektur modern karena memungkinkan berbagai program perangkat lunak berbagi data dan fungsionalitas. Hal ini memungkinkan pembuatan sistem yang kompleks, lebih andal, dan lebih mudah dirawat.

Kita kemudian membahas secara mendalam framework yang relatif baru di Python bernama FastAPI. FastAPI adalah API yang lebih baru dan dirancang agar mudah digunakan serta efisien. Ini adalah pilihan yang bagus bagi pengembang yang ingin membuat API dengan cepat dan mudah.

Riwayat bintang GitHub - dibuat menggunakan star-history.com

Riwayat bintang GitHub - dibuat menggunakan star-history.com

Jika Anda juga ingin mempelajari cara membuat API sederhana dari model machine learning di Python menggunakan Flask, lihat tutorial yang mudah diikuti, Turning Machine Learning Models into APIs in Python.

FAQ FastAPI

Apakah FastAPI asynchronous?

FastAPI mendukung kode asynchronous secara langsung menggunakan kata kunci async/await di Python.

Apakah FastAPI siap untuk produksi?

FastAPI sepenuhnya siap untuk produksi, dengan dokumentasi yang sangat baik, dukungan, dan antarmuka yang mudah digunakan.

Apa perbedaan FastAPI dengan Flask?

FastAPI mendukung pemanggilan asynchronous. Framework ini ringan, lebih cepat, dan lebih mudah dipelajari dibanding Flask. Baik Flask maupun FastAPI memiliki komunitas yang besar.

Apakah FastAPI juga memiliki server pengembangan bawaan?

Tidak, FastAPI tidak memiliki server pengembangan bawaan. Untuk itu Anda harus menggunakan `uvicorn`.

Apakah FastAPI didukung di Python 2?

Tidak, FastAPI hanya tersedia di Python 3.6+.

Apakah FastAPI hanya tersedia di Python?

Ya

Apakah FastAPI lebih cepat daripada bahasa pemrograman Go?

Tidak. Menurut techempower, Golang Fiber adalah API tercepat ke-50 di dunia. FastAPI berada di peringkat ke-183.

Apakah FastAPI kompatibel dengan Pydantic?

FastAPI sepenuhnya kompatibel (dan berbasis) dengan Pydantic.

Topik

Belajar AI dengan kursus-kursus ini!

Kursus

Pelatihan Model AI Efisien dengan PyTorch

4 Hr
1.5K
Pelajari cara mengurangi waktu pelatihan untuk large language models dengan Accelerator dan Trainer untuk distributed training
Lihat DetailRight Arrow
Mulai Kursus
Lihat Lebih BanyakRight Arrow
Terkait

blogs

Spaghetti Plot dan Jalur Badai

Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Hugo Bowne-Anderson's photo

Hugo Bowne-Anderson

13 mnt

blogs

40 Pertanyaan Wawancara DBMS Teratas di 2026

Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.
Dario Radečić's photo

Dario Radečić

15 mnt

blogs

Tutorial Korelasi di R

Dapatkan pengenalan dasar-dasar korelasi di R: pelajari lebih lanjut tentang koefisien korelasi, matriks korelasi, plotting korelasi, dan sebagainya.
David Woods's photo

David Woods

13 mnt

blogs

12 Alternatif ChatGPT Terbaik yang Bisa Anda Coba pada 2026

Artikel ini menyajikan daftar alternatif ChatGPT yang akan meningkatkan produktivitas Anda.
Javier Canales Luna's photo

Javier Canales Luna

14 mnt

Lihat Lebih BanyakLihat Lebih Banyak