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.
Logika Program
#file bisa didownload disini
Logika Program
#file bisa didownload disini
Nama : GILANG AL KHANSA
Kelas : 2IA12
NPM : 53411056
Kelas : 2IA12
NPM : 53411056
Teman Kelompok :
- RATIH NURDIYANI SARI
- RIRI RIANDITA
Tidak ada komentar:
Posting Komentar