Minggu, 12 Juli 2015

Cookie dan Session

Pemograman Web 1 (Catatan pertemuan 13 dan 14)

Cookie adalah sebuah data yang dikirim dari web server ke web browser, lalu cookie akan disimpan di komputer client.

Batasan Cookie :
- Suatu client hanya dapat menampung 300 cookie
- Suatu server hanya bisa mengirim 20 cookie ke suatu client
- Sebuah cookie memiliki ukuran maksimal 4 kb, sehingga total space hard disk yang digunakan cookie hanya mencapat 1,2 Mb.
- Sebuah cookie hanya dapat dibaca dan diubah oleh server dari domain dimana cookie tersebut berasal.
Sebuah cookie hanya dapat berisi data berupa teks dan tidak bisa berupa data biner.

Cookie dapat digunakan untuk :
- Autentifikasi user saat login, sehingga ketika kita membuka website itu lagi, maka kita dapat lansung masuk tanpa login kembali.
- Penggunaan pada saat membeli barang di ecomerce.

Pembuatan Cookie:
1. Sebuah cookie dapat diciptakan dengan menggunakan kelas cookie:
==> Cookie nama_objek = new Cookie("nama_cookie","nilai_cookie");

2. Membentuk atau memanggil objek cookie:
==> response.addCookie(nama_objek)

3. Memanggil nilai cookie
==> Cookie nama_array[] = request.getCookie();

4. Mengeset batasan cookie:
==> nama_objek.setMaxage(int usia);

5. Menghapus Cookie:
==> nama_objek.setMaxAge(0);



Session adalah fasilitas penyimpanan pada server untuk mengidentifikasi clien. Session dikirim dari server ketika client melalukan request, session disimpan disisi server. Pada saat request selanjutnya, client akan tetap berada pada session yang sama selama session tersebut valid.

Pembuatan Session:
1. Menciptakan session baru:
==> HttpSession session = requesr.getSession()

2. Untuk mengeset data disession
==> session.setatribute(namasession, value);

3. Mengambil dara session
==> session.getAtribute(namasession);

4. Menghapus session
==> session.removeAtribute(namasession);
session.invalidate();

Jadi, perbedaan antara session dengan cookie:
1. Session: nilai variabel disimpan disisi server sedangkan Cookie: nilai variabel disimpan disisi client.
2. session: ketika browser ditutup maka session akan hilang, sedangkan Cookie: browser ditutup cookie tidak hilang selama waktu belum habis


Sabtu, 27 Juni 2015

Java Bean

Pemograman Web 2 Pertemuan 11

Java bean adalah komponen dalam java yang bersifat reusable. Java bean digunakan untuk mengelola antara applikasi client dan komponen yang berjalan pada J2EE server atau antara komponen server dan database.

Pada konsep MVC, java bean ini dikenal dengan Model. Pada dasarnya java bean dapat dibuat dengan cara yang sama dengan pembuatan class java standar, tetapi class java bean memiliki beberapa ketentuan khusus.

Ciri-ciri class java bean:
1. Class harus memilki constructor tanpa parameter
2. Terdapat method setter dan getter untuk mengakses setiap propertiesnya
3. Modifier yang digunakan adalah private.

Langkah-langkah membuat class java bean:
1. mendefinisikan variabel dalam bean yang akan dibuat. Variabel ini tidak boleh dideklarasikan secara public.
seperti : private string nim;

2. Masing masing variabel dibuat method set dan get nya agar dapat dipanggil di class lain.
seperti: getNim() dan setNim();

Tag-tag yang digunakan untuk memanggil class bean adalah:
1. Memanggil javabean dalam halaman jsp
<jsp:usebean id="name" class="package.Class"/>

seperti contoh:
<jsp:usebean id="mhs" class="mahasiswaku.Mahasiswa"/>
Maksudnya, menggil class javabean dengan nama mhs yang terletak di package mahasiswaku pada kelas Mahasiswa.

2. Mengambil nilai property
<jsp:geProperty name="mhs" property="nim"/>
Maksudnya, mengambil nilai property dari javabean bernama mhs yang diambil nim nya.

3. Mengeset nilai property
<jsp:setProperty name="mhs" property="nim" value="1357301050"/>
Maksudnya, mengeset variabel nim dengan nilai 1357301050.


JSTL

Pemograman Web Pertemuan 12

JSTL atau JSP Standard Tag Library adalah library untuk JSP yang berisi tag tag standard.

Tujuam dari JSTL:
1. Mempermudah merancang halaman JSP
2. Membuat halaman JSP yang lebih rapi

JSTL memiliki beberapa tag, antara lain:
1. Core : http://java.sun.com/jsp/jstl/core, prefix c = untuk pengolahan skrip mendasar seperti struktur juga didalamnya termasuk iterasi dan kondisi
2. Formatting : http://java.sun.com/jsp/jstl/fmt = untuk internasionalisasi sehingga web yang dihasilkan dapat diakses dengan banyak bahasa
3. SQL : http://java.sun.com/jsp/jstl/sql, prefix sql = kumpulan tag untuk meproses data dalam database
4. XML : htttp://java.sun.com/jsp/jstl/xml, prefix x = berisi kumpulan tag untuk mengolah dokumen xml
5. Function : http://java.sun.com/jsp/jstl/fn, prefix fn

Tag-tag umum dalam library Core:
1. <%@taglib url:"http://java.sun.com/jsp/jstl/core" prefix="c" %>
maksudnya adalah directive untuk kita memanggil tag tag core jstl
2. <c:set var="nama" value="kiki" />
maksudnya adalah kita mengeset variabel nama dengan nilai kiki
3. <c:out value="${nama}"/>
maksudnya untuk menampilkan isi dari variabel nama

Tag-tag untu kondisi dalam jstl :
1. <c:choose>
2. <c:when>
3. <c:otherwise>
4. <c:when>

contoh penggunaan tag kondisi jstl:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<title>c:choose, c:when and c:otherwise Tag Example</title>
</head>
<body>
<c:set var="number1" value="${222}"/>
<c:set var="number2" value="${12}"/>
<c:set var="number3" value="${10}"/>
<c:choose>
 <c:when test="${number1 < number2}">
     ${"number1 is less than number2"}
 </c:when>
 <c:when test="${number1 <= number3}">
     ${"number1 is less than equal to number2"}
 </c:when>
 <c:otherwise>
     ${"number1 is largest number!"}
 </c:otherwise>
