Pandu van Java

Belajar, Berbakti, dan Berjuang

Tahun Kabisat

| Comments

Tahun kabisat adalah sebuah tahun syamsiah dimana pada tahun tersebut jumlah harinya adalah 366 hari, bukan 365.

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).

Algoritma

Terdapat algoritma mudah untuk menentukan apakah suatu tahun termasuk tahun kabisat atau bukan, yaitu sebagai berikut:

  • Jika angka tahun itu habis dibagi 400, maka tahun itu sudah pasti tahun kabisat.
  • Jika angka tahun itu tidak habis dibagi 400 tetapi habis dibagi 100, maka tahun itu sudah pasti bukan merupakan tahun kabisat.
  • Jika angka tahun itu tidak habis dibagi 400, tidak habis dibagi 100 akan tetapi habis dibagi 4, maka tahun itu merupakan tahun kabisat.
  • Jika angka tahun tidak habis dibagi 400, tidak habis dibagi 100, dan tidak habis dibagi 4, maka tahun tersebut bukan merupakan tahun kabisat.

Berdasarkan algoritma di atas, kita dapat membuat sebuah fungsi pada aplikasi MS Excel sebagai berikut.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Public Function CEKKABISAT(myRange As Range) As String
    Dim tahun As Variant
    Dim kabisat As Boolean
    
    tahun = myRange.Value
    If tahun Mod 4 = 0 Then
        If tahun Mod 100 = 0 Then
            If tahun Mod 400 = 0 Then
                kabisat = True
            Else
                kabisat = False
            End If
        Else
            kabisat = True
        End If
    Else
        kabisat = False
    End If
    
    If kabisat Then
        CEKKABISAT = "Kabisat"
    Else
        CEKKABISAT = "Bukan Kabisat"
    End If
End Function

Salin kode di atas ke dalam modul MS Excel. Selanjutnya fungsi di atas dapat digunakan dengan cara sebagai berikut. Dengan asumsi angka tahun berada pada range “A1”, ketikkan formula berikut pada range “B1”.

=CEKKABISAT(A1)

Selain membuat fungsi sendiri, kita juga bisa menggunakan fungsi bawaan MS Excel sebagai berikut. Dengan asumsi angka tahun berada pada range “A1”, ketikkan formula berikut pada range “B1”.

=IF(MOD(A1,4)=0,IF(MOD(A1,100)=0,IF(MOD(A1,400)=0,"Kabisat","Bukan Kabisat"),"Kabisat"),"Bukan Kabisat")

Sumber: id.wikipedia.org

Komentar