📰 WHAT'S NEW?

[08] Java Server Pages

JSP
                JSP(Java Server Pages) merupakan teknologi web berbasis pemograman java dan merupakan bagian dari teknologi J2EE. Pada Halaman JSP sintak HTML digabungkan dengan kode java melalui tag-tag yang disediakan.
ü  JSP dapat dieksekusi seperti html
ü  JSP dapat diprogram seperti Java
ü  JSP dikonversi ke servlets dahulu sebelum dikompile

Kelebihan JSP
ü  JSP cenderung memiliki performansi yang lebih baik, karena JSP dilakukan kompile terlebih dahulu menjadi servlet yang berupa byte code.
ü  Didukung bahasa Java yang memilki kemampuan OOP dan tingkat reuseability tinggi.
ü  Dapat menggunakan JavaBean untuk mengenkapsulasi kode-kode java.

Kelemahan JSP
                Proses kompile terhadap halaman JSP mengakibatkan client harus menunggu lebih lama pada saat pertama kali di lakukan loading. Hal ini tentu saja menyebabkan kecepatan proses JSP secara menyeluruh berkurang.

Element-element pada JSP :
Directive
Elemen yang menyediakan informasi khusus tentang halaman JSP. Ada tiga macam directive
yaitu :

1. Directive page untuk melakukan setting dihalaman      JSP. Contoh kode
<%@page language = java import = “java.util.*”/%>

2. Directive include untuk menyisipkan file lain ke dalam halaman JSP. Contoh kode
: <%@include file = “copyright.html”%>

3. Directive taglib untuk melakukan operasi tertentu. Contoh kode
: <%@ taglib uri = “identifier” prefix = “prefix”%>

Scripting
Elemen scripting terdiri atas 3 macam yaitu:
}  Scriplet
Elemen yang digunakan untuk menyisipkan kode pemograman java ke halaman JSP. Contoh tag scriplet
: <% for(int i = 0; i<10; i++) {
        out.println (“selamat datang”);} %>
Contoh lain :
<% Out.print (“Selamat Belajar JSP di Politeknik Caltex Riau”); %>
}  Deklarasi
Elemen yang digunakan untuk mendeklarasikan variable yang digunakan dalam JSP. Contoh tag deklarasi
<%! int x = 10 double y = 2.0; %>
}  Ekspresi
Elemen yang digunakan untuk menampilkan nilai dari suatu variable. Contoh tag expression
:
<%= new java.util.Date()%>
 java.util.Date()
merupaka ekspresi yang biasa digunakan pada pemrograman Java untuk mendapatkan waktu sekarang.

Action
Merupakan elemen yang didefenisikan dalam spesifikasi JSP. Contoh tag action
-          <jsp:usebean>
-          <jsp:setproperty>
-          <jsp:getproperty>
-          <jsp:include>
-          <jsp:forward>

Contoh Halaman JSP
<% = “HELLO WORLD !”%>





[07] ODBC and JDBC

ODBC and JDBC

ODBC
Open Database Connectivity (ODBC) adalah Application Programming interface (API) database yang khusus digunakan untuk mengakses database relasional, juga sebuah standar database yang metode aksesnya dikembangkan oleh kelompok SQL Access .ODBC terdapat dalam setiap komputer yang menggunakan sistem operasi windows, karena ODBC merupakan bagian dari Windows Open System Architecture (WOSA). Dalam ODBC disediakan berbagai Application Programming Interface (API) yang berguna untuk menyediaan dan memberikan stkitar bagi berbagai kegiatan pemrograman. Keuntungan utama menggunakan ODBC ini adalah fleksibilitas, fleksibel disini artinya pengubahan jenis database yang dipergunakan oleh sebuah aplikasi tidak akan mempengaruhi kode program aplikasi tersebut.ODBC terdapat dalam Control Panel Windows, yang ditunjukkan dengan icon Data Source (ODBC).