</c:choose>
</body>
</html>
 
c-choose-example 

Tag-tag untuk pengulangan dalam jstl:
1. <c:forEach> : untuk pengulangan dengan number
2. <c:forToken> : untuk pengulangan dengan string yang menggunakan pembatas

contoh tag perulangan jstl:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<title>Example c:forEach tag in JSTL</title>
</head>
<body>
<c:forEach var="counter" begin="1" end="10">
 <c:out value="${counter}"/>
</c:forEach>
</body>
</html>
 
c-forEach-example 
 
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<title>Example c:forTokens tag in JSTL</title>
</head>
<body>
<c:forTokens items="www.beginnersbook.com" delims="." var="site">
 <c:out value="${site}"/>
</c:forTokens>
</body>
</html>






c-forTokens-example

Kamis, 28 Mei 2015

JSP

Pemograman Web 1 pertemuan 9

JSP adalah suatu teknologi web berbasis bahasa pemograman java dan berjalan di platform java, serta merupakan bagian dari teknologi J2EE.

Cara kerja JSP :
1. Pemakai yang ingin mengakses halaman web mula mula mengirimkan permintaan halaman web melalui protokol HTTP dalam bentuk JSP.
2. Permintaan akan disampaikan ke Web server.
3. Web server akan mengambil dokumen JSP dan mengirimkan ke JSP Servlet Engine,

Pada tahap web server mengambil dokumen JSP, ada pemogresan kode kode JSP termasuk melakukan pengompilasian dan membentuk kode HTML. Kode HTML ini disampailan oleh web server ke klien yang memintanya. Kode HTML ini selanjutnya diproses oleh browser sehingga user bisa memperoleh informasi halaman webnya.

Detail pemogresan oleh JSP Servlet engine adalah :
  • Melakukan pemilahan atau parsing kode JSP
  • membangkitkan kode sumber Servlet
  • mengkompilasi kode sumber servlet menjadi sebuah kelas
  • membuat instant servlet
  • memberikan keluaran servlet ke web server.

Kelebihan JSP:
  • JSP dapat berjalan pada semua platform
  • JSP cenderung memiliki performasi yang lebih baik, karena JSP dilakukan kompile terlebih dahulu menjadi servlet yang berupa bytecode
  • Didukung bahasa java yang memiliki kemampuan OOP dan tingkat reusability yang tinggi
  • Dapat menggunakan javabean untuk mengaksulasi kode kode java.

Kekurangan JSP :
  • Proses kompile halaman JSP mengakibatkan proses loading yang lama sehingga menyebabkan kecepatan proses JSP secara menyeluruh berkurang.

Elemen pada JSP :
1. Directives : merupakan suatu petunjuk bagi web container tentang sesuatu yang harus dilakukan pada saat container melakukan compile halaman JSP
Sintaks :
<%@ namaDirective attribute1=”value1” attribute2 =”value2” %>
2. Scripting Elements : tag untuk menuliskan program java
Sintaks :
<%! Deklarasi variable dan method %>
3. Action : spesial tag yang memberikan pengaruh pada halaman JSP pada saat runtime
Sintaks :
Untuk beanDetail berupa salah satu dibawah ini :
class = “className”
class = “className” type = “typeName”
beanName = “beanName” type = “typeName”
type = “typeName”

Scripting Element terbagi atas tiga:
• Scriplet, berisi statement-statement yang merupakan logika dari suatu proses.
Contoh :
<% System.out.println(“Test Scriptlets”); %>
• Deklarasi, gunanya untuk mendeklarasikan variabel atau method.
Contoh :
<%! int i = 10 ; double x = 5.0 ; %>
• Ekspresi, berguna untuk menampilkan nilai dari suatu variabel atau method.
Contoh :
<%
String oAnalisa=oAnalisaReview.getAnalisa(oIDK);
%>

Referensi :
http://akademiainformatika.blogspot.com/2014/05/blog-post.html

Database JDBC dan ODBC

Pemograman Web 1 Pertemuan 8

Pada pertemuan kali ini, kelompok yang presentasi membahas tentang dua konsep tentang koneksi database atau interface database yang dapat digunakan.

A. JDBC

JDBC atau Java Database Connectivity adalah sebuah API atau interface database yang dibangun untuk platform java.

JDBC adalah spesifikasi standar dari javaSoft APi yang memungkinkan program Java untuk mengakses sistem database managemen. JDBC menyediakan methods untuk melakukan query dan modifikasi data RDBMS seperti Oracle, SQL server, MySQL, dll menggunakan driver manafer.

Komponen JDBC 

Berikut komponen penting dari JDBC:
  •  JDBC-API : menyediakan fasilitas untuk mengakses database dari program berbahasa java. melalui komponen ini user dapat melakukan proses query dan perubahan data dalam database.
  • JDBC Driver Manager : komponen kelas utama yang mendefenisikan objek yang mengkoneksikan aplikasi java ke JDBC driver. Komponen ini berfungsi untuk mengatur beberapa tipe JDBC database driver yang berbeda.
  • JDBC Test Suite : komponen ini memastikan JDBC driver dapat menjalankan program user dan berguna dalam melakukan testing aplikasi.
  • JDBC-ODBC Bridge : database driver yang menggunakan ODBC driver untuk koneksi ke database serta untuk tranlasi dari JDBC pemanggilan method ke ODBC pemanggilan fungsi dan mengimplementasikan JDBC yang didukung oleh ODBC.

Tipe tipe JDBC :
1. JDBC ODBC Bridge
 

Fungsi : translasi query dari JDBC ke ODBC query 
Keunggulan : semua database yang didukung oleh ODBC dapat diakses
Kelemahan: performance overhead, ODBC driver harus diinstall di semua client, dan dibutuhkan client side software.

2. Java to Native API


Fungsi : konversi pemanggilan JDBC ke client API untuk database
Keunggulan: performa lebih baik dari pada tipe 1
Kelemahan : Vendor client library harus diinstall di client, tidak dapat digunakan di internet karena membutuhkan client side software, dan tidak semua database memberikan client side library.

