This is default featured slide 1 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 2 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 3 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 4 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 5 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

Minggu, 12 Juli 2015

Pertemuan 14 - Session

SESSION


Apa itu Session ?
Merupakan fasilitas penyimpanan pada server untuk mengidentifikasi client. Session dikirim pertama kali oleh server ketika client melakukan request. Session disimpan di sisi server. Pada request – request selanjutnya yang berasal dari client yang sama, client akan tetap berada dalam session yang sama selama session tersebut valid

Session memiliki input type yang bersifat Hidden, dan menampung value inputan. Sehingga tidak dapat diketahui langsung oleh pengguna.

Session disimpan pada server. Dan memerlukan identifier atau identitas agar session dapat disimpan. Sehingga ketika session diakses pada waktu yang akan datang, dapat langsung dikenal. Biasanya digunakan untuk login website.

Session hampir sama dengan cookies, namun tidak disimpan pada browser.

Kesamaan Antara Cookies Dan Session :
Dapat menyembunyikan informasi atau menyimpan informasi, dan akan ketahuan siapa penggunanya oleh user, dengan menggunakan method get

Waktu Hidup Session :
Session memiliki waktu hidup di server. Session dapat diakhiri atas permintaan user. Session otomatis akan berakhir ketika kita menutup browser. Tapi waktu hidup server bisa juga diatur oleh server. Tidak ada batasan waktu bagi session, bisa dalam hitungan detik, menit, hari bulan bahkan bertahun – tahun.

Proses Dari Session :
1.      Pertama, browser melakukan request ke server 
2.     Server mengetahui IP client,kemudian memberikan datas ession yang akan dikirim lagi ke client dalam bentuk sessionID
3.      Untuk interaksi selanjutnya client mengirim session ID tersebut ke server 
4.  Server menggunakan sessionID ini untuk mendapatkan dataclient yang disimpan didatabase server

Pembuatan Session :
1.      Untuk mendapatkan Session saat ini atau menciptakan session baru :
HttpSession session = request.getSession( )
2.      Untuk menyimpan data di session :
session.setAttribute(NamaSession, value)

Pengambilan Data Pada Session :
Untuk membaca session, JSP menyediakan metode bernama getAtribute() yang dipanggil melalui variable session. Anda bisa memperoleh semua sessiondengan cara seperti berikut : session.getAttribute(NamaSession)

Menghapus Data Pada Session :
session.removeAttribute (NamaSession);
session.invalidate ( );


Dengan method invalidate( ) server akan melepaskan semua objek yang berkaitan dan melupakan session. Default waktu session di java adalah 30 menit atau tergantung setingan server di web.xml. Jika selama 30 menit tidak ada request otomatis session akan berakhir.

Perbedaan Antara Session Dan Cookies :


Contoh Pembuatan Session :

1.     Class : FormLogin.html




Hasilnya :

Merupakan tampilan form login bagi pengguna untuk login, dibuat menggunakan html. Yang menampung data username dan password pengguna.

2.     Class : login.jsp



Merupakan halaman untuk menampung data username dan password pengguna. Untuk memanggil objek session menggunakan setAtrribute

Class : loginsukses.jsp



Halaman yang digunakan ketika login berhasil, dimana username dan password yang diinputkan harus sama dengan yang ada pada halaman login.jsp

Class : errorlogin.jsp



Halaman ini tampil apabila pengguna mengklik link “Logout”, sehingga tidak dapat lagi melakukan pengecekkan nilai session.


Hasilnya :

3.     Class : ceksession.jsp



Hasilnya :


Berfungsi menampilkan value yang ditampung pada session yang telah dibuat. sehingga dapat diketahui siapa pengguna yang sedang aktif. Jika telah melakukan Logout, maka tidak dapat mencek session. Yang ditampilkan adalah username pengguna yang sedang aktif

4.     Class : logout.jsp


Hasilnya :


Akan tampil apabila link “Logout” diklik. Maka secara otomatis session juga akan mati atau terhapus, sehingga harus melakukan login ulang, karena session tidak lagi disimpan.

Pertemuan 13 - Cookies

COOKIES



Apa itu Cookies ?
Merupakan semacam ID card user saat koneksi pada situs. Tiap-tiap website pada umumnya mengeluarkan / membuat cookies sesuai karakterikstiknya. Ada web yang dapat menyapa user tiap kali mengunjungi situs tersebut selayaknya teman lama karena menggunakan cookies.

Informasi yang terdapat pada cookies  disimpan di web server yang terdapat pada client. Bekerja mengirim data dari server ke browser client, tepatnya pada HTTP Response. Biasnya cookies digunakan untuk login dan menampung informasi kecil dari client.

Alasan Membuat Cookies ?
Karena cookies nyaman dan efektif saat digunakan. Jika website dengan pengunjung ribuan atau jutaan tidak menggunakan cookies, mereka akan menyimpan data interaksi yang dilakukan pengunjung ke server dan akan di proses disana. Tentu ini akan memakan waktu yang lama, sedangkan jika menggunakan cookies maka akan lebih cepat.

Kenapa Cookies Ditinggalkan ?
-          Karena cookies dapat dihapus oleh Client
-          Cookies memiliki batasan. 1 client memiliki 300 cookies
-          Sama dengan session, dapat dikenali juga dengan server.

Kekurangan Cookies :

Tidak memiliki privasi yang kuat, karena dapat dihapus oleh pengguna

5 Batasan Yang Terdapat Pada Cookies :
1.      Suatu client dapat menampung 300 cookies.
2.      Suatu server hanya bisa mengirim 20 cookies ke suatu client.
3.      Sebuah cookies memiliki ukuran maksimal 4 Kb, sehingga total space hard disk yang digunakan cookies hanya mencapai 1,2 Mb.
4.      Sebuah cookies hanya dapat dibaca dan diubah oleh server dari domain dimana cookies tersebut berasal.
5.      Sebuah cookies hanya dapat berisi data berupa teks dan tidak bisa berupa data biner.

Manfaat Adanya Cookies :
1.      Sebagai Pengingat. Dalam hal ini dapat dilakukan oleh website untuk mengingat siapa saja pengguna website tersebut, dan mengatur preferences yang sesuai sehingga apabila pengguna kembali mengunjungi website maka dapat langsung dikenali.
2.      Sebagai Penelusur. Dalam hal ini dapat memungkinkan website untuk menelusuri pola web surfing pengguna dan mengetahui situs favorit yang sering dikunjunginya.
3.      Mempermudah Registrasi. Dalam hal ini dapat berfungsi dalam menghilangkan kebutuhan untuk me-register ulang di web site tersebut saat mengakses lagi tersebut, cookies juga dapat membantu proses login pengguan  ke dalam web server tersebut.

Cara Pembuatan Cookies :
1.      Sebuah coookie dapat diciptakan dengan menggunakan kelas coookie (terdapat pada paket javax.servlet.http). 
Cookies nama_objek = new Cookies (“nama_cookies”, “nilai_cookies”);           
Keterangan :
-          nama_cookies berupa string yang menyatakan nama cookies dan
-          nilai_cookies menyatakan nilai yang akan disimpan pada nama cookies.

2.      Nama cookies tidak boleh mengandung karakter-karakter berikut :
Spasi-putih [] () = , “ / ? @ : ;
Selanjutnya, objek cookies yang terbentuk perlu dikirimkan melalui objek implicit response,dengan memangggil metode addCoookie().
response.addCookies(nama_objek);
Jadi untuk membuat Cookies maka kita harus membuat objeknya terlebih dahulu, lalu baru kita tambahkan objek Cookies tersebut ke HTTP response.

Mengambil Nilai Pada Cookies :
1.      Untuk membaca cookies yang terdapat pada klien, menggunakan metode bernama getCookies() yang dipanggil melalui variable bernama request. Metode ini memberikan nilai balik berupa array berkelas Cookies. Anda bisa memperoleh semua cookies dengan cara seperti berikut :
Cookies nama_array[] = request.getCookies();
Keterangan:
Request.getCookies(); kode ini digunakan untuk mengambil semua Cookies dari header HTTP Request.

2.      nama_array adalah variable array yang berkelas Cookies. Selanjutnya variable ini diisi dengan seluruh cookies yang dihasilkan oleh request.getCookies().
Untuk mendapatkan sebuah cookies dengan indeks i, anda bisa menggunakan pernyataan seperti berikut ini : Cookies = nama_array[i];
Variabel cookies perlu dideklarasikan terlebih dahulu : Cookies cookies;
Dengan menggunakan metode getName() untuk memperoleh nama cookies dan menggunakan metode getValue() untuk memperoleh isi cookies.

