?? registrasimatakuliahdao.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 + -