3. Java to Network Protocol or All java Driver

 
Fungsi : menggunakan pendekatan 3tier komunikasi, vendor independet.
Keunggulan : tidak membutuhkan installasi pada client side, dan middleware server dapat memberikan fungsi tambahan dalam hal caching, auditing dll dan dapat digunakan diinternet
Kelemahan : membutuhkan program bersifat database spesifik untuk middle tier dan extra layer dapat menyebabkan time bottkeneck.

4. Java to Database Protocol


Fungsi : melakukan komunikasi lansung dengan database melalui koneksi socket, driver berfungsi mengubah pemanggilan JDBC ke database protokol lansung, dan dapat diimplementasi sepenuhnya dalam java
Keunggulan : Performa cenderung meningkat, tidak melakukan tranlasi ke ODBC, tidak mengunakan client API, dan tidak menggunakan middleware layer.
kelemahan: pada sisi client, driver masing masing database harus terinstal.

Langkah langkah mengkoneksikan JDBC:
1. Mengimport package java.sql

java.sql.Connection
java.sql.DriverManager
java.sql. Statement
java.sql. ResultSet

2. Memanggil driver JDBC

Class.forName(namaDriver);
atau
Class.forName(namaDriver).newInstance()

3. Membangun Koneksi

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 gagaldilakukan”);
}

4. Membuat statement

Statement stat = Connecetion.createStatement();

5. Melakukan query

String sql = "DELETE FROM data_siswa WHERE kode =“1234”;
PreparedStatement stat = konek.prepareStatement(sql);
       stat.executeUpdate();
6. Memproses Hasil
7. Menutup koneksi

statement.close();
connection.close();

B. ODBC

ODBC atau Open Database Connectivity adalah interface database yang dibangun oleh perusahan windows.

JDBC API memiliki beberapa komponen utama yang berhubungan dengan mekanisme pengolahan data baik itu untu berkomunikasi dengan database server, melakukan koneksi, mengirim perintah SQL, mendapatkan data, menutup koneksi, serta penanganan error yangg mungkin terjadi dalam pengolahan data.  Komonen-komponen tersebut adalah sebagai berikut:
  • Driver adalah komponen untuk menangani komunikasi database server
  • Driver Manager adalah komponen untuk menangani obyek Driver dimana obyek Driver Manager juga mengabstraksi detail dari proses kerja obyek Driver
  • Connection adalah komponen untuk merepresentasikan koneksi secara fisik ke Database
  • Statment adalah komponen untuk mengirim perintah-perintah SQL ke database
  • ResultSet adalah komponen untuk menyimpan data yang didapat dari database setelah perintah SQL dijalanan dengan menggunakan komonen Statment
  • SQL Exception adalah komponen untuk menangani kesalahan-kesalahan atau error yang mungkin terjadi dalam pengolahan database.



    Referensi :
    https://dklp02j2ee11.wordpress.com/2011/11/16/pengertian-jdbc/
    http://meldhycom.blogspot.com/2013/05/membuat-database-dengan-odbc-ms-access.html

HTTP Request dan HTTP Respon

Pemograman Web 1 Pertemuan 7

Pada catatan pw kali ini, kita akan membahasa tentang bentk komunikasi antara client dan server yaitu request dan respond.

HTTP itu adalah suatu bentuk protokol umum, yang digunakan oleh server dan client untuk berkomunikasi di dunia web. Komunikasi ini terjadi dalam bentuk request dan response. Jadi, kalo sang client merequest, maka sang server akan merespon.

Respon apa yang akan diberikan oleh sang server, sangat bergantung dari request (permintaan) dari sang client.

Klien dan Server Web

Siklus hidup dari permintaan HTTP umumnya terlihat seperti ini:
  1. Seorang pengguna mengunjungi URL dari sebuah situs web.
  2. Hal ini menciptakan permintaan yang diarahkan ke web server melalui internet (jaringan DNS itu, router dan switch) melalui HTTP (Hypertext Transfer Protocol).
  3. Web server menerima permintaan HTTP dan merespon pengguna dengan halaman web (atau isi) yang diminta.


1. HTTP Request

Request adalah permintaan dari client yaitu web browser seperti Firefox, Chrome dll ke server seperti web server.

Contoh HTTP request :
GET /kategori/desain/blah-blah-blah/ HTTP/1.1
Host: www.namasitus.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 (.NET CLR 3.5.30729)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Cookie: PHPSESSID=vj2r4q43ibr2t5u5djq1q73vt0
Pragma: no-cache
Cache-Control: no-cache
Stuktur dan method request
  • Get : Bagian method untuk menandakan jenis request yang digunakan..
  • Path : merupakan bagian dari URL yang diambil setelah nama domain
  • Host : berisi host dan port yang digunakan pada original URL
  • Accept : berisi informasi MIME atau tipe yang akan dikenali oleh browser
  • Accept-Encoding : berisi informasi encoding yang dikenali oleh browser
  • Connection : memberitahu ke server apakah client dapat menghandle HTTP connections
  • Cookie : mengirimkan kembali cookie ke server

 Transaksi HTTP
  

2. HTTP Respons

Setelah browser mengirimkan request, server kemudian akan membalasnya dengan sebuah HTTP respons

Contoh Format Pesan HTTP

Contoh HTTP Response:
HTTP/1.1 200 OK
 Server: Microsoft-IIS/5.0
 Date: Tue, 31 Oct 2012 03:01:44 GMT
 Connection: close
 Content-Type: message/http
 Content-Length: 39

Bagian pertama dari response adalah versi protokol. Format dan arti versi protokol sama dengan yang ditemukan pada pesan request.
Bagian berikutnya dari response, yaitu 200 OK  berisi kode status dari informasi yang diminta oleh pesan request. Jika method memberikan informasi apa yang harus dilakukan, maka bagian ini memberikan informasi apa yang terjadi setelah operasi dilakukan. Kode status terdiri dari dua bagian:
  1. Bagian pertama berupa kode angka (status-code; 200 pada contoh). Dibuat agar kode status mudah diproses oleh komputer.
  2. Bagian kedua berupa teks penjelasan (reason-phrase; OK pada contoh). Dibuat agar mudah dimengerti oleh manusia (pengguna sistem).