Tujuan dari ODBC adalah untuk memungkinkan user mengaksesdata yang ada dari setiap aplikasi , tentunya tidak terlepas dari yang sistem manajemen database (DBMS) untuk  penanganan data. ODBC memanage ini dengan inserting midle layer,yang  disebut database Driver, antara aplikasi dan DBMS. Tujuan dari lapisan ini adalah untuk menerjemahkan data aplikasi query ke command agar DBMS mengerti. 


Pada ODBC terdapat 2 hal penting yang berkaitan dengan koneksi database, yaitu :
1.       Database Driver
Database Driver adalah software/driver yang berfungsi untuk membuat koneksi ke database yang sesuai dengan database tersebut. Setiap database memiliki driver yang spesifik, sehingga dalam sebuah ODBC data berisi lebih dari 1 database driver.
2.       Data Source Name (DSN)
Data Source Name (DSN) adalah nama/alias dari database yang digunakan oleh program, yang koneksinya melalui ODBC.
Dalam ODBC terdapat beberapa jenis Data Source Name yang akan menentukan otoritas pemakai database, yaitu :
User DSN
User DSN bersifat private bagi user pembuatnya, artinya DSN jenis ini hanya dapat dipergunakan/tampak oleh user yang membuatnya (yaitu user yang login dengan username pembuat DSN tersebut), yang perlu menjadi catatan adalah bahwa sifat user DSN ini hanya berjalan pada Windows NT.
System DSN
System DSN bersifat public dalam sebuah komputer, artinya semua user yang menggunakan komputer dimana Sistem DSN di-install dapat menggunakannya walaupun bukan pembuatnya.
File DSN
File DSN adalah satu-satunya yang bisa di-share dan dapat dipergunakan komputer lain yang memiliki driver database yang sama, dengan demikian setting untuk koneksi database cukup dilakukan pada 1 komputer saja dan komputer yang lain cukup me-load-nya saja. File DSN ini umumnya dipergunakan untuk aplikasi multiuser pada suatu LAN.
ODBC memiliki beberapa komponen utama, yakni sebagai berikut:
1.       ODBC API : sekumpulan panggilan fungsi, kode-kode kesalahan dan sintaksis SQL yang mendefinisikan bagaimana data dalam sebuah DBMS diakses.
2.       Driver basis data ODBC : driver (yang berupa dynamic link library) yang mampu memproses panggilan fungsi ODBC untuk sebuah DBMS tertentu.

3.       ODBC Driver Manager : yang bertugas untuk memuat driver basis data ODBC yang dibutuhkan oleh aplikasi.
Pengguna sistem operasi Windows dapat mengonfigurasikan ODBC dengan menggunakan utilitas ODBC yang terdapat di dalam Control Panel. Utilitas ini mengizinkan mereka untuk mendefinisikan DSN (Data Source Name) untuk basis data yang hendak diakses dan juga driver yang digunakan untuk mengakses basis data tersebut. Untuk mengonfigurasikan ODBC dengan utilitas ini, mereka dapat mengasosiasikan sebuah DSN dengan sebuah driver ODBC, yang mengizinkan aplikasi untuk dapat berinterakse dengan sebuah basis data yang disimpan baik secara lokal di dalam mesin yang sama maupun di dalam server jaringan.

JDBC

JDBC merupakan kepanjangan dari Java DataBase Connection. Sesuai dengan namanya, JDBC ini merupakan sebuah API (Application Programming Interface) untuk berkoneksi dengan database, baik database MySql, Oracle, Ms.Access, maupun database yang lain. Sun menyediakan JDBC API ini untuk vendor database yang ingin databasenya dapat terintegrasi dengan Java. Sehingga setelah rilis JDBC API ini para vendor database membuat driver-driver mereka agar dapat klop dengan API ini.

Sebetulnya sebelum JDBC, dulu pernah ada ODBC, nah tapi kemudian Sun Microsystem membuat DataBase Connection sendiri yang ditulis dengan Java. Sekarang terkenal dengan JDBC. Untuk dapat berkoneksi dengan database, JDBC API membutuhkan yang namanya JDBC Driver. JDBC Driver ini dibuat oleh vendor database

