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 SimpleDateFormatdan 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:
51411210 - ARVI AZMI MAULANA
56411569 - SAMPE TUA OMPUNG SUNGGU
58411242 - ROFATUL WIDAD
55411155 - NIA RIANTHY SUGIANA
54411543 - M. LUTFI R.A.