Kode status dibagi ke dalam beberapa kateogri, yang dapat dilihat pada tabel berikut:

Keseluruhan KodeKode yang TerdefinisiKategori
100 - 199100 - 101Informasional
200 - 299200 - 206Sukses
300 - 399300 - 305Redirection
400 - 499400 - 415Kesalahan Client
500 - 599

500 - 505Kesalahan Server
Referensi :
http://bertzzie.com/knowledge/serverside-nodejs/ProtokolHTTP.html


















Jumat, 08 Mei 2015

Web Arsitektur dan Konsep MVC

Pemograman Jaringan 1

Arsitektur web merupakan struktur rancangan (desain) web agar dapat tersusun suatu informasi yang tepat (terorganisasi) dan mudah ditemukan isinya. Dimana struktur rancangan harus memenuhi beberapa aspek antara lain form, fungsi, navigasi, interface, interaksi, visual, dan maksud informasi itu sendiri, yang akan dibangun dalam sebuah web.

Pertimbangan besarnya dari kebutuhan dan batasan dalam pembangunan sebuah web meliputi:
  • Kebutuhan fungsional
  • Kebutuhan kualitas
  • Integrasi dengan sistem yang telah ada

Kategori arsitektur web :
  1. Aspek Layering yaitu software distrukturkan dalam beberapa tier atau tingkatan untuk mengimplementasikan pemisahan urusan
  2. Aspek data, terbagi dua yaitu secara terstruktur seperti relasional database dan XML, dan secara non struktur meliputi konten multimedia dan gambar,audio,video.

Komponen arsitektur aplikasi web dasar yaitu:
  1. Client : biasanya browser
  2. Firewall : software yang mengatur jaringan internet dengan LAN perusahaan
  3. Proxy : untuk menyimpan halaman web pada cache
  4. Web server: bagian pendukung protokol web untuk memproses permintaan client.
  5. Database server: menyediakan data dalam bentuk terstruktur
  6. Media server: untuk content streaming data besar yang tidak terstruktur
  7. Content management server: menangani content untuk melayani aplikasi
  8. Aplikasi server: melayani permintaan akses dari komputer client.

Pattern
Pattern adalah solusi yang digunakan untuk menangani masalah pada design. Design pattern bukan desain final yang dapat ditransformasikan secara langsung kedalam kode. Ini hanyalah deskripsi atau template untuk mengetahui bagaimana menyelesaikan permasalahan yang dapat digunakan pada berbagai macam situasi yang berbeda.

Framework
Fremework adalah sekumpulan fungsi, class, dan aturan-aturan. Berbeda dengan library yang sifatnya untuk tujuan tertentu saja, framework bersifat menyeluruh mengatur bagaimana kita membangun aplikasi. Framework memungkinkan kita membangun aplikasi dengan lebih cepat karena sebagai developer kita akan lebih memfokuskan pada pokok permasalahan sedangkan hal-hal penunjang lainnya seperti koneksi database, form validation, GUI, dan security; umumnya telah disediakan oleh framework.

3 Tier
Konsep pemrogramman three tier (3 tier) atau yang biasa disebut dengan konsep client server programming merupakan konsep pemrograman yang terdiri dari 3 komponen logic layer yang saling berkaitan . 

Layer pada 3 tier:  
1. Client Layer yaitu komponen yang berjalan diatas local komputer user / client. (tier 1) Pada layer ini , akses tidak bisa sampai pada RDBMS layer jika tidak ada koneksi ke aplikasi server (layer 2 / tier 2) .
2. Server Layer yaitu komponen yang berjalan pada remote server yang berfungsi sebagai koneksi antara klien dengan database system. (Tier 2). Pada layer ini , merupakan layer yang menghubungkan antara layer client (tier 1) dengan layer RDBMS Application (tier 3). layer ini berisi package, objek, method, fungsi dan segala aktifitas query yang akan dijalankan pada layer 3 / tier 3 (RDBMS Application).
3. RDBMS Layer yaitu kumpulan database , data resource manager dan aplikasi mainframe (Tier 3). Pada layer ini, berisi kumpulan database dan data resource manager yang merupakan pusat database suatu sistem. Layer 3 / tier 3 atau aplikasi RDBMS , tidak bisa diakses secara langsung melalui layer 1 / tier 1 atau aplikasi klien. jika aplikasi klien tidak terkoneksi ke layer 2 / tier 2 atau aplikasi server .

Kelebihan arsitektur 3 Tier : 
- Segala sesuatu mengenai database terinstalasikan pada sisi server, begitu pula dengan pengkonfigurasiannya. Hal ini membuat harga yang harus dibayar lebih kecil. Apabila terjadi kesalahan pada salah satu lapisan tidak akan menyebabkan lapisan lain ikut salah. Perubahan pada salah satu lapisan tidak perlu menginstalasi ulang pada lapisan yang lainnya dalam hal ini sisi server ataupun sisi client.
- Keamanan dibelakang firewall.Transfer informasi antara web server dan server database optimal. Komunikasi antara system-sistem tidak harus didasarkan pada standart internet, tetapi dapat menggunakan protocol komunikasi yang lebvih cepat dan berada pada tingkat yang lebih rendah. Penggunaan middleware mendukung efisiensi query database dalam SQL di pakai untuk menangani pengambilan informasi dari database. 

Beberapa Keuntungan Arsitektur 3-Tier : 
- Keluwesan teknologi. 
- Mudah untuk mengubah DBMS engine. 
- Kemungkinkan pula middle tier ke platform yang berbeda 
- Biaya jangka panjang yang rendah. 
- Perubahan-perubahan cukup dilakukan pada middle tier daripada pada aplikasi keseluruhan. 
- Keunggulan kompetitif. 
- Kemampuan untuk bereaksi terhadap perubahan bisnis dengan cepat, dengan cara mengubah modul kode daripada mengubah keseluruhan aplikasi 

Kekurangan arsitekture 3 Tier : 
- Lebih susah untuk merancang 
- Lebih susah untuk mengatur 
- Lebih mahal 

