PROGRAM VALIDASI TANGGAL
Source Code pada Tanggal.java
import
java.util.*; //memangil package java.util.* untuk Date
import
java.text.*; //memangil package java.text.* untuk SimpleDateFormat
import
java.util.Scanner; //memangil package java.util.Scanner untuk menginput
public
class Tanggal {
public static void main(String[] agrs){
String
inputTanggal,stringTgl,stringBln,stringThn,ulang;
int intThn,intBln;
String[]
blnNama={"Januari","Februari","Maret","April","Mei","Juni","Juli","Agustus","September","Oktober","November","Desember"};
Cek ck=new Cek(); //mendeklarasikan
cara pemanggilan class Cek dengan keyword ck
Scanner input=new Scanner(System.in);
do{
System.out.print("\n Masukkan
tanggal (dd-mm-yyyy) ");
inputTanggal=input.next(); //menginput variabel inputTanggal
if (ck.TglValid(inputTanggal)==true) {
//jika tanggal yang di input benar dan valid
//memecah inputan menjadi 3 bagian
yaitu tanggal(tgl), bulan(bln), dan tahun(thn)
stringTgl=inputTanggal.substring(0,2); //mengambil digit ke 1-2 dari
inputTanggal dan dimasukan ke stringTgl
stringBln=inputTanggal.substring(3,5); //mengambil digit ke 4-5 dari
inputTanggal dan dimasukan ke stringBln
stringThn=inputTanggal.substring(6); //mengambil digit ke 6-terakhir
dari inputTanggal dan dimasukan ke stringThn
intBln =
(Integer.parseInt(stringBln))-1; //mengubah string menjadi integer dan
menentukan index array untuk bulan
System.out.println(String.format("\n\n Tanggal yang anda input
adalah = %s %s %s ",stringTgl,blnNama[intBln],stringThn));
ck.kabisat(stringThn); //memangil
method kabisat yang berda di class Cek untuk mengecek apakat tahur yang di
input adalah tahun kabisat
}
else { //jika tanggal yang di input
salah
System.out.println("\n\n WARNING!
Tanggal yang anda input salah");
}
System.out.print("\n\n Apakah mau
mengulang lagi y/t? ");
ulang=input.next();
} while (
ulang.equals("y") ); //perintah mengecek perulangan dan akan di ulang
jika inputan ulang adalah y
System.out.println("\n\n
=============================================");
System.out.println(" Terima Kasih Telah Menggunakan Program
Kami");
System.out.println("
=============================================");
System.exit(0);
}
}
class Cek{
//mengecek validasi tanggal yang di input
public static boolean TglValid(String tgl){
String pola="dd-MM-yyyy";
try {
SimpleDateFormat format=new
SimpleDateFormat(pola); //deklarasi format
format.setLenient(false); //jika
tanggal yang di input salah akan mertipe boolean false
Date date=format.parse(tgl);
return true;
}
catch (ParseException ex){
System.err.println(" Error:
"+ex.getMessage()); //memberitahuan pesan error
return false;
}
}
//mengecek tahun kabisat
public void kabisat(String stringThn) {
int intThn;
intThn = Integer.parseInt(stringThn);
//mengubah string menjadi integer
String thnKabisat=" Tahun yang
anda input adalah Tahun Kabisat";
String bknThnKabisat=" Tahun yang
anda input bukan Tahun Kabisat";
//mengecek apakah tahun yang di input
merupakan tahun kabisat
if (intThn%4==0) {
if (intThn%100==0) {
if (intThn%400==0) {
System.out.println(thnKabisat); } //Jika tahun itu habis dibagi 400, maka tahun
kabisat.
else { System.out.println(bknThnKabisat);
} //Jika tahun itu tidak habis dibagi 400 tetapi habis dibagi 100, maka bukan
tahun kabisat.
}
else {
System.out.println(thnKabisat); } //Jika tahun itu tidak habis dibagi 400 dan
100 tetapi habis dibagi 4, maka tahun kabisat.
}
else {
System.out.println(bknThnKabisat); } //Jika tahun tidak habis dibagi 400, 100,
dan 4, maka bukan tahun kabisat.
}
}
LOGIKA PROGRAM
Pertama kita akan di minta memasukkan
tanggal dengan ketetapan tanggal-bulan-tahun (dd-MM-yyyy). Setelah menginput
lalu akan di periksa apakah tanggal yang di input benar atau valid, dengan
perintah SimpleDateFormat dan Date. Jika pengecekan pola penginputan dan
ternyata tanggal yang di input benar atau valid maka akan di lakukan pemecahan
atau membagi inputan tanggal sengan perintah substring. Pembagian atas dua 1-2 adalah tanggal, digit 4-5 adalah
bulan, dan digit 7-10 adalah tahun. Setelah itu bulan yang sebelumnya adalah
string di ubah menjadi integer dengan perintah Integer.parseInt fungsinya adalah agar diolah menjadi array blnNama yang sebelumnya array blnNama sudah dideklarasikan dan berisi
nama-nama bulan dan akan memerintahkan untuk menampilkan tanggal, string dalam
array blnNama, dan tahun. Setelah menampilkan hasil baru akan di periksa apakah
tahun yang di input adalah tahun kabisat, jika sudah di cek apakah itu
merupakan tahun kabisat dengan ketetapan yang ada makan akan memberitahunan bahwa
itu merupakan tahun kabisat atau tidak, dan akan muncul pertanyaan apakah ingin
mengulangin memeriksa jika mau akan mengulang meminta inputna tanggal jika
tidak akan keluar dari program. Dan jika pada saat pemeriksaaan dan ternyata
tanggal yang di input tidak valid maka akan ada pesan error dan peringatan dan
akan di minta akan mau mengulang memeriksa atau tidak.
Pada program saya kali ini saya menggunakan
perintah penanganan eksepsi try dan catch.
Penjelasan:
Fungsi
try ini adalah mengecek apakan ada kesalahan dan bila ada maka akan di lempar
pada catch.
try
= coba dan catch = tangkap
Seolah-oleh
pengertian sehari-hari tentang coba-coba (trial & error), jika terjadi
error maka tangkap kesalahannya.
try
{ // Blok yang diperkirakan terdapat kesalahan
}
catch
{ //blok yang akan dijalankan bila terjadi error
}
OUTPUT:
Kelompok:
56411569 SAMPE TUA OMPUNG SUNGGU