Days
Hours
Minutes
Seconds

Promo Grand Opening

15% OFF

Khusus Pelanggan Baru

Tutorial Java #13: Operasi CRUD pada Database dengan Java (JDBC)

Tentu, ini artikel tentang Tutorial Java #13: CRUD (Create, Read, Update, Delete) Java.


 

 

Setelah Anda memahami cara menghubungkan Java dengan database menggunakan JDBC, langkah selanjutnya adalah menguasai operasi dasar yang paling sering dilakukan pada data: CRUD (Create, Read, Update, Delete). CRUD adalah singkatan yang merangkum empat fungsi fundamental dalam manajemen data. Memahami cara melakukan operasi ini adalah keterampilan inti bagi setiap pengembang Java yang bekerja dengan database.

Dalam tutorial ini, kita akan memperluas contoh dari tutorial sebelumnya (mahasiswa) untuk mendemonstrasikan setiap operasi CRUD secara terperinci.

 

Persiapan

 

Pastikan Anda telah memiliki prasyarat dari tutorial sebelumnya:

  • Database kampus dengan tabel mahasiswa.
  • Driver JDBC (misalnya, MySQL Connector/J) yang sudah ditambahkan ke proyek Anda.
  • Konfigurasi koneksi database yang benar (URL, username, password).

 

1. Operasi CREATE (Menambahkan Data)

 

Operasi CREATE atau “membuat” data dilakukan dengan menggunakan perintah SQL INSERT. Ini memungkinkan Anda untuk menambahkan baris baru ke dalam tabel.

Java

// Fungsi untuk menambahkan data mahasiswa baru
public void tambahMahasiswa(Connection conn, String nama, String nim, String jurusan) throws SQLException {
    String sql = "INSERT INTO mahasiswa (nama, nim, jurusan) VALUES (?, ?, ?)";
    
    try (PreparedStatement pstmt = conn.prepareStatement(sql)) {
        pstmt.setString(1, nama);
        pstmt.setString(2, nim);
        pstmt.setString(3, jurusan);
        int affectedRows = pstmt.executeUpdate();
        System.out.println(affectedRows + " baris berhasil ditambahkan.");
    }
}

Catatan: Kami menggunakan PreparedStatement di sini. Ini sangat disarankan karena mencegah serangan SQL Injection dan meningkatkan kinerja. Tanda tanya (?) adalah placeholder yang akan diisi oleh nilai dari metode setString(), setInt(), dll.

 

2. Operasi READ (Membaca Data)

 

Operasi READ atau “membaca” data adalah fungsi yang paling umum. Ini dilakukan dengan perintah SQL SELECT untuk mengambil data dari satu atau lebih tabel.

Java

// Fungsi untuk membaca semua data mahasiswa
public void bacaSemuaMahasiswa(Connection conn) throws SQLException {
    String sql = "SELECT id, nama, nim, jurusan FROM mahasiswa";
    
    try (Statement stmt = conn.createStatement();
         ResultSet rs = stmt.executeQuery(sql)) {
        
        System.out.println("--- Data Mahasiswa ---");
        while (rs.next()) {
            int id = rs.getInt("id");
            String nama = rs.getString("nama");
            String nim = rs.getString("nim");
            String jurusan = rs.getString("jurusan");
            System.out.printf("ID: %d, Nama: %s, NIM: %s, Jurusan: %s%n", id, nama, nim, jurusan);
        }
    }
}

Metode executeQuery() mengembalikan objek ResultSet yang berisi baris-baris data yang cocok dengan kriteria SELECT.

 

3. Operasi UPDATE (Memperbarui Data)

 

Operasi UPDATE atau “memperbarui” data digunakan untuk memodifikasi baris yang sudah ada di dalam tabel. Perintah SQL UPDATE digunakan untuk tujuan ini.

Java

// Fungsi untuk memperbarui data mahasiswa berdasarkan NIM
public void perbaruiMahasiswa(Connection conn, String nim, String namaBaru, String jurusanBaru) throws SQLException {
    String sql = "UPDATE mahasiswa SET nama = ?, jurusan = ? WHERE nim = ?";

    try (PreparedStatement pstmt = conn.prepareStatement(sql)) {
        pstmt.setString(1, namaBaru);
        pstmt.setString(2, jurusanBaru);
        pstmt.setString(3, nim);
        int affectedRows = pstmt.executeUpdate();
        System.out.println(affectedRows + " baris berhasil diperbarui.");
    }
}

Klausa WHERE sangat penting dalam operasi UPDATE untuk memastikan Anda hanya memperbarui baris yang dimaksud. Jika Anda tidak menggunakan WHERE, semua baris dalam tabel akan diperbarui.

 

4. Operasi DELETE (Menghapus Data)

 

Operasi DELETE atau “menghapus” data digunakan untuk menghapus baris dari tabel. Ini dilakukan dengan perintah SQL DELETE.

Java

// Fungsi untuk menghapus data mahasiswa berdasarkan NIM
public void hapusMahasiswa(Connection conn, String nim) throws SQLException {
    String sql = "DELETE FROM mahasiswa WHERE nim = ?";
    
    try (PreparedStatement pstmt = conn.prepareStatement(sql)) {
        pstmt.setString(1, nim);
        int affectedRows = pstmt.executeUpdate();
        System.out.println(affectedRows + " baris berhasil dihapus.");
    }
}

Sama seperti UPDATE, penggunaan klausa WHERE sangatlah penting untuk menghindari penghapusan seluruh data dalam tabel.

 

Contoh Penggunaan Lengkap

 

Berikut adalah contoh program lengkap yang mengintegrasikan semua fungsi CRUD di atas.