Beberapa software aplikasi yang biasa menggunakan konsep 3 tier yaitu : sybase, webspherre, java , dll.
Secara visual, penggambaran arsitektur 3 tier adalah sebagai berikut : 
N-Tier
N-Tier merupakan arsitektur client server dimana presentasi, pemrosesan aplikasi, dan data fungsi manajemen secara logis dipisahkan. Huruf n pada n-tier menunjukan variabel yang dapat berisi angka sebanyak apapun.

Komponen yang ada pada N-Tier:
  1. Presentasi layer: dapat disebut user interface, berfungsi sebagai penertemahkan tugas dan hasil yang telah dikerjakan layer sebelumnya.
  2. Bisnis logic layer : koordinat dari aplikasi, memproses perintah, membuat keputusan logic dan evaluasi serta menghitung performa.
  3. Data Layer : untuk menyimpan informasi dan mengolah file system.

Keuntungan N-Tier:
  1. Kemudahan perubahan bisnis logic pada masa depan
  2. Bisnis logic yang mudah diimplementasikan
  3. Aplikasi client dapat mengakses berbagai tipe DBMS yang berbeda beda secara transparan.

Kerugian N-Tier:
  1. Sistem N tier termasuk mahal untuk development dan instalasinya
  2. memerlukan adaptasi yang semakin luas ruang lingkupnya
  3.  memerlukan rentang waktu relatif lama
  4. penggunaan memori komputer yang besar.

MVC 
Model-View-Controller atau MVC adalah sebuah metode untuk membuat sebuah aplikasi web dengan memisahkan data (Model) dari tampilan (View) dan cara bagaimana memprosesnya (Controller). MVC memisahkan pengembangan aplikasi berdasarkan komponen utama yang membangun sebuah aplikasi seperti manipulasi data, antarmuka pengguna, dan bagian yang menjadi kontrol dalam sebuah aplikasi web.
Bagian dari MVC :
  1. Model, Model mewakili struktur data. Biasanya model berisi fungsi-fungsi yang membantu seseorang dalam pengelolaan basis data seperti memasukkan data ke basis data, pembaruan data dan lain-lain.
  2. View adalah bagian yang mengatur tampilan ke pengguna. Bisa di katakan berupa halaman web web.
  3. Controller, Controller merupakan bagian yang menjembatani model dan view. Controller berisi skrip-skrip php yang berfungsi untuk memproses suatu data dan mengirimkannya ke halaman web.
Dengan menggunakan metode MVC maka aplikasi akan lebih mudah untuk dirawat dan dikembangkan. Untuk memahami metode pengembangan aplikasi menggunakan MVC diperlukan pengetahuan tentang pemrogram berorientasi objek (Object Oriented Programming).
 
cara-kerja-mvc 
 
Jenis MVC:
  1. Server slide MVC : terjadi pada aplikasi web tradisional yang tidak melibatkan client side
  2. Mixed client side dan server side MVC
  3. Rich internet application MVC

Kelebihan dengan adanya Model adalah :
a. Proses maintenance aplikasi
Penempatan detail data dan operasinya pada area yang ditentukan (Model) sehingga tidak tersebar pada keseluruhan lingkup aplikasi.
b. Reusable Model
Penggunaan kembali aplikasi model oleh aplikasi lain yang disebabkan adanya pemisahan data dengan interface.
 
Kelebihan dari View adalah :
a. Memudahkan penggabungan divisi desain dalam development team.
b. Ketersediaan multiple interface dalam aplikasi.
 
Kelebihan dari Controller adalah :
a. Komponen view dapat didesain tanpa harus memperhatikan bagian lain secara berlebih
b. Pemisahan jelas antara presentation logic dan business logic


Kelemahan MVC :
adanya peningkatan kompleksifitas sehingga pada aplikasi kecil yang tidak membutuhkan loose coupling pada Model yang menjadi blok penghalang dalam pola MVC ini sendiri.


Referensi:
http://criztian-blacklizt.blogspot.com/2011/12/about-mvc.html
https://chachataki.wordpress.com/2011/05/05/arsitektur-mvc/
http://nikenkinanti212.blogspot.com/2014/09/pengertian-3-tier-dan-n-tier-serta.html
https://lizana89.wordpress.com/2010/10/30/perbedaan-pattern-dan-framework-pengertian-mvc-dan-struts-arsitektur-codeigniter-integrasi-sistem-dan-arsitektur-soa/

Minggu, 03 Mei 2015

Servlet

Pemograman Web 1

Servlet adalah teknologi Java untuk aplikasi web. Teknologi servlet merupakan salah satu teknologi penting dari J2EE karena juga menjadi landasan dari teknologi JSP(Java Server Pages). Teknologi Java dapat dikatakan mendominasi teknologi enterprise atau server side karena teknologi ini terbukti tangguh dan stabil dalam aplikasi enterprise (J2EE).

Servlet merupakan class yang didefinisikan dalam java dan digunakan untuk meningkatkan kemampuan web server dalam menangani request dan response client. Servlet dapat menerima request dan menghasilkan response melalui protokol komunikasi yang berbeda, tetapi sebagian besar tipe yang digunakan adalah HTTP Servlet, yang diimplementasikan dengan class java javax.servlet.httpServlet.

Penggunaan Servlet biasanya digunakan untuk menangani request dari browser menghasilkan response berupa halaman HTML, XML, file, dsb sesuai request.


Kebutuhan untuk menjalankan sebuah servlet adalah:
• Web Server yang mendukung servlet API

• Client yang meminta layanan yang disediakan oleh servlet



Servlet saat ini hidup berdampingan dengan teknologi web lain seperti: 

  • PHP: Cepat, mudah tetapi tidak ideal untuk aplikasi berskala besar 
  • Coldfusion: Mudah tetapi mahal karena hanya dapat dijalankan di ColdFusion Server dari Macromedia 
  • ASP:  Mudah tetapi kurang ideal untuk aplikasi skala besar serta tidak portabel (berjalan maksimal hanya di IIS) 
  • ASP.NET:  Handal dan Canggih tetapi hanya jalan di platform Microsoft 
  • Perl/CGI: Sudah jarang digunakan karena kurang cepat dan kurang tangguh, tetapi masih bagus dan sesuai dalam aplikasi tertentu seperti search engine
 

