Membuat Aplikasi CRUD Data Siswa dengan Java (Console + Ekspor CSV)

Membuat Aplikasi CRUD Data Siswa dengan Java (Console + Ekspor CSV)

Dalam dunia pemrograman, aplikasi CRUD (Create, Read, Update, Delete) adalah dasar yang penting untuk mengelola data. Pada artikel kali ini, kita akan membuat aplikasi CRUD untuk data siswa menggunakan bahasa pemrograman Java. Aplikasi ini akan mencakup kemampuan untuk menambah, melihat, mengubah, dan menghapus data siswa, serta menyimpan data siswa ke file CSV.

Membuat Aplikasi CRUD Data Siswa dengan Java (Console + Ekspor CSV)
Membuat Aplikasi CRUD Data Siswa dengan Java (Console + Ekspor CSV)

🧾 Data Siswa yang Dikelola:

  1. NIS (Nomor Induk Siswa)

  2. Nama Lengkap

  3. Jenis Kelamin

  4. Tempat, Tanggal Lahir

  5. Kelas

  6. Jurusan

  7. Alamat

  8. No. HP Orang Tua


🖥️ Persiapan Lingkungan Pengembangan

Untuk mengembangkan aplikasi ini, Anda memerlukan IDE Java seperti NetBeans atau Eclipse. Berikut adalah langkah-langkahnya:

  1. Install NetBeans (atau IDE pilihan Anda).

  2. Buat Project Baru dengan memilih Java Application.

  3. Buat file baru bernama CrudDataSiswa.java dan paste kode yang diberikan di bawah ini.


📑 Kode Program CRUD Data Siswa

Berikut adalah kode lengkap aplikasi CRUD Data Siswa di Java yang dapat dijalankan di console dan dilengkapi dengan fitur ekspor ke file CSV.

1. Kode Program Java

import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Scanner;

public class CrudDataSiswa {

    static class Siswa {
        String nis, namaLengkap, jenisKelamin, tempatTanggalLahir, kelas, jurusan, alamat, noHpOrtu;

        Siswa(String nis, String namaLengkap, String jenisKelamin, String tempatTanggalLahir,
              String kelas, String jurusan, String alamat, String noHpOrtu) {
            this.nis = nis;
            this.namaLengkap = namaLengkap;
            this.jenisKelamin = jenisKelamin;
            this.tempatTanggalLahir = tempatTanggalLahir;
            this.kelas = kelas;
            this.jurusan = jurusan;
            this.alamat = alamat;
            this.noHpOrtu = noHpOrtu;
        }
    }

    static ArrayList<Siswa> daftarSiswa = new ArrayList<>();
    static Scanner input = new Scanner(System.in);

    public static void main(String[] args) {
        int pilihan;

        do {
            System.out.println("\n===== APLIKASI CRUD DATA SISWA =====");
            System.out.println("1. Tambah Data Siswa");
            System.out.println("2. Lihat Data Siswa");
            System.out.println("3. Ubah Data Siswa");
            System.out.println("4. Hapus Data Siswa");
            System.out.println("5. Simpan ke File CSV");
            System.out.println("6. Keluar");
            System.out.print("Pilih menu (1-6): ");
            pilihan = input.nextInt();
            input.nextLine(); // Menangani newline yang tertinggal setelah input

            switch (pilihan) {
                case 1 -> tambahSiswa();
                case 2 -> lihatSiswa();
                case 3 -> ubahSiswa();
                case 4 -> hapusSiswa();
                case 5 -> simpanKeCSV();
                case 6 -> System.out.println("Terima kasih telah menggunakan aplikasi.");
                default -> System.out.println("Pilihan tidak valid!");
            }
        } while (pilihan != 6);
    }

    static void tambahSiswa() {
        System.out.print("Masukkan NIS: ");
        String nis = input.nextLine();
        System.out.print("Masukkan Nama Lengkap: ");
        String nama = input.nextLine();
        System.out.print("Masukkan Jenis Kelamin (L/P): ");
        String jk = input.nextLine();
        System.out.print("Masukkan Tempat, Tanggal Lahir: ");
        String ttl = input.nextLine();
        System.out.print("Masukkan Kelas: ");
        String kelas = input.nextLine();
        System.out.print("Masukkan Jurusan: ");
        String jurusan = input.nextLine();
        System.out.print("Masukkan Alamat: ");
        String alamat = input.nextLine();
        System.out.print("Masukkan No. HP Orang Tua: ");
        String noHp = input.nextLine();

        daftarSiswa.add(new Siswa(nis, nama, jk, ttl, kelas, jurusan, alamat, noHp));
        System.out.println("Data siswa berhasil ditambahkan!");
    }

