20 Oktober 2011

Kelas Pengguna


package Modal;


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 = 20;
    private ArrayList daftarPinjaman = new ArrayList();


  
    public String getNama() {
        return nama;
    }


    public void setNama(String nama) {
        this.nama = nama;
    }


    public String getAlamat() {
        return alamat;
    }


    public void setAlamat(String alamat) {
        this.alamat = alamat;
    }


    public boolean adaDaftarPinjamanTerlambat(Date tanggalKembali) {
   
        for (int i = 0; i < daftarPinjaman.size(); i++) {
       
      
            if (daftarPinjaman.get(i).isTerlambat(tanggalPinjam, tanggalKembali)) {
                return true;
            }
        }
        return false;
    }


    public void tambahDaftarPinjaman(Koleksi kolPinjam, Date tanggalPinjam) {
        Koleksi tempPinjam = kolPinjam;
        if (kolPinjam.getJudul() == null) {
            try {
                throw new Exception("Tidak ada judul!");
            } catch (Exception ex) {
                Logger.getLogger(Pengguna.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
        if (daftarPinjaman.isEmpty()) {
          
            daftarPinjaman.add(tempPinjam);
        } else {
            if (daftarPinjaman.size() < MaxKoleksiPinjaman) {
             
                if (!adaDaftarPinjamanTerlambat(tanggalPinjam)) {
                 
                    kolPinjam.setTanggalPinjam(tanggalPinjam);
                    daftarPinjaman.add(tempPinjam);
                } else {
                   
                    System.out.println("Ada pinjaman terlambat");
                }
            } else {
             
                System.out.println("Jumlah pinjaman sudah lebih dari : " + MaxKoleksiPinjaman);
            }
        }
    }


    public boolean adaKoleksi(Koleksi kol) {
        return daftarPinjaman.contains(kol);
    }


    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;
        }
    }


    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() + "\t" + daftarPinjaman.get(i).getTanggalPinjam() + "\n";
            }
        }
        return result;
    }


    public void kembalikanPinjaman(Koleksi kol) throws Exception {
        if(daftarPinjaman.size()== 0){
            throw new Exception ("Anda belum pinjam sama sekali");
        }
        Date now = Calendar.getInstance().getTime();
        try {
            kol.setTanggalKembali(now);
        } catch (Exception ex) {
            Logger.getLogger(Pengguna.class.getName()).log(Level.SEVERE, null, ex);
        }
        if (daftarPinjaman.isEmpty()) {
            throw new Exception ("Tidak Pinjam !!");
        } else {
            if (adaKoleksi(kol)) {
             
                daftarPinjaman.remove(kol);
            } else {
              
                System.out.println("Tidak ada koleksi di daftar pinjaman");
            }
        }
    }


    public void Denda() {
        throw new UnsupportedOperationException("Not supported yet.");
    }
}







Tidak ada komentar:

Posting Komentar