Aplikasi web AI yang memberikan informasi cuaca terkini untuk wilayah Jakarta, Bogor, Bekasi, Depok, dan Tangerang menggunakan OpenAI API dan peta interaktif dengan Leaflet.js.
- 🗺️ Peta Cuaca Interaktif: Visualisasi cuaca real-time dengan Leaflet.js
- 🤖 AI Chatbot: Asisten cuaca cerdas menggunakan OpenAI GPT (dengan mode demo)
- 🌤️ Klasifikasi Cuaca: 5 jenis cuaca dengan warna yang berbeda
- ⏰ Time Slider: Tampilkan prediksi cuaca per 10 menit (6 slot waktu dalam 1 jam)
- 📍 Wilayah Lengkap: Jakarta, Bogor, Bekasi, Depok, Tangerang
- 📱 Responsive Design: Tampilan optimal di desktop dan mobile
- ⚡ Real-time Updates: Data cuaca diperbarui setiap 30 detik
- 🎨 Warna Klasifikasi: Merah (Hujan Lebat), Kuning (Hujan Sedang), Hijau (Hujan Ringan), Abu-abu (Berawan), Emas (Cerah)
- Frontend: HTML5, CSS3, JavaScript (ES6+)
- Backend: Node.js, Express.js
- AI: OpenAI GPT-3.5-turbo
- Peta: Leaflet.js dengan OpenStreetMap
- Data: GeoJSON untuk wilayah Jakarta dan sekitarnya
git clone https://github.com/habibb97/weatherbot
cd weatherbotnpm install# Copy file environment example
cp env.example .env
# Edit file .env dan tambahkan API key OpenAI Anda
OPENAI_API_KEY=your_openai_api_key_here
PORT=3000# Development mode
npm run dev
# Production mode
npm startBuka browser dan kunjungi: http://localhost:3000
- Kunjungi OpenAI Platform
- Buat akun atau login
- Pergi ke API Keys
- Klik "Create new secret key"
- Copy API key dan paste ke file
.env
ai-weather-agent/
├── data/
│ └── jakarta-region.geojson # Data GeoJSON wilayah
├── index.html # Halaman utama
├── styles.css # Styling CSS
├── script.js # JavaScript frontend
├── server.js # Backend Express server
├── package.json # Dependencies Node.js
├── env.example # Template environment variables
└── README.md # Dokumentasi
Mengirim pesan ke AI chatbot
{
"message": "Bagaimana cuaca di Jakarta hari ini?",
"weatherData": {...}
}Mendapatkan data cuaca GeoJSON
Health check endpoint
Aplikasi menggunakan data dummy GeoJSON yang mencakup:
- Jakarta: Pusat, Utara, Selatan, Timur, Barat
- Bogor: Kota Bogor
- Bekasi: Kota Bekasi
- Depok: Kota Depok
- Tangerang: Tangerang dan Tangerang Selatan
Setiap wilayah memiliki data:
- Suhu (°C)
- Kelembaban (%)
- Kondisi cuaca
- Kecepatan angin (km/h)
- Tekanan udara (hPa)
| Kondisi | Warna | Deskripsi |
|---|---|---|
| Cerah | 🟡 Emas | Cuaca cerah dengan sinar matahari penuh |
| Berawan | ⚫ Abu-abu | Cuaca berawan dengan awan menutupi sebagian langit |
| Hujan Ringan | 🟢 Hijau | Hujan ringan dengan intensitas rendah |
| Hujan Sedang | 🟡 Kuning | Hujan sedang dengan intensitas sedang |
| Hujan Lebat | 🔴 Merah | Hujan lebat dengan intensitas tinggi |
Aplikasi menampilkan prediksi cuaca untuk 6 slot waktu dalam 1 jam ke depan:
- +0 menit: Waktu saat ini
- +10 menit: Prediksi 10 menit ke depan
- +20 menit: Prediksi 20 menit ke depan
- +30 menit: Prediksi 30 menit ke depan
- +40 menit: Prediksi 40 menit ke depan
- +50 menit: Prediksi 50 menit ke depan
Gunakan slider di bagian atas peta untuk melihat perubahan cuaca dari waktu ke waktu.
- Lihat Peta Cuaca: Klik pada area di peta untuk melihat detail cuaca
- Time Slider: Gunakan slider untuk melihat prediksi cuaca per 10 menit
- Chat dengan AI: Tanyakan tentang cuaca di chatbox
- Quick Questions: Gunakan tombol pertanyaan cepat
- Info Panel: Lihat detail cuaca di panel sebelah kanan
- "Bagaimana cuaca di Jakarta hari ini?"
- "Apakah akan hujan di Bogor?"
- "Berapa suhu di Bekasi sekarang?"
- "Prediksi cuaca besok untuk Depok"
- "Mana yang lebih panas, Jakarta atau Tangerang?"
- Pastikan file
.envsudah dibuat - Periksa nama variabel
OPENAI_API_KEY - Pastikan API key valid dan aktif
- Periksa file
data/jakarta-region.geojsonada - Pastikan server berjalan dengan benar
- Periksa koneksi internet
- Pastikan OpenAI API key valid
- Lihat console browser untuk error
Catatan: Aplikasi ini menggunakan data dummy untuk demonstrasi. Untuk penggunaan produksi, integrasikan dengan API cuaca real-time seperti OpenWeatherMap atau BMKG.