Sebagai pengguna Linux dan seseorang yang sering bekerja di terminal, saya ingin bisa melihat jadwal shalat langsung dari CLI tanpa membuka browser atau aplikasi GUI.
Dari kebutuhan sederhana itu, saya membuat sebuah tool bernama jadwal-shalat — sebuah CLI tool profesional berbasis Python yang dapat menampilkan jadwal shalat secara otomatis berdasarkan lokasi pengguna.
Sekarang tool ini sudah tersedia secara resmi di Arch Linux AUR.
Latar Belakang
Banyak aplikasi jadwal shalat tersedia, tapi sebagian besar berbasis:
- Mobile apps
- Website
- Aplikasi GUI
Masalahnya, bagi pengguna Linux yang sering bekerja di:
- terminal
- server
- SSH session
- environment minimal
solusi tersebut tidak praktis.
Saya ingin sesuatu yang:
- ringan
- cepat
- otomatis
- dan native di terminal
Maka saya membuat CLI tool ini.
Apa Itu jadwal-shalat?
jadwal-shalat adalah CLI tool Python yang dapat:
- mendeteksi lokasi otomatis dari IP publik
- menentukan timezone secara akurat
- mengambil jadwal shalat dari API Aladhan (method Kemenag Indonesia)
- menampilkan jadwal secara rapi di terminal
Tool ini dirancang khusus untuk pengguna Indonesia.
Fitur Utama
Beberapa fitur yang tersedia saat ini:
- Deteksi IP publik otomatis
- Deteksi lokasi otomatis (kota, negara, koordinat, timezone)
- Fallback API lokasi jika layanan utama gagal
- Menggunakan API Aladhan (method=20/Kemenag Indonesia)
- Jadwal shalat lengkap
- Menampilkan waktu shalat berikutnya + countdown
- Output terminal rapi dengan alignment yang baik
- Error handling lengkap
- Timeout protection untuk API
- Support timezone akurat
- Siap packaging AUR dengan auto update
Contoh Output
Contoh ketika dijalankan:
Output difokuskan agar:
- mudah dibaca
- minimalis
- profesional
- cocok untuk penggunaan harian di terminal
Instalasi via Arch Linux AUR
Tool ini sekarang tersedia di AUR, sehingga instalasi sangat mudah:
yay -S jadwal-shalat
Atau manual:
git clone https://aur.archlinux.org/jadwal-shalat.git
cd jadwal-shalat
makepkg -si
Sebagai maintainer AUR, saya juga mengatur auto-update menggunakan GitHub Actions.
Instalasi Manual
Jika tidak menggunakan Arch Linux:
pip install requests
Clone repo:
git clone https://github.com/Bangkah/jadwal-shalat.git
cd jadwal-shalat
chmod +x jadwal-shalat.py
./jadwal-shalat.py
Atau:
python jadwal-shalat.py
Cara Kerja Tool Ini
Secara sederhana:
- Mengambil IP publik user
- Mengubah IP menjadi lokasi geografis
- Menentukan timezone
- Mengambil jadwal shalat dari API Aladhan
- Menampilkan jadwal dan countdown
Semua proses dilakukan secara otomatis.
Fokus pada Reliability
Beberapa hal yang saya implementasikan untuk memastikan tool stabil:
- fallback API jika layanan lokasi gagal
- timeout protection
- error handling jaringan
- parsing timezone akurat
- output formatting konsisten
Ini penting agar tool tetap berfungsi bahkan dalam kondisi jaringan tidak stabil.
Integrasi dengan Arch Linux Packaging
Salah satu milestone terbesar project ini adalah berhasil dipublish ke Arch Linux AUR.
Ini berarti:
- user bisa install dengan yay
- update terdistribusi secara otomatis
- mengikuti standar packaging Linux
- tool menjadi lebih profesional
Saya juga mengintegrasikan GitHub Actions untuk membantu workflow update.
Roadmap ke Depan
Beberapa fitur yang direncanakan:
- input manual kota
- input manual koordinat
- output JSON
- notifikasi waktu shalat
- packaging PyPI
Tujuannya adalah membuat tool ini semakin fleksibel.
Kenapa Saya Membuat Project Ini?
Selain kebutuhan pribadi, project ini juga menjadi sarana belajar tentang:
- CLI development dengan Python
- API integration
- timezone handling
- Linux packaging (PKGBUILD)
- AUR maintenance
- CI/CD dengan GitHub Actions
Project kecil seperti ini sangat membantu meningkatkan skill sebagai developer.
Open Source dan Kontribusi
Project ini open source dan tersedia di GitHub:
https://github.com/Bangkah/jadwal-shalat
Kontribusi sangat diterima.
Penutup
Linux memiliki ekosistem CLI yang sangat kuat, dan saya percaya tool kecil seperti ini bisa meningkatkan produktivitas pengguna terminal.
Jika kamu pengguna Arch Linux atau Linux secara umum, kamu bisa mencoba tool ini dan memberikan feedback.

Top comments (0)