Pemrograman 3
Pemrograman 3
PEMROGRAMAN 3
JAKARTA
2012
BAB I
Pengenalan Array
Sebagai contoh, kita memiliki tiga variabel dengan tipe data int yang memiliki
identifier yang berbeda untuk tiap variabel.
int number1;
int number2;
int number3;
number1 = 1;
number2 = 2;
number3 = 3;
Seperti yang dapat Anda perhatikan pada contoh diatas, hanya untuk menginisialisasi
dan menggunakan variabel terutama pada saat variabel-variabel tersebut memiliki tujuan yang
sama, dirasa sangat membingungkan. Di Java maupun di bahasa pemrograman yang lain,
mereka memiliki kemampuan untuk menggunakan satu variabel yang dapat menyimpan
sebuah data list dan kemudian memanipulasinya dengan lebih efektif. Tipe variabel inilah
yang disebut sebagai array.
Array adalah struktur data yang digunakan untuk proses pengumpulan data yang
semua tipe yang sama.
atau Anda dapat menempatkan kurung buka dan kurung tutupnya setelah identifier.
Sebagai contoh,
int nilai [];
//instantiate obyek
umur = new int[100];
// Membuat sebuah array yang terdiri dari penginisialisasian //4 variabel double bagi
value {100,90,80,75}
double [ ] nilai = {100, 90, 80, 75};
// Membuat sebuah array String dengan identifier days. Array //ini terdiri dari 7
elemen.
String hari [ ] = { “Senin”, “Selasa”, “Rabu”, “Kamis”, “Jumat”, “Sabtu”, “Minggu”};
Berikut ini adalah contoh, bagaimana untuk mencetak seluruh elemen didalam
array. Dalam contoh ini digunakanlah loop, sehingga kode kita menjadi lebih pendek.
Praktikum I
//deklarasi array
Pada contoh sebelumnya, kita dapat menuliskannya kembali seperti berikut ini,
Praktikum II
//deklarasi array
atas
System.out.print( umur[i] );
{ "Kristin", "white" },
{ "toby", "gray"},
{ "fido", "black"} };
Untuk mengakses sebuah elemen didalam array multidimensi, sama saja dengan
mengakses array satu dimensi. Misalnya saja, untuk mengakses element pertama dari
baris pertama didalam array dogs, kita akan menulis,
System.out.print( dogs[0][0] );
Praktikum I
System.out.println(coba1[2][5]+coba1[1][3]);
System.out.println(coba1[0][4]+coba1[1][5]);
53
40
Latihan:
1. Buatlah sebuah String array yang akan menginisialisasi 7 hari dalam seminggu. Sebagai
contoh, String bulan [] = {“januari”, “februari”….}; gunakan while-loop, kemudian print
semua nilai dari array (Gunakan juga untuk do-while dan for-loop)Using a while-loop.
2. Buku Alamat Berikut ini adalah array multidimensi yang menyatakan isi dari sebuah buku
alamat: String entry = {{"nina", "986-4345", "bojong"}, {"gugun", "457-4356", "curug"},
{"edi", "657-8768", "bintaro"}};
Name : nina
Tel. # : 986-4345
Address : bojong
Name : gugun
Tel. # : 457-4356
Address : curug
Name : edi
Tel. # : 657-8768
Address : bintaro
BAB II
Program komputer bisa berguna jika ia bisa berinteraksi dengan dunia lain. Interaksi di
sini maksudnya input/output atau I/O. Pada bab ini, kita akan melihat input output pada file
dan koneksi jaringan (network). Pada Java, input/output pada file dan jaringan dilakukan
berdasarkan aliran (stream), di mana semua objek dapat melakukan perintah I/O yang sama.
Standar output (System.out) dan standar input (System.in) adalah contoh aliran.
BufferedReader
Pada bagian ini, kita akan menggunakan class BufferedReader yang berada di package
java.io untuk mendapatkan input dari keyboard. Berikut ini adalah langkah-langkah yang
diperlukan untuk mendapatkan input dari keyboard:
InputStreamReader( System.in) );
catch( IOException e ){
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
InputStreamReader( System.in) );
try{
name = dataIn.readLine();
}catch( IOException e ){
System.out.println("Error!");
Statement,
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.io.*;
NB : Perintah tersebut berarti mengimport semua kelas dalam paket java.io.* (tanda *
berarti semua)
yang akan mengeluarkan semua class yang berada dalam package, dan selanjutnya kita
bisa menggunakan class-class tersebut dalam program kita.
Dua statement selanjutnya,
InputStreamReader( System.in) );
Pernyataan di atas merupakan tempat untuk menyimpan input dari user. Nama variabel
diinisialisasi sebagai String kosong "". Sebaiknya kita selalu menginisialisasi sebuah variabel
setelah kita mendeklarasikannya. Baris berikutnya adalah memberikan output sebuah String
pada layar yang menanyakan nama user.
try{
name = dataIn.readLine();
}catch( IOException e ){
System.out.println("Error!");
Pada baris ini menjelaskan bahwa kemungkinan terjadi error pada pernyataan,
name = dataIn.readLine();
akan ditangkap. Kita akan membahas tentang penanganan exception pada bab selanjutnya dari
pembahasan ini, tetapi untuk sekarang, Anda cukup mencatat bahwa Anda perlu
menambahkan kode ini untuk menggunakan method readLine() dari BufferedReader untuk
mendapatkan input dari user. Selanjutnya kembali ke pernyataan,
name = dataIn.readLine();
method diatas memanggil dataIn.readLine(), mendapatkan input dari user dan memberikan
sebuah nilai String. Nilai ini akan disimpan ke dalam variabel name, yang akan kita gunakan
pada statement akhir untuk menyambut user,
PRAKTIKUM 1
import java.io.*;
class TanpaArray
{ int max=Integer.MIN_VALUE;
int min=Integer.MAX_VALUE;
try
{ while((x=Integer.parseInt(br.readLine()))!=0)
{ if(x>max) max=x;
if(x<min) min=x;
jml+=x;
} catch(Exception e)
System.out.println("Total : "+jml);
System.out.println("Rata-rata : "+rata2);
Praktikum II
import java.io.*;
int a = Integer.parseInt(dataIn.readLine());
int b = Integer.parseInt(dataIn.readLine());
System.out.println(total-(total * 0));
System.out.println(total-(total * 0.1));
else
System.out.println(total-(total * 0.15));
}
BAB III
Java IO dibutuhkan ketika kita membaca dan menulis, baik ditampilkan pada layar
maupun disimpan pada file.
Dalam pemrograman, java IO dibutuhkan ketika kita hendak mengirim data maupun
membaca data dari server.
Input/Output dalam java dipaketkan dalam java.io
Selain kelas-kelas, paket ni juga mengandung interface yang menangani aliran (stream)
data input dan output.
InputStream
OutputStream
Interaksi suatu program dengan dunia lain sering disebut input/output atau I/O. Sejak
dulu, salah satu tantangan terbesar untuk mendesain bahasa pemrograman baru adalah
mempersiapkan fasilitas untuk melakukan input dan output. Salah satu kemajuan terbesar
dalam sejarah pemrograman adalah adanya konsep (atau abstraksi) untuk memodelkan
perangkat I/O. Dalam Java, abstraksi ini disebut dengan aliran (stream). Bagian ini akan
memperkenalkan tentang aliran, akan tetapi tidak menjelaskan dengan komplit. Untuk lebih
lengkapnya, silakan lihat dokumen resmi Java.
Tidak peduli dari mana input berasal atau kemana output akan pergi.
Ketika berhubungan dengan input/output, kita harus ingat bahwa ada dua kategori data
secara umum : data yang dibuat oleh mesin, dan data yang bisa dibaca manusia. Data yang
dibuat mesin ditulis dengan model yang sama dengan bagaimana data tersebut disimpan di
dalam komputer, yaitu rangkaian nol dan satu. Data yang bisa dibaca manusia adalah data
dalam bentuk rangkaian huruf. Ketika kita membaca suatu bilangan 3.13159, kita
membacanya sebagai rangkaian huruf yang kita terjemahkan sebagai angka. Angka ini akan
ditulis dalam komputer sebagai rangkaian bit yang kita tidak mengerti.
InputStream
Beberapa kelas turunan dari InputStream dapat dirangkum dalam tabel di bawah ini :
Kelas FilterInputStream sendiri terdiri dari beberapa jenis, yang bisa dirangkum dalam tabel
berikut ini :
Argumen yang
Kelas Kegunaan dibutuhkan untuk
membuat objek
diambil (dibaca)
OutputStream
Beberapa kelas turunan dari OutputStream dapat dirangkum dalam tabel di bawah ini :
Kelas FilterOutputStream sendiri terdiri dari beberapa jenis, yang bisa dirangkum dalam tabel
berikut ini :
Argumen yang
Kelas Kegunaan dibutuhkan untuk
membuat objek
Class Stream
Byte Stream : Kelas dan interface ini digunakan untuk menangani data biner.
Character Stream : kelompok kelas ini digunakan untuk menangani proses baca tulis
karakter, termasuk Unicode. Kelas ini merupakan pengembangan dari kelas byte steam
sehingga lebih efisien.
Stream Standard
Kita telah memperoleh obyek untuk menangani aliran karakter (character stream)
yang memiliki method-method seperti misalnya read() untuk membaca inputan karakter. Jika
mencapai end of stream maka akan menghasilkan nilai -1.
Contoh:
PRAKTIKUM 2
import java.io.*;
public class ObjectStreamExample{
public static void main(String args[]){
try {
ObjectInputStream in = new ObjectInputStream(new
FileInputStream(“myFile3.dat”));
String s = (String)in.readObject();
in.close();
System.out.println(s);
}
catch(IOException e ) {
System.out.println (“ Error reading the specified file. ” ) ;
}
}
}
}
dataInput.close();
}
catch (Exception e)
{
System.err.println("File input error");
}}}
Tulis Ke File
import java.io.*;
class TulisKeFile
{
public static void main(String args[])
{
FileOutputStream out; // declare a file output object
PrintStream p; // declare a print stream object
try
{
out = new FileOutputStream("d:/myfile.doc");
// Connect print stream to the output stream
p = new PrintStream( out );
p.println ("ini string yang ditulis ke file");
p.println("bla,,,bla,,,");
p.close();
}
catch (Exception e)
{
System.err.println ("Error writing to file");
}
System.out.println("Tulis ke file OK");
}
Harga Buncis
import java.io.*;
class HargaBuncis
{
public static void main(String args[])
{
String x;
int harga=0,jumlah=0,n=0; // cobain kalau int harga,jumlah,n;
try
{
FileInputStream fstream = new FileInputStream("d:/hargabuncis.txt");
DataInputStream dataInput = new DataInputStream(fstream);
while (dataInput.available() !=0) {
x=dataInput.readLine();
harga=Integer.parseInt(x);
n+=1;//n=n+1;
jumlah=jumlah+harga;
System.out.println ("Harga Buncis hari ke "+n+" "+harga);
}
dataInput.close();
}
catch (Exception e)
{
System.err.println("File input error");
}
double rata2= jumlah/n;
double rata3= (double) jumlah/n;
// cobain kalau pake double rata2=jumlah/n; hasilnya spt apa?
System.out.println ("Harga Buncis rata-rata "+rata2);
System.out.println ("Harga Buncis rata-rata "+rata3);
System.out.printf("harga buncis rata-rata adalah %.2f",rata3);
}
}
TANPA ARRAY
import java.io.*;
class TanpaArray
{ public static void main(String[] args)
{ int max=Integer.MIN_VALUE;
int min=Integer.MAX_VALUE;
int n=1, x, jml=0;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Masukkan data ke-"+n+" : ");
try
{ while((x=Integer.parseInt(br.readLine()))!=0)
{ if(x>max) max=x;
if(x<min) min=x;
jml+=x;
System.out.println("Masukkan angka ke-"+(++n)+
" [ketik 0 untuk STOP] :");
}
} catch(Exception e)
{
}
double rata2=(double) jml/(n-1);
System.out.println("Total : "+jml);
System.out.println("Rata-rata : "+rata2);
System.out.println("Angka terkecil : "+min);
System.out.println("Angka terbesar : "+max);
}
}
import java.io.*;
class HitungNilai
{
public static void main(String[] args)
{ String str;
int tgs,uts,uas;
double nilai;
String nilaiHuruf;
try
{ FileReader fr = new FileReader("d:/coba.txt");
//FileReader fr = new FileReader("testdata.txt");
BufferedReader br = new BufferedReader(fr);
while((str=br.readLine()) != null)
{ tgs = Integer.parseInt(str.substring(1,3));
uts = Integer.parseInt(str.substring(4,6));
uas = Integer.parseInt(str.substring(7,9));
nilai=(20*tgs+30*uts+50*uas)/100.0;
// tambahin di sini untuk konversi jadi nilai huruf
Java Scanner
Sebuah objek scanner dapat mengurai input yang dimasukkan melalui keyboard atau
dari sebuah file. Scanner memisahkan inputnya menjadi menjadi token terpisah (yang
biasanya dipisahkan dengan spasi), dan kemudian mengembalikannya pada satu waktu.
Scanner menyediakan metode untuk mengubah token menjadi nilai dari tipe yang berbeda.
import java.util.Scanner;
class input2
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
int luas;
import java.util.Scanner;
class input3
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
double Nilai_Akhir;
System.out.println(“”);
System.out.println(“”);
System.out.println(“NIM Anda : “+ NIM);
System.out.println(“Nama Anda : “+ Nama);
System.out.println(“UTS : “+ UTS);
System.out.println(“UAS : “+ UAS);
System.out.println(“Nilai Akhir : “+ Nilai_Akhir);
}
import java.util.Scanner;
class input4
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
double luas;
PRAKTIKUM 3
import java.util.Scanner;
}
}
import java.util.Scanner;//library
public class luasSegitiga{
public static void main(String[]ok){
double alas,tinggi,Luas;
Scanner parto = new Scanner(System.in);
Luas = (alas*tinggi)/2;
System.out.println("hasilnya = "+Luas);
System.out.printf("hasilnya = %.2f",Luas);
// %d, %f, %s, %c
}
}
import java.util.Scanner;
}
}
import java.util.Scanner;
import java.util.Scanner;
public class acak {
public static void main (String[]args){
String nama,npm,huruf;
double tugas,uts,uas,total;
Scanner S = new Scanner (System.in);
System.out.println("Masukan Nama Anda : ");
nama = S.nextLine();
System.out.println("Masukan NPM Anda : ");
npm = S.nextLine();
System.out.println("Masukan Nilai Tugas : ");
tugas = S.nextDouble();
System.out.println("Masukan Nilai UTS : ");
uts = S.nextDouble();
System.out.println("Masukan Nilia UAS : ");
uas = S.nextDouble();
total =(tugas*0.2)+(uts*0.3)+(uas*0.5);
if (total >=80){
huruf="A";
}else if(total >=70){
huruf ="B";
}else if(total >=60){
huruf ="C";
}else if(total >=50){
huruf ="D";
}else{
huruf ="E";
}
System.out.println("Nama Anda : "+nama);
System.out.println("NPM Anda : "+npm);
System.out.println ("Nilai Anda Adalah :"+total);
System.out.println ("Nilai Huruf : "+huruf);
}
import java.util.*;
class Discont{
public static void main(String[]args){
double diskon,total,bayar,jumlah;
String potongan,hadiah;
Scanner misro = new Scanner(System.in);
System.out.print ("Masukan TOTAL BAYAR :");
total = misro.nextDouble();
if (total >=1000000){
potongan ="20%";
diskon =total*0.2;
hadiah ="Payung";
bayar =(total-(total*0.2));
}else {
potongan ="NGK ADA";
diskon =total*0;
hadiah ="Maaf anda belum beruntung";
bayar =(total-(total*0));
}
System.out.println ("Total belanja Sebelum Diskon :"+total);
System.out.println ("Diskon yang anda peroleh :"+potongan);
System.out.println ("Potongan Belanja :"+diskon);
System.out.println ("Total belanja harus dibayar :"+bayar);
System.out.println ("Hadiah :"+hadiah);
}
}
import java.util.Scanner;
public class InputOutput{
public static void main (String [] args){
Pengertian Database
Secara umum perintah-perintah pada SQL dibagi menjadi dua kelompok yaitu :
1. DDL (Data Definition Language)
DDL merupakan bagian dari SQL yang digunakan untuk mendefenisikan data dan proyek
database. Perintah digunakan untuk mendefenisikan suatu proyek, yaitu membuat,
mengubah, menghapus dan memberikan izin.
Beberapa perintah pada SQL yang temasuk DDL, seperti :
Create Table untuk Membuat Tabel
Create Index untuk Membuat Index
Create View untuknMembuat View
Alter Table untuk Mengubah atau menyisipkan ke dalam table
Drop Table untuk Menghapus Tabel
Drop Index untuk Menghapus Index
Drop View untuk Menghapus View
Grant untuk Memberi izin akses kepada user
Kemudian masuklah ke direktori basisdata pada drive D: yang telah dibuat sebelumnya.
sqlite3 test.db
maka akan tampil versi dari SQLite seperti pada gambar berikut :
.quit
Jika anda ingin membuka kembali database file yang telah dibuat sebelumnya. Lakukan
langkah-langkah seperti di atas (mengetikkan nama database file yang telah tersimpan,
contoh : sqlite3 test.db).
Perintah INSERT
Berfungsi untuk menambah informasi/data baru kedalam tabel. Sintak dasarnya
seperti berikut :
INSERT INTO namatabel (kolom) VALUES (value);
Contoh :
Perintah DELETE
Berfungsi untuk menghapus informasi/data pada tabel. Sintaknya sebagai berikut :
DELETE FROM namatabel WHERE keriteria;
Contoh :
DELETE FROM siswa WHERE nama = ‘AIDA AGUSTINA’;
Keterangan :
Menghapus data siswa yang memiliki nama “AIDA AGUSTINA”
Perintah UPDATE
Berfungsi untuk memperbaiki informasi/data pada tabel. Sintaknya sebagai berikut:
UPDATE namatabel SET namakolom=value WHERE keriteria;
Contoh :
UPDATE siswa SET nama=’HERDI’ WHERE nis=’10309965’;
Keterangan :
Mengganti nama menjadi “HERDI” untuk siswa yang mempunya nis “10309965”
Pengenalan
SELECT
Pernyataan SELECT digunakan untuk query database tentang informasi database yang
mana yang ditampilkan sebagai data. Format dasar dari pernyataan SELECT adalah:
SELECT kolom FROM namatabel where kondisi
Pernyataan SQL SELECT dimulai dengan kata kunci SELECT, diikuti oleh tanda koma dari
kolom-kolom yang akan ditampilkan, kemudian clause FORM yang menentukan tabel yang
berisi data yang akan ditampilkan. Secara bebas, clause WHERE dapat ditambahkan pada
pernyataan SELECT, menjelaskan sebuah set dari kondisi yang harus ditemukan oleh data
yang akan dikembalikan oleh database. Clause WHERE tidak dipisahkan oleh koma;
melainkan, dia tehubung oleh pernyataan AND atau OR yang fungsinya sama dengan logik
mereka.
Menetapkan * sebagai nama kolom memberitahu database server untuk meretrieve
semua kolom yang tersedia didalam tabel. Contoh, jika kita ingin meretrieve semua data yang
terdapat pada table yang bernama users :
SELECT * from users;
Jika kita hanya ingin melihat untuk users yang bernama belakang Smith, pernyataan SQL-nya
berupa:
SELECT * from users where nama ='Smith';
SQL tidak bersifat case-sensitive pada kata kuncinya, SQL case-sensitive pada nilainya.
Pernyataan berikut ini akan menghasilkan data yang berbeda jika dibandingkan dengan
pernyataan diatas:
SELECT * from users where nama ='sMith';
Operator lain yang dapat digunakan pada conditional statements:
< - kurang dari
<= - kurang dari atau sama dengan
- lebih besar dari
>= - lebih besar dari atau sama dengan
like – sama dengan
INSERT
Pernyataan INSERT digunakan untuk memasukkan baris data yang baru dari informasi
tabel database yang aktif. Struktur dasar dari pernyataan INSERT adalah :
INSERT INTO nama-tabel VALUES(nilai1, nilai2, ...)
Dimana nama-tabel adalah nama dari tabel yang akan berisi baris data yang baru. Parameter
yang diberikan didalam kata kunci VALUES adalah daftar data dari nilai yang akan
ditambahkan kedalam tabel. Jika seperti ini dimana hanya tabel yang ditetapkan, SQL akan
memasukkan nilai yang diberikan pada pernyataan dengan field didalam database berdasarkan
nilai yang dipesan dan field yang ditentukan pada tabel database.
Jika, sebagai contoh, kita mempunyai tabel dengan nama users, dengan field userid,
nama, alamat(pada pemesanan), pada baris berikut ini akan menambahkan data yang baru ke
tabel:
INSERT INTO users VALUES(199700651, 'Jeni Master', 'UP Ayala Technopark');
Penting untuk diingat bahwa semua panggilan untuk INSERT harus diikuti aturan integritas
pada tabel data. Oleh karena itu, jika sebuah field pada database ditetapkan non-null, berbagai
usaha untuk memasukkan nilai-null kedalam field tersebut akan menyebabkan error pada
database.
UPDATE
Pernyataan UPDATE akan mengupdate baris yang dipilih pada tabel, sebagai lawan
dari pernyataan INSERT yang menambahkan baris data baru. Format dasar pernyataan
UPDATE adalah:
UPDATE nama-tabel set nilai-kolom WHERE kondisi
Dimana nama-tabel adalah nama dari tabel yang berisi baris yang akan diupdate, dan nilai-
kolom adalah daftar data dari nama kolom dan nilainya. Secara bebas, daftar data dari kondisi
dapat ditambahkan secara spesifik dengan baris yang akan dimodofikasi pada tabel. Jika tidak
diber kondisi, maka update data akan dilakukan pada tiap-tiap baris didalam tabel yang
ditentukan.
Berbagai update harus disesuaikan dengan aturan integritas pada database. Sebagai
contoh, menyetting nilai null pada kolom yang sudah ditetapkan dengan nilai NOT NULL
akan menyebabkan pernyataan tidak akan dijalankan dan terdapat pesan error pada relasi
database.
DELETE
Pernyataan DELETE menghapus baris data pada tabel yang dipilih. Struktur dasar dari
pernyataan DELETE adalah :
DELETE FROM nama-tabel WHERE kondisi
Dimana nama-tabel adalah nama dari tabel yang berisi baris data yang akan dihapus.
Daftar data dari kondisi secara bebas dapat dispesifikasikan sebaik mungkin. Jika tidak diberi
kondisi, maka pernyataan akan mneghapus semua baris data pada tabel yang telah ditentukan.
JDBC
Sebelum kita membuat data base , kita harus memastikan dalam editor java dalam hal ini
seperti blue j . ada aplikasi JAR nya . untuk yang kita pelajari ini adalah mengunakan
sqlitejdbc .jar
Caranya yaitu:
1. buka blue j
3. jka ada JDBC nya akan terlihat seprti gambar di bawah ini
4. jika tidak ada JDBC akan kosong yang ada tanda garisnya
5. jika tidak ada sqlite.jar nya, harus di ADD sqlite.jar dalam BLUE J nya , caranya
sama sepeti point 2 .
Java menyediakan standard API untuk mengakses database yang disebut Java Database
Connectivity (JDBC) API. Dengan menggunakan ini, para pengembang memungkinkan dapat
mengakses database tanpa memperdulikan vendornya; para vendor menyediakan implementasi
untuk abstract interfaces yang dijelaskan didalam API, penyediaan tersebut sama dengan set
dari kemampuan koneksi untuk para pengembang. Berikut ini merupakan class kunci dari
JDBC API, semuanya akan dijelaskan secara detail kemudian :
java.sql.Connection – membuat sebuah koneksi dengan database. Secara
abstrakmemberikan detail dari bagaimana cara untuk berkomunikasi dengan database
server.
java.sql.DriverManager – mengatur JDBC driver yang digunakan oleh aplikasi. Pada
hubungannya dengan proper driver URL dan proper authentication, dapat menyediakan
aplikasi dengan valid instances dari object koneksi.
javax.sql.DataSource – memisahakan detail (URL, authentication details) dari bagaimana
untuk memperoleh sebuah koneksi ke database. Merupakan method terbaru dan yang lebih
disukai dari obtaining Connection objects.
java.sql.Statement – menyediakan method untuk para pengembang dalam mengeksekusi
pernyataan SQL.
java.sql.ResultSet – menyediakan hasil dari sebuah pernyataan SQL. Objects ini sering
dikembalikan dari method yang terletak pada Statement object.
java.sql.DriverManager
Dengan menggunakan class ini, pengembang dapat meretrieve sebuah Connection
object yang kemudian dapat dia gunakan untuk melakukan aktifitas database. Berikut ini dua
langkah yang dianjurkan:
1. Pertama, JDBC driver harus diregistrasi dengan DriverManager. Hal ini dapat dikerjakan
dengan menggunakan method Class.forName untuk menge-load driver's class definition
kedalam memori.
2. Kedua, menggunakan method getConnection pada DriverManagerm untuk menyediakan
JDBC URL, sebaik username dan password supplying untuk akses database. URL harus
mengikuti syntax yang dianjurkan oleh implementasi database tertentu.
Dibawah ini adalah contoh dari bagaimana mendapatkan koneksi dari database
PostgreSQL. Sekali lagi, URL dan driver tepat untuk implementasi database yang digunakan.
Untuk database yang lain, periksalah dokumen yang disediakan.
String jdbcURL = jdbc:mysql://localhost:3306/databaseku";
String user = "root";
String password = "";
Connection conn = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(url, user, password);
...
} catch (SQLException e) {
// perform error handling here
}
Saat ini merupakan cara yang valid dari meretrieve sebuah Connection object, method
ini menganjurkan para pengembang untuk tetap mengikuti method tersebut dari seperti detail
sebagai driver class name, URL dianjurkan untuk akses ke database, sedangkan username dan
password tepat untuk penggunaan database. Detail-detail ini paling banyak dipakai pada
berbagai aplikasi. Dan juga, mengatur URL dan driver name pada kode membuatnya lebih
sulit untuk aplikasi dalam menukar implementasi database, jika hal itu diperlukan.
javax.sql.DataSource
DataSource merupakan interface yang digambarkan pada JDBC API sejak versi 2 dari
spesifikasinya. Sekarang saatnya direkomendasikan untuk para pengembang dalam
mendapatkan Connection object. Retrieval dari Connection object terjadi secara langsung :
cara sederhana memanggil method getConnection() dalam kejadian yang valid dari
DataSource. Hal tersebut memperoleh sebuah kejadian dari DataSource yang sekarang dapat
menyelesaikan sebuah masalah untuk beberapa pengembang(developer).
Sejak DataSource merupakan sebuah interface, sebuah instance tidak dapat dibuat oleh
pengembang dengan menggunakan operator yang baru secara sederhana. Hal tersebut
direkomendasikan jika kita memilih aplikasi server dengan menggunakan aturan pembuatan
dari DataSource objects untuk kita.
java.sql.Connection / java.sql.Statement
Dibawah ini adalah bagian dari contoh kode outlining prosedur, bersama dengan
beberapa error yang sangat dasar - menangani prosedur.
try {
ctxt = new InitialContext();
ds = (DataSource)ctxt.lookup("jdbc/mySQL");
conn = ds.getConnection();
stmt = conn.createStatement()
rs = stmt.executeQuery(“SELECT * FROM USERS”);
}catch(NamingException x)
System.err("Datasource tidak ditemukan);
} catch (SQLException x)
System.err("Terjadi error saat mengeksekusi query SQL”);
}
java.sql.ResultSet
Sebuah ResultSet object merupakan hasil dari sebuah query ke database. Data di dalam
ResultSet object dapat divisualisasikan sebagai tabel, kemudian informasinya dapat diretrieve
satu baris pada saat itu juga. Dengan ResultSet object menjaga proses tetap pada baris yang
ditentukan.
Untuk iterasi di atas baris yang diarahkan pada ResultSet, telah disediakan method
yang disebut next(). Memanggil method next() memindahkan internal pointer menjaga
ResultSetobject ke baris berikutnya. Method ini mengembalikan nilai true jika ditemukan baris
berikutnya, dan nilai false jika tidak ada baris berikutnya.
while (rs.next()) {
//membaca data dari baris sebelum disini }
Untuk meretrieve data dari tiap-tiap baris, ResultSet object menyediakan beberapa get
method. Yaitu sebuah method getString untuk meretrieve data sebagai String, method getInt
untuk meretrieve data integer, method getBoolean untuk meretrieve data boolean, dll. Dalam
berbagai kasus, method-method ini juga menerima sebagai parameter nomer kolom yang berisi
data, atau nama kolom.
try {
ctxt = new InitialContext();
ds = (DataSource)ctxt.lookup(“jdbc/mySQL”);
conn = ds.getConnection();
stmt = conn.createStatement();
while (rs.next()) {
String userName = rs.getString("name");
String address = rs.getString(“address”);
int userID = = rs.getInt(userid);
}
}catch(NamingException ex){
System.err(“Nama datasourse tidak ditemukan”);
}catch()SQLException ex{
System.err(“Terjadi error saat mengeksukesi perintah SQL”);}
Contoh membuat database menggunakan java
01.import java.sql.*;
02.
05. Class.forName("org.sqlite.JDBC");
06. Connection conn =
07. DriverManager.getConnection("jdbc:sqlite:latihan1.db");
13.
14. prep.setString(1, "200643500107");
15. prep.setString(2, "budi");
16. prep.addBatch();
17. prep.setString(1, "200643500116");
18. prep.setString(2, "agung");
19. prep.addBatch();
20. prep.setString(1, "200643500148");
21. prep.setString(2, "Achmad");
22. prep.addBatch();
23.
24. conn.setAutoCommit(false);
25. prep.executeBatch();
26. conn.setAutoCommit(true);
27.
30. while (rs.next()) {
31. System.out.print(rs.getString("npm"));
32. System.out.println("\t" + rs.getString("nama"));
33. }
34. rs.close();
35. conn.close();
36. }
37.}
Penjelasan :
baris 1: memanggil package sql yang beberapa class-nya akan kita pakai nanti.
baris 3: throws Exception digunakan untuk menangani error yang akan mungkin terjadi pada saat
program dijalankan.
baris 5: Class.forName pada dasarnya berfungsi untuk memanggil suatu class dalam suatu
package. Dalam kasus ini statement tersebut memanggil class "JDBC" yang berada dalam
package "org.sqlite". sumber
baris 6: (Connection) membuat objek koneksi ke database latihan1.db.
baris 8: (Statement) objek yang digunakan untuk mengeksekusi pernyataan SQL.
baris 9: (executeUpdate) mengeksekusi pernyataan SQL yg diberikan, yang mungkin berupa
pernyataan INSERT, UPDATE atau DELETE, atau pernyataan SQL yang tidak mengembalikan
apa-apa seperti pernyataan DDL.
baris 11: Sebuah pernyataan SQL yang dikompilasi dan disimpan dalam obyek
PreparedStatement. Objek ini kemudian dapat digunakan untuk mengeksekusi pernyataan ini
berkali-kali secara efisien.
baris 28: ResultSet adalah sebuah tabel virtual yang mewakili data hasil eksekusi pernyataan
query SELECT.