⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 registrasimatakuliahdao.java

📁 sistem information for universitas
💻 JAVA
字号:
package dao;
import java.util.ArrayList;
import java.util.List;
import model.Dosen;
import model.Jadwal;
import model.JadwalPlus;
import model.Mahasiswa;
import model.Matakuliah;
import model.RegistrasiMatakuliah;
import model.MatakuliahPlus;
import model.Semester;
import org.hibernate.Session;
public class RegistrasiMatakuliahDAO {
    int registrasiMatakuliahPerPage=20;
    public RegistrasiMatakuliahDAO() {
    }
    public RegistrasiMatakuliah loadRegistrasiMatakuliah(long id) throws Exception {
        HibernateUtil.beginTransaction();
        Session session=HibernateUtil.getSession();
        RegistrasiMatakuliah registrasiMatakuliah=null;
        try {
            registrasiMatakuliah=(RegistrasiMatakuliah)session.load(RegistrasiMatakuliah.class,id);
        } catch(Exception ex) {
            throw ex;
        }
        return registrasiMatakuliah;
    }
    public double hitungIPS(Mahasiswa mahasiswa,Semester semester) throws Exception {
        double IPS=0;
        List<RegistrasiMatakuliah> listRegmat=new RegistrasiMatakuliahDAO().getListRegistrasiMatakuliah(mahasiswa,semester,false);
        if(listRegmat.size()>0) {
            double sksAkademik;
            double nilaiAngka1=0;
            double kbn=0;
            double totalSKS=0;
            for(int i=0;i<listRegmat.size();i++) {
                sksAkademik=listRegmat.get(i).getMatakuliah().getSksAkademik();
                nilaiAngka1=0;
                if(listRegmat.get(i).getNilai()!=null) {
                    if(listRegmat.get(i).getNilai().equals("A")) {
                        nilaiAngka1=4;
                    } else if(listRegmat.get(i).getNilai().equals("B")) {
                        nilaiAngka1=3;
                    } else if(listRegmat.get(i).getNilai().equals("C")) {
                        nilaiAngka1=2;
                    } else if(listRegmat.get(i).getNilai().equals("D")) {
                        nilaiAngka1=1;
                    }
                }
                kbn+=sksAkademik*nilaiAngka1;
                totalSKS+=sksAkademik;
            }
            IPS=kbn/totalSKS;
        }
        return IPS;
    }
    public double hitungIPK(Mahasiswa mahasiswa) throws Exception {
        double IPK=0;
        Semester semester=new SemesterDAO().getSemesterSekarang();
        List<RegistrasiMatakuliah> listRegmat=new RegistrasiMatakuliahDAO().getListRegistrasiMatakuliah(mahasiswa,semester,true);
        if(listRegmat.size()>0) {
            double sksAkademik=0;
            double nilaiAngka1=0;
            double nilaiAngka0=0;
            double kbn=0;
            double totalSKS=0;
            for(int i=0;i<listRegmat.size();i++) {
                sksAkademik=listRegmat.get(i).getMatakuliah().getSksAkademik();
                nilaiAngka1=0;
                if(listRegmat.get(i).getNilai()!=null) {
                    if(listRegmat.get(i).getNilai().equals("A")) {
                        nilaiAngka1=4;
                    } else if(listRegmat.get(i).getNilai().equals("B")) {
                        nilaiAngka1=3;
                    } else if(listRegmat.get(i).getNilai().equals("C")) {
                        nilaiAngka1=2;
                    } else if(listRegmat.get(i).getNilai().equals("D")) {
                        nilaiAngka1=1;
                    }
                }
                for(int j=i-1;j>=0;j--) {
                    if(j<0) {
                        break;
                    }
                    if(listRegmat.get(i).getMatakuliah().getId()==listRegmat.get(j).getMatakuliah().getId()) {
                        nilaiAngka0=0;
                        if(listRegmat.get(j).getNilai()!=null) {
                            if(listRegmat.get(j).getNilai().equals("A")) {
                                nilaiAngka0=4;
                            } else if(listRegmat.get(j).getNilai().equals("B")) {
                                nilaiAngka0=3;
                            } else if(listRegmat.get(j).getNilai().equals("C")) {
                                nilaiAngka0=2;
                            } else if(listRegmat.get(j).getNilai().equals("D")) {
                                nilaiAngka0=1;
                            }
                        }
                        if(nilaiAngka1>=nilaiAngka0) {
                            kbn-=sksAkademik*nilaiAngka0;
                            kbn+=sksAkademik*nilaiAngka1;
                        }
                        sksAkademik=0;
                        nilaiAngka1=0;
                        break;
                    }
                }
                kbn+=sksAkademik*nilaiAngka1;
                totalSKS+=sksAkademik;
            }
            IPK=kbn/totalSKS;
        }
        return IPK;
    }
    public int hitungMaxBeban(double IPS,double IPK) {
        int MaxBeban=0;
        int MaxSKS[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,30};
        double d=IPK;
        if(d>IPS) {
            d=IPS;
        }
        d*=10;
        if((int)d-1>0) {
            MaxBeban=MaxSKS[(int)d-1];
        }
        if(MaxBeban<18) {
            MaxBeban=18;
        }
        return MaxBeban;
    }
    public int hitungTotalSKSAmbil(List<RegistrasiMatakuliah> listRegmat) {
        int totalSKSAmbil=0;
        for(int i=0;i<listRegmat.size();i++) {
            totalSKSAmbil+=listRegmat.get(i).getMatakuliah().getSksAkademik();
        }
        return totalSKSAmbil;
    }
    public boolean cekSudahAmbilMatakuliah(List<RegistrasiMatakuliah> listRegmat,Matakuliah matakuliah) {
        boolean sudahAmbil=false;
        for(int i=0;i<listRegmat.size();i++) {
            if(listRegmat.get(i).getJadwal().getMatakuliah().getId()==matakuliah.getId()) {
                sudahAmbil=true;
                break;
            }
        }
        return sudahAmbil;
    }
    public boolean cekSudahAmbilPrasyarat(List<RegistrasiMatakuliah> listRegmat,Matakuliah matakuliah) {
        boolean sudahAmbil=false;
        if(matakuliah.getPrasyarat()==null) {
            sudahAmbil=true;
        } else {
            for(int i=0;i<listRegmat.size();i++) {
                if(listRegmat.get(i).getMatakuliah().getId()==matakuliah.getPrasyarat().getId()) {
                    sudahAmbil=true;
                    break;
                }
            }
        }
        return sudahAmbil;
    }
    public int hitungKursiKosong(Jadwal jadwal) {
        int kursiKosong=0;
        try {
            kursiKosong=jadwal.getKapasitas()-getListRegistrasiMatakuliah(jadwal).size();
        } catch (Exception ex) {
            ex.printStackTrace();
        }
        if(kursiKosong<0) {
            kursiKosong=0;
        }
        return kursiKosong;
    }
    public List getListMatakuliahPlus(Mahasiswa mahasiswa) throws Exception {
        List<MatakuliahPlus> listMatakuliahPlus=new ArrayList();
        Semester semesterSebelumnya=new SemesterDAO().getSemesterSebelumnya();
        Semester semesterSekarang=new SemesterDAO().getSemesterSekarang();
        List<Matakuliah> listMatakuliah=new MatakuliahDAO().getListMatakuliah(semesterSekarang,mahasiswa.getFakultas());
        double ips=hitungIPS(mahasiswa,semesterSebelumnya);
        double ipk=hitungIPK(mahasiswa);
        int maxBeban=hitungMaxBeban(ips,ipk);
        int totalSKS=hitungTotalSKSAmbil(getListRegistrasiMatakuliah(mahasiswa,semesterSekarang,false));
        for(int i=0;i<listMatakuliah.size();i++) {
            MatakuliahPlus matakuliahPlus=new MatakuliahPlus();
            matakuliahPlus.setMatakuliah(listMatakuliah.get(i));
            if((totalSKS+listMatakuliah.get(i).getSksAkademik())>maxBeban) {
                matakuliahPlus.setSksMasihCukup(false);
            }
            matakuliahPlus.setMatakuliahSudahAmbil(cekSudahAmbilMatakuliah(getListRegistrasiMatakuliah(mahasiswa,semesterSekarang,false),listMatakuliah.get(i)));
            matakuliahPlus.setPrasyaratSudahAmbil(cekSudahAmbilPrasyarat(getListRegistrasiMatakuliah(mahasiswa,semesterSekarang,true),listMatakuliah.get(i)));
            listMatakuliahPlus.add(matakuliahPlus);
        }
        return listMatakuliahPlus;
    }
    public List getListJadwalPlus(Matakuliah matakuliah) throws Exception {
        List<JadwalPlus> listJadwalPlus=new ArrayList();
        Semester semesterSekarang=new SemesterDAO().getSemesterSekarang();
        List<Jadwal> listJadwal=new JadwalDAO().getListJadwal(semesterSekarang,matakuliah);
        for(int i=0;i<listJadwal.size();i++) {
            JadwalPlus jadwalPlus=new JadwalPlus();
            jadwalPlus.setJadwal(listJadwal.get(i));
            jadwalPlus.setKursiKosong(hitungKursiKosong(listJadwal.get(i)));
            listJadwalPlus.add(jadwalPlus);
        }
        return listJadwalPlus;
    }
    //=======NO PAGING=======
    public List getListRegistrasiMatakuliah() throws Exception {
        HibernateUtil.beginTransaction();
        Session session=HibernateUtil.getSession();
        List list=new ArrayList();
        try {
            list=session.createQuery("FROM RegistrasiMatakuliah").list();
        } catch(Exception ex) {
            throw ex;
        }
        return list;
    }
    public List getListRegistrasiMatakuliah(Jadwal jadwal) throws Exception {
        HibernateUtil.beginTransaction();
        Session session=HibernateUtil.getSession();
        List list=new ArrayList();
        try {
            list=session.createQuery("SELECT registrasiMatakuliah FROM RegistrasiMatakuliah registrasiMatakuliah WHERE registrasiMatakuliah.jadwal= :input")
            .setParameter("input",jadwal).list();
        } catch(Exception ex) {
            throw ex;
        }
        return list;
    }
    public List getListRegistrasiMatakuliah(Dosen dosen,Semester semester) throws Exception{
        HibernateUtil.beginTransaction();
        Session session=HibernateUtil.getSession();
        List list=new ArrayList();
        try {
            list=session.createQuery("SELECT registrasiMatakuliah FROM RegistrasiMatakuliah registrasiMatakuliah WHERE registrasiMatakuliah.jadwal.dosen= :input1 AND registrasiMatakuliah.jadwal.semester= :input2")
            .setParameter("input1",dosen).setParameter("input2",semester).list();
        } catch(Exception ex) {
            throw ex;
        }
        return list;
    }
    public List getListRegistrasiMatakuliah(Mahasiswa mahasiswa,Semester semester,boolean not) throws Exception{
        HibernateUtil.beginTransaction();
        Session session=HibernateUtil.getSession();
        List list=new ArrayList();
        try {
            if(not) {
                list=session.createQuery("SELECT registrasiMatakuliah FROM RegistrasiMatakuliah registrasiMatakuliah WHERE registrasiMatakuliah.mahasiswa= :input1 AND registrasiMatakuliah.jadwal.semester!= :input2")
                .setParameter("input1",mahasiswa).setParameter("input2",semester).list();
            } else {
                list=session.createQuery("SELECT registrasiMatakuliah FROM RegistrasiMatakuliah registrasiMatakuliah WHERE registrasiMatakuliah.mahasiswa= :input1 AND registrasiMatakuliah.jadwal.semester= :input2")
                .setParameter("input1",mahasiswa).setParameter("input2",semester).list();
            }
        } catch(Exception ex) {
            throw ex;
        }
        return list;
    }
    public List getListRegistrasiMatakuliah(Mahasiswa mahasiswa,boolean transkrip) throws Exception{
        HibernateUtil.beginTransaction();
        List<RegistrasiMatakuliah> list=new ArrayList();
        Session session=HibernateUtil.getSession();
        try {
            list=session.createQuery("SELECT registrasiMatakuliah FROM RegistrasiMatakuliah registrasiMatakuliah WHERE registrasiMatakuliah.mahasiswa= :input")
            .setParameter("input",mahasiswa).list();
            if(transkrip) {
                list=getListRegistrasiMatakuliah(mahasiswa,new SemesterDAO().getSemesterSekarang(),true);
            }
        } catch(Exception ex) {
            throw ex;
        }
        if(transkrip) {
            if(list.size()>0) {
                double nilaiAngka1=0;
                double nilaiAngka0=0;
                for(int i=0;i<list.size();i++) {
                    nilaiAngka1=0;
                    if(list.get(i).getNilai()!=null) {
                        if(list.get(i).getNilai().equals("A")) {
                            nilaiAngka1=4;
                        } else if(list.get(i).getNilai().equals("B")) {
                            nilaiAngka1=3;
                        } else if(list.get(i).getNilai().equals("C")) {
                            nilaiAngka1=2;
                        } else if(list.get(i).getNilai().equals("D")) {
                            nilaiAngka1=1;
                        }
                    }
                    for(int j=i-1;j>=0;j--) {
                        if(j<0) {
                            break;
                        }
                        if(list.get(i).getMatakuliah().getId()==list.get(j).getMatakuliah().getId()) {
                            nilaiAngka0=0;
                            if(list.get(j).getNilai()!=null) {
                                if(list.get(j).getNilai().equals("A")) {
                                    nilaiAngka0=4;
                                } else if(list.get(j).getNilai().equals("B")) {
                                    nilaiAngka0=3;
                                } else if(list.get(j).getNilai().equals("C")) {
                                    nilaiAngka0=2;
                                } else if(list.get(j).getNilai().equals("D")) {
                                    nilaiAngka0=1;
                                }
                            }
                            if(nilaiAngka1>=nilaiAngka0) {
                                list.remove(j);
                            } else {
                                list.remove(i);
                            }
                            i--;
                            break;
                        }
                    }
                }
            }
        }
        return list;
    }
    //=======NO PAGING=======
    //=======PAGING=======
    //=======PAGING=======
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -