DEV Community

Muhammad Dhiyaul Atha
Muhammad Dhiyaul Atha

Posted on

Saya Membuat CLI Tool Jadwal Shalat dan Merilisnya ke Arch Linux AUR

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
Enter fullscreen mode Exit fullscreen mode

Atau manual:

git clone https://aur.archlinux.org/jadwal-shalat.git
cd jadwal-shalat
makepkg -si
Enter fullscreen mode Exit fullscreen mode

Sebagai maintainer AUR, saya juga mengatur auto-update menggunakan GitHub Actions.


Instalasi Manual

Jika tidak menggunakan Arch Linux:

pip install requests
Enter fullscreen mode Exit fullscreen mode

Clone repo:

git clone https://github.com/Bangkah/jadwal-shalat.git
cd jadwal-shalat
chmod +x jadwal-shalat.py
./jadwal-shalat.py
Enter fullscreen mode Exit fullscreen mode

Atau:

python jadwal-shalat.py
Enter fullscreen mode Exit fullscreen mode

Cara Kerja Tool Ini

Secara sederhana:

  1. Mengambil IP publik user
  2. Mengubah IP menjadi lokasi geografis
  3. Menentukan timezone
  4. Mengambil jadwal shalat dari API Aladhan
  5. 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)