Kelebihan Servlet:

  • Efisien dan baik dalam Performance. Performance Servlet baik karena tidak ada proses pembuatan berulang untuk tiap request dari client. Jadi tiap request ditangani oleh proses servlet container di mana servlet tidak dibuat dan dihancurkan berulang-ulang tetapi tetap tersimpan pada memori untuk menangani request lain yang datang selanjutnya.
  • Powerful. Servlet memiliki kemampuan yang lengkap, antara lain penanganan request ke request, penanganan cookie dan session, akses database dengan JDBC, caching serta library yang lengkap untuk pembuatan aplikasi web.
  • Aman. Servlet memiliki fasilitas security yang baik dan merupakan bagian dari teknologi Java yang sudah dari asalnya didesain dengan security yang baik.
  • Portabilitas. Teknologi Java Servlet portabel karena dapat dijalankan di berbagai servlet container, application server, maupun sistem operasi.
  • Proses development yang lebih cepat. Dengan menggunakan Servlet kita dapat menggunakan library java yang lengkap maupun menggunakan komponen atau bean yang sudah ada.
  • Robustness. Tangguh karena servlet merupakan teknologi java yang memiliki penanganan memori yang baik serta garbage collection sehingga aplikasi web menjadi aplikasi yang tangguh dan stabil.
  • Telah digunakan dan diakui di dunia. Servlet merupakan teknologi Java yang telah diterima dan digunakan di berbagai belahan dunia. Maka kita dapat menemukan berbagai komponen, solusi, dukungan yang ditawarkan.
  • Murah. Murah karena Java gratis untuk didownload, Servlet container juga banyak yang gratis.

Proses Kerja Servlet

Servlet diload ke JVM oleh Servlet Container apabila terjadi request pertama kali oleh client. Proses penanganan request dijalankan sebagai thread dari web server atau servlet container. Setelah diload maka servlet tetap ada di memori untuk menangani request berikutnya. Tiap kali menangani request, servlet container membandingkan timestamp dari servlet dalam memori dengan file class java servlet. Apabila timestamp file java servlet lebih baru maka secara otomatis servlet container akan meload servlet yang baru dari class servlet.



Referensi:
http://kirmanan.blogspot.com/2007/12/teknologi-java-servlet.html
http://meldhycom.blogspot.com/2013/10/j2ee-servlet-dan-jsp.html

Selasa, 14 April 2015

HTML

Pemograman Web Pertemuan ke 3



HTML (Hyper Text Markup Language) adalah bahasa yang digunakan untuk menulis halaman web dan menampilkan berbagai informasi di dalam sebuat browser internet.
HTML adalah bahasa untuk standar pemograman yang dilakukan oleh W3C yang berisi lebih dari sekedar text yang mempunyai tanda tanda atau tag yang berbentuk < >.

HTML saat ini merupakan standar Internet yang didefinisikan dan dikendalikan penggunaannya oleh World Wide Web Consortium (W3C).

Sejarah Perkembangan HTML

Pada tahun 1980 IBM mulai untuk mengembangkan sebuah bahasa pemograman dimana text dan format sebuah dokumen dijadikan satu dalam bahasa pemrograman yang sering kita sebut sebagai HTML (Hyper Text Markup Language) akan tetapi pada saat itu pihak IBM memberikan sebuah nama GML (Generalized Markup Language).

Pada tahun 1986 ISO mengeluarkan sebuah standarisasi tentang bahasa pemograman tersebut dan menyatakan sebuah nama baru dari GML tersebut dengan sebutan SGML (Standard Generalized Markup Language)

Nah mulai pada tahun kelahiran saya yaitu tahun 1989, Sebuah nama HTML muncul dari pemikiran Caillau Tim yang bekerja sama dengan Banners Lee Robert yang ketika itu masih bekerja di CERN memulai mengembangkan bahasa pemrograman ini, dan dipopulerkan pertama kali dengan browser Mosaic. Nah mulailah dari tahun 1990 HTML sangat berkembang dengan cepat hingga mencapai versi HTML versi 5.0 yang digarap pada 4 Maret 2010 kemarin oleh W3C

1. HTML 1.0

HTML ini di ciptakan pada tahun 1989, HTML 1 merupakan versi pertama yang mempunyai beberapa kemampuan diantaranya:
  • Heading
  • Paragraf
  • Hypertext
  • List
  • Cetak miring dan tebal pada text
  • Peletakan image pada dokumen tanpa text disekelilingnya (wrapping)

2. HTML 2.0

Pada tahun 1995, HTML 2.0 telah dibuat, dengan mengambil ide dari naskah HTML yang asli. Sebuah proposal pengganti dinamakan HTML+ juga dituliskan oleh Dave Raggett, dimana digunakan sebagai sebuah dasar untuk elemen-elemen baru yang diimplementasikan pada browser (seperti metode untuk memasukkan gambar ke dalam dokumen dipelopori oleh NCSA Mosaic).

Pada versi ini, penambahan kualitas HTML terletak pada kemampuannya untuk menampilkan suatu form pada dokumen. Dengan adanya form ini, maka kita dapat memasukkan nama, alamat, serta saran/kritik. HTML versi 2.0 ini merupakan pionir dari adanya homepage interaktif. Dengan menggunakan HTML 2.0, kita dapat membuat lembar halaman ciptaan yang dapat dilihat oleh semua orang.

3. HTML 3.0

HTML versi 3.0 menambahkan beberapa fasilitas baru seperti table,ini di rilis pada tahun 18 desember 1997, versi ini yang disebut juga sebagai HTML+ tidak bertahan lama dan segera digantikan HTML versi 3.2.

Dan pada bulan Mei 1996 dikeluarkan versi baru sebagai pengganti dan penyampurnaan versi 3.0 ini yaitu HTML versi 3.2, keluarnya versi ini dikarenakan adanya beberapa kasus yang timbul pada pengembang browser yang telah melakukan pendekatan dengan cara lain yang justru hal tersebut menjadi popular, maka di bakukan versi 3.2 untuk mengakomodasi praktek yang banyak digunakan oleh pengembang browser dan diterima secara umum, dapat dikatakan bahwa versi 3.2 ini merupakan versi 3.0 yang dikembangkan oleh beberapa pengembang browser seperti Netscape dan Microsoft.