Mengatur Usia Pada Cookies :
Untuk menentukan waktu kadaluwarsa atau usia cookies bisa dilakukan dengan menggunakan metode setMaxAge(), yaitu : nama_objek.setMaxAge(int usia);

Parameter usia dalam satuan detik menyatakan berapa lama cookies bersangkutan bertahan sebelum masa kadaluwarsa. Contoh mengatur waktu kadaluwarsa 1 jam dimulai sekarang dengan cara memberikan perintah sebagai berikut : nama_objek.setMaxAge(3600);

Menghapus Cookies :
Cookies dapat dihapus dengan memanggil metode setMaxAge() dan dengan menyertakan argument berupa angka nol, yaitu :
Cookies nama_objek = new Cookies(nama_cookies”,””);
nama_objek.setMaxAge(0);
response.addCookies(cookies);


Mengganti Nilai Cookies :
Untuk mengganti isi suatu cookies, maka buat cookies dengan nama yang sama tetapi dengan isi yang baru.
Cookies nama_objek = new Cookies(“nama_cookies”, “new value”);
response.addCookies(nama_objek);



Contoh Pembuatan Cookies :
1.     Class : cookies1.jsp

Hasilnya :

Terdapat 4 buat cookies dengan nama :
c1 untuk menampung nama
c2 untuk menampung nim
c3 untuk menampung prodi
c4 untuk menampung jenis kelamin
untuk menampilkan tiap value pada cookies, harus disertai dengan perintah : response.addCookies(c1);

2.     Class : TampilCookies.jsp

Hasilnya :
Cookies c1 sampai c4 ditampilkan valuenya, dan menggunakan perintah seperti pada gambar diatas

3.     Class : UsiaCookie.jsp

Hasilnya :



Cookies telah diatur usianya menggunakansetMaxAge, selama 1 jam, dan harus di set dalam hitungan detik (3600).

4.     Class : HapusCookie.jsp

Hasilnya :


Untuk menghapus cookies, set saja usinya 0, maka cookies akan terhapus. Dan ketika diklik tag “Disini” maka akan muncul value cookies yang telah dibuat tadi, tetapi value untuk cookies c1 (untuk menampung nama) sudah dihapus

5.     Class : UpdateCookie.jsp

Hasilnya :



Cookies c1(yang menampung nama) telah dihapus. Dan sekarang akan dibuatkan cookies dengan value yang berbeda dengan sebelumnya. Dan nantinya cookies baru akan muncul dan cookies lama juga akan muncul. Seperti gambar dibawah ini :



Minggu, 28 Juni 2015

Pertemuan 12 - JSTL (JSP Standard Tag Library)


 
JSTL adalah singkatan dari Java Standard Tag Library. JSTL merupakan library untuk JSP yang berisi tag-tag standard. JSTL merupakan halaman java yang berada dalam HTML (Java in HTML). Tag pada JSTL :
<%..........%> atau
<%=………….%>

Pada MVC, JSP merupakan View, yang mengurusi segala tampilan web, dilakukan dengan memisahkan antara tampilan kode HTML dan kode Java. Pada JSTL tidak perlu ada pengulangan atau kondisi looping.
JSTL dapat digunakan apabila dideklarasikan seperti dibawah ini pada bagian file JSP :
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

Tujuan dari JSTL yaitu :
-            Mempermudah dalam perancangan halaman JSP
-            Memisahkan halaman kode html dan kode Java pada JSP

Jenis-jenis Tag Pada JSTL :

