PBO : Validasi Tanggal pada Tahun Kabisat

Nama : Ratih Nurdiyani Sari
NPM  : 55411894
Kelas  : 2IA12
Nama Kelompok 2:
Ratih

PBO : Validasi Tanggal pada Tahun Kabisat

                Program yang dibuat oleh kelompok yang kemarin masih lah prosedural oleh sebab itu kami telah mengubah banyak statement-statement kita yang terdahulu menjadi lebih OOP lagi.
Listring Program

import java.io.*;//import perintah inputan
public class validasitanggal //deklarasi class dengam nama validasitgl
{             
  public static void main (String[] args) throws Exception //method 
  {
    DataInputStream masuk = new DataInputStream(System.in); //deklarasi variabel inputan
    valid Obj = new valid();//deklarasi Objek dengan nama Obj
    boolean lagi = true;//variabel lagi untuk melakukan perulangan
               
    while (lagi=true){
    System.out.print("\nMasukan Tanggalan (dd-mm-yyyy) : "); //menampilkan pertanyaan inputan
    String inpt = masuk.readLine(); //memasukan inputan ke dalam variabel inpt
    String chk = inpt.substring(2,3); //mengambil karakter pada inpt
    String chk1 = inpt.substring(5,6); //mengambil karakter pada inpt
    //Mengechek apakah format yang dimasukan sudah seperti yang diinginkan
    if ((!chk.equals("-")) || (!chk1.equals("-"))){
      System.out.println();
      System.out.println("\nInputan Tanggalan yang dimasukan salah");
      lagi=true;
    }
    else {
      Obj.tgl = inpt.substring(0,2); //(inputan tanggal) mengambil karakter dan dimasukan ke Atribut tgl
      Obj.bln = inpt.substring(3,5); //(inputan bulan) mengambil karakter dan dimasukan ke Atribut bln
      Obj.thn = inpt.substring(6,10); //(inputan tahun) mengambil karakter dan dimasukan ke Atribut thn
                                             
      Obj.setTgl(Obj.tgl,Obj.bln,Obj.thn); //memanggil method setTgl
                                                               
      Obj.chekTgl(); //memanggil method chekTgl
    }
                                                               
    System.out.print("\n\nMau mengchek lagi (y/t) : "); //menampilkan pertanyaan untuk mengulang
    String lag = masuk.readLine(); //memasukan inputan kedalam variabel lag
    //mengkontrol apakah ingin mengulan atau tidak
    if ((lag.equals("y")) || (lag.equals("Y"))) lagi=true;
    else break;
    }
  }
}                                                                        
class valid 
{
  String tgl,bln,thn; //deklarasi variabel string tgl,bln,thn sebagai Atribut
  int Tg,Bl,Th; //deklarasi variabel integer Tg,Bl,TH
  //deklarasi array dari nama-nama bulan
  String[] sbulan = {"Januari","Pebruari","Maret","April","Mei","Juni","Juli","Agustus","September","Oktober","Nopember","Desember"};
               
  public void setTgl (String Tanggal, String Bulan, String Tahun) //deklarasi method setTgl dengan parameter   Tanggal, Bulan, dan Tahun
  {
    Tg = Integer.parseInt(Tanggal); //konfersi variabel string Tanggal menjadi variabel integer Tg (Tanggal)
    Bl = Integer.parseInt(Bulan); //konfersi variabel string Bulan menjadi variabel integer Bl (Bulan)
    Th = Integer.parseInt(Tahun); //konfersi variabel string Tahun menjadi variabel integer Th (Tahun)
  }
               
  public void chekTgl() //deklarasi method chekTgl
  {
    //kontrol apakah tahun yang dimasukan tahun kabisat atau tahun biasa
/*
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.
*/
    if (Th%4==0)
    {
      if (Th%100==0)
      {
        if (Th%400==0)
        {
          bulanKab();
        }
        else {
          bulanBi();
        }
      }
      else {
        bulanKab();
      }
    }
    else {
      bulanBi();
    }
  }
               
  public void bulanKab() //deklarasi method bulanKab
  {             
   int[] jmlhari = {31,29,31,30,31,30,31,30,31,30,31,31}; //deklarasi array dari jumlah hari dari setiap bulan dalan tahun kabisat
    if  (Bl<=12) //kontrol apakah bulan yang dimasukan benar
    {
      int Bln = jmlhari[Bl-1]; //mengambil jumlah hari satu bulan sesuai bulan yang dimasukan
      if ((Tg<=Bln) || (Tg<=0)) //kontrol apakah tanggal yang dimasukan benar
      {
        
System.out.println("\n\nTanggalan yang anda input : "+Tg+" "+sbulan[Bl-1]+" "+Th); //menampilkan inputan tanggal yang dimasukan
System.out.println("Tanggalan yang anda input valid !!");
        System.out.println("Tanggalan yang anda input masuk pada tahun kabisat !!");
      }
      else {
        System.out.println("\nTanggal yang anda input tidak valid !!");
      }
    }
    else {
      System.out.println("\nBulan yang anda input tidak valid !!");
    }
  }
  public void bulanBi() //deklarasi method bulanBi
  {
   int[] jmlhari = {31,28,31,30,31,30,31,30,31,30,31,31}; //deklarasi array dari jumlah hari dari setiap bulan dalan tahun kabisat
    if  (Bl<=12) //kontrol apakah bulan yang dimasukan benar
    {
      int Bln = jmlhari[Bl-1]; //mengambil jumlah hari satu bulan sesuai bulan yang dimasukan
      if ((Tg<=Bln) || (Tg<=0)) //kontrol apakah tanggal yang dimasukan benar
      {
System.out.println("\n\nTanggalan yang anda input : "+Tg+" "+sbulan[Bl-1]+" "+Th); //menampilkan inputan tanggal yang dimasukan   
System.out.println("\nTanggalan yang anda input valid !!");   
      }
      else {
        System.out.println("\nTanggal yang anda input tidak valid !!");
      }
    }
    else {
      System.out.println("\nBulan yang anda input tidak valid !!");
    }
  }
}


Logika Program

                Pertama import library input, lalu deklarasi class dan method utama. Selanjutnya deklarasi variabel inputan dan variabel objek yang akan digunakan. Inputan yang dimasukan pertama akan diperiksa apakah format inputan yang dimasukan sudah benar seperti yang diinginkan, jika sudah benar lalu mengambil karakter yang dibutuhkan untuk menchek tanggalan tersebut, contoh: dua karater didpan yaitu tanggal, dua karater lagi dari urut karakter tiga sampai lima yaitu bulan, dan 3 empat karater dari urut karakter enam sampai sepuluh yaitu tahun. Lalu dimasukan kedalam Atribut-atribut objek. Lalu memanggil method setTgl untuk mengkonfersi dari atribut-atribut yang masih bertipe data String menjadi atribut-atribut bertipe data Integer untuk melakukan logika program. Lalu memanggil method chkTgl, di dalam sinilah logika untuk menentukan kevalid tanggalan yang dimasukan contoh: apabila tanggalan yang dimasukan 29-02-2013, dan pada tahun 2013 bukanlan tahun kabisat maka akan tampil pesan error.


*file bisa di unduh Di sini ^^*





Output Program



  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • Twitter
  • RSS

0 Response to "PBO : Validasi Tanggal pada Tahun Kabisat "