import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.logging.Level;
import java.util.logging.Logger;
public class Pengguna implements Peminjam {
private String nama;
private String alamat;
public static int MaxKoleksiPinjaman = 10;
private ArrayList
/**
* method yang digunakan untuk memanggil nama
* @return the nama
*/
public String getNama() {
return nama;
}
/**
* method yang digunakan untuk mengeset nama
* @param nama
*/
public void setNama(String nama) {
this.nama = nama;
}
/**
* method yang digunakan untuk memanggil Alamat
* @return alamat
*/
public String getAlamat() {
return alamat;
}
/**
* method yang digunkan untuk mengeset alamat
* @param alamat
*/
public void setAlamat(String alamat) {
this.alamat = alamat;
}
/**
* fungsi untuk mengetahui ada tidaknya pinjaman yang terlambat
* @param tanggalPinjam
* @param tanggalKembali
* @return
*/
public boolean adaDaftarPinjamanTerlambat(Date tanggalKembali) {
// dari i sama dengan 0 sampai dengan i kurang dari lebar daftarPinjaman
for (int i = 0; i < daftarPinjaman.size(); i++) {
// menampilkan tanggal pinjam
Date tanggalPinjam = daftarPinjaman.get(i).getTanggalPinjam();
// jika ada terlambat maka return true, jika tidak return false
if (daftarPinjaman.get(i).isTerlambat(tanggalPinjam, tanggalKembali)) {
return true;
}
}
return false;
}
/**
* merupakan method tambahDaftarPinjaman yang berisi 3 syarat yang harus terpenuhi saat meminjam koleksi
* @param kolPinjam
* @param tanggalPinjam
*/
@Override
public void tambahDaftarPinjaman(Koleksi kolPinjam, Date tanggalPinjam) {
Koleksi tempPinjam = kolPinjam;
if (kolPinjam.getJudul() == null) {
try {
throw new Exception("ndak ada judul tuu");
} catch (Exception ex) {
Logger.getLogger(Pengguna.class.getName()).log(Level.SEVERE, null, ex);
}
}
if (daftarPinjaman.isEmpty()) {
//daftar pinjaman kosong
daftarPinjaman.add(tempPinjam);
} else {
if (daftarPinjaman.size() < MaxKoleksiPinjaman) {
//daftar pinjaman isi
//cek terlambat
if (!adaDaftarPinjamanTerlambat(tanggalPinjam)) {
//tidak ada pinjaman terlambat
// kolPinjam.setTanggalPinjam(tanggalPinjam);
daftarPinjaman.add(tempPinjam);
} else {
//ada yang terlambat
System.out.println("Ada pinjaman terlambat");
}
} else {
// jumlah pinjaman melebihi batas
System.out.println("Jumlah pinjaman sudah lebih dari : " + MaxKoleksiPinjaman);
}
}
}
/**
* merupakan method adaKoleksi yang digunakan untuk mengeluarkan daftarPinjaman
* @param kol
* @return
*/
public boolean adaKoleksi(Koleksi kol) {
return daftarPinjaman.contains(kol);
}
/**
* methos hitung denda yang digunakan untuk menjumlahkan semua total denda dari semua koleksi yang pernah dipinjam
* @param tanggalPinjam
* @return
*/
@Override
public int hitungDenda(Date tanggalPinjam) {
int result = 0;
if (adaDaftarPinjamanTerlambat(tanggalPinjam)) {
for (int i = 0; i < daftarPinjaman.size(); i++) {
result = result + daftarPinjaman.get(i).hitungDenda(tanggalPinjam);
}
return result;
} else {
return 0;
}
}
/**
* merupakan method tampilPinjaman yang digunakan utuk menampilkan semua judul koleksi yang dipinjam
* @return
*/
public String tampilPinjaman() {
String result = "";
if (daftarPinjaman.isEmpty()) {
result = "anda tidak pinjam apa-apa";
} else {
for (int i = 0; i < daftarPinjaman.size(); i++) {
result = result + daftarPinjaman.get(i).getJudul() + "/n tanggal pinjam " + daftarPinjaman.get(i).getTanggalPinjam() + "\n";
}
}
return result;
}
/**
* Fungsi untuk mengembalikan pinjaman koleksi
* @param kol adalah koleksi yang dikembalikan
*/
public void kembalikanPinjaman(Koleksi kol) throws Exception {
Date now = Calendar.getInstance().getTime();
kol.getTanggalKembali();
if (daftarPinjaman.isEmpty()) {
throw new Exception("anda belum pinjam");
} else {
if (adaKoleksi(kol)) {
// pinjaman ada di daftar pinjam
daftarPinjaman.remove(kol);
} else {
// koleksi tidak ada di daftar pinjaman
System.out.println("Tidak ada koleksi di daftar pinjaman");
}
}
}
}
No comments:
Post a Comment