1.       Core (http://java.sun.com/jsp/jstl/core, prefix c)
Merupakan bagian inti, terdapat pada bagian perulangan seperti : If, Else, dan Switch Case ataupun iterasi dan kondisi.  Tag core menyediakan fungsi yang sangat berguna untuk setiap proyek web. Set core dapat dibagi menjadi sub kategori sebagai berikut:

- General Purpose Tags
<c:set>
Tag ini dapat mengatur variabel di dalam scope tertentu (untuk set value). Dan memiliki atribut:
1.        Value : nilai yang akan diatur ke dalam terget bean.
2.        Var : nama dari sebuah variabel yang akan di atur di dalam scope tertentu
3.        Scope: menjelaskan variabel scope yang dijelaskan oleh atribut var.

<c:out>
Tag ini digunakan untuk menampilkan atau melakukan pemanggilan hasil secara langsung kepada obyek yang sesuai dengan halaman output. Dengan kata lain, tag ini akan menuliskan kata yang tertulis dalam atribut value dan dalam bentuk non-XML tags.

<c:remove>
Tag ini digunakan untuk menghapus variabel yang telah dibuat. Tag ini memiliki dua atribut :
-       Scope: scope variabel yang akan di hapus
-       Var: nama variabel yang akan di hapus dari scope tertentu
Contoh :

- Iteration
Merupakan tag untuk perulangan yang terdiri dari : <forEach> dan <forTokens>
<c:forEach>
Tag yang digunakan pada perulangan untuk variabel dan pemanggilan output yang berupa integer. Contoh :
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<title><c:forEach> Tag Example</title>
</head> <body>
<c:forEach var="i" begin="1" end="5">Item<c:out value="${i}"/><p>
</c:forEach>
</body>
</html>
  
<c:forTokens>
Tag ini digunakan dengan memasukkan langsung calue yang ingin ditampilkan. Terdapat delims (pemisah) karakter string. Contoh :
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<title><c:forTokens> Tag Example</title>
</head>
<body>
<c:forTokens items="Zara,nuha,roshy" delims="," var="name">
<c:out value="${name}"/><p>
</c:forTokens>
</body>
</html>

- Conditionals
Tag yang fungsinya sama dengan standar if, else-if, yang ditemukan dalam standar Java. Terdapat dua set kondisional :
-       Tag <c:if> dan
-       Tag <c:choose> yang berelasi dengan tag <c:when> serta <c:otherwise>

<c:if>
Dieksekusi apabila pernyataan didalam body bernilai True.

<c:choose>, <c:when>, dan <c:otherwise>
Meemiliki cara kerja yang sama dengan kondisi pemilihan Switch Case.

2.       XML processing (http://java.sun.com/jsp/jstl/xml, prefix x)
Memiliki kaitan dengan dokumen XML
3.       SQL (http://java.sun.com/jsp/jstl/sql, prefix sql)
Memiliki kaitan dengan database prefix, yang mana tag ini adalah default(settingan) aslinya dan tidak dapat diubah. Dan bertugas dalam pengolahan data pada database
4.       Functions (http://java.sun.com/jsp/jstl/functions, prefix fn)
Biasanya digunakan untuk manipulasi String.
5.       Formatting (http://java.sun.com/jsp/jstl/fmt)
Digunakan untuk internasionalisasi sehingga web yang dihasilkan dapat diakses dengan versi banyak bahasa

Tahap-Tahap Pembuatan JSP Dengan JSTL :
1.        Tambahkan library (file .jar) ke dalam package libraries. Dan bila tidak tersedia pada library, maka kunjungi website Oracle dan download filenya.
2.        Tambahkan file JSP
3.        Tambahkan tag-tag JSTL. Terutama tag :  
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
Dan letakkan sebelum <html>. Kemudian tulis kode java setelah <body> dan sebelum </body>

Contoh Kode Program pada JSTL :
Untuk melakukan looping, kita bisa menggunakan tag foreach dalam paket core. Dan untuk memformat tanggal dan angka, kita menggunakan tag formatDate dan formatNumber dalam paket fmt
Contoh kode program :
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

<table>
    <tr>
        <th>No</th>
        <th>NPM</th>
        <th>Nama</th>
        <th>Tanggal Masuk</th>
        <th>IPK</th>
    </tr>

    <c:forEach var="mhs" items="${daftarMahasiswa}" varStatus="counter">
        <tr>
            <td><c:out value="${counter}" /></td>
            <td><c:out value="${mhs.npm}" /></td>
            <td><c:out value="${mhs.nama}" /></td>
            <td><fmt:formatDate value="${mhs.tanggalMasuk}" pattern="dd-MMM-yyyy"/></td>
            <td><fmt:formatNumber value="${mhs.ipk}" type="number" maxIntegerDigits="1"                         maxFractionDigits="2"/></td>
        </tr>
    </c:forEach>
</table>

Perbedaan JSTL dan Tag Bean Biasa :
Dengan Java Biasa:

Dengan JSTL :

Pada JSTL, tag yang digunakan lebih sedikit dibanding dengan java biasa. Pada JSTL hanya terdapat 1 baris tag pemrosesan looping, sedangkan pada java biasa terdapat 2 baris tag pemrosesan looping. 
 Jadi menggunakan JSTL lebih menghemat (memperpendek) penulisan koding, dibanding dengan java biasa.