Kode Java CRUD siswa

Kode Java CRUD siswa dengan struktur tetap mudah dipahami untuk pemula:

java
import java.util.*; public class CrudSiswa { 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; } } static List<Siswa> daftarSiswa = new ArrayList<>(); static Scanner input = new Scanner(System.in); 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!"); } } } 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."); } 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()); } } 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."); } } } 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."); } } } 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; } }

Penyederhanaan yang dilakukan:

  • Menyingkat menu menggunakan switch dengan arrow (->).

  • Menggabungkan beberapa baris input menjadi satu.

  • Menambahkan toString() di kelas Siswa 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;
}


*

Post a Comment (0)
Previous Post Next Post