Untuk praktikum "Menghubungkan aplikasi dengan API dan mengambil data eksternal", aplikasi Dart Flutter yang cocok dan mudah dipahami pemula adalah:
✅ Aplikasi Cuaca (Weather App) Sederhana
Deskripsi: Menampilkan data cuaca dari API eksternal seperti OpenWeatherMap berdasarkan nama kota.
Fitur:
-
Input nama kota
-
Fetch data cuaca via API
-
Tampilkan suhu, cuaca, dan ikon
Konsep yang Dipelajari:
-
HTTP request menggunakan
http
package -
Parsing JSON
-
Penggunaan
FutureBuilder
-
Penanganan input dan tampilan dinamis
✅ Aplikasi List Berita (News App)
Deskripsi: Menampilkan daftar berita terkini menggunakan API seperti NewsAPI.org.
Fitur:
-
Ambil berita terkini
-
Tampilkan judul, gambar, dan deskripsi
-
Navigasi ke halaman detail berita
Konsep yang Dipelajari:
-
Ambil data list dari API
-
Gunakan ListView builder
-
Navigasi antar halaman
✅ Aplikasi Quote Harian (Random Quote App)
Deskripsi: Menampilkan kutipan (quotes) motivasi secara acak dari API seperti type.fit/api/quotes
Fitur:
-
Tombol "Get New Quote"
-
Tampilkan quote dan author
-
Refresh konten dari API
Konsep yang Dipelajari:
-
HTTP GET
-
Update UI dengan setState
-
Parsing list JSON
Rekomendasi: Mulai dari Aplikasi Cuaca atau Quote
Kenapa?
-
Mudah dipahami
-
API gratis dan tidak membutuhkan login/token
-
Bisa dikembangkan lebih lanjut (misalnya tambahkan fitur favorit, simpan offline, dll)
Kalau aplikasi Flutter (yang berjalan di Zapp.run) dengan input teks nama kota secara bebas—misalnya: "Cimahi", "New York", "Tokyo", dll—lalu cari koordinatnya (latitude & longitude) secara otomatis, kemudian gunakan itu untuk fetch cuaca dari Open-Meteo API.
✅ CARA MELAKUKANNYA
Gunakan API Geocoding seperti:
🌐 Open-Meteo Geocoding API
URL:
Contoh:
Respon JSON akan berisi lat & lon dari nama kota tersebut. Setelah itu, kirim permintaan ke API cuaca utama.
💻 KODE FLUTTER (ZAPP.RUN-COMPATIBLE): Input Kota Bebas
✅ Tambahkan di pubspec.yaml
🔥 Fitur:
-
Input kota bebas seluruh dunia
-
Opsi fallback jika kota tidak ditemukan
-
Respon cepat karena pakai Open-Meteo & Geocoding resmi
Tidak ada komentar:
Posting Komentar