    static void lihatSiswa() {
        if (daftarSiswa.isEmpty()) {
            System.out.println("Belum ada data siswa.");
        } else {
            System.out.println("\n=== DAFTAR SISWA ===");
            int no = 1;
            for (Siswa s : daftarSiswa) {
                System.out.printf("No            : %d%n", no++);
                System.out.println("NIS           : " + s.nis);
                System.out.println("Nama          : " + s.namaLengkap);
                System.out.println("Jenis Kelamin : " + s.jenisKelamin);
                System.out.println("TTL           : " + s.tempatTanggalLahir);
                System.out.println("Kelas         : " + s.kelas);
                System.out.println("Jurusan       : " + s.jurusan);
                System.out.println("Alamat        : " + s.alamat);
                System.out.println("No. HP Ortu   : " + s.noHpOrtu);
                System.out.println("----------------------------------------");
            }
        }
    }

    static void ubahSiswa() {
        lihatSiswa();
        if (!daftarSiswa.isEmpty()) {
            System.out.print("Masukkan nomor siswa yang ingin diubah: ");
            int index = input.nextInt() - 1;
            input.nextLine(); // Menangani newline yang tertinggal setelah input

            if (index >= 0 && index < daftarSiswa.size()) {
                System.out.print("Masukkan NIS baru: ");
                String nis = input.nextLine();
                System.out.print("Masukkan Nama Lengkap baru: ");
                String nama = input.nextLine();
                System.out.print("Masukkan Jenis Kelamin baru: ");
                String jk = input.nextLine();
                System.out.print("Masukkan TTL baru: ");
                String ttl = input.nextLine();
                System.out.print("Masukkan Kelas baru: ");
                String kelas = input.nextLine();
                System.out.print("Masukkan Jurusan baru: ");
                String jurusan = input.nextLine();
                System.out.print("Masukkan Alamat baru: ");
                String alamat = input.nextLine();
                System.out.print("Masukkan No. HP Ortu baru: ");
                String noHp = input.nextLine();

                daftarSiswa.set(index, new Siswa(nis, nama, jk, ttl, kelas, jurusan, alamat, noHp));
                System.out.println("Data siswa berhasil diubah!");
            } else {
                System.out.println("Nomor tidak valid!");
            }
        }
    }

    static void hapusSiswa() {
        lihatSiswa();
        if (!daftarSiswa.isEmpty()) {
            System.out.print("Masukkan nomor siswa yang ingin dihapus: ");
            int index = input.nextInt() - 1;
            input.nextLine(); // Menangani newline yang tertinggal setelah input

            if (index >= 0 && index < daftarSiswa.size()) {
                daftarSiswa.remove(index);
                System.out.println("Data siswa berhasil dihapus!");
            } else {
                System.out.println("Nomor tidak valid!");
            }
        }
    }

    static void simpanKeCSV() {
        try (FileWriter writer = new FileWriter("data_siswa.csv")) {
            writer.append("No,NIS,Nama Lengkap,Jenis Kelamin,Tempat, Tanggal Lahir,Kelas,Jurusan,Alamat,No. HP Orang Tua\n");
            int no = 1;
            for (Siswa s : daftarSiswa) {
                writer.append(String.format("%d,%s,%s,%s,%s,%s,%s,%s,%s\n", no++, s.nis, s.namaLengkap,
                        s.jenisKelamin, s.tempatTanggalLahir, s.kelas, s.jurusan, s.alamat, s.noHpOrtu));
            }
            System.out.println("Data berhasil disimpan ke file: data_siswa.csv");
        } catch (IOException e) {
            System.out.println("Terjadi kesalahan saat menyimpan file: " + e.getMessage());
        }
    }
}


💾 Menyimpan Data ke File CSV

Fitur ini memungkinkan kita untuk menyimpan data siswa ke dalam format file CSV (data_siswa.csv). Anda bisa membuka file ini menggunakan Microsoft Excel atau Google Sheets untuk melihat dan mengelola data siswa.


💡 Kesimpulan

Dengan menggunakan Java, kita dapat membuat aplikasi CRUD sederhana namun efektif untuk mengelola data siswa. Program ini memberikan pengalaman langsung dalam mengelola data menggunakan operasi dasar seperti tambah, lihat, ubah, hapus, dan ekspor ke file CSV.

Apakah Anda ingin mengubah program ini menjadi versi GUI menggunakan Java Swing atau menambahkan fitur pencarian dan filter data?

*

Post a Comment (0)
Previous Post Next Post