-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathKRS.java
More file actions
32 lines (26 loc) · 950 Bytes
/
Copy pathKRS.java
File metadata and controls
32 lines (26 loc) · 950 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import java.util.ArrayList;
public class KRS {
private ArrayList<MataKuliah> daftarMataKuliah = new ArrayList<>();
private static final int MaksimalKredit = 12;
public boolean tambahMataKuliah(MataKuliah mataKuliah) {
int totalKredit = hitungTotalKredit();
if (totalKredit + mataKuliah.getKredit() <= MaksimalKredit) {
daftarMataKuliah.add(mataKuliah);
return true;
}
return false;
}
public boolean hapusMataKuliah(String kode) {
return daftarMataKuliah.removeIf(mk -> mk.getKode().equals(kode));
}
public int hitungTotalKredit() {
return daftarMataKuliah.stream().mapToInt(MataKuliah::getKredit).sum();
}
public ArrayList<MataKuliah> getDaftarMataKuliah() {
return daftarMataKuliah;
}
public boolean isKreditValid() {
int totalKredit = hitungTotalKredit();
return totalKredit <= MaksimalKredit;
}
}