Days
Hours
Minutes
Seconds

Promo Grand Opening

15% OFF

Khusus Pelanggan Baru

Tutorial Java #12: Menghubungkan Java Dengan Database (JDBC)

Tentu, ini artikel tentang Tutorial Java #12: Menghubungkan Java Dengan Database.


 

 

Sebagian besar aplikasi bisnis modern memerlukan cara untuk menyimpan dan mengambil data secara persisten. Database adalah solusi utama untuk kebutuhan ini. Java menyediakan API standar yang kuat untuk berinteraksi dengan database relasional yang dikenal sebagai JDBC (Java Database Connectivity). JDBC memungkinkan Anda untuk terhubung ke berbagai jenis database (seperti MySQL, PostgreSQL, Oracle, SQL Server) menggunakan kode Java yang sama.

Dalam tutorial ini, kita akan membahas langkah-langkah dasar untuk menghubungkan aplikasi Java dengan database menggunakan JDBC. Kita akan menggunakan contoh sederhana dengan database MySQL, tetapi konsepnya berlaku umum untuk database lain.

 

Prasyarat:

 

Sebelum memulai, pastikan Anda memiliki:

  1. JDK (Java Development Kit) terinstal.
  2. Database relasional (misalnya, MySQL server berjalan).
  3. Driver JDBC untuk database Anda. Untuk MySQL, Anda memerlukan driver MySQL Connector/J. Anda bisa mengunduhnya dari situs web MySQL. Setelah diunduh, Anda akan mendapatkan file .jar (misalnya, mysql-connector-j-x.x.x.jar).

 

Langkah 1: Menyiapkan Database dan Tabel

 

Untuk contoh ini, mari buat database sederhana bernama kampus dan tabel bernama mahasiswa.

SQL

-- Buat database
CREATE DATABASE kampus;

-- Gunakan database
USE kampus;

-- Buat tabel mahasiswa
CREATE TABLE mahasiswa (
    id INT AUTO_INCREMENT PRIMARY KEY,
    nama VARCHAR(100) NOT NULL,
    nim VARCHAR(20) UNIQUE NOT NULL,
    jurusan VARCHAR(50)
);

-- Masukkan beberapa data contoh
INSERT INTO mahasiswa (nama, nim, jurusan) VALUES
('Andi Wijaya', '1901001', 'Teknik Informatika'),
('Budi Santoso', '1901002', 'Sistem Informasi'),
('Siti Aminah', '1901003', 'Teknik Komputer');

Pastikan Anda menjalankan skrip SQL ini di klien database Anda (misalnya, MySQL Workbench atau melalui terminal MySQL).

 

Langkah 2: Menambahkan Driver JDBC ke Proyek Anda

 

File JAR driver JDBC harus ditambahkan ke classpath proyek Java Anda.

  • Jika menggunakan IDE (seperti IntelliJ IDEA, Eclipse, NetBeans): Biasanya, Anda bisa mengklik kanan pada proyek Anda, pilih “Build Path” atau “Project Structure”, dan tambahkan JAR eksternal.
  • Jika kompilasi dari baris perintah: Anda perlu menyertakan -cp atau -classpath argumen saat menjalankan javac dan java.

Contoh untuk kompilasi dan menjalankan dari terminal (setelah driver.jar ada di folder yang sama):

javac -cp mysql-connector-j-x.x.x.jar:. Main.java

java -cp mysql-connector-j-x.x.x.jar:. Main

 

Langkah 3: Menulis Kode Java untuk Koneksi Database

 

Sekarang, kita akan menulis kode Java untuk:

  1. Memuat driver JDBC.
  2. Membuat koneksi ke database.
  3. Membuat dan menjalankan pernyataan SQL.
  4. Memproses hasil query.
  5. Menutup koneksi.
Java

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

public class Main {

    // Konfigurasi Database
    static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver"; // Untuk MySQL 8+
    static final String DB_URL = "jdbc:mysql://localhost:3306/kampus"; // Sesuaikan port dan nama database

    // Kredensial Database
    static final String USER = "root"; // Ganti dengan username database Anda
    static final String PASS = "password"; // Ganti dengan password database Anda

    public static void main(String[] args) {
        Connection conn = null; // Objek koneksi ke database
        Statement stmt = null;   // Objek untuk menjalankan perintah SQL

        try {
            // STEP 1: Registrasi Driver JDBC
            Class.forName(JDBC_DRIVER);

            // STEP 2: Buka Koneksi
            System.out.println("Menghubungkan ke database...");
            conn = DriverManager.getConnection(DB_URL, USER, PASS);
            System.out.println("Koneksi berhasil!");

            // STEP 3: Buat Statement
            System.out.println("Membuat statement...");
            stmt = conn.createStatement();
            String sql;

            // --- Contoh: Mengambil Data ---
            System.out.println("\n--- Data Mahasiswa ---");
            sql = "SELECT id, nama, nim, jurusan FROM mahasiswa";
            ResultSet rs = stmt.executeQuery(sql); // Menjalankan query SELECT

            // STEP 4: Memproses Hasil Query (ResultSet)
            while (rs.next()) {
                // Mengambil data berdasarkan nama kolom atau indeks kolom
                int id = rs.getInt("id");
                String nama = rs.getString("nama");
                String nim = rs.getString("nim");
                String jurusan = rs.getString("jurusan");

                // Menampilkan hasil
                System.out.println("ID: " + id + ", Nama: " + nama + ", NIM: " + nim + ", Jurusan: " + jurusan);
            }
            rs.close(); // Tutup ResultSet

            // --- Contoh: Menambahkan Data ---
            System.out.println("\n--- Menambahkan Mahasiswa Baru ---");
            sql = "INSERT INTO mahasiswa (nama, nim, jurusan) VALUES ('Dewi Lestari', '1901004', 'Sistem Komputer')";
            int affectedRows = stmt.executeUpdate(sql); // Menjalankan query INSERT, UPDATE, DELETE
            System.out.println(affectedRows + " baris ditambahkan.");

            // --- Contoh: Memperbarui Data ---
            System.out.println("\n--- Memperbarui Jurusan Mahasiswa ---");
            sql = "UPDATE mahasiswa SET jurusan = 'Teknik Industri' WHERE nim = '1901001'";
            affectedRows = stmt.executeUpdate(sql);
            System.out.println(affectedRows + " baris diperbarui.");

            // --- Contoh: Menghapus Data ---
            System.out.println("\n--- Menghapus Mahasiswa ---");
            sql = "DELETE FROM mahasiswa WHERE nim = '1901002'";
            affectedRows = stmt.executeUpdate(sql);
            System.out.println(affectedRows + " baris dihapus.");

            // Untuk verifikasi, ambil data lagi
            System.out.println("\n--- Data Mahasiswa Terbaru ---");
            sql = "SELECT id, nama, nim, jurusan FROM mahasiswa";
            rs = stmt.executeQuery(sql);
            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.println("ID: " + id + ", Nama: " + nama + ", NIM: " + nim + ", Jurusan: " + jurusan);
            }
            rs.close();

        } catch (SQLException se) {
            // Menangani kesalahan JDBC
            se.printStackTrace();
        } catch (Exception e) {
            // Menangani kesalahan Class.forName
            e.printStackTrace();
        } finally {
            // STEP 5: Tutup Sumber Daya (pastikan ini selalu dijalankan)
            try {
                if (stmt != null) stmt.close();
            } catch (SQLException se2) {
                // Tidak ada yang perlu dilakukan
            }
            try {
                if (conn != null) conn.close();
                System.out.println("\nKoneksi database ditutup.");
            } catch (SQLException se) {
                se.printStackTrace();
            }
        }
    }
}

 

Penjelasan Kode:

 

  1. import java.sql.*: Mengimpor semua kelas yang diperlukan dari paket java.sql.
  2. JDBC_DRIVER, DB_URL, USER, PASS: Konstanta untuk konfigurasi database Anda. Pastikan untuk menggantinya dengan informasi yang benar.
    • com.mysql.cj.jdbc.Driver adalah nama kelas driver untuk MySQL 8+. Untuk versi yang lebih lama mungkin com.mysql.jdbc.Driver.
    • jdbc:mysql://localhost:3306/kampus adalah URL koneksi. localhost bisa diganti dengan IP server database Anda. 3306 adalah port default MySQL. kampus adalah nama database.
  3. Class.forName(JDBC_DRIVER): Ini memuat kelas driver JDBC ke memori. Ini adalah langkah pertama yang krusial.
  4. DriverManager.getConnection(DB_URL, USER, PASS): Membuat koneksi aktual ke database.
  5. conn.createStatement(): Membuat objek Statement yang digunakan untuk mengirimkan perintah SQL ke database.
  6. stmt.executeQuery(sql): Digunakan untuk menjalankan perintah SQL SELECT. Mengembalikan objek ResultSet yang berisi baris-baris hasil.
  7. rs.next(): Memindahkan kursor ResultSet ke baris berikutnya. Mengembalikan true jika ada baris, false jika tidak.
  8. rs.getInt(), rs.getString(): Mengambil nilai dari kolom saat ini dari ResultSet berdasarkan tipe data.
  9. stmt.executeUpdate(sql): Digunakan untuk menjalankan perintah SQL INSERT, UPDATE, atau DELETE. Mengembalikan jumlah baris yang terpengaruh.
  10. try-catch-finally: Sangat penting untuk menangani SQLException (kesalahan database) dan memastikan bahwa koneksi dan statement ditutup (close()) di blok finally, bahkan jika terjadi error. Ini mencegah kebocoran sumber daya.

 

Kesimpulan

 

Menghubungkan aplikasi Java Anda dengan database menggunakan JDBC adalah keterampilan dasar yang harus dimiliki setiap pengembang Java. Dengan memahami konsep-konsep ini, Anda dapat membangun aplikasi yang mampu menyimpan dan mengelola data secara persisten, membuka pintu untuk berbagai jenis aplikasi bisnis dan enterprise.

Untuk aplikasi yang lebih kompleks, Anda mungkin ingin menjelajahi PreparedStatement (untuk keamanan SQL Injection dan kinerja), CallableStatement (untuk stored procedure), dan connection pooling (untuk manajemen koneksi yang efisien).

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_3ubmyt3ubmyt3ubm
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