BLANTERORBITv102

    Cara Menghitung Selisih Dua Tanggal dan Hari Pada Java

    Kamis, 17 Desember 2015
    Postingan ini di request oleh salah satu teman Java-SC pada laman fans page Java Soure Code mengenai penghitungan jumlah denda pengembalian buku dengan menghitung jumlah selisih pada dua tanggal. Jumlah denda akan dikenakan apabila pengembalian lebih dari 3 hari dengan jumlah 1000 rupiah dan akan bertambah apabila pengembalian telambat dihari berikutnya. 

    Langsung saja kepada step pembuatan program.
    1. Buat sebuah project baru, contoh MenghitungSelisihHari.
    2. Kemudian buat jFrame untuk gui dari aplikasi ini dan ubah layout dari Free Design menjadi Absolute Layout, perhatikan gambar dibawah.
      Menghitung-Selisih-Dua-Tanggal-dan-Hari-Pada-Java-Gambar-1
      Gambar 1
      Menghitung-Selisih-Dua-Tanggal-dan-Hari-Pada-Java-Gambar-2
      Gambar 2
      Berikut komponen yang digunakan.
      KomponenVariableFungsi
      JTextField1kd_bukuSebagai input kode buku
      JTextField2tggl_pinjamSebagai input tanggal peminjaman buku
      JTextField3tggl_kembaliSebagai input tanggal pengembalian buku
      JButtonTextField2cekTombol proses kalkulasi
      JTextArea1hasilMenampung tampilan output dari proses
      JLable1jLable1Title aplikasi
      JLable2exitTombol keluar aplikasi
      JPanel1jPanel1Tempat menampung komponen-komponen Swing
    3. Setelah menentukan komponen yang digunakan, anda dapat mengkostum tampilan sesuai dengan keinginan melalui fungsi properties pada tiap komponen sebagai contoh diatas.
    4. Download sebuah library jCalender  di link ini Download , sebenarnya ini diberikan pada tahap pertama namun saya menyesuaikan dengan urutan pembuatan program.
    5. Setelah anda download , silahkan add sebagai library dengan cara klik kanan pada libraries , pilih Add JAR/Folder , cari file jCalendar1.4 yang sudah di download dan klik Open.
      Menghitung-Selisih-Dua-Tanggal-dan-Hari-Pada-Java-Gambar-3
      Gambar 3
      Menghitung-Selisih-Dua-Tanggal-dan-Hari-Pada-Java-Gambar-4
      Gambar 4
    6. Selanjutnya memasukan proses pada tiap fungsi tombol pada program, pertama tobol exit dengan cara klik kanan jLabel > Events > Mouse > mouseClicked dan masukan satu baris kode program dibawah.
      System.exit(0);

      Menghitung-Selisih-Dua-Tanggal-dan-Hari-Pada-Java-Gambar-5
      Gambar 5
    7. Kedua adalah tombol cek, lakukan hal yang sama seperti tombol exit dan masukan kode program dibawah.
              try {
                  String kdbk = kd_buku.getText();
                  String tglsatu = tggl_pinjam.getText();
                  DateFormat date = new SimpleDateFormat("dd-MM-yyyy");
                  Date tglAwal = (Date) date.parse(tglsatu);
                  String tgldua = tggl_kembali.getText();
                  Date tglAkhir = (Date) date.parse(tgldua);
       
                  long bedaHari = Math.abs(tglAkhir.getTime() - tglAwal.getTime());
                  
                  if (TimeUnit.MILLISECONDS.toDays(bedaHari) >= 3) {
                      int denda = (int) (TimeUnit.MILLISECONDS.toDays(bedaHari));
                      hasil.setText("Pengembalian buku dengan kode : "+kdbk+" dengan denda : "+denda+"000");
                  }
                  else {
                      hasil.setText("Pengembalian buku dengan kode : "+kdbk);
                  }
              }
              catch (Exception e) {
                  JOptionPane.showMessageDialog(null, "Error : "+e);
              }
    8. Setelah itu silahkan coba untuk menjalankan kode program di atas dengan klik Run dan perhatikan demo dibawah.
      Menghitung-Selisih-Dua-Tanggal-dan-Hari-Pada-Java-Gambar-6
      Gambar 6
    Tutorial untuk Menghitung Selisih Dua Tanggal dan Hari Pada Java sederhana seperti diatas, kita bisa mengkombine dengan database dan tentu dengan format penulisan tanggal yang berbeda. Mungkin akan ada lain waktu memberikan tutorial seperti ini. Good luck and keep learning java programming.

    Terimakasih sudah berkesempatan untuk menimba ilmu dari blog JSC, semoga ilmu yang di share dapat bermanfaat. Jika ada pertanyaan mengenai ilmu yang terkait ataupun tidak, mari kita berdiskusi di dalam kolom komentar ini.

    Keep Learning and Keep Sharing