HTML 3.2 berisi fitur2 baru seperti font, tabel, applet, superscripts, subscript,dll. Salah satu unsur yang ditambahkan ke standar HTML 3.2, adalah <tag> . Tag ini diperkenalkan kompleksitas yang tidak perlu untuk tugas penting dari memisahkan konten HTML (teks) dari presentasi (style).Selain itu pada HTML versi 3.2 ini, kita bisa menggunakan script di luar HTML untuk mendukung kinerja HTML  tersebut, seperti javascript dan Vbscript.

4. HTML 4.0

Pada tahun 1997, W3C publikasikan HTML 4.0 sebagai sebuah rekomendasi yang mengadopsi ekstensi yang lebih berspesifik browser, namun juga telah berusaha dalam melakukan rasionalisasi dan pembersihan pada HTML. Dalam versi ini dilakukan dengan menandakan beberapa elemen sebagai elemen “deprecated”, yang berarti elemen-elemen yang tidak terpakai. Meskipun elemen-elemen deprecated masih tetap berada dalam versi ini, pada versi berikutnya mereka akan dihapus. Versi ini juga merupakan sebuah penganjuran untuk lebih baik dan semantik dalam penggunaan HTML pada dokumen (dijelaskan lebih detil pada artikel Model standar web).
HTML 4.01 dipublikasikan pada tahun 1999 dengan beberapa kesalahan tulis yang kemudian dijilidkan pada tahun 2001.

Pada perkembangan sekarang mungkin sebagian orang masih merasakan yang namanya HTML 4 adalah kemampuan design web yaitu dengan menggunakan css (Cascading Style Sheets) . CSS ini memberikan kemuduhan dalam memberikan tampilan yang terbaik pada browser-browser Anda.

HTML 4.01 merupakan perbaikan dari HTML versi 4.0 yang terlebih dahulu diterbitkan. HTML versi 4.01 masih standart resmi sampai sekarang ini untuk memperbaiki kesalahan-kesalahan kecil (minor errors) pada versi sebelumnya. HTML versi ini juga menjadi standardisasi untuk elemen dan atribut dari script XHTML 1.0.

5. HTML 5

HTML5 adalah versi terbaru dari HTML yang dibuat oleh World Wide Web Consortium (W3C). Konsep pertamanya sudah dipublikasikan pada tahun 2008, tetapi tidak banyak yang menggunakannya hingga tahun 2011. Pada tahun 2011, HTML 5 diterbitkan sepenuhnya dan orang-orang mulai menulis dan menggunakannya. HTML5 merupakan suksesor dari HTML 4.01 yang diterbitkan pertama kali tahun 1999. Sejak saat itu, internet telah berubah secara signifikan dan kehadiran HTML5 terlihat sangat diharapkan.

Beberapa fitur baru di HTML 5 sebagai berikut:
1. Unsur kanvas untuk menggambar
2. Video dan elemen audio untuk media pemutar.
3. Elemen baru, seperti artikel, footer, header, dan navigasi.
4. Dukungan lebih baik untuk penyimpanan offline local.
5. Kontrol bentuk baru, seperti kalender, tanggal, waktu, email, URL, dan search.

Beberapa kelebihan yang dimiliki oleh HTML 5 :
  1. Cleaner code, karena sebagian besar kode telah termasuk di dalam sintaks html5, maka kode nampak terlihat lebih sederhana daripada penggabungan antara html, css dan java script.
  2. Greater consistency, HTML5 telah melakukan banyak sekali penambahan sintaks yang dibuat dalam struktur lebih baik dan lebih sederhana daripada sintaks-sintaks sebelumnya. Hal ini membuat developer terbantu dalam meningkatkan konsistensi dalam membangun sebuah web.
  3. Improve Semantics, dengan berbagai elemen kode di dalam html5 yang telah distandarisasi, maka nilai semantik dari sebuah web dapat lebih ditingkatkan. Itu berarti bahwa bagian-bagian dari web seperti header, nav, footerdan beberapa bagian lainnya terdefinisi dengan jelas maksud serta tujuannya selain itu juga terbentuk dalam sebuah “machine readible format”.
  4. Improved Accessibility, dengan teknologi HTML5 yang memudahkan struktur pembangunan sebuah web, maka developerdapat membangun pemahaman yang lebih detil mengenai halaman web.
  5. Client-side Database, HTML5 menyediakan model database SQL yang baru dengan API yang dapat dibangun dalam konsep lokal, dalam hal ini di sisi client.
  6. Geolocation, HTML5 mempunyai API yang terintegrasi terhadap geolocation, fasilitas tersebut dapat diakses melalui GPS atau fasilitas lain seperti Google Latitude pada iphone.
  7. Offline Aplication Cache, pengguna dapat terus melakukan interaksi dengan aplikasi meskipun mereka terputus dari jaringan internet.
  8. Smarter Forms, terdapat semacam reguler expression (regex) yang membuat form mampu mengenali secara lebih baik tentang input, validasi data dan interaksi dengan elemen lain (misal : format email, password dll)
  9. Sharper focus on Web Application Requiments, HTML5 membuat sebuah mekanisme yang lebih mudah dalam hal pembuatan front end, aplikasi chat, tools drag and drop, video player, pengolah grafis dan masih banyak lagi.

Tugas 1 Jam


Adapun Tugas 1 jam yaitu membuat sebuah web statis dengan menggunakan sintak HTML. Adapun tampilan web yang sederhana nya adalah sebagai berikut:

Tema web : Pendidikan






Pada web sederhana 1 jam ini, terdapat beberapa tag html yaitu:
  • table
  • background color
  • image
  • align
  • paragraf
  • heading
  • font

Minggu, 12 April 2015

Pemograman Web J2EE dan Konsep Client Server

Pemograman Web Pertemuan 2

J2EE adalah singkatan dari Java 2 Enterprise Edition, Java EE adalah sebuah spesifikasi, bukan berupa product berwujud nyata. Ada banyak vendor software membuat software berupa application server yang mengikuti standard Java EE sehingga disebut Java EE compliant application server.

Application server ini memungkinkan kita untuk membuat aplikasi berskala enterprise dengan lebih mudah karena application server sudah menyediakan berbagai fasilitas yang siap untuk digunakan sebagai pendukung aplikasi kita.

