Main.Java
import java.util.ArrayList;
import java.util.Scanner;
class Mahasiswa {
private String nama;
private String nim;
private double ipk;
public Mahasiswa(String nama, String nim, double ipk) {
this.nama = nama;
this.nim = nim;
this.ipk = ipk;
}
public String getNama() {
return nama;
}
public String getNim() {
return nim;
}
public double getIpk() {
return ipk;
}
public void setNama(String nama) {
this.nama = nama;
}
public void setNim(String nim) {
this.nim = nim;
}
public void setIpk(double ipk) {
this.ipk = ipk;
}
public void tampilData() {
System.out.println("Nama: " + nama);
System.out.println("NIM: " + nim);
System.out.printf("IPK: %.2f\n", ipk);
}
}
public class Main {
static Scanner scanner = new Scanner(System.in);
static ArrayList<Mahasiswa> daftarMahasiswa = new ArrayList<>();
public static void main(String[] args) {
var pilihan = 0;
do {
System.out.println("\nMenu:");
System.out.println("1. Input Data Mahasiswa");
System.out.println("2. Edit Data Mahasiswa");
System.out.println("3. Tampilkan Semua Data");
System.out.println("4. Hapus Data Mahasiswa");
System.out.println("5. Keluar");
System.out.print("Pilih menu (1-5): ");
try {
pilihan = scanner.nextInt();
scanner.nextLine();
} catch (Exception e) {
System.out.println("Input harus berupa angka!");
scanner.nextLine();
continue;
}
switch (pilihan) {
case 1:
inputData();
break;
case 2:
editData();
break;
case 3:
tampilkanData();
break;
case 4:
hapusData();
break;
case 5:
System.out.println("Program selesai.");
break;
default:
System.out.println("Pilihan tidak valid!");
}
} while (pilihan != 5);
}
static void inputData() {
System.out.print("Masukkan jumlah mahasiswa: ");
int jumlah = scanner.nextInt();
scanner.nextLine();
for (int i = 0; i < jumlah; i++) {
System.out.println("\nData Mahasiswa ke-" + (i + 1));
System.out.print("Nama: ");
String nama = scanner.nextLine();
System.out.print("NIM: ");
String nim = scanner.nextLine();
System.out.print("IPK: ");
double ipk;
try {
ipk = scanner.nextDouble();
scanner.nextLine();
if (ipk < 0 || ipk > 4) {
System.out.println("IPK harus antara 0-4!");
i--;
continue;
}
} catch (Exception e) {
System.out.println("Input IPK tidak valid!");
scanner.nextLine();
i--;
continue;
}
daftarMahasiswa.add(new Mahasiswa(nama, nim, ipk));
}
System.out.println("Data berhasil disimpan!");
}
static void editData() {
tampilkanData();
if (daftarMahasiswa.isEmpty()) {
return;
}
System.out.print("Masukkan nomor mahasiswa yang akan diedit (1-" + daftarMahasiswa.size() + "): ");
int index = scanner.nextInt() - 1;
scanner.nextLine();
if (index < 0 || index >= daftarMahasiswa.size()) {
System.out.println("Data mahasiswa tidak ditemukan!");
return;
}
System.out.println("\nEdit Data Mahasiswa ke-" + (index + 1));
System.out.print("Nama baru (" + daftarMahasiswa.get(index).getNama() + "): ");
String nama = scanner.nextLine();
if (!nama.trim().isEmpty()) {
daftarMahasiswa.get(index).setNama(nama);
}
System.out.print("NIM baru (" + daftarMahasiswa.get(index).getNim() + "): ");
String nim = scanner.nextLine();
if (!nim.trim().isEmpty()) {
daftarMahasiswa.get(index).setNim(nim);
}
System.out.print("IPK baru (" + daftarMahasiswa.get(index).getIpk() + "): ");
String ipkInput = scanner.nextLine();
if (!ipkInput.trim().isEmpty()) {
try {
double ipk = Double.parseDouble(ipkInput);
if (ipk >= 0 && ipk <= 4) {
daftarMahasiswa.get(index).setIpk(ipk);
} else {
System.out.println("IPK harus antara 0-4!");
}
} catch (NumberFormatException e) {
System.out.println("Input IPK tidak valid!");
}
}
System.out.println("Data berhasil diubah!");
}
static void tampilkanData() {
System.out.println("\nDaftar Mahasiswa:");
if (daftarMahasiswa.isEmpty()) {
System.out.println("Belum ada data mahasiswa!");
return;
}
for (int i = 0; i < daftarMahasiswa.size(); i++) {
System.out.println("\nMahasiswa ke-" + (i + 1));
daftarMahasiswa.get(i).tampilData();
}
}
// Fitur baru: Hapus data mahasiswa
static void hapusData() {
tampilkanData();
if (daftarMahasiswa.isEmpty()) {
return;
}
System.out.print("Masukkan nomor mahasiswa yang ingin dihapus (1-" + daftarMahasiswa.size() + "): ");
try {
int index = scanner.nextInt() - 1;
scanner.nextLine();
if (index < 0 || index >= daftarMahasiswa.size()) {
System.out.println("Nomor tidak valid!");
return;
}
Mahasiswa dihapus = daftarMahasiswa.remove(index);
System.out.println("Data mahasiswa \"" + dihapus.getNama() + "\" berhasil dihapus!");
} catch (Exception e) {
System.out.println("Input harus berupa angka!");
scanner.nextLine();
}
}
}