Selasa, 25 Oktober 2011

Aplikasi Teori Bilangan, Aritmatika Modulo - Mencari Hari dari Suatu Tanggal Tertentu


Aplikasi Teori Bilangan, Aritmatika Modulo - Mencari Hari dari Suatu Tanggal Tertentu

kata kunci: mencari hari, mencari hari dari tanggal, aplikasi modulo, aplikasi matematika, terapan modulo, terapan matematika, teori bilangan,

Terkadang seseorang lupa dia dilahirkan pada hari apa meskipun ingat tanggal lahirnya. Atau mungkin bila anda ingin mengetahui hari dari suatu kejadian anda bisa memakai cara sebagai berikut:
Misalkan anda lahir pada tanggal DD-MM-YYYY

  • Bagi 2 digit terakhir dari tahun dengan 4 dan hilangkan angka di belakang koma
  • Tambahkan tanggal
  • Tambahkan nilai bulan seperti pada tabel berikut
  •  Jan
     Feb
     Mar
     Apr
     May
     Jun
     Jul
     Aug
     Sep
     Oct
     Nov
     Dec
    1
    4
    4
    0
    2
    5
    0
    3
    6
    1
    4
    6
  • Jika bulannya adalah Januari atau Februari pada tahun kabisat, maka dikurangi satu. Jika tidak, lanjut ke langkah berikutnya
  • Tambahkan
  • 4, jika pada abad 18 (1700-1799)
    2, jika pada abad 19 (1800-1899)
    0, jika pada abad 20 (1900-1999)
    6, jika pada abad 21 (2000-2099)
    jika tidak pada abad diatas, tambahkan tahunnya dengan 400 terus hingga masuk abad di atas
  • Tambahkan 2 digit terakhir dari tahun
  • Bagi dengan 7
  • Sisa baginya adalah tanggalnya
  • 0= Sabtu
    1= Minggu
    2= Senin
    3= Selasa
    4= Rabu
    5= Kamis
    6= Jumat
  • Selesai!

Contoh: 17 Agustus 1945 (17-08-1945)
1. 45/4=11,25 ~~ 11
2. 11+17=28
3. 28+3=31
4. 31+0=31
5. 31+45=76
6. 76:7 sisa 6
7. 6=Jumat
Jadi negara kita merdeka pada hari Jumat.

Algoritma
Input: D=tanggal, M=bulan, Y=tahun (disarankan menggunakan type data integer)
  • a1=ceiling((Y mod 100)/4-1); //hilangkan fungsi ceiling bila menggunakan data type integer
  • a2=a1+D;
  • if M=4 or M=7 then a3=a2 else if M=1 or M=10 then a3=a2+1
    else if M=5 then a3=a2+2
    else if M=8 then a3=a2+3
    else if M=2 or M=3 or M=11 then a3=a2+4
    else if M=6 then a3=a2+5
    else if M=9 or M=12 then a3=a2+6
  • if M=1 or M=2 of tahun kabisat, then a4=a3-1
  • hitung (Y-(Y mod 100)) mod 4
    jika hasilnya 0 maka a5=a4+6
    jika hasilnya 1 maka a5=a4+4
    jika hasilnya 2 maka a5=a4+2
    jika hasilnya 3 maka a5=a4+0
  • a6=a5+(Y-(Y mod 100))
  • a7=a6 mod 7
  • hasilnya
    0= Sabtu
    1= Minggu
    2= Senin
    3= Selasa
    4= Rabu
    5= Kamis
    6= Jumat
  • Selesai

Download Programnya (dalam bahasa C++)

Sumber: http://www.usna.edu/Users/math/wdj/book/node35.html

0 komen:

Poskan Komentar

Apabila anda temukan segala bentuk kesalahan atau kekurangan di dalam blog ini silahkan beritahu saya dan ikut mengembangkan blog ini. Bisa kirim pesan via email di zamlahani@yahoo.com atau lewat komentar di dalam postingan blog. Terima kasih. ^_^

Kirimi Post via Email