Apa yang dilakukan JDBC?
Teknologi JDBC mampu untuk melakukan tiga hal berikut:
1. Membangun sebuah koneksi ke sumber data (data source).
2. Mengirim statement ke sumber data.
3. Memproses hasil dari statement tersebut

Tipe-tipe Driver JDBC
JDBC API terdiri atas dua interface utama, yang pertama yaitu JDBC API untuk penulis aplikasi, dan yang kedua yaitu lower-level JDBC driver API untuk penulis driver.

Teknologi driver JDBC dapat dibagi kedalam empat kategori:

1.  JDBC-ODBC Bridge plus ODBC Driver
Kombinasi ini menghasilkan akses JDBC melalui driver ODBC. Menjembatani antara aplikasi Java dengan Microsoft ODBC. Tipe driver ini paling cocok untuk jaringan korporat dimana instalasi klien bukan masalah besar, atau untuk aplikasi server yang ditulis dalam bahasa Java dalam arsitertur 3-tier.

2.  Native API party Java technology-enabled driver
Tipe driver ini mengkonversi JDBC call ke dalam client API untyk Oracle, Sybase, Informix, DB2, dan DBMS yang lain. Tipe ini memerlukan kode binary yang spesifik terhadap sistem operasi yang di-load kedalam masing-masing klien.

3. Pure Java Driver for Database Middleware (JDBC-Net)
Model driver ini menerjemahkan JDBC call kedalam protokol middleware vendor, yang kemudian diterjemahkan ke protokol DBMS oleh server middleware. Middleware menyediakan konektifitas ke berbagai jenis database yang berbeda.

4. Native-protocol Pure Java Driver
Model driver ini mengkonversi JDBC call langsung kedalam protokol network yang digunakan oleh DBMS, mengijinkan direct call dari mesin klien ke server DBMS dan memberikan solusi praktis untuk akses internet.

Langkah-langkah untuk berinteraksi dengan database server dengan menggunakan JDBC adalah sebagai berikut :
1.         Mengimpor package java.sql
2.         Mendefinisikan Url
3.      Memanggil Driver JDBC
4.      Membangun Koneksi
5.      Membuat Statement
6.      Melakukan Query
7.      Memproses Hasil
8.      Menutup Koneksi

1.       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 java.sql tersebut terdapat kelas-kelas yang akan digunakan dalam proses-proses berintekasi dengan database server misalnya kelas DriverMaganer, Connection, dan ResultSet.
Adapun listing untuk mengimpor package java.sql adalah sebagai berikut :
Import java.sql.*;

2.       Mendefinisikan URL untuk koneksi database



3.       Memanggil Driver JDBC
Langkah berikutnya 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();

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)
}

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

Database Server
Nama Driver
JDBC-ODBC
sun.jdbc.odbc.JdbcOdbcDriver
MySQL
com.mysql.jdbc.Driver
PostgreSQL
org.postgresql.Driver
Microsoft SQLServer
com.microsoft.jdbc.sqlserver.SQLServerDriver
Oracle
oracle.jdbc.driver.OracleDriver
IBM DB2
COM.ibm.db2.jdbc.app.DB2Driver

4.       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
}

Berikut ini adalah daftar penulisan URL dari beberapa database server yang sering digunakan.

Database Server
Nama URL
Contoh penggunaan
JDBC-ODBC
jdbc:odbc:<NamaDatabase>
jdbc:odbc:Dbase
MySQL
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>; DatabaseName=<namaDatabase>
jdbc:microsoft:sqlserver://localhost:1433; DatabaseName=Dbase
Oracle
jdbc:oracle:thin:@<nmHost>:<port>:<nmDB>
jdbc:oracle:thin:@localhost:1521:Dbase
IBM DB2
jdbc:db2:<NamaDatabase>
jdbc:db2:Dbase