Java

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class MainCRUD {

    // Konfigurasi Database
    static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";
    static final String DB_URL = "jdbc:mysql://localhost:3306/kampus";
    static final String USER = "root";
    static final String PASS = "password";

    public static void main(String[] args) {
        try (Connection conn = DriverManager.getConnection(DB_URL, USER, PASS)) {
            MainCRUD app = new MainCRUD();

            // 1. READ: Tampilkan semua data
            app.bacaSemuaMahasiswa(conn);

            // 2. CREATE: Tambahkan data baru
            System.out.println("\n--- Menambahkan Mahasiswa Baru ---");
            app.tambahMahasiswa(conn, "Bambang Prakoso", "1901005", "Teknik Mesin");

            // 3. READ: Tampilkan lagi untuk verifikasi
            System.out.println("\n--- Data Setelah Penambahan ---");
            app.bacaSemuaMahasiswa(conn);

            // 4. UPDATE: Perbarui data
            System.out.println("\n--- Memperbarui Data Mahasiswa NIM 1901001 ---");
            app.perbaruiMahasiswa(conn, "1901001", "Andi Pratama", "Ilmu Komputer");

            // 5. READ: Tampilkan lagi untuk verifikasi
            System.out.println("\n--- Data Setelah Pembaruan ---");
            app.bacaSemuaMahasiswa(conn);

            // 6. DELETE: Hapus data
            System.out.println("\n--- Menghapus Data Mahasiswa NIM 1901003 ---");
            app.hapusMahasiswa(conn, "1901003");

            // 7. READ: Tampilkan lagi untuk verifikasi
            System.out.println("\n--- Data Setelah Penghapusan ---");
            app.bacaSemuaMahasiswa(conn);

        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    // ... (letakkan semua fungsi CRUD di sini)
    public void tambahMahasiswa(Connection conn, String nama, String nim, String jurusan) throws SQLException {
        String sql = "INSERT INTO mahasiswa (nama, nim, jurusan) VALUES (?, ?, ?)";
        try (PreparedStatement pstmt = conn.prepareStatement(sql)) {
            pstmt.setString(1, nama);
            pstmt.setString(2, nim);
            pstmt.setString(3, jurusan);
            int affectedRows = pstmt.executeUpdate();
            System.out.println(affectedRows + " baris berhasil ditambahkan.");
        }
    }
    public void bacaSemuaMahasiswa(Connection conn) throws SQLException {
        String sql = "SELECT id, nama, nim, jurusan FROM mahasiswa";
        try (Statement stmt = conn.createStatement();
             ResultSet rs = stmt.executeQuery(sql)) {
            System.out.println("--- Data Mahasiswa ---");
            while (rs.next()) {
                int id = rs.getInt("id");
                String nama = rs.getString("nama");
                String nim = rs.getString("nim");
                String jurusan = rs.getString("jurusan");
                System.out.printf("ID: %d, Nama: %s, NIM: %s, Jurusan: %s%n", id, nama, nim, jurusan);
            }
        }
    }
    public void perbaruiMahasiswa(Connection conn, String nim, String namaBaru, String jurusanBaru) throws SQLException {
        String sql = "UPDATE mahasiswa SET nama = ?, jurusan = ? WHERE nim = ?";
        try (PreparedStatement pstmt = conn.prepareStatement(sql)) {
            pstmt.setString(1, namaBaru);
            pstmt.setString(2, jurusanBaru);
            pstmt.setString(3, nim);
            int affectedRows = pstmt.executeUpdate();
            System.out.println(affectedRows + " baris berhasil diperbarui.");
        }
    }
    public void hapusMahasiswa(Connection conn, String nim) throws SQLException {
        String sql = "DELETE FROM mahasiswa WHERE nim = ?";
        try (PreparedStatement pstmt = conn.prepareStatement(sql)) {
            pstmt.setString(1, nim);
            int affectedRows = pstmt.executeUpdate();
            System.out.println(affectedRows + " baris berhasil dihapus.");
        }
    }
}

 

Kesimpulan

 

Menguasai operasi CRUD adalah pondasi untuk membangun aplikasi berbasis data. Dengan menggunakan JDBC di Java, Anda dapat berinteraksi dengan database secara efisien dan aman. Meskipun contoh ini menggunakan Statement dan PreparedStatement dasar, untuk aplikasi produksi, penggunaan PreparedStatement adalah praktik terbaik karena menawarkan keamanan yang lebih baik dan performa yang optimal.

Wawasan Terbaru

Gemini_Generated_Image_wfw5uwwfw5uwwfw5
Mengenal Dunia Grafis: Dari Piksel Hingga Vektor, Kekuatan Visual di Era Digital
Gemini_Generated_Image_b6dimfb6dimfb6di
Mengenal Foundation: Kerangka Kerja Front-End Profesional untuk Web Responsif
Gemini_Generated_Image_sx3ztpsx3ztpsx3z
CSS
Mempercantik Website dengan CSS: Seniman di Balik Tampilan Web 🎨
Gemini_Generated_Image_e013qke013qke013
Mengenal HTML: Fondasi dari Setiap Halaman Website 🌐
Gemini_Generated_Image_ldki4nldki4nldki
Menyelami Dunia Coding: Seni Berbicara dengan Komputer
Gemini_Generated_Image_dpvliydpvliydpvl
Menguasai GIT: Fondasi Penting dalam Dunia Pengembangan Perangkat Lunak
Gemini_Generated_Image_sqcib9sqcib9sqci
Tutorial Python #12: Mengenal Jenis-jenis Operator dalam Python
Gemini_Generated_Image_o1bw3do1bw3do1bw
Memahami Tipe Data Dictionary dalam Python
Gemini_Generated_Image_ko4ixfko4ixfko4i
Mengenal Tipe Data Set dalam Python
Gemini_Generated_Image_1xop7m1xop7m1xop
Tuple dalam Python: Pengenalan dan Tutorial

Wawasan Serupa

Gemini_Generated_Image_u9yhx3u9yhx3u9yh
Gemini_Generated_Image_kl3k6wkl3k6wkl3k
Gemini_Generated_Image_ygm1bmygm1bmygm1
Gemini_Generated_Image_llan5yllan5yllan

Ceritakan Detail Proyekmu

Mulai dari 30K aja, solusi IT kamu langsung jalan tanpa drama.

Kata Mereka Tentang Solusi Coding

Dipercaya oleh lebih dari 200++ client untuk menyelesaikan proyeknya dengan total 250++ proyek dari berbagai jenis proyek