Pemrograman

Bahasa

Framework

Peralatan

Info

Menghitung Tahun Kabisat dengan Python

– 14 September 2016
Menurut artikel di wikipedia Tahun kabisat (bahasa Inggris: Leap year) adalah tahun yang mengalami penambahan satu hari dengan tujuan untuk menyesuaikan penanggalan dengan tahun astronomi. Dalam satu tahun 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 Tahun Kabisat

  1. Jika angka tahun itu habis dibagi 400, maka tahun itu sudah pasti tahun kabisat.
  2. Jika angka tahun itu tidak habis dibagi 400 tetapi habis dibagi 100, maka tahun itu sudah pasti bukan merupakan tahun kabisat.
  3. Jika angka tahun itu tidak habis dibagi 400, tidak habis dibagi 100 akan tetapi habis dibagi 4, maka tahun itu merupakan tahun kabisat.
  4. Jika angka tahun tidak habis dibagi 400, tidak habis dibagi 100, dan tidak habis dibagi 4, maka tahun tersebut bukan merupakan tahun kabisat.
Bentuk Pseudocodenya:
if year modulo 4 is 0
then
    if year modulo 100 is 0
    then
       if year modulo 400 is 0
       then
           is_leap_year
       else
           not_leap_year
    else is_leap_year
else not_leap_year

Kode Tahun Kabisat dalam Python

Mari kita coba menuliskan kode tahun kabisat berdasarkan algoritma di atas. Sepertinya tidak sulit, karena hanya menggunakan struktur if/else dan operator modulo. Modulo artinya sisa bagi, misalnya 5 modulo 2 akan menghasilkan 1 (karena sisa 1). Kalau 5 habis dibagi maka hasil modulonya adalah 0 (nol). Operator modulo di python menggunakan simbol persen (%).
tahun = input("Input tahun: ")

if (tahun % 4) == 0:
    if (tahun % 100) == 0:
        if (tahun % 400) == 0:
            print "Tahun Kabisat"
        else:
            print "Bukan Tahun Kabisat"
    else:
        print "Tahun Kabisat"
else:
    print "Bukan Tahun Kabisat"
Pada kode di atas, kita melakukan pengecekan pertama dengan modulo 4. Apakah tahunnya habis dibagi 4? kalau iya cek lagi. Apakah tahunya habis dibagi 100? Kalau  ya berarti tahun kabisat. Tapi kalau tidak, cek lagi. Apakah tahunya habis dibagi 400? Kalau ya, berarti tahun kabisat.

Percobaan Program


Sumber referensi: https://id.wikipedia.org/wiki/Tahun_kabisat

No comments :

Post a Comment