5.       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 :
n  Statement
Interface ini dibuat oleh methode Connection.createStatement(). Object Statement digunakan untuk pengiriman statement SQL tanpa parameter.

Statement stat = Connection.createStatement();

n  PreparedStatement
Interface 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();

n  CallableStatement
Interface ini dibuat oleh methode Connection.prepareCall(). Object CallableStatement digunakan untuk menjalankan store procedure SQL.

CallableStatement stat = Connection.prepareCall();

6.       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 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");
      }

7.       Memproses Hasil

8.       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();





[06] HTTP (Request and Response)



HTTP

Pada kesempatan kali ini, saya akan sedikit membahas tentang HTTP. Yokk mari dibaca.

Singkat untuk HyperText Transfer Protocol, HTTP adalah protokol yang mendasari penggunaan untuk  World Wide Web(www), port yang digunakan adalah port 80. HTTP mendefinisikan bagaimana pesan diformat dan ditransmisikan, dan apa tindakan server Web dan browser yang harus dilakukan dalam menanggapi berbagai perintah. Sebagai contoh, ketika Anda memasukkan URL di browser Anda, ini benar-benar mengirimkan perintah HTTP ke server Web mengarahkannya untuk mengambil dan mengirimkan halaman Web yang diminta.
Standar utama lainnya yang mengontrol bagaimana World Wide Web bekerja adalah HTML, yang mencakup bagaimana halaman web diformat dan ditampilkan.
Dalam melaukan tugasnya HTTP dibagi kedalam dua macam yaitu HTTP request dan HTTP response, dimana HTTP requst dari segi client dan HTTP response dari segi server.

HTTP request

HTTP request merupakan suatu aksi yang dilakukan oleh klient kepada server agar dapat melakukan sesuatu pada resource tertentu. Method yang umum digunakan adalah GET, POST.

GET :



POST :



Berikut perbedaan lengkap dari method POST dan GET :

PERBEDAAN
POST
GET
History
Parameter/nilai tidak tersimpan di browser
Parameter/nilai tersimpan dibrowser dan bisa diakses ulang karena nilai menjadi kesatuan URL
Bookmark
Parameter/nilai tidak dapat dibookmark
Parameter bisa dibookmark
Tombol Kembali/Kirim Ulang
Biasanya browser memberitahukan/menanyakan apakah data akan dikirim ulang
Dengan methot get, halaman sebelumnya langsung ditampillkan tanpa mengeksekusi kembali karena tersimpan dalam cache browser
Encoding type (enctype attribute)
Mendukung pengiriman data binner dengan teknik multipart/form-data atau application/x-www-form-urlencoded
hanya mendukung application/x-www-form-urlencoded
Parameters
Dapat mengirimkan parameter url sekaligus mengirimkan data tersembunyi ke server
Hanya bisa mengirimkan parameter melalui URL
Kecurangan data
Lebih sulit karena tertutup
Lebih terbuka karena data terlihat
Keamanan
Dengan method POST lebih aman karena data langsung dikirim ke server
Dengan jelas bisa ketahui data apa saja yang dikirim
Penggunaan
POST digunakan untuk mengirim data yang lebih rahasia seperti password
Digunakan lebih untuk keperluan mengambil data
Besar data yang dikirim
Standard 8 Mb, tergantung konfigurasi server
7607 karakter

Didalam melakukan request http mempunyai http header yang menyatakan yang ingin di request ke server. Contoh :


HTTP response

Setelah client melakukan request dengan mengirimkan method, maka selanjutnya tugas dari HTTP Response untuk merespons permintaan dari clientnya. Tentunya dalam melakukan response, HTTP response juga mempunyai format yaitu :




Dalam melakukan response, HTTP Response memiliki beberapa tipe number yang berkaitan dengan sukses atau tidaknya request dari client. Berikut tipenya :

1.       1xx à informational request received
2.       2xx à success
3.       3xx à redirection
4.       4xx à error
5.       5xx à server error

Sekianlah postingan saya kali ini tentang HTTP, Request dan Response.