Menu

Generator Cron Expression

Buat, uraikan, dan lihat jadwal cron beserta waktu eksekusi berikutnya.

Oleh Nethanel Bar, Co-founder & CEO

Terakhir diperbarui

Siap benar-benar belajar coding?

Coddy mengajarimu dengan menulis kode sungguhan di browser: pelajaran interaktif, umpan balik instan, dan bantuan AI saat kamu buntu.

Apa itu cron expression?

Cron expression adalah cara ringkas untuk menuliskan jadwal yang berulang. Sintaksnya sama dengan yang dipakai cron di Unix, penjadwal asli Linux, dan sudah menyebar ke hampir semua job runner yang akan kamu temui: Kubernetes CronJob, jadwal GitHub Actions, AWS EventBridge, Cloudflare Workers, Vercel cron, dan sebagian besar platform CI/CD.

Formatnya terlihat menakutkan, padahal sebenarnya hanya lima field yang dipisahkan spasi: menit, jam, tanggal, bulan, dan hari dalam seminggu. Setiap field berisi angka, daftar (1,15), rentang (9-17), langkah (*/5), atau wildcard (*). Alat cron yang bagus mengubah expression menjadi kalimat biasa dan menampilkan waktu jalan berikutnya, supaya kamu bisa memeriksanya sebelum deploy.

Beberapa platform memperluas sintaks dasar 5 field dengan field *detik* di depan (Quartz, Spring, Kubernetes 6 field) atau field *tahun* di belakang. Selalu cek format mana yang diterima penjadwalmu sebelum menempel sebuah expression.

Yang akan kamu pelajari saat membuat jadwal cron

  • Cron expression standar punya 5 field: menit, jam, tanggal, bulan, dan hari dalam seminggu.
  • * berarti "setiap nilai" untuk field itu. Inilah penyebab paling umum jadwal berjalan lebih sering dari yang diharapkan.
  • */N berarti "setiap N satuan": */5 di field menit berarti "setiap 5 menit".
  • Tanggal dan hari dalam seminggu saling memengaruhi: mengisi keduanya mempersempit jadwal, tapi di cron Unix klasik, mengisi salah satunya dengan * sementara yang lain spesifik adalah cara yang lebih aman untuk menulis aturan khusus hari kerja atau khusus bulanan.

Cara menulis cron expression langkah demi langkah

  1. Mulai dari preset

    Pilih preset yang paling dekat dengan yang kamu inginkan: setiap menit, setiap jam, setiap hari pukul 09.00, hari kerja pukul 09.00, atau bulanan (Every minute, Hourly, Daily at 9 AM, Weekdays at 9 AM, Monthly). Expression-nya muncul di editor.

  2. Sesuaikan setiap field

    Edit menit, jam, tanggal, bulan, dan hari dalam seminggu. Pakai * untuk nilai apa pun, daftar dengan koma, rentang (9-17), atau langkah (*/15).

  3. Baca penjelasannya

    Alat ini mengubah expression-mu menjadi sebuah kalimat, misalnya "Pukul 09:00 pada hari kerja" (At 09:00 every weekday). Kalau kalimatnya tidak sesuai dengan yang kamu inginkan, berarti expression-nya salah.

  4. Lihat jadwal jalan berikutnya

    Periksa 5 sampai 10 waktu jalan berikutnya dalam zona waktu lokalmu. Waspadai perpindahan daylight saving time kalau jadwalnya dekat dengan waktu perubahan itu.

  5. Salin ke penjadwalmu

    Masukkan expression ke crontab, workflow GitHub Actions, Kubernetes CronJob, atau penjadwal apa pun yang kamu pakai.

Referensi cepat field cron

Lima field cron expression standar, sesuai urutannya. Referensi: man page crontab(5) POSIX.

PosisiFieldRentangKarakter khusus
1Menit0-59* , - /
2Jam0-23* , - /
3Tanggal1-31* , - / ? (beberapa dialek)
4Bulan1-12 atau JAN sampai DEC* , - /
5Hari dalam seminggu0-6 (Minggu=0) atau SUN sampai SAT* , - /

Contoh cron expression untuk dicoba

Setiap 5 menit

Expression

*/5 * * * *

Artinya

