Laporan praktikum modul 6 pemrogrman database dengan jdbc

29
LAPORAN PRAKTIKUM BAHASA PEMROGRAMAN 2 MODUL VI PEMROGRAMAN DATABASE DENGAN JDBC DISUSUN OLEH NAMA : DEVI NIM : 2012081043 KELAS : TI2012A

Transcript of Laporan praktikum modul 6 pemrogrman database dengan jdbc

Page 1: Laporan praktikum modul 6 pemrogrman database dengan jdbc

LAPORAN PRAKTIKUMBAHASA PEMROGRAMAN 2

MODUL VIPEMROGRAMAN DATABASE DENGAN JDBC

DISUSUN OLEHNAMA : DEVINIM : 2012081043KELAS : TI2012A

LABORATORIUM KOMPUTERFAKULTAS ILMU KOMPUTER

UNIVERSITAS KUNINGAN2014

Page 2: Laporan praktikum modul 6 pemrogrman database dengan jdbc

I. DASAR TEORI

Mengenal JDBC

Java Database Connectivity adalah API yang digunakan Java untuk

melakukan koneksi dengan aplikasi lain atau dengan berbagai macam

database. JDBC memungkinkan kita untuk membuat aplikasi Java yang

melakukan tiga hal: konek ke sumber data, mengirimkan query dan statement

ke database, menerima dan mengolah resultset yang diperoleh dari database.

JDBC mempunyai empat komponen :

1. JDBC API

JDBC API menyediakan metode akses yang sederhana ke sumber data

relational (RDBMS) menggunakan pemrograman Java. dengan

menggunakan JDBC API, kita bisa membuat program yang dapat

mengeksekusi SQL, menerima hasil ResultSet, dan mengubah data dalam

database. JDBC API juga mempunyai kemampuan untuk berinteraksi

dengan lingkungan terdistribusi dari jenis sumber data yang berbeda-beda.

JDBC API adalah bagian dari Java Platform yang disertakan dalam library

JDK maupun JRE. JDBC API sekarang ini sudah mencapai versi 4.0 yang

disertakan dalan JDK 6.0. JDBC API 4.0 dibagi dalam dua package yaitu :

java.sql dan javax.sql.

2. JDBC Driver Manager

Class DriverManager dari JDBC bertugas untuk mendefisikan object-

object yang dapat digunakan untuk melakukan koneksi ke sebuah sumber

data. Secara tradisional DriverManager telah menjadi tulang punggung

arsitektur JDBC.

3. JDBC Test Suite

JDBC Test Suite membantu kita untuk mencara driver mana yang

cocok digunakan untuk melakukan sebuah koneksi ke sumber data

tertentu. Tes yang dilakukan tidak memerlukan resource besar ataupun tes

yang komprehensif, namun cukup tes-tes sederhana yang memastikan

fitur-fitur penting JDBC dapat berjalan dengan lancar.

4. JDBC-ODBC Bridge

Page 3: Laporan praktikum modul 6 pemrogrman database dengan jdbc

Brige ini menyediakan fasilitas JDBC untuk melakukan koneksi ke

sumber data menggunakan ODBC (Open DataBase Connectivity) driver.

Sebagai catatan, anda perlu meload driver ODBC di setiap komputer client

untuk dapat menggunakan bridge ini. Sebagai konsekuensinya, cara ini

hanya cocok dilakukan di lingkungan intranet dimana isu instalasi tidak

menjadi masalah.

Dengan keempat komponen yang dipunyainya, JDBC menjadi tools yang

dapat diandalkan untuk melakukan koneksi, mengambil data dan merubah

data dari berbagai macam sumber data. Modul ini hanya akan membahas dua

komponen pertama dari keempat komponen yang dipunyai oleh JDBC, yaitu

JDBC API dan DriverManager. Sumber data yang digunakan adalah

Relational Database.

Langkah-Langkah Pemrograman JDBC

Pada pemrograman Java dengan menggunakan JDBC, ada beberapa langkah

yang secara umum harus dilakukan sehingga aplikasi tersebut dapat

berinteraksi dengan database server.

Langkah-langkah untuk berinteraksi dengan database server dengan

menggunakan JDBC adalah sebagai berikut :

1. Mengimpor package java.sql

2. Memanggil Driver JDBC

3. Membangun Koneksi

4. Membuat Statement

5. Melakukan Query

6. Memproses Hasil

7. Menutup Koneksi

8. Penanganan Error

Mengimpor package java.sql

Pertama-tama yang harus dilakukan sebelum Anda membuat program JDBC

adalah mengimpor package java.sql terbih dahulu, karena di dalam package

Page 4: Laporan praktikum modul 6 pemrogrman database dengan jdbc

java.sql tersebut terdapat kelas-kelas yang akan digunakan dalam proses-

proses berintekasi dengan database server misalnya kelas DriverMaganer,

Connection, dan ResultSet.

Hal ini sangat penting dilakukan karena bagi pemula seringkali lupa untuk

mengimpor package yang kelas-kelas yang akan digunakan terdapat di

dalamnya, sehingga mengakibatkan kegagalan dalam mengkompile program

Java.

Adapun listing untuk mengimpor package java.sql adalah sebagai berikut :

Import java.sql.*;

Listing ini dituliskan sebelum Anda menulis kelas.

Memanggil Driver JDBC

Langkah pertama untuk melakukan koneksi dengan database server adalah

dengan memanggil JDBC Driver dari database server yang kita gunakan.

Driver adalah library yang digunakan untuk berkomunikasi dengan database

server. Driver dari setiap database server berbeda-beda, sehingga Anda harus

menyesuaikan Driver JDBC sesuai dengan database server yang Anda

gunakan.

Berikut ini adalah listing program untuk memanggil driver JDBC.

Class.forName(namaDriver);

atau

Class.forName(namaDriver).newInstance();

Kedua cara di atas memiliki fungsi yang sama yaitu melakukan registrasi class

driver dan melakukan intansiasi. Apabila driver yang dimaksud tidak

ditemukan, maka program akan menghasilkan exception berupa

ClassNotFoundException. Untuk menghasilkan exception apabila driver

tidak ditemukan, maka diperlukan penambahan try-catch. Adapun cara

menambahkan try-catch untuk penanganan error apabila driver tidak

ditemukan adalah sebagai berikut :

Try {

Class.forName(namaDriver);

Page 5: Laporan praktikum modul 6 pemrogrman database dengan jdbc

} catch (ClassNotFoundException cnfe) {

... Penanganan Error ClassNotFoundException

}

Contoh listing memanggil driver untuk database server menggunakan MySQL

adalah :

try {

Class.forName(“com.mysql.jdbc.Driver”);

} catch (ClassNotFoundException cnfe) {

System.out.println(“Pesan Error : “ + cnfe)

}

Dari contoh listing di atas dapat dijelaskan bahwa apabila driver yang

dipanggil tidak ditemukan, maka program akan menampilkan pesan pada

consule dengan isi pesan adalah “Pesan Error :

java.lang.ClassNotFoundException : com.mysql.jdbc.Driver”. Penanganan

error sangat penting dilakukan karena dapat membantu kita dalam mengetahui

kesalahan-kesalahan yang terjadi dalam menjalankan program sehingga kita

dapat mengatasi kesalahan-kesalahan tersebut.

Berikut ini adalah daftar nama-nama driver dari beberapa database server yang

sering digunakan.

Database

Server

Nama Driver

JDBC-

ODBC

sun.jdbc.odbc.JdbcOdbcDri

ver

MySQL com.mysql.jdbc.Driver

PostgreSQ

L

org.postgresql.Driver

Microsoft

SQLServer

com.microsoft.jdbc.sqlserve

r.SQLServerDriver

Oracle oracle.jdbc.driver.OracleDri

ver

Page 6: Laporan praktikum modul 6 pemrogrman database dengan jdbc

IBM DB2 COM.ibm.db2.jdbc.app.DB

2Driver

Membangun Koneksi

Setelah melakukan pemanggilan terhadap driver JDBC, langkah selanjutnya

adalah membangun koneksi dengan menggunakan interface Connection.

Object Connection yang dibuat untuk membangun koneksi dengan database

server tidak dengan cara membuat object baru dari interface Connection

melainkan dari class DriverManager dengan menggunakan methode

getConnection().

Connection koneksi = DriverManager.getConnection(<argumen>)

Untuk menangani error yang mungkin terjadi pada proses melakukan koneksi

dengan database maka ditambahkan try-catch. Exception yang akan dihasilkan

pada proses ini adalah berupa SQLException. Adapun cara penulisan

listingnya adalah sebagai berikut :

try {

... koneksi database

} catch (SQLException sqle){

... penanganan error koneksi

}

Ada beberapa macam argumen yang berbeda dari methode getConnection()

yang dipanggil dari DriverManager, yaitu :

getConnection(String url)

Pada methode kita hanya memerlukan argumen URL, sedangkan untuk data

user dan password sudah diikutkan secara langsung pada URL sehingga tidak

perlu lagi secara terpisah mendefinisikan data user dan password.

Adapun penulisan nilai URL dari methode getConnection(String url) adalah

sebagai berikut :

jdbc:<DBServer>://[Host][:Port]/<namaDB>?

<user=User>&<password=Pasword>

Page 7: Laporan praktikum modul 6 pemrogrman database dengan jdbc

Misalkan kita menggunakan database server berupa MySQL dengan

spesifikasi menggunakan host adalah localhost dan port default (3306), nama

database adalah Database, nama user adalah adi, dan password adalah

purnomo. Maka penulisan URL adalah sebagai berikut :

jdbc:mysql://localhost:3306/Dbase?user=adi&password=pasw

Berikut ini contoh penggunaan methode ini didalam program :

try {

String url = “jdbc:mysql://localhost:3306/Dbase? user=adi&password=pas”;

Connection koneksi = DriverManager.getConnection(url);

System.out.prinln(“Proses apabila koneksi sukses”);

} catch (SQLException sqle) {

System.out.println(“Proses apabila koneksi gagal dilakukan”);

}

getConnection(String url, Properties info)

Pada methode ini memerlukan URL dan sebuah object Properties. Sebelum

menggunakan methode ini, Anda harus melakukan import package berupa

java.util.*, ini dikarenakan object Properties terdapat pada package tersebut.

Object Properties berisikan spesifikasi dari setiap parameter database misalnya

user name, password, autocommit, dan sebagainya.

Berikut ini contoh penggunaan methode ini didalam program :

try {

String url = “jdbc:mysql://localhost:3306/Dbase”;

Properties prop = new java.util.Properties(); // tidak mengimpor kelas

prop.put(“user”,”NamaUser”);

prop.put(“password”,”datapassword”);

Page 8: Laporan praktikum modul 6 pemrogrman database dengan jdbc

Connection koneksi = DriverManager.getConnection(url, prop);

System.out.prinln(“Proses apabila koneksi sukses”);

} catch (SQLException sqle) {

System.out.println(“Proses apabila koneksi gagal dilakukan”);

}

getConnection(String url, String user, String password)

Pada methode ini memerlukan argumen berupa URL, user name, dan

password. Methode ini secara langsung mendefinisikan nilai URL, user name

dan password.

Berikut ini contoh penggunaan methode ini didalam program :

try {

String url = “jdbc:mysql://localhost:3306/Dbase”;

String user = “adi”

String password “ternate”

Connection koneksi = DriverManager.getConnection(url, user, password);

System.out.prinln(“Proses apabila koneksi sukses”);

} catch (SQLException sqle) {

System.out.println(“Proses apabila koneksi gagal dilakukan”);

}

Berikut ini adalah daftar penulisan URL dari beberapa database server yang

sering digunakan.

Database Server Nama URL Contoh penggunaanJDBC-ODBC jdbc:odbc:<NamaDatabase> jdbc:odbc:DbaseMySQL jdbc:mysql://

<nmHost>:<port>/<nmDB>jdbc:mysql://localhost:3306/Dbase

PostgreSQL jdbc:postgresql://<nmHost>:<port>/<nmDB>

jdbc:postgresql://localhost:5432/Dbase

Microsoft SQLServer

jdbc:microsoft:sqlserver://<nmHost>:<port>;

jdbc:microsoft:sqlserver://localhost:1433;

Page 9: Laporan praktikum modul 6 pemrogrman database dengan jdbc

DatabaseName=<namaDatabase>

DatabaseName=Dbase

Oracle jdbc:oracle:thin:@<nmHost>:<port>:<nmDB>

jdbc:oracle:thin:@localhost:1521:Dbase

IBM DB2 jdbc:db2:<NamaDatabase> jdbc:db2:Dbase

Membuat Object Statement

JDBC API menyediakan interface yang berfungsi untuk melakukan proses

pengiriman statement SQL yang terdapat pada package java.sql. Di dalam

JDBC API disediakan tiga buah interface untuk fungsi tersebut yaitu :

Statement

Interface ini dibuat oleh methode Connection.createStatement(). Object

Statement digunakan untuk pengiriman statement SQL tanpa parameter.

Statement stat = Connection.createStatement();

PreparedStatementInterface ini dibuat oleh methode Connection.prepareStatement(). Object

PreparedStatement digunakan untuk pengiriman statement SQL dengan atau

tanpa parameter. Dengan object ini, kita dapat menampung satu atau lebih

parameter sebagai argumen input (perameter IN). Interface ini memiliki

performa lebih baik dibandingkan dengan interface Statement karena dapat

menjalankan beberapa proses dalam sekali pengiriman perintah SQL.

PreparedStatement stat = Connection.prepareStatement();

CallableStatement

Interface ini dibuat oleh methode Connection.prepareCall(). Object

CallableStatement digunakan untuk menjalankan store procedure SQL.

CallableStatement stat = Connection.prepareCall();

Melakukan Eksekusi Perintah SQL

Setelah kita memiliki object statement, kita dapat menggunakannya untuk

melakukan pengiriman perintah SQL dan mengeksekusinya. Methode

eksekusi yang digunakan untuk perintah SQL terbagi menjadi dua bagian

Page 10: Laporan praktikum modul 6 pemrogrman database dengan jdbc

yaitu untuk perintah SELECT methode eksekusi yang digunakan adalah

executeQery() dengan nilai kembaliannya adalah ResultSet, dan untuk

perintah INSERT, UPDATE, DELETE methode eksekusi yang digunakan

adalah executeUpdate().

Berikut ini adalah contoh melakukan eksekusi perintah SQL dan mengambil

hasilnya (ResultSet) dengan menggunakan perintah SELECT.

String sql = “SELECT kode, nama, alamat, kelas FROM dataSiswa”;

ResultSet set = stat.executeQuery(sql);

while (set.next()) {

String kode = set.getString("kode");

String nama = set.getString("nama");

String alamat = set.getString("alamat");

String kelas = set.getString("kelas");

}

Berikut ini adalah contoh melakukan eksekusi perintah SQL dengan

menggunakan perintah DELETE.

String sql = "DELETE FROM data_siswa WHERE kode = “1234”;

PreparedStatement stat = konek.prepareStatement(sql);

stat.executeUpdate();

Menutup Koneksi

Penutupan terhadap koneksi database perlu dilakukan agar sumber daya yang

digunakan oleh object Connection dapat digunakan lagi oleh proses atau

program yang lain.

Sebelum kita menutup koneksi database, kita perlu melepas object Statement

dengan kode sebagai berikut :

statement.close();

Untuk menutup koneksi dengan database server dapat kita lakukan dengan

kode sebagai berikut :

connection.close();

Page 11: Laporan praktikum modul 6 pemrogrman database dengan jdbc

II. PRAKTIKUM DAN PEMBAHSAN

1. Praktek 1 : Membuat Database

Buat database dengan nama fkom

Page 12: Laporan praktikum modul 6 pemrogrman database dengan jdbc

Pembahasan:

Gambar di atas merupakan pembuatan database fkom dengan

menggunakan command prompt. Dengan menggunakan command

prompt maka kita dituntut harus hafal dengan semua perintah atau

bahasa dalam database, baik Data Definition Language (DDL), Data

Manipulation Language (DML) atau Data Control Language (DCL).

Sebelum menuliskan perintah kita harus masuk ke C dan masuk ke

direktori mysql. setelah berada dalam direktori mysql maka kita bisa

menulisakan perintah untuk database.

Membuat table dengan nama mhs

Pembahasan:

Perintah diatas adalah untuk membuat table dengan nama mhs

yang mempunyai 4 field, yaitu nama, jk, telepon dan umur. Yang

menjadi primary key dalam table tersebut adalah nama.

Page 13: Laporan praktikum modul 6 pemrogrman database dengan jdbc

Untuk menampilkan struktur dari table mhs digunakan perintah

describe mhs.

2. Praktek 2 : Load Driver MySQL

Klik kanan pada Libraries, pilih Add Library.

Setelah membuat database di database server mysql maka kita

harus memanggil driver tersebut agar dapat terkoneksi dengan

database server tersebut.

Pilih MySQL JDBC Driver, klik Add Library

Page 14: Laporan praktikum modul 6 pemrogrman database dengan jdbc

3. Praktek 3 : Membuat Koneksi JDBC

Kode Program:

Pembahasan:

Page 15: Laporan praktikum modul 6 pemrogrman database dengan jdbc

Script diatas adalah untuk membuat koneksi ke database dengan

nama class dbCon. Langkah pertama yang dilakukan adalah mengimport

package java.sql, statement tersebut digunakan untuk memanggil

komponen pendukung yang akan digunakan dalam suatu program. Baris

ke 14 samapi dengan baris 17 adalah inisialisasi variable, untuk variable

dbUrl valuenya adalah "jdbc:mysql://localhost:3306/fkom”, karena yang

di gunakan adalah server mysql dan database yang telah dibuat bernama

fkom.

Class.forName("org.gjt.mm.mysql.Driver");

conn=DriverManager.getConnection(dbUrl,uname,pword);

Kedua perintah diatas untuk memanggil driver mysql dan membuat

koneksi. Method Class.forName secara otomatis membuat instance dari

database driver, class DriverManager secara otomatis juga dipanggil untuk

mengelola class database driver ini. Jadi kita tidak perlu menggunakan

statement new untuk membuat instance dari class database driver tersebut.

Jadi kedua perintah diatas digunakan untuk menghubungkan program

dengan database.

Terdapat penanganan error, jika koneksi tersebut berhasil maka

akan muncul kotak dialog JOptionPane "Koneksi ke Database OK...", dan

jika gagal maka akan muncul pesan “ERROR”.

Output:

4. Praktek 4 : Insert data dengan nama class inprofile

Kode Program:

Page 16: Laporan praktikum modul 6 pemrogrman database dengan jdbc

Pembahasan:

Script diatas adalah untuk menambahkan data dalam database

dengan nama class inprofile. Dalam setiap menuliskan perintah query data

manipulation language kita harus memasukan script koneksi database agar

dapat terhubung ke database tersebut.

String sql="INSERT INTO mhs(nama,jk,telepon,umur) VALUES

('Dani','L','098878',22)";

Perintah diatas adalah untuk menambahkan data pada table mhs ke

dalam field nama, jk, telepon dan umur dengan nilainya Dani, L, 098878,

22.

Ps adalah objek yang dibuat dari PrepareStatement, Objek prepared

statement digunakan untuk mengirim statement sql dengan atau tanpa

parameter, objek tersebut dipanggil dengan method executeUpdate().

Jika koneksi berhasil dan data berhasil dimasukan maka akan muncul

JOptionPane “Koneksi ke Database OK…!” dan “Data baru sudah

disimpan”.

Page 17: Laporan praktikum modul 6 pemrogrman database dengan jdbc

Output:

5. Praktek 5 : Menampilkan Data dengan class ShowTableProfile

Kode Program:

Page 18: Laporan praktikum modul 6 pemrogrman database dengan jdbc

Pembahasan:

Script di atas adalh untuk menanmplkan data dari databse dengan

nama ShowTableProfile. Perlu diingat untuk setiap menuliskan perintah

query harus disertakan pula script untuk koneksi database. Untuk

menampilkan data kita menggunakan perintah select.

String sql="SELECT*FROM mhs";

Perintah diatas untuk menampilkan semua data yang berada pada table

mhs.

PreparedStatement ps=conn.prepareStatement(sql);

ResultSet rs=ps.executeQuery();

Instance dari object bertipe ResultSet diperlukan untuk

menampung hasil kembalian data dari database. Sebelum kita bisa

memperoleh instance dari ResultSet, kita harus membuat instance dari

class Statement. Class Statement mempunyai method executeQuery yang

digunakan untuk menjalankan perintah query dalam database kemudian

mengembalikan data hasil eksekusi query ke dalam object ResultSet.

Output:

Page 19: Laporan praktikum modul 6 pemrogrman database dengan jdbc

III.TUGAS

1. Buat program java untuk mengahapus data mhs.

Script:

Page 20: Laporan praktikum modul 6 pemrogrman database dengan jdbc

Pembahasan:

Untuk menghapus data mhs digunakan perintah delete yaitu :

String sql="delete from mhs where nama='Dani'";

Perintah delete hampir sama dengan update, hanya saja kita tidak perlu

mengisikan perubahan data karena memang tidak diperlukan.

Output:

Output di atas adalah jika kita berhasil menghapus data yang bernama

Dani, maka ketika mengeksekusi class ShowtableProfile tampilan tabelnya

kosong, seperti di bawah ini:

Page 21: Laporan praktikum modul 6 pemrogrman database dengan jdbc

IV. KESIMPULAN

Dari praktikum dan pembahasan diatas dapat disimpulkan bahwa JDBC

(Java Database Connectivity) adalah API yang digunakan Java untuk

Page 22: Laporan praktikum modul 6 pemrogrman database dengan jdbc

melakukan koneksi dengan aplikasi lain atau dengan berbagai macam

database. JDBC memungkinkan kita untuk membuat aplikasi Java yang

melakukan tiga hal: konek ke sumber data, mengirimkan query dan statement

ke database, menerima dan mengolah resultset yang diperoleh dari database.

Berbeda dengan ODBC, di dalam IDE Netbeans telah menyertakan diver

JDBC di dalam paketnya sehingga kita tidak perlu lagi mencari dan mengeset

secara manual.

V. DAFTAR PUSTAKA

Ridwan Sanjaya,SE.,S.Kom.Pengolahan Databse MYSQL 5 dengan Java 2

disertai Teknik Pencetakan Laporan. . Yogyakarta : Andi.

Page 23: Laporan praktikum modul 6 pemrogrman database dengan jdbc