Program yang dibuat oleh kelompok yang kemarin masih 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
Output Program
Nama : Pebru Trifena Deslin
Kelas : 2IA12
NPM :55411520
Kelas : 2IA12
NPM :55411520
Teman Kelompok :
- RATIH NURDIYANI SARI
- RIRI RIANDITA