Setiap 5 menit: tepat di awal jam, lalu setiap 5 menit sesudahnya.

Nilai langkah (*/5) adalah cara termudah untuk menulis "setiap N" tanpa menuliskan semua angkanya. Umum dipakai untuk health check dan job polling.

Hari kerja pukul 09.00

Expression

0 9 * * 1-5

Artinya

Pukul 09.00 setiap Senin sampai Jumat.

Rentang hari 1-5 berarti Senin sampai Jumat. Pakai ini untuk pengingat jam kantor dan ringkasan yang hanya dikirim di hari kerja.

Hari pertama setiap bulan tengah malam

Expression

0 0 1 * *

Artinya

Pukul 00.00 pada tanggal 1 setiap bulan.

Tanggal 1 ditambah * di semua field lain menghasilkan job bulanan yang sesungguhnya. Umum dipakai untuk penagihan, laporan, dan tugas rotasi.

Dua kali sejam, jam kerja, hari kerja

Expression

0,30 9-17 * * 1-5

Artinya

Pada menit 0 dan 30 antara pukul 09.00 dan 17.00, Senin sampai Jumat.

Daftar dengan koma (0,30) ditambah rentang (9-17) ditambah hari kerja. Ini jenis jadwal yang kamu pakai untuk refresh BI atau pengosongan antrean yang hanya penting selama jam kerja.

Kesalahan umum saat memakai cron

  • Lupa zona waktu. Kebanyakan daemon cron berjalan di zona waktu *server*, bukan zona waktumu. Atur zona waktu secara eksplisit kalau platformnya mendukung.
  • Mengisi tanggal dan hari dalam seminggu sekaligus. Di cron Unix klasik, jadwal berjalan pada hari yang cocok dengan *salah satunya*, dan ini mengejutkan kebanyakan orang saat pertama kali.
  • Memakai */45 dan berharap jadwal berjalan setiap 45 menit. Nilai langkah dihitung dari 0, jadi */45 berjalan di menit 0 dan 45, bukan dengan interval 45 menit yang sesungguhnya.
  • Tidak melihat jadwal jalan berikutnya sebelum deploy. Cron expression yang hampir benar bisa berjalan 60× lebih sering dari yang dimaksud.
  • Lupa perpindahan daylight saving time. Jadwal 0 2 * * * bisa berjalan dua kali di hari jam dimundurkan, dan tidak berjalan sama sekali saat jam dimajukan.

FAQ Cron Expression

Bagaimana cara menulis cron expression?
Cron expression standar punya lima field yang dipisahkan spasi: menit, jam, tanggal, bulan, dan hari dalam seminggu. Pakai * untuk *setiap nilai*, angka untuk nilai tepat, daftar dengan koma (1,15), rentang (9-17), atau langkah (*/5).
Apa arti */5 * * * *?
Artinya "setiap 5 menit". */5 di field menit berjalan di menit 0 dan setiap 5 menit sesudahnya (0, 5, 10, 15, …, 55), dan * di semua field lain berarti jadwal berjalan setiap jam, setiap hari, setiap bulan, dan setiap hari dalam seminggu.
Cron memakai zona waktu apa?
Secara default, cron memakai zona waktu sistem tempat ia berjalan. Kebanyakan penjadwal cloud membuatmu bisa mengatur zona waktu secara eksplisit (TZ=Europe/Berlin, schedule expression AWS, dan sebagainya). Kalau ragu, simpan jadwal dalam UTC.
Bisakah cron expression berjalan setiap detik?

Cron standar 5 field punya menit sebagai satuan terkecil, jadi resolusi tertingginya adalah setiap menit. Cron Quartz, cron Spring, dan beberapa versi Kubernetes menambahkan field ke-6 untuk *detik* demi jadwal di bawah satu menit.

Apa bedanya 0 0 * * 0 dan 0 0 * * 7?
Keduanya berarti hari Minggu tengah malam. Hari dalam seminggu bernilai 0 sampai 6 (Minggu sampai Sabtu) di sebagian besar implementasi cron, tapi 7 juga diterima sebagai Minggu demi kompatibilitas dengan beberapa dialek.

Pelajari lebih lanjut

Alat developer lainnya

Ilustrasi bahasa pemrograman di Coddy

Belajar coding dengan Coddy

Mulai