NAMA : Restu Awaludin
NIM : 511240038
KELAS :C
SEMESTER :3
CODINGAN 1
import [Link];
public class MainApp {
public static void main(String[] args) {
Scanner sc = new Scanner([Link]);
RecruitmentService service = new RecruitmentService();
int menu;
do {
[Link]("\n=== MENU RECRUITMENT ===");
[Link]("1. Tambah Pelamar");
[Link]("2. Input Nilai");
[Link]("3. Proses Seleksi");
[Link]("4. Sorting Skor Total");
[Link]("5. Laporan per Posisi");
[Link]("6. Hapus Pelamar");
[Link]("0. Keluar");
[Link]("Pilih: ");
menu = [Link](); [Link]();
switch (menu) {
case 1:
[Link]("ID: ");
String id = [Link]();
[Link]("Nama: ");
String nama = [Link]();
[Link]("Umur: ");
int umur = [Link]();
[Link]("Pendidikan ([Link] 2.D3 3.S1 4.S2): ");
[Link] pend =
[Link]()[[Link]() - 1];
[Link]("Pengalaman (tahun): ");
int exp = [Link]();
[Link]("Posisi ([Link] 2.DATA_ANALYST 3.NETWORK_ENGINEER):
");
[Link] pos =
[Link]()[[Link]() - 1];
[Link](
new Pelamar(id, nama, umur, pend, exp, pos));
break;
case 2:
[Link]("ID Pelamar: ");
Pelamar p = [Link]([Link]());
if (p != null) {
[Link]("TKD: ");
int tkd = [Link]();
[Link]("Teknis: ");
int tek = [Link]();
[Link]("Wawancara: ");
int waw = [Link]();
[Link](tkd, tek, waw);
}
break;
case 3:
[Link]();
[Link]("Seleksi selesai.");
break;
case 4:
[Link]();
[Link]("Data diurutkan.");
break;
case 5:
[Link]("[Link] 2.DATA_ANALYST 3.NETWORK_ENGINEER");
[Link] lp =
[Link]()[[Link]() - 1];
[Link](lp);
break;
case 6:
[Link]("ID Pelamar: ");
if ([Link]([Link]())) {
[Link]("Pelamar dihapus.");
}
break;
}
} while (menu != 0);
}
}
CODINGAN 2
public class Pelamar {
public enum Pendidikan { SMA, D3, S1, S2 }
public enum Posisi { PROGRAMMER, DATA_ANALYST, NETWORK_ENGINEER }
public enum Status { DRAFT, DINILAI, LULUS, TIDAK_LULUS }
private String idPelamar;
private String nama;
private int umur;
private Pendidikan pendidikan;
private int pengalaman;
private Posisi posisi;
private int nilaiTKD;
private int nilaiTeknis;
private int nilaiWawancara;
private Status status;
private double skorTotal;
public Pelamar(String id, String nama, int umur,
Pendidikan pendidikan, int pengalaman, Posisi posisi) {
[Link] = id;
[Link] = nama;
[Link] = umur;
[Link] = pendidikan;
[Link] = pengalaman;
[Link] = posisi;
[Link] = [Link];
[Link] = 0;
}
public String getIdPelamar() { return idPelamar; }
public String getNama() { return nama; }
public int getUmur() { return umur; }
public Pendidikan getPendidikan() { return pendidikan; }
public int getPengalaman() { return pengalaman; }
public Posisi getPosisi() { return posisi; }
public Status getStatus() { return status; }
public double getSkorTotal() { return skorTotal; }
public int getNilaiTKD() { return nilaiTKD; }
public int getNilaiTeknis() { return nilaiTeknis; }
public int getNilaiWawancara() { return nilaiWawancara; }
public void setNilai(int tkd, int teknis, int wawancara) {
[Link] = tkd;
[Link] = teknis;
[Link] = wawancara;
[Link] = [Link];
}
public void setHasil(double skor, Status status) {
[Link] = skor;
[Link] = status;
}
CODINGAN 3
import [Link];
import [Link];
import [Link];
public class RecruitmentService {
private ArrayList<Pelamar> data = new ArrayList<Pelamar>();
public ArrayList<Pelamar> getData() {
return data;
}
public void tambahPelamar(Pelamar p) {
[Link](p);
}
public Pelamar cariById(String id) {
for (Pelamar p : data) {
if ([Link]().equalsIgnoreCase(id)) {
return p;
}
}
return null;
}
private boolean diskualifikasi(Pelamar p) {
return [Link]() < 50 ||
[Link]() < 55 ||
[Link]() < 50;
}
private double skorAkhir(Pelamar p) {
switch ([Link]()) {
case PROGRAMMER:
return [Link]() * 0.25 +
[Link]() * 0.50 +
[Link]() * 0.25;
case DATA_ANALYST:
return [Link]() * 0.30 +
[Link]() * 0.45 +
[Link]() * 0.25;
default:
return [Link]() * 0.30 +
[Link]() * 0.40 +
[Link]() * 0.30;
}
}
private double bonus(Pelamar p) {
double b = 0;
switch ([Link]()) {
case S2: b += 3; break;
case S1: b += 2; break;
case D3: b += 1; break;
}
if ([Link]() >= 5) {
b += 3;
}
else if ([Link]() >= 2) {
b += 2;
}
else if ([Link]() == 1) {
b += 1;
}
if ([Link]() >= 21 && [Link]() <= 30) {
b += 1;
}
return b;
}
public void prosesSeleksi() {
for (Pelamar p : data) {
if ([Link]() == [Link]) {
if (diskualifikasi(p)) {
[Link](0, [Link].TIDAK_LULUS);
continue;
}
double total = skorAkhir(p) + bonus(p);
boolean lulus = false;
switch ([Link]()) {
case PROGRAMMER: lulus = total >= 75; break;
case DATA_ANALYST: lulus = total >= 73; break;
case NETWORK_ENGINEER: lulus = total >= 74; break;
}
[Link](total,
lulus ? [Link] : [Link].TIDAK_LULUS);
}
}
}
public void sortSkorDesc() {
[Link](data, new Comparator<Pelamar>() {
@Override
public int compare(Pelamar a, Pelamar b) {
return [Link]([Link](), [Link]());
}
});
}
public void laporanPosisi([Link] pos) {
int total = 0, lulus = 0, gagal = 0;
double sum = 0;
Pelamar terbaik = null;
[Link]("\n=== LAPORAN POSISI " + pos + " ===");
[Link]("ID | Nama | Status | Skor");
for (Pelamar p : data) {
if ([Link]() == pos &&
([Link]() == [Link] ||
[Link]() == [Link].TIDAK_LULUS)) {
[Link]([Link]()+" | "+[Link]()+
" | "+[Link]()+" | "+[Link]());
total++;
sum += [Link]();
if ([Link]() == [Link]) {
lulus++;
}
else {
gagal++;
}
if (terbaik == null || [Link]() > [Link]()) {
terbaik = p;
}
}
}
if (total == 0) {
[Link]("Belum ada data.");
return;
}
[Link]("Total Dinilai : " + total);
[Link]("Lulus : " + lulus);
[Link]("Tidak Lulus : " + gagal);
[Link]("Rata-rata : " + (sum / total));
[Link]("Terbaik : " + [Link]());
}
public boolean hapusPelamar(String id) {
Pelamar p = cariById(id);
if (p == null) {
return false;
}
if ([Link]() == [Link]) {
[Link]("❌ Pelamar LULUS tidak boleh dihapus!");
return false;
}
[Link](p);
return true;
}
}
2. Screenshot output hasil :
o Menambah pelamar
o Input nilai
o Proses seleksi
Sorting skor total
o Laporan per posisi