Kode Java CRUD siswa dengan struktur tetap mudah dipahami untuk pemula:
Penyederhanaan yang dilakukan:
-
Menyingkat menu menggunakan
switch
dengan arrow (->
). -
Menggabungkan beberapa baris input menjadi satu.
-
Menambahkan
toString()
di kelasSiswa
agar output lebih praktis. -
Mengurangi duplikasi teks dan pengecekan.
Penjelasan Detail Kode Program Java: CRUD
Siswa
1. Import Library
Mengimpor semua kelas dari package
java.util, termasuk Scanner, List, dan ArrayList.
import
java.util.*;
2. Deklarasi Kelas Utama
Kelas utama CrudSiswa yang menjadi entry
point dari program.
public
class CrudSiswa {
3. Inner Class Siswa
Kelas Siswa merepresentasikan objek siswa
dengan atribut nama dan umur. Memiliki konstruktor dan method toString.
static
class Siswa {
String nama;
int umur;
Siswa(String nama, int umur) {
this.nama = nama;
this.umur = umur;
}
public String toString() {
return nama + " - Umur:
" + umur;
}
}
4. Variabel Global
Digunakan untuk menyimpan daftar siswa dan
objek Scanner untuk input.
static
List<Siswa> daftarSiswa = new ArrayList<>();
static Scanner input = new Scanner(System.in);
5. Metode main()
Metode utama yang berisi perulangan menu
dan pemilihan aksi berdasarkan input user.
public
static void main(String[] args) {
while (true) {
System.out.println("\n=====
MENU =====");
System.out.println("1.
Tambah 2. Lihat 3. Ubah
4. Hapus 5. Keluar");
System.out.print("Pilih:
");
if (!input.hasNextInt()) {
System.out.println("Masukkan angka yang valid!");
input.nextLine(); // buang
input tidak valid
continue;
}
int pilih = input.nextInt();
input.nextLine();
switch (pilih) {
case 1 -> tambah();
case 2 -> lihat();
case 3 -> ubah();
case 4 -> hapus();
case 5 -> {
System.out.println("Terima kasih!");
return;
}
default ->
System.out.println("Pilihan tidak valid!");
}
}
}
6. Metode tambah()
Meminta input nama dan umur, lalu
menambahkannya ke daftar siswa.
static
void tambah() {
System.out.print("Nama: ");
String nama = input.nextLine();
int umur = inputUmur();
daftarSiswa.add(new Siswa(nama,
umur));
System.out.println("Siswa
berhasil ditambahkan.");
}
7. Metode lihat()
Menampilkan semua data siswa dari daftar.
Jika kosong, ditampilkan pesan khusus.
static
void lihat() {
if (daftarSiswa.isEmpty()) {
System.out.println("Data
kosong.");
} else {
System.out.println("\n===
DAFTAR SISWA ===");
for (int i = 0; i <
daftarSiswa.size(); i++) {
System.out.println((i + 1) +
". " + daftarSiswa.get(i));
}
System.out.println("Jumlah
siswa: " + daftarSiswa.size());
}
}
8. Metode ubah()
Memungkinkan user memilih dan mengubah data
siswa yang ada dalam daftar.
static
void ubah() {
lihat();
if (!daftarSiswa.isEmpty()) {
System.out.print("No. Siswa
yang ingin diubah: ");
int i = input.nextInt() - 1;
input.nextLine();
if (i >= 0 && i <
daftarSiswa.size()) {
System.out.print("Nama
baru: ");
String nama =
input.nextLine();
int umur = inputUmur();
daftarSiswa.set(i, new
Siswa(nama, umur));
System.out.println("Data
berhasil diubah.");
} else {
System.out.println("Nomor
siswa tidak valid.");
}
}
}
9. Metode hapus()
Menampilkan daftar siswa dan meminta
konfirmasi sebelum menghapus data.
static
void hapus() {
lihat();
if (!daftarSiswa.isEmpty()) {
System.out.print("No. Siswa
yang ingin dihapus: ");
int i = input.nextInt() - 1;
input.nextLine();
if (i >= 0 && i <
daftarSiswa.size()) {
System.out.print("Yakin
ingin menghapus? (y/n): ");
String konfirmasi =
input.nextLine();
if
(konfirmasi.equalsIgnoreCase("y")) {
daftarSiswa.remove(i);
System.out.println("Data berhasil dihapus.");
} else {
System.out.println("Penghapusan dibatalkan.");
}
} else {
System.out.println("Nomor siswa tidak valid.");
}
}
}
10. Metode inputUmur()
Melakukan validasi agar input umur adalah
angka dan lebih dari 0.
static
int inputUmur() {
int umur = 0;
while (true) {
System.out.print("Umur:
");
if (input.hasNextInt()) {
umur = input.nextInt();
input.nextLine();
if (umur > 0) break;
else
System.out.println("Umur harus lebih dari 0.");
} else {
System.out.println("Masukkan angka yang valid.");
input.nextLine(); // buang
input tidak valid
}
}
return umur;
}