Contoh application server adalah :
  • Glassfish
  • Oracle
  • Jboss
  • IBM Websphare
  • Jrun
  • Jonas

Apache Tomcat adalah salah satu webserver/webcontainer untuk aplikasi web Java yang cukup terkenal, tapi bukan termasuk Java EE application server karena tidak menyediakan semua service yang ada di spesifikasi Java EE. Jika kita membuka website sun.java.com, dan menuju halaman tentang Java EE, maka kita bisa mendownload salah satu produk implementasi Java EE yang dibuat di bawah kendali Sun Microsystem, yaitu Sun Java System Application Server, yang sebenarnya adalah nama lain dari Glassfish application server.

Komponen J2EE
J2EE komponen adalah unit program yang masing masing memiliki fungsi fungsionalitas. Adapun komponen J2EE adalah:
-          Komponen Client
-          Komponen Web
-          Komponen Business

Komponen Client adalah bagian yang berinteraksi lansung dengan user yang berisi aplikasi client dan applet yang berjalan pada komputer client.
Komponen Web adalah bagian yang terdapat teknologi apliasi java JSP atau java server pages. Komponen web ini lebih ke arah web dinamik.
Komponen bisnis adalah sebuah abstraksi dari kegiatan kegiatan yanga ada dalam proses bisnis perusahaan. Dibagian ini terdapat program java seperti java beans, dan sevlet.

J2EE Container
Adapun J2EE container dan komponen adalah:
  1. J2EE server
  2.  EJB
  3. Web container
  4. Application Client Container
  5. Applet container


Web Container adalah web server berbasis java yang menampung web component-web component serta menyediakan layanan bagi web component seperti request dispatching, security serta lifecycle management. 
Enterprise Java Beans (EJB) adalah model komponen berbasiskan kontainer yang dapat didistribusikan dan menangani pengelolaan kontainer  pada komponen Java. Komponen Java yang berada di lingkungan EJB disebut Enterprise bean atau disebut juga dengan bean. Client dari aplikasi EJB adalah aplikasi lain, bukan end-user. 

Berikut komponen komponen yang terdapat dalam container J2EE:
1.  Enterprise JavaBeans, EJB adalah komponen untuk development dan deployment aplikasi bisnis yang terdistribusi. Aplikasi yang dibuat dengan  EJB lebih stabil, transactional, dan aman.
2.  Java Servlets. Servlet adalah aplikasi Java yang berjalan di Web server.
3.  JavaServer Pages (JSP).  JSP hampir sama dengan servlet yang memungkinkan anda membuat web dinamis.
4. Java Database Connectivity (JDBC). JDBC memungkinkan aplikasi Java untuk mengakses database.
5. Extensible Markup Language (XML). XML menyediakan mekanisme untuk menggambarkan data menggunakan tag dalam sebuah platform independen.
6.  Java Naming dan Directory Interface (JNDI). JNDI memungkinkan aplikasi untuk mengakses Naming Service dan Direktory Service.
7.   Java Transaction API (JTA). JTA memungkinkan untuk mengakses Transaction Service.
8.  Java Transaction Service (JTS). JTS mendefinisikan penerapan transaction manager yang mendukung JTA.
9.  Java Messaging Service (JMS). JMS memungkinkan aplikasi Java untuk mengakses message service.
10.  Java IDL. IDL membolehkan aplikasi Java untuk menggunakan CORBA Implementation.
11.  JavaMail. JavaMail memungkinkan aplikasi Java untuk mengakses layanan email.
12.  RMI-IIOP. RMI-IIOP digunakan untuk Remote Method Invocation atas InterOrb Internet Protocol.
 

Applikasi web dengan J2EE dapat dibangun:
  1. Java runtime environment
  2.  Jsp page dan sevlet
  3.  Komonen servet dan java bean
  4.  Static html
  5.  Client side java applet
JRE adalah sebuah Software yang digunakan untuk menjalankan aplikasi pada komputer yang dibuat dengan platform Java .

Arsitektur client server dari perspektif web

Dari suatu persepektif web berikut adalah tugas tugas daris server client:

1.    Web Client
2.    Web Server
3.    HTML
4.    URL
5.    HTTP

Web server menerima permintaan-permintaan dari para client web browser dan kemudian meresponnya. Beberapa permintaan dari client yang berisi nama dan file yang client cari, seperti beberapa data user yang disediakan. Server menerima permintaan tsb, memprosesnya, dan kemudian merespon data yang dicari oleh client atau sebuak kode error yang menginformasikan bahwa data tidak terdapat pada server.

Prinsip kerja web server: 
- user mengetik URL
- domain name diubah menjadi ip address via DNS
- client menentukan saluran dan file yang di request
- client mengirim http request ke server
- server menentukan file yag dikirim atau mengirim kode respon dan dokumen
 
Web browser adalah menyediakan user sebuah interface dimana akan meminta server dan menampilkan respon dari server. Ketika user meminta server, browserlah yang memformat permintaan tersebut ke dalam sesuatu yang server dapat mengerti. Begitu server selesai memproses permintaan dan mengirim respon, browser mengambil data yang diminta dari respon yang diberikan server dan kemudian merendernya untuk ditampilkan ke user.
 
HTML sebuah singkatan dari Hypertext Markup Language. HTML dapat dimengerti sebagai sebuah kumpulan perintah-perintah untuk web browser tentang bagaimana menampilkan isi ke user. HTML ialah standar terbuka yang telah di update oleh W3C atau World Wide Web Consortium. 

HTTP menggunakan urutan Request/Response: Sebuah HTTP client membuka koneksi dan mengirim sebuah pesan permintaan pada HTTP server; server kemudian mengirimkan pesan respon, biasanya berisikan resource yang diminta. Setelah mengirimkan respon, server menutup koneksi (membuat HTTP menjadi protokol tanpa status, contoh, tidak memelihara beberapa informasi koneksi diantara transaksi). 

Penanganan web (HTTP) request:
-    membaca dan menjelaskan permintaan pesan
-    translasi URL dengan ekstraksi path

URL adalah singkatan dari Uniform Resource Locators yang berarti suatu “pathname” untuk mengidentifikasi sebuah dokumen di web.