3 minute read

Ini bukan cerita horor atau hal lain yang tidak scientific yah. Jika kita perhatikan dengan seksama, dalam setiap tahun ada minimal satu hari Jumat bertanggal 13. Kalau gak percaya, lihat saja kalendar. Pada tahun 2020 ini, Jumat tanggal 13 muncul 2 kali pada Maret dan November nanti.

Bahkan dulu waktu kuliah di Matematika, ada satu soal ujian Matematika Diskrit dengan soal seperti ini:

Buktikan bahwa ada minimal satu Jumat bertanggal 13 setiap tahunnya!

Pembuktian secara matematika mungkin agak sulit dipahami yah. Intinya saat kita bisa membuat kondisi secara iteratif, Jumat tanggal 13 akan terjadi saat awal bulan (tanggal 1) jatuh pada hari Minggu. Menariknya, selalu ada tanggal 1 yang jatuh di hari Minggu.

Sekarang saya akan memberikan bukti dengan cara brute force, yakni dengan menghitung sampai 30 tahun ke depan, ada berapa banyak Jumat tanggal 13 muncul setiap tahunnya.

Untuk melakukannya saya akan membuat algoritma sehingga mesin yang akan menghitungnya secara otomatis.

Pertama-tama, saya akan membuat database tanggal dari 1 Januari 2020 hingga 31 Desember 2050.

tanggal = seq(as.Date("2020-01-01"),as.Date("2050-12-31"),by = 1)
data = data.frame(
  tanggal = tanggal,
  hari = lubridate::wday(tanggal, label = T),
  angka = lubridate::day(tanggal),
  bulan = lubridate::month(tanggal,label = T),
  tahun = lubridate::year(tanggal)
)

Kemudian saya akan hitung kemunculan Jumat tanggal 13 setiap tahunnya:

hasil = 
  data %>% 
  filter(hari == "Fri" & angka == 13) %>% 
  group_by(tahun) %>% 
  summarise(freq = n(),
            terjadi_saat = stringr::str_c(bulan,collapse = ",")) %>% 
  ungroup()
10 Data Teratas
tahun freq terjadi\_saat
2020 2 Mar,Nov
2021 1 Aug
2022 1 May
2023 2 Jan,Oct
2024 2 Sep,Dec
2025 1 Jun
2026 3 Feb,Mar,Nov
2027 1 Aug
2028 1 Oct
2029 2 Apr,Jul

Kalau saya buat visualisasinya, maka:

Gimana? Sudah percaya akan selalu ada Jumat tanggal 13 setiap tahunnya?