Pemrograman Berorientasi Obyek Lanjut (IT251) · PDF fileprogram harus membangun koneksi ke...

24
Pemrograman Berorientasi Obyek Lanjut (IT251) Ramos Somya, S.Kom., M.Cs.

Transcript of Pemrograman Berorientasi Obyek Lanjut (IT251) · PDF fileprogram harus membangun koneksi ke...

Page 1: Pemrograman Berorientasi Obyek Lanjut (IT251) · PDF fileprogram harus membangun koneksi ke database ... sama terhadap berbagai relasional database. JAVA ...   Netbeans:

Pemrograman Berorientasi Obyek Lanjut (IT251)

Ramos Somya, S.Kom., M.Cs.

Page 2: Pemrograman Berorientasi Obyek Lanjut (IT251) · PDF fileprogram harus membangun koneksi ke database ... sama terhadap berbagai relasional database. JAVA ...   Netbeans:

Komunikasi aplikasi dengan databaseAplikasi dan sistem database tidak menggunakanbahasa dan mekanisme yang sama. Sehinggaprogram harus membangun koneksi ke databasetarget sebelum dapat menjalankan statement SQL.

Page 3: Pemrograman Berorientasi Obyek Lanjut (IT251) · PDF fileprogram harus membangun koneksi ke database ... sama terhadap berbagai relasional database. JAVA ...   Netbeans:

Aplikasi Java tidak dapat mengakses data padadatabase secara langsung, JDBC merupakaninterface yang menghubungkan antara aplikasi Javadan database.

JAVA applicationDatabase

Page 4: Pemrograman Berorientasi Obyek Lanjut (IT251) · PDF fileprogram harus membangun koneksi ke database ... sama terhadap berbagai relasional database. JAVA ...   Netbeans:

JDBC – Java DataBase Connectivity Merupakan API (terdiri dari kumpulan class dan

method) untuk bekerja dengan database dalam javacode.

Tujuan Utama : untuk membuat java codeindependen dari database aktual yang digunakan.

Page 5: Pemrograman Berorientasi Obyek Lanjut (IT251) · PDF fileprogram harus membangun koneksi ke database ... sama terhadap berbagai relasional database. JAVA ...   Netbeans:

JDBC menyediakan interface diatas berbagai modulkonektifitas database yang beragam

JDBC didesain untuk bekerja dengan cara yangsama terhadap berbagai relasional database.

JAVA Application JDBC

Oracle database

MS SQL Server

MySQL Server

Page 6: Pemrograman Berorientasi Obyek Lanjut (IT251) · PDF fileprogram harus membangun koneksi ke database ... sama terhadap berbagai relasional database. JAVA ...   Netbeans:
Page 7: Pemrograman Berorientasi Obyek Lanjut (IT251) · PDF fileprogram harus membangun koneksi ke database ... sama terhadap berbagai relasional database. JAVA ...   Netbeans:

Setiap database mempunyai driver masing-masing JDBC driver manager berkomunikasi dengan driver

yang selanjutnya akan berkomunikasi secaralangsung ke database

JDBC API- Menyembunyikan detail implementasi- Murni dalam code java- Tidak menyembunyikan implementasi SQL antara

berbagai DBMS

Page 8: Pemrograman Berorientasi Obyek Lanjut (IT251) · PDF fileprogram harus membangun koneksi ke database ... sama terhadap berbagai relasional database. JAVA ...   Netbeans:

Konversi SQL data types ke Java data types:

Integer – int

Varchar2 – String

Real – float

Bit – boolean

Date – java.sql.Date

Time, TimeStamp – java.sql.Timestamp;

Page 9: Pemrograman Berorientasi Obyek Lanjut (IT251) · PDF fileprogram harus membangun koneksi ke database ... sama terhadap berbagai relasional database. JAVA ...   Netbeans:

Gunakan JDBC driver yang tepat: Oracle: /usr/local/oracle/jdbc/lib/ojdbc14.jar on eniac

or the Oracle web site. MySQL:

http://dev.mysql.com/downloads/connector/j/ Netbeans:

built in

Tambahkan file ke Java classpath: Set CLASSPATH environment variable on CLI

OR

Within your IDE

Page 10: Pemrograman Berorientasi Obyek Lanjut (IT251) · PDF fileprogram harus membangun koneksi ke database ... sama terhadap berbagai relasional database. JAVA ...   Netbeans:

1. Load driver2. Tentukan URL koneksi3. Membangun koneksi4. Membuat objek statement5. Execute query6. Proses Result7. Menutup koneksi

Page 11: Pemrograman Berorientasi Obyek Lanjut (IT251) · PDF fileprogram harus membangun koneksi ke database ... sama terhadap berbagai relasional database. JAVA ...   Netbeans:

Panggil class.forNameclass.forName(“oracle.jdbc.driver.OracleDriver) – untuk database oracle

class.forName(“com.mysql.jdbc.Driver”) –untuk mysql

Contohtry {

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

} catch (ClassNotFoundException cnfe) {

System.out.println(“Error loading driver: ” + cnfe);

}

Page 12: Pemrograman Berorientasi Obyek Lanjut (IT251) · PDF fileprogram harus membangun koneksi ke database ... sama terhadap berbagai relasional database. JAVA ...   Netbeans:

MySQL on localhost: jdbc:mysql://localhost:3306/mysql

Bagian pertama dari URL (jdbc:mysql) spesifikterhadap dbms yang digunakan

Bagian kedua menjelaskan dimana server DBMSberada (localhost)

Bagian ketiga menjelaskan port number (1521, 3306-default)

Bagian terakhir menjelaskan nama database yangdigunakan (mysql)

Page 13: Pemrograman Berorientasi Obyek Lanjut (IT251) · PDF fileprogram harus membangun koneksi ke database ... sama terhadap berbagai relasional database. JAVA ...   Netbeans:

Panggil DriverManager.getConnection(DbURL,username, password)

DbURL merupakan url koneksi yang kita buatsebelumnya.

Username and password merupakan parameteryang digunakan sesuai dengan value yang disetpada database server.

Page 14: Pemrograman Berorientasi Obyek Lanjut (IT251) · PDF fileprogram harus membangun koneksi ke database ... sama terhadap berbagai relasional database. JAVA ...   Netbeans:

Objek statement sederhana:Statement statement =connection.createStatement();

3 tipe objek statement:

Statement

Prepared Statement

Callable Statement

Page 15: Pemrograman Berorientasi Obyek Lanjut (IT251) · PDF fileprogram harus membangun koneksi ke database ... sama terhadap berbagai relasional database. JAVA ...   Netbeans:

Tulis query sebagai Java StringString query= “Select * from Users where age>21”;

Select query akan mengembalikan semuarecord/tuple yang memenuhi query.

Simpan dalam ResultSetContoh:ResultSet rs = statement.executeQuery(query);

Page 16: Pemrograman Berorientasi Obyek Lanjut (IT251) · PDF fileprogram harus membangun koneksi ke database ... sama terhadap berbagai relasional database. JAVA ...   Netbeans:

Bagaimana query yang merubah database?String query= “Update Users set age=21 wherename=“John”;

panggil executeUpdate() untuk statements sepertiINSERT, UPDATE, DELETE, etc

Contoh:ResultSet rs = statement.executeUpdate(query);

ResultSet akan mengandung jumlah rows(baris)yang telah dimodifikasi oleh perintah update.

Page 17: Pemrograman Berorientasi Obyek Lanjut (IT251) · PDF fileprogram harus membangun koneksi ke database ... sama terhadap berbagai relasional database. JAVA ...   Netbeans:

Bagaimana jika kita ingin menquery databasemenggunakan variabel dari user/program ?

Gunakan prepared statement Ganti nilai variabel dalam query string dengan

tanda ‘?’contoh:int age = 21;

String query= “Update Users set age=? where name=“John”;PreparedStatement st =

connection.prepareStatement(query);st.SetInt (1, age);

Page 18: Pemrograman Berorientasi Obyek Lanjut (IT251) · PDF fileprogram harus membangun koneksi ke database ... sama terhadap berbagai relasional database. JAVA ...   Netbeans:

Hasil dari query disimpan dalam ResultSet. Direpresentasikan oleh tabel dengan baris dan

kolom. Untuk mengiterasi melalui tiap rows dari ResultSet:

while (rs.next()) {

String name = rs.getString(1);

int age = rs.getInt(“age”);

}

Page 19: Pemrograman Berorientasi Obyek Lanjut (IT251) · PDF fileprogram harus membangun koneksi ke database ... sama terhadap berbagai relasional database. JAVA ...   Netbeans:

next() melangkah ke row berikutnya dalam ResultSet

2 cara untuk mendapatkan hasil dari ResultSet

Melalui posisi kolom

▪ Dimulai dari angka 1

▪ Dapat terjadi mismatch antara nomor kolom dalam result set dan table asli

Melalui nama kolom

Page 20: Pemrograman Berorientasi Obyek Lanjut (IT251) · PDF fileprogram harus membangun koneksi ke database ... sama terhadap berbagai relasional database. JAVA ...   Netbeans:

Panggil connection.close() ketika selesaimengakses database.

Open connection ke database menggunakanresource sistem.

Kita dapat kehabisan koneksi utamanya dalamlingkungan multi-user .

Menutup koneksi dapat tidak dilakukan kalaudatabase masih akan dioperasikan.

Page 21: Pemrograman Berorientasi Obyek Lanjut (IT251) · PDF fileprogram harus membangun koneksi ke database ... sama terhadap berbagai relasional database. JAVA ...   Netbeans:

Model-view-controller (MVC) adalah sebuaharsitektur perangkat lunak, Pola desain MVCmemisah “logika domain” (logika aplikasi untukpengguna) dari antarmuka pengguna (input danpresentasi).

Page 22: Pemrograman Berorientasi Obyek Lanjut (IT251) · PDF fileprogram harus membangun koneksi ke database ... sama terhadap berbagai relasional database. JAVA ...   Netbeans:

MVC juga memungkinkan pengembangan yangmandiri (pemisahan tugas programmer sesuai taskMVC) dan memudahkan dalam proses testing danmaintenance kode programnya, serta kode programyang dapat digunakan berulang di beberapa aplikasiyang mirip (reusable) .

Implementasi pola desain MVC dapat diterapkanpada aplikasi berbasis web maupun aplikasidesktop.

Page 23: Pemrograman Berorientasi Obyek Lanjut (IT251) · PDF fileprogram harus membangun koneksi ke database ... sama terhadap berbagai relasional database. JAVA ...   Netbeans:
Page 24: Pemrograman Berorientasi Obyek Lanjut (IT251) · PDF fileprogram harus membangun koneksi ke database ... sama terhadap berbagai relasional database. JAVA ...   Netbeans: