Tagged Under: , ,

Menghitung Hari & Tahun Kabisat dengan Java

Share
Assalamu'alaikum ..





Jumlah hari sebulan memang tidak pernah sama dalam setahun, jumlahnya berbeda terutama dibulan februari. Yang membedakan jumlah hari di bulan februari adalah berdasarkan tahun kabisat. Tahun Kabisat adalah sebuah tahun 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). [Sumur]

Pusing ya perhitungannya hehehe, berikut saya jelaskan algoritma perhitungan apakah tahun tersebut merupakan tahun kabisat atau bukan ..

  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.
Nah, dari algoritma diatas kita dapat membuat programnya, kali ini saya akan mempraktekannya dengan Java.

Berikut Scriptnya :
/**
 *
 * @author Rachmatiah - http://muslimahintech.blogspot.com/
 *
 * MENGHITUNG TAHUN KABISAT
 *  Beberapa kondisi tahun kabisat :
 *   1. membagi tahun dengan 400, jika habis dibagi dengan 400, maka tahun kabisat
 *   2. habis dibagi dengan 100, jika habis dibagi dengan 100, maka tahun kabisat
 *   3. habis dibagi 4, jika habis dibagi dengan 4, maka tahun kabisat   
 *
 */

import java.util.Scanner; //fungsi meminta inputan user
public class tyamenghitungHari {
   public static void main(String[] args){
int bulan,tahun;
System.out.print("INPUT BULAN 1 - 12 : ");
Scanner input = new Scanner(System.in);
bulan = input.nextInt();
System.out.print("INPUT TAHUN : ");
tahun = input.nextInt();

switch (bulan){
        case 1: //Januari
            case 3: //Maret
                case 5: //Mei
                    case 7: //Juli
                        case 8: //Agustus
                            case 10: //Oktober
                                case 12: //Desember
                                   System.out.print("JUMLAH HARI PADA BULAN "+ bulan +""
                                   + " DAN TAHUN "+tahun+ " ADALAH 31 HARI");
        break;
       
        case 4: //April
            case 6: //Juni
                case 9: //September
                    case 11: //November
                        System.out.print("JUMLAH HARI PADA BULAN "+ bulan +""
                        + " DAN TAHUN "+tahun+ " ADALAH 30 HARI");
        break;

case 2: //Januari
  
if ((tahun % 400 == 0) | (tahun % 400 != 0 & tahun % 100 != 0 & tahun % 4 ==0)) //Apakah tahun dimodulus 400==0 atau dimodulus 400!=0 dan dimodulus 100 !=0 dan dimodulus 4==0?
        System.out.print("JUMLAH HARI PADA BULAN "+ bulan +""
        + " DAN TAHUN "+tahun+ " ADALAH 29 HARI"); // tahun kabisat 29 hari
else
        System.out.print("JUMLAH HARI PADA BULAN "+ bulan +""
        + " DAN TAHUN "+tahun+ " ADALAH 28 HARI");// bukan tahun kabisat 28 hari
break;
default:
    System.out.println("BULAN YANG ANDA MASUKAN SALAH"); //Jika bulan yang dimasukan > 12
break;
}
   }
}
Tampilan dari script diatas adalah :
INPUT BULAN 1- 12 : silahkan masukan bulan [enter]
INPUT TAHUN : silahkan masukan bulan [enter]
HASIL, JUMLAH HARI PADA BULAN inputan kalian


Selamat mencoba, dan berikut saya sediakan link downloadnya. monggo disedot ...



0 comments:

Post a Comment