Nama : Riri Riandita
NPM : 56411261
Kelas : 2IA12
Nama Kelompok : - Andi Misbahul Pratiwi andimisbah.blogspot.com
- Gilang Al
Khansa gakhansa.blospot.com
- Pebru
Trifena Deslin pebarch.blogspot.com
- Ratih
Nurdiyani Sari arraratih.blogspot.com
- Riri
Riandita
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.
Listing 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
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.
Output Program