BAB 11 - Pengaksesan Basis Data - TeachMeSoft

BAB 11 - Pengaksesan Basis Data

BAB 11 - Pengaksesan Basis Data

Capaian dan Indikator


1. Capaian Pembelajaran

Setelah mempelajari bab ini , mahasiswa diharapkan :
  1. Memahami proses koneksi database dengan aplikasi
  2. Memahami cara membuat database dengan MySQL
  3. Memahami cara menyimpan dan mengambil data dari/ ke database

2. Indikator

  1. Mahasiswa mampu mengimplementasikan koneksi database dengan aplikasi yang di buat.
  2. Mahasiswa mampu membuat database dengan MySQL
  3. Mahasiswa mampu mengimplementasikan proses penyimpanan dan pembacaan data dari/ ke database.

Uraian Materi


Pada pembahasan di bab sebelumnya, kita telah berhasil membuat aplikasi berbasis GUI yang dapat menyimpan dan menampilkan data ke dalam tabel. Akan tetapi, masih ada kekurangan pada aplikasi tersebut, yakni data yang disimpan dalam aplikasi tersebut masih bersifat volatile, artinya ketika aplikasi ditutup, maka data yang tadinya disimpan pun hilang.

Pada praktiknya, sebuah aplikasi seringkali membutuhkan sistem penyimpanan data yang rapi dan  terorganisasi dengan baik. Oleh karena itu, penggunaan basis data sangat diperlukan untuk dapat mengatasi hal tersebut. Integrasi antara aplikasi berbasis Java dengan DBMS (Database Management  System) merupakan hal yang sudah lazim, dan dapat di lakukan menggunakan library jdbc yang biasanya sudah tersedia dalam IDE Netbeans. Pada bab ini, kita akan membahas mengenai proses  integrasi antara aplikasi Java dengan DBMS MySQL.


A. Persiapan Basis Data

Untuk menggunakan basis data MySQL, salah satu alternatif yang mudah adalah dengan menginstall aplikasi XAMPP yang di dalam nya telah terintegrasi fitur phpMyAdmin yang merupakan platform MySQL berbasis GUI,  sehingga memudahkan kita untuk merancang dan membuat basis data relasional. Anda dapat mengunduh aplikasi tersebut pada link: https://www.apachefriends.org /download.html.

Setelah Anda berhasil mengunduh dan melakukan instalasi XAMPP pada komputer Anda, maka buka XAMPP-Control Panel, lalu tekan tombol "Start" pada fitur "Apache" dan "MySQL""seperti yang terlihat pada gambar di bawah.




Setelah itu, buka aplikasi web browser pada komputer Anda, lalu ketik URL: localhost/phpmyadmin. Apabila Anda masuk ke halaman mesin pencari Google, coba nonaktifkan dahulu sementara jaringan internet Anda. Jika sudah, Anda bisa mulai membuat basis data baru dan membuat tabel baru seperti di bawah ini. Pada contoh ini, kita membuat basis data dengan nama "dataKaryawan" dan membuat sebuah tabel bemama "Karyawan" yang terdiri dari delapan buah kolom. Perhatikan gambar dibawah.



Kemudian buatlah kedelapan kolom pada tabel tersebut yang terdiri dari: ID, NamaLengkap , TempatLahir, TglLahir, BulanLahir, TahunLahir, Pendidikan, dan Status. Jadikan kolom/ atribut ID sebagai primary key dan set Auto increment.



Tekan tombol "Go" akan tampil seperti gambar berikut



Jika sudah, maka selanjutnya kita lakukan pengetikan kode di dalam Java.



B. Membangun Koneksi dengan JDBC

Pada package Proyek_ 1 yang telah kita buat pada bab sebelumnya, Lihat tab "Projects" pada bagian kiri Netbeans, lalu klik kanan pada "Libraries'', kemudian pilih "Add Library". Setelah itu, pilih "MySQL JDBC Driver" pada kolom "Available Libraries".




Berikutnya, buka menu "File New File",



lalu pilih "Java" pada bagian Categories dan pilih "Java Class" pada bagian File Types,



lalu klik tombol "Next". Setelah itu, pada bagian Class Name, isi dengan "KoneksiDB".




Pada kode program dari kelas KoneksiDB, kita tambahkan kode program seperti di bawah ini:
package_proyek_1;

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

public class KoneksiDB{
 //Membuat variabel bertipe connection
 private static Connection koneksi;
 
 public static Connection getKoneksi(){
  //method ini berfungsi untuk membuat koneksi ke MYSQL
  if(koneksi == null){   
   try{
    String url = "jdbc:mysql://localhost:3306/datakaryawan";
    String username = "root";
    String password = "";
    
    DriverManager.registerDriver(new com.mysql.jdbc.Driver());
    
    koneksi = DriverManager.getConnection(url,username,password);
   }catch (SQLException e){
    System.out.println("Gagal membuat koneksi");
   }
  }
   return koneksi;
  }
}

Keterangan program :



Pada kode program di atas, kita deklarasikan sebuah variabel bertipe Connection. Variabel ini kita beri nama "koneksi".  Kemudian kita buat sebuah method bemama get Koneksi ( ) yang berfungsi untuk membuat koneksi antara aplikasi Java yang kita buat dengan DBMS MySQL pada phpMyAdmin. Pada method tersebut, kita menginisialisasi tiga buah variabel, yakni url, username, dan password. Variabel url berfungsi menyimpan lokasi penyimpanan database di dalam local host. Variabel username digunakan untuk menyimpan usemame dari DBMS yang kita gunakan, dan variabel password digunakan untuk menyimpan password dari DBMS yang kita gunakan. Apabila tidak ada password yang diset, maka variabel password cukup diisi dengan karakter kosong (" ").

Selanjutnya, kita tambahkan baris kode program di bawah ini untuk menyimpan data ke database pada method jButtonlActionPer formed ( ). Letakkan kode di bawah ini di bawah kode program yang sudah ada pada method jButtonlAction Performed ( ) .

try{
 Connection conn = KoneksiDB.getKoneksi();
 
 String sql = "INSERT INTO KARYAWAN(NamaLengkap,TempatLahir,Tgllahir,"
  + "BulanLahir,TahunLahir,Pendidikan,Status) VALUES (?,?,?,?,?,?,?)";
  
 PreparedStatement p = conn.prepareStatement(sql);
 
 p.setString(1, NamaLengkap); //kolom.ke-1 diset auto increment
 p.setString(2, TempatLahir);
 p.setInt(3, tgl);
 p.setInt(4, bln);
 p.setInt(5, thn);
 p.setString(6, Pendidikan);
 p.setString(7, Status);
 
 p.executeUpdate();
 p.close();
}catch(SQLException e){
 System.out.println("Terjadi error");
}


Keterangan program :



Apabila koneksi database berhasil dibangun dan proses INSERT query berhasil dilakukan, maka  seharusnya data yang di inputkan melalui aplikasi Java yang kita buat juga tersimpan di dalam database MySQL. Perhati kan gambar di bawah ini.




Namun , jika Anda cermati, ternyata ada sedikit masalah pada aplikasi yang telah kita bangun sejauh ini. Ketika Anda menutup aplikasi tersebut, lalu membukanya lagi, ternyata data karyawan yang  telah kita simpan sebelumnya tidak tampil pada tabel. Kenapa hal ini bisa terjadi? Karena kita belum melakukan load data dari database setiap kali aplikasi dibuka.

Oleh karena itu, kita perlu membuat sebuah method baru lagi di dalam kelas FormDataKaryawan  yang berfungsi untuk melakukan load data dari database ke dalam tabel.
public void loadData(){
 try{
  //Membuat koneksi
  Connection conn = KoneksiDB.getKoneksi();
  Statement s = conn.createStatement();
  
  //Membuat query SELECT
  String sql = "SELEC * FROM KARYAWAN";
  ResultSet r = s.executeQuery(sql);
  
  //Membaca data di dalam database baris per baris
  while(r.next()){
   //Membuat objek 'obj' untuk menampung data yang dibaca dari DB
   Object[] obj = new Object[7];
   obj[0] = r.getString("NamaLengkap");
   obj[1] = r.getString("NamaLengkap");
   obj[2] = r.getInt("TglLahir");
   obj[3] = r.getInt("BulanLahir");
   obj[4] = r.getInt("TahunLahir");
   obj[5] = r.getString("Pendidikan");
   obj[6] = r.getString("Status");
   
   //tampilkan satu baris data ke dalam tabel
   model.addRow(obj);
   
  }
  
  //menutup hasil penelusuran dan koneksi
  r.close();
  s.close();
 }catch(SQLException e){
  System.out.println("Terjadi error");
 }
}



Keterangan program :



Setelah itu, kita panggil method loadData ( ) tersebut di dalam  constructor
public FormDataKaryawan ().

public FormDataKaryawan(){
 initComponents();
 
 //Membuat Table Model
 model = (DefaultTableModel) jTable1.getModel1();
 
 //Menambahkan TableModel ke jTable1
 jTable1.setModel(model);
 
 //Melakukan load data dari database
 loadData();
}

Maka, kini  setiap kali kita membuka aplikasi FormDataKaryawan, secara otomatis semua
data yang tersimpan di dalam database akan dibaca dan ditampilkan di dalam tabel.


Keterangan program :



Output:





Disqus comments