Senin, 22 Oktober 2012

Algoritma mencari Tahun Kabisat

Apakah itu Tahun Kabisat ??

Jawabnya adalah sebuah Tahun Syamsiah di mana pada tahun tersebut jumlah hari tidak terdiri dari 365 hari tetapi 366 hari.
Satu tahun syamsiah tidak secara persis terdiri dari 365 hari, tetapi 365 hari 5 jam 48 menit 45,1814 detik. Jika hal ini tidak dihiraukan, maka setiap 4 tahun akan kekurangan hampir 1 hari (tepatnya 23 jam 15 menit 0,7256 detik).
Maka untuk mengkompensasi hal ini, setiap 4 tahun sekali (tahun yang bisa dibagi 4), diberi 1 hari ekstra: 29 Februari. Tetapi karena 5 jam 48 menit 45,1814 detik kurang dari 6 jam, maka tahun-tahun yang bisa dibagi 100 (seperti tahun 1900), bukan tahun kabisat, kecuali bisa dibagi dengan 400 (seperti tahun 2000).

Nah clu-nya sudah kelihatan kan, berarti sudah bisa buat programnya toh...... kalo nggak nih source code, pahami !!




int main()
{
     int tahun;
     printf ("Masukkan Tahun :"); 
     scanf ("%d", &tahun);                                    
// input tahun
     printf ("\n");

     if (tahun %100==0)                                                 
// Menyeleksi apakah bisa dibagi 100
     {
        if (tahun%400==0)
                             // Menyeleksi lagi apakah bisa dibagi 400 (Kabisat)
        printf ("%d termasuk Tahun Kabisat",tahun);
        else                                                                       
// jika tidak  bisa dibagi 400 masuk else
        printf ("%d bukan termasuk Tahun Kabisat",tahun);
     }
     else
                                                         //  else yang ini apabila tahun tidak bisa 100
     {
         if (tahun %4 == 0)                            
// Menyeleksi lagi apakah bisa dibagi 4 (Kabisat)
         printf ("%d termasuk Tahun Kabisat",tahun);
         else                                                                      
// jika tidak  bisa dibagi 4 masuk else
         printf ("%d bukan termasuk Tahun Kabisat",tahun);
     }
     return 0;

}

Tidak ada komentar: