SlideShare una empresa de Scribd logo
1 de 10
Descargar para leer sin conexión
J.E.N.I




                                     BAB 1
          Pengenalan Pemrograman WEB


1.1        Mengapa harus dengan Web?
Selamat datang pada pelajaran tentang web programming. Untuk memulainya , dimulai
dengan sebuah pengertian yang baik tentang bagaimana web dapat berguna untuk
perusahaan dan programmer seperti pada pemrograman Web.



1.1.1      Lingkungan Teknologi Netral.
Pertama-tama,sebuah pemikiran yang baik tentang aplikasi pada internet yaitu ‘Net
adalah technology aman lingkungan. Komunikasi dengan bermacam aplikasi pada web
yang dijalankan melalui popular protocol(HTML/HTTP) hal itu tidak dibutuhkan user untuk
mempunyai operation system yang khusus maupun klien yang diprogramkan pada bahasa
pemograman tertentu atau framework. Semua user ingin menggunakan web browser,
aplikasi standart ini terdapat pada operation system apapun.

Dikarenakan program yang dibutuhkan pada pembelajaran ini hanyalah sebuah web
browser, tidak perlu membagi program-program melalui CD. User tidak perlu juga melalui
sebuah proses instalasi yang panjang; yang akan mereka perlukan adalah lokasi aplikasi
di Internet, dan mereka telah siap.

Manfaat yang lain yang dimiliki biner dari suatu program yang terdapat pada server yang
diakses terdapat pada user computer yaitu permasalahan yang umum yang terkait
dengan update program, seperti kebutuhan pada waktu tertentu melihat kemungkinan
versi terbaru dari suatu program, permasalahannya adalah bagaimana cara mendapatkan
program updating; disisihkan secara bersaman, user tidak perlu diberitahu atas program
yang sudah terupdate; semua yang dibutuhkan untuk mengupdate program pada web
server dan secara otomatis semua user akan menggunakannya setelah itu akan
menikmati manfaat dari update.



1.1.2      Arsitektur Client Server

1.1.2.1    Thick dan thin clients

Aplikasi web adalah jenis aplikasi yang menggunakan arsitektur client-server. Pada jenis
arsitektur ini, sebuah program client terhubung pada sebuah server untuk informasi yang
dibutuhkan untuk melengkapi tugas-tugas yang telah diset oleh user. Ada yang disebut
thin client (client tipis), dan ada juga thick client (client tebal).




Pengenalan Pemrograman Web                                                         1
J.E.N.I



Thin client adalah clients yang hanya berisikan sedikit dari apa yang diperlukan untuk
pengalaman user, kebanyakan hanya         interface. Semua logika bisnis, semua data,
terkecuali yang disediakan oleh user, berada di dalam server. Thick clients adalah clients
yang sama, kecuali pada interface, juga berisi beberapa, jika tidak banyak, logika
pengolahan diperlukan untuk tugas-tugas user yang spesifik.



1.1.2.2    Arsitektur Client-Server dari perspektif Web

Dari definisi di atas, kita dapat menyimpulkan bahwa client digunakan untuk aplikasi web
thin clients. Program client, pada hal ini adalah browser, hanya sebuah interface yang
oleh user digunakan untuk melaksanakan tugas-tugas. Yang lainnya, dari data yang user
perlukan untuk dioperasikan, logika yang menentukan aliran program dan eksekusi,
berada pada server.


Dari suatu perspektif web base disini adalah tugas-tugas dari server client:


Web server
                             Gambar 1.1 : Tanggung Jawab Server




Pada dasarnya, server menerima permintaan-permintaan dari para client web browser
dan kemudian meresponnya. Beberapa permintaan yang datang dari client disertai nama
dan alamat item yang client cari, sebagaimana beberapa data user yang disediakan.
Server menerima permintaan tersebut, memprosesnya, dan kemudian merespon data
yang dicari oleh client atau sebuak kode error yang mengindikasikan bahwa item tidak
terdapat pada server atau jika terjadi beberapa error lain.



Pengenalan Pemrograman Web                                                           2
J.E.N.I



Web client

Tugas browser adalah menyediakan user sebuah interface dimana akan meminta server
dan menampilkan respon dari server.

Ketika user meminta server (sebagai contoh, mendapatkan dokumen, atau mungkin
mengirim (submit) sebuah form), browserlah yang memformat permintaan tersebut ke
dalam sesuatu yang server dapat mengerti. Begitu server telah selesai memproses
permintaan dan kemudian mengirim respon, browser mengambil data yang diperlukan
dari respon yang diberikan server dan kemudian merendernya untuk ditampilkan ke user.



HTML

Bagaimana cara browser mengetahui apa yang harus ditampilkan ke user? Sebagian
besar situs web tidak hanya berisi teks sederhana, tetapi disertai grafis atau memiliki
form yang dapat memanggil suatu data. Bagaimana masing-masing browser mengetahui
apa yang harus ditampilkan?

Jawabannya adalah HTML, sebuah singkatan dari Hypertext Markup Language. HTML
dapat dimengerti sebagai sebuah kumpulan perintah-perintah untuk web browser tentang
bagaimana menampilkan isi ke user. Itu merupakan standar terbuka yang telah di update
oleh W3C atau World Wide Web Consortium.

Karena merupakan sebuah standar terbuka, setiap orang mengaksesnya, berarti bahwa
browsers dikembangkan dengan standar itu di pikiran. Lebih lanjut berarti bahwa semua
browsers mengetahui apa yang dilakukan ketika itu memecahkan HTML, meskipun
beberapa browsers yang lebih lama mungkin memiliki permasalahan pada perenderan
beberapa halaman yang ditulis menggunakan versi HTML yang lebih baru yang telah
diupdate setelah pengembangannya.



HTTP
Definisi

HTTP singkatan dari “HyperText Transfer Protocol“. Merupakan sebuah protokol jaringan
dengan fitur-fitur Web-specific yang berjalan pada bagian teratas dari dua lapisan
protokol lain, TCP dan IP. TCP adalah sebuah protokol yang bertanggung jawab
memastikan file telah dikirim dari akhir network telah lengkap dikirmkan, berhasil pada
tujuannya. IP merupakan sebuah protokol yang mengarahkan (routing) file dari satu host
ke host lain pada jalannya untuk tujuan. HTTP mengguanakan dua protokol ini untuk
memastikan bahwa permintaan dan respon telah lengkap dikirimkan diantara masing-
masing akhir komunikasi.

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




Pengenalan Pemrograman Web                                                        3
J.E.N.I



Format dari pesan permintaan dan respon adalah sama, dan berorientasikan bahasa
inggris. Kedua jenis pesan mengandung :

•         Sebuah garis inisial
•         Nol atau lebih garis header
•         Sebuah garis kosong(i.e sebuah CRLF oleh dirinya sendiri), dan pesan body
          optional (e.g. sebuah file, atau data query, atau keluaran query).



HTTP Requests

Permintaan-permintaan dari client ke server berisikan informasi tentang macam-macam
data yang user inginkan. Salah satu item informasi yang dienkapsulasi pada permintaan
HTTP adalah sebuah nama method. Ini memberitahu server macam-macam permintaan
yang dibuat, sebagaimana sisa pesan dari client diformat. Ada dua protokol yang mungkin
akan Anda gunakan : GET dan POST.

GET

GET adalah method HTTP paling sederhana dan digunakan sebagian besar untuk meminta
resource tertentu dari server, apakah berupa halaman web, file gambar grafis, atau
sebuah dokumen, dan lain-lain.

GET dapat juga digunakan untuk mengirim data di atas server, meskipun demikian hal itu
mempunyai batasan-batasan. Jumlah total karakter yang dapat dienkapsulasi ke dalam
permintaan GET adalah terbatas, sehingga untuk situasi dimana banyak data perlu
dikirimkan ke server, tidak semua pesan dapat disampaikan.

Batasan lain method permintaan GET ketika mengirim data adalah data yang Anda kirim
menggunakan method ini ditambahkan pada URL yang Anda kirim ke server. (Untuk
sekarang, asumsikan URL sebagai alamat unik yang akan Anda kirim ke server sebagai
penandaan lokasi yang Anda minta). Salah satu permasalahannya adalah URL dari
beberapa permintaan yang Anda inginkan ditampilkan pada bar browser pada beberapa
browser. Hal ini berarti, bahwa beberapa data sensitif seperti password atau informasi
kontak (contact information) dapat diterlihat oleh siapapun.

Keuntungan dari penggunaan GET dalam pengiriman data di atas server adalah
permintaan URL dari permintaan GET dapat dibookmark oleh browser. Hal ini berarti
bahwa user dapat dengan mudah membookmark permintaannya dan mengakses setiap
saat dari pada melalui proses tiap waktu. Hal ini juga dapat membahayakan; jika
bookmark secara fungsional bukan merupakan sesuatu yang Anda inginkan pada user
Anda, sebagai gantinya menggunakan method lain.

Di bawah ini merupakan URL yang dihasilkan oleh permintaan GET :

           t ://jd at r e.j .n t rl
                            v  /s  s w It m w e s e ID=2359&f r re
          htp e i-m se.d v aa e eve /Ne s e Vie ?n w It m
                                   t                        il =tu
                                                             t
                                                             e

Semua item sebelum tanda tanya (?) merupakan URL asli permintaan (dalam hal ini
htp e i-m se.d v aa e eve /Ne s e Vie ).
  t ://jd at r e.j .n t rl
                   v    /s   ts w It m w        Setelah itu, berikutnya adalah
parameters atau data yang Anda kirim ke server.




Pengenalan Pemrograman Web                                                        4
J.E.N.I



Mari kita lihat secara seksama bagian tersebut. Berikut ini parameter yang ditambahkan
pada permintaan :

          n w It m
           e s e ID=2359&f r re
                         il =tu
                          t
                          e

Pada permintaan GET, parameters disandikan sebagai nama dan nilai. Anda tidak
mengirim nilai data ke server tanpa mengetahui secara spesifik untuk apakah nilai
tersebut. Nama dan nilai disandikan sebagai berikut :

          name=value

Dan juga, jika terdapat lebih dari satu kumpulan parameter, akan dipisahkan
menggunakan tanda ampersand (&). Sehingga , dalam hal ini, nama-nama parameter
yang kita spesifikkan ke server adalah newsItemID dan filter, dengan nilai 2359 dan true,
berturut-turut.


POST

Jenis lain dari method permintaan yang pasti akan digunakan adalah permintaan POST.
Jenis permintaan ini didesain seperti browser dapat membuat permintaan kompleks dari
server. Mereka didesain sehingga user, melalui browser, dapat mengirim banyak data ke
server. Form kompleks secara umum dicapai dengan menggunakan permintaan POST,
sebagaimana form sederhana yang memelukan proses upload file ke server.

Satu perbedaan yang nyata antara method GET dan POST terletak pada cara
mengirimkan data ke server. Seperti yang dinyatakan sebelumnya, GET hanya
menambahkan data ke URL yang akan mengirim. POST, di sisi lain, mengenkapsulasi atau
menyembunyikan data di dalam body pesan (message body) yang dikirim. Ketika server
menerima permintaan dan menentukan bahwa itu merupakan sebuah permintaan POST,
dapat dilihat dari body pesan data tersebut.



HTTP Response

HTTP merespon dari server yang berisi headers dan body pesan, seperti yang permintaan
HTTP lakukan. Mereka menggunakan kumpulan header yang berbeda, meskipun demikian
disini kita tidak perlu terlalu dalam membahasnya secara detail. Cukup dengan
mengatakan bahwa headers berisi informasi tentang protokol HTTP yang digunakan pada
server, sebagaimana tipe dari isi yang dienkapsulasi ke dalam body pesan. Nilai dari tipe
isi adalah MIME-type. Ini akan memberitahu browser jika pesan berisi HTML, gambar,
atau tipe lainnya.



Dynamic over Static pages

Macam-macam content/isi yang dapat dilayani oleh web server dapat berupa statis atau
dinamis. Content statis adalah isi yang statis atau tidak dapat dirubah. Content jenis ini
biasanya hanya berada pada storage/penyimpanan dimana server dapat mengaksesnya
dan akan diambil berdasarkan permintaan. Ketika mereka dikirim sebagai respon dari
server, cara mereka dikirim sama persis seperti ketika mereka berada pada server.



Pengenalan Pemrograman Web                                                           5
J.E.N.I



Contoh dari content statis meliputi kumpulan artikel surat kabar, gambar keluarga dari
galeri foto online, atau bahkan mungkin salinan online dokumen ini!

Dinamic content, pada sisi lain, berubah menurut input dari user. aplikasi apa pada server
yang dapat mengakses pada tipe content ini yaitu semacam template yang mereka dapat
ketahui yang mengacu pada bagaimana dokumen dapat dikirim dan akan terlihat secara
umum, template ini kemudian membuat persetujuan pada parameter yang dikirim oleh
user dan dikembalikan pada klien.

Hal itu dapat dikatakan sebagai berikut, halaman dinamis mempunyai lebih banyak
flexibilitas dan kegunaan dari pada halaman statis. Disini terdapat beberapa pasangan
skenario dimana hanya content dinamik yang akan cocok:
 •       Halaman web hanya didasarkan pada data yang diberikan oleh user.
         Sebagai contoh, halaman dari hasil mesin pencari dihasilkan oleh cara ini, dan
         program yang memproses pesanan untuk lokasi e-commerce melakukannya
         dengan baik.
 •       Data sering berubah, sebuah laporan-cuaca atau halaman berita utama akan
         membangun halaman yang dinamik, mungkin menampilkan kembali halaman yang
         dibangun sebelumnya jika masih tergolong sebagai berita terbaru.
 •       Halaman web menggunakan informasi dari database perusahaan atau sumber
         yang lain.


Penting untuk disadari, web server dengan sendirinya tidak mempunyai kemampuan
untuk melayani content dinamic, web server membutuhkan aplikasi yang dapat mereka
akses untuk membangun content yang dinamic. Termasuk memerlukan aplikasi tersendiri
untuk membuat content dinamic, web server selalu membutuhkan aplikasi tersendiri yang
akan menyimpan informasi user yang bersangkutan (seperti mengumpulkan berdasarkan
format) kedalam media penyimpanan, Anda tidak dapat mengharapkan untuk membuat
sebuah form, memerintahkan user untuk memasukkan data kedalamnya, mengirimnya ke
server, dan server secara otomatis mengetahui apa yang akan dilakukan pada data
tersebut.

Kita kini berada dalam bagian diskusi kita dimana kita dapat dengan jelas menunjuk
bahwa pembuatan dari aplikasi web ini yang merupakan pokok pembahasan pada bab ini,
jadi, bagaimana cara yang kita lakukan untuk membuat aplikasi ini?

Pada bab ini, kita akan mempelajari dasar pada teknologi berbasis Java untuk membuat
aplikasi web kita. Lebih spesifik lagi, kita akan membuat penggunaan APIs secara extensif
yang disediakan pada web tier dalam spesifikasi J2EE (Java 2 Enterprise Edition).




1.1.3      Pengenalan J2EE Web Tier

Platform Java 2 Enterprise Edition (J2EE) adalah suatu platform yang diperkenalkan untuk
development perusahaan aplikasi dalam suatu component-base. Model aplikasi yang
digunakan pada platform ini adalah model aplikasi distibuted multi-tier. Aspek yang
diberikan dari model ini hanya berarti kebanyakan rancangan aplikasi dan pengembangan
dalam platform ini diharapkan dapat mempunyai component yang berbeda yang di dapat
dijalankan pada mesin yang berbeda pula. Multi-tier memisahkan bagian aplikasi yang
dirancang dengan berbagai bagian separasi dengan berbagai komponen utama aplikasi


Pengenalan Pemrograman Web                                                           6
J.E.N.I



tersebut. Suatu contoh aplikasi multi-tier adalah suatu aplikasi web : layer presentasi
(client browser), layer bussines logic (program yang berada pada web server), dan layer
penyimpanan (database yang akan menangani data aplikasi tersebut) terpisah dengan
jelas, tetapi secara keseluruhan bertujuan untuk menciptakan sebuah aplikasi bagi user.

Salah satu strata dalam platform J2EE ketika sebelumnya berupa web-tier. Strata ini di
uraikan sebagai layer yang saling berhubungan dengan browser dalam rangka
menciptakan content yang dinamis. Ada dua teknologi pada layer ini : servlet dan
JavaServerPage.




              Gambar 1-3 : Web Tier pada platform J2EE (Gambar dari J2EE Tutorial)




1.1.3.1    Servlets

Teknologi Servlet adalah jawaban utama yang terdapat pada Java untuk menambahkan
fungsi ke server yang digunakan untuk merespon permintaan dari model. Mereka
mempunyai kemampuan untuk membaca kumpulan data yang diminta oleh server dan
menghasilkan response yang dinamis yang berdasarkan pada data tersebut, servlet tidak
terbatas pada kondisi HTTP; seperti dinyatakan sebelumnya, mereka diterapkan untuk
scenario manapun yang menuntut request dari object model. Kondisi HTTP pada saat ini
adalah yang digunakan pertama kali, jadi Java menyediakan versi spesifikasi HTTP yang
mengimplementasi pada fitur-fitur spesifik HTTP.



1.1.3.2    JavaServerPages.

Salah satu dari kelemahan dalam penggunaan servlet yaitu pada proses generate sebuah
respon dari klien yang berformat HTML akan dikirim kembali. Sejak servlet berupa class
bahasa pemograman Java, mereka menghasilkan keluaran dengan cara lain pada
pemograman Java seperti : mencetak karakter String ketika mengeluarkan output, dalam
hal ini HTTP-response, bagaimanapun, HTML sangat complex dan sangat sulit untuk
melakukan proses encode HTML melalui penggunaan String literal. Juga,melibatkan jasa
suatu perancang gafis dan perancang halaman web untuk membantu didalam bagian
halaman statis akan sulit atau mungkin mustahil : kita akan mengharapkan dia untuk
mempunyai sedikit pengetahuan tentang Java.

Inilah dimana teknologi JavaServerPage masuk. JSP terlihat hanya seperti HTML. Hanya
dapat mengakses kepada semua hal yang dynamic dari servlet dengan menggunakan
script dan bahasa expression. Karena terlihat seperti HTML, designer berkonsentrasi pada
desain sederhana HTML dan hanya meninggalkan sisa ruang kode untuk developer untuk
mengisi dengan content dynamic.




Pengenalan Pemrograman Web                                                           7
J.E.N.I




1.1.3.3    Containers

Pusat dari konsep aplikasi J2EE adalah container, semua komponen J2EE, mencakup
komponen web (servlet,JSPs) bersandar pada keberadaan suatu Container; tanpa
container yang sesuai, mereka tidak akan dapat dijalankan.



             Gambar 1-4 : Containers pada platform J2EE (Gambar dari J2EE Tutorial)




Barangkali cara untuk menjelaskan hal ini adalah untuk berpikir tentang ragam
pelaksanaan program Java secara normal. Program Java, untuk dijalankan, harus memiliki
cara utama yang menggambarkan ; menandai start ini pada pelaksanaan program dan
menjalankan method ketika program diexecute dari command line.

Tetapi, ketika kita dapat lihat kemudian, servlet tidak ditemukan cara utama. Atau jika
ada sesuatu menemukan(desain program yang buruk), hal itu tidak menandai saat
menjalankan eksekusi program,ketika seorang user membuat permintaan HTTP untuk
sebuah servlet, metoda yang digunakan tidak dipanggil secara langsung. Sebagai
gantinya, server tidak menyampaikan permintaan tadi kepada servlet, melainkan kepada
container dimana servlet dikembangkan, kemudian container bertanggung jawab atas
pemanggilan metode yang sesuai didalam servlet, tergantung pada jenis permintaan user.




Pengenalan Pemrograman Web                                                            8
J.E.N.I



Fitur yang diberikan oleh Container

•         Pendukung Komunikasi. Container menangani semua kode yang penting dari
          servlet Anda untuk berkomunikasi dengan web server. Tanpa container, developer
          mungkin harus menuliskan code yang akan menciptakan suatu koneksi dari server
          ke servlet(dan sebaliknya) dan mengatur bagaimana mereka bertemu satu sama
          yang lain pada tiap satuan waktu.
•         Management Lifescycle. Container menangani segalanya dalam kehidupan pada
          servlet Anda, mulai loading class, instatiation dan inisialisasi, dan mengoleksi
          sampah.
•         Pendukung Multithreading. Container mengatur tugas dari urutan waktu yang
          baru setiap kali suatu servlet dibuat, NOTE : container tidak bertanggung jawab
          dari servletmu.
•         Pendukung JSP. Halaman JSP, dalam memperkerjakan, harus mencompile dalam
          code Java, mengcompilenya, dan memanggil metode yang sesuai dalam code.



1.1.3.4      Struktur Dasar Dari Aplikasi Web

Supaya container dapat mengenali aplikasi sebagai aplikasi web yang sah, harus dibentuk
struktur direktori yang spesifik:




                     Gambar 1-5 : Struktur Direktori dalam Java Web Application



Gambar 1-5 menunjukkan struktur direktori yang diperlukan oleh container untuk
mengenali aplikasi Anda, beberapa hal mengenai struktur ini:

Pertama, top level Folder(salah satu yang mengisi aplikasi Anda) tidak harus diberi nama
Dokument Root. Sesungguhnya pemberian nama apapun tidak mempengaruhi aplikasi,
namun disarankan untuk menamainya sesuai dengan nama aplikasi Anda. Penamaan
sebagai Document Root hanya menggambarkan direktori ini bertindak sebagai root folder
pada file atau dokumen pada aplikasi Anda.

Kedua, folder lain dapat dimuat pada struktur direktori ini, sebagai contoh, karena
developer mengharapkan untuk mengorganisir content mereka, mereka dapat
menciptakan suatu folder images dalam document root untuk semua file gambar, atau
mungkin suatu direktori config pada folder WEB-INF untuk menjaga informasi tentang




Pengenalan Pemrograman Web                                                           9
J.E.N.I



konfigurasi. Selama mengikuti alur struktur yang ditentukan seperti diatas, container
mengijinan penambahan direktori.

Ketiga: Kapitalisasi pada folder WEB-INF adalah disengaja, Lowercaps pada class dan
Library adalah disengaja juga, tidak mengikuti aturan kapitalisasi manapun pada folder ini
akan mengakibatkan aplikasi Anda tidak dapat melihat isi dari folder ini.

Keempat: Semua content atau isi dari folder WEB-INF tidak dapat dilihat dari browser.
Container secara otomatis mengatur berbagai hal, seperti : pada tampilan browser, folder
tersebut tidak ada atau tidak diketahui. Mekanisme ini melindungi sumberdaya vital
seperti pada file class Java, konfigurasi aplikasi, dan lain sebagainya. Content pada folder
ini hanya dapat di akses oleh aplikasi Anda.

Kelima: HARUS ADA SUATU FILE dengan nama web.xml didalam folder WEB-INF.
Meskipun, sebagai contoh, aplikasi web Anda hanya berisi content statis dan tidak
menggunakan class Java atau file library, container masih akan mempersyaratkan bahwa
aplikasi Anda menggunakan dua hal tersebut.




Pengenalan Pemrograman Web                                                            10

Más contenido relacionado

La actualidad más candente

06 stmik amikom yogyakarta wireless application protocol
06   stmik amikom yogyakarta wireless application protocol06   stmik amikom yogyakarta wireless application protocol
06 stmik amikom yogyakarta wireless application protocolMustafa Hasan
 
29154 selly monikan
29154 selly monikan29154 selly monikan
29154 selly monikanSelly Monika
 
2015-20. m arif rochman hakim - administrasi server menggunakan cents os 6
2015-20. m arif rochman hakim - administrasi server menggunakan cents os 62015-20. m arif rochman hakim - administrasi server menggunakan cents os 6
2015-20. m arif rochman hakim - administrasi server menggunakan cents os 6Syiroy Uddin
 
Tugas2 krisna muktiandika-1511510347
Tugas2 krisna muktiandika-1511510347Tugas2 krisna muktiandika-1511510347
Tugas2 krisna muktiandika-1511510347krisna mukti andika
 
Laporan praktikum
Laporan praktikumLaporan praktikum
Laporan praktikumRochman A.D
 
Materi 1 Kuliah Pemrograman Web
Materi 1 Kuliah Pemrograman Web Materi 1 Kuliah Pemrograman Web
Materi 1 Kuliah Pemrograman Web Antonius Manginsela
 
Administrasi server dalam jaringan
Administrasi server dalam jaringanAdministrasi server dalam jaringan
Administrasi server dalam jaringanagustiansuciran
 
Tugas 2 - 0317-mukhlis abdilah-1411511213
Tugas 2 - 0317-mukhlis abdilah-1411511213Tugas 2 - 0317-mukhlis abdilah-1411511213
Tugas 2 - 0317-mukhlis abdilah-1411511213mukhlis abdilah
 
Web services sebagai penyedia layanan
Web services sebagai penyedia layananWeb services sebagai penyedia layanan
Web services sebagai penyedia layananiimpunya3
 
Web Service - Toni Eko Saputro 1011511571
Web Service - Toni Eko Saputro 1011511571Web Service - Toni Eko Saputro 1011511571
Web Service - Toni Eko Saputro 1011511571Toni Eko Saputro
 
Tugas pemrograman 3 (rpc,soap,rest) 1100631003 muhammad arif prayugo
Tugas pemrograman 3 (rpc,soap,rest) 1100631003 muhammad arif prayugoTugas pemrograman 3 (rpc,soap,rest) 1100631003 muhammad arif prayugo
Tugas pemrograman 3 (rpc,soap,rest) 1100631003 muhammad arif prayugoArif Prayugo
 
Praktikum8 komdat_using FTP
Praktikum8 komdat_using FTPPraktikum8 komdat_using FTP
Praktikum8 komdat_using FTPJefri Fahrian
 
1) dasar dasar programan web
1) dasar dasar programan web1) dasar dasar programan web
1) dasar dasar programan webImam Fathur
 

La actualidad más candente (18)

06 stmik amikom yogyakarta wireless application protocol
06   stmik amikom yogyakarta wireless application protocol06   stmik amikom yogyakarta wireless application protocol
06 stmik amikom yogyakarta wireless application protocol
 
29154 selly monikan
29154 selly monikan29154 selly monikan
29154 selly monikan
 
2015-20. m arif rochman hakim - administrasi server menggunakan cents os 6
2015-20. m arif rochman hakim - administrasi server menggunakan cents os 62015-20. m arif rochman hakim - administrasi server menggunakan cents os 6
2015-20. m arif rochman hakim - administrasi server menggunakan cents os 6
 
Tugas2 krisna muktiandika-1511510347
Tugas2 krisna muktiandika-1511510347Tugas2 krisna muktiandika-1511510347
Tugas2 krisna muktiandika-1511510347
 
Laporan praktikum
Laporan praktikumLaporan praktikum
Laporan praktikum
 
Materi 1 Kuliah Pemrograman Web
Materi 1 Kuliah Pemrograman Web Materi 1 Kuliah Pemrograman Web
Materi 1 Kuliah Pemrograman Web
 
Administrasi server dalam jaringan
Administrasi server dalam jaringanAdministrasi server dalam jaringan
Administrasi server dalam jaringan
 
Tugas 2 - 0317-mukhlis abdilah-1411511213
Tugas 2 - 0317-mukhlis abdilah-1411511213Tugas 2 - 0317-mukhlis abdilah-1411511213
Tugas 2 - 0317-mukhlis abdilah-1411511213
 
Web services sebagai penyedia layanan
Web services sebagai penyedia layananWeb services sebagai penyedia layanan
Web services sebagai penyedia layanan
 
Web Services
Web ServicesWeb Services
Web Services
 
Web Service - Toni Eko Saputro 1011511571
Web Service - Toni Eko Saputro 1011511571Web Service - Toni Eko Saputro 1011511571
Web Service - Toni Eko Saputro 1011511571
 
Choirul mdaemon
Choirul mdaemonChoirul mdaemon
Choirul mdaemon
 
Tugas pemrograman 3 (rpc,soap,rest) 1100631003 muhammad arif prayugo
Tugas pemrograman 3 (rpc,soap,rest) 1100631003 muhammad arif prayugoTugas pemrograman 3 (rpc,soap,rest) 1100631003 muhammad arif prayugo
Tugas pemrograman 3 (rpc,soap,rest) 1100631003 muhammad arif prayugo
 
Praktikum8 komdat_using FTP
Praktikum8 komdat_using FTPPraktikum8 komdat_using FTP
Praktikum8 komdat_using FTP
 
RPC.SOAP.REST_1100631021
RPC.SOAP.REST_1100631021RPC.SOAP.REST_1100631021
RPC.SOAP.REST_1100631021
 
Server Web Mail
Server Web MailServer Web Mail
Server Web Mail
 
Tugas tik
Tugas tikTugas tik
Tugas tik
 
1) dasar dasar programan web
1) dasar dasar programan web1) dasar dasar programan web
1) dasar dasar programan web
 

Similar a JENI

Jeni web programming-bab 1-pengenalan pemrograman web
Jeni web programming-bab 1-pengenalan pemrograman webJeni web programming-bab 1-pengenalan pemrograman web
Jeni web programming-bab 1-pengenalan pemrograman webSejahtera Affif
 
Tugas 2 0317-nurul azmi-1412510587
Tugas 2 0317-nurul azmi-1412510587Tugas 2 0317-nurul azmi-1412510587
Tugas 2 0317-nurul azmi-1412510587nurul azmi
 
Tugas 2 ihsan riadi - 1412511162
Tugas 2   ihsan riadi - 1412511162Tugas 2   ihsan riadi - 1412511162
Tugas 2 ihsan riadi - 1412511162ihsan riadi
 
Laporan pemrograman visual3
Laporan pemrograman visual3Laporan pemrograman visual3
Laporan pemrograman visual3Fenty Hidayati
 
Tugas rekweb 2 individu
Tugas rekweb 2 individuTugas rekweb 2 individu
Tugas rekweb 2 individuFani Heryati
 
Tugas atpi arif rohman khakim dan samuel setiado
Tugas atpi arif rohman khakim dan samuel setiadoTugas atpi arif rohman khakim dan samuel setiado
Tugas atpi arif rohman khakim dan samuel setiadoFebriy Y
 
Tugas 7 – rekayasa web
Tugas 7 – rekayasa webTugas 7 – rekayasa web
Tugas 7 – rekayasa webikasulistiyani
 
Pemrograman-Berbasis-Web-Pertemuan-1.ppt
Pemrograman-Berbasis-Web-Pertemuan-1.pptPemrograman-Berbasis-Web-Pertemuan-1.ppt
Pemrograman-Berbasis-Web-Pertemuan-1.pptAbdurRozak19
 
Tugas pemrograman3 rpc,soap,rest_1100631020
Tugas pemrograman3 rpc,soap,rest_1100631020Tugas pemrograman3 rpc,soap,rest_1100631020
Tugas pemrograman3 rpc,soap,rest_1100631020Lucky AnugerahP
 
Pertemuan 09 client server
Pertemuan 09   client serverPertemuan 09   client server
Pertemuan 09 client serveraingaingaing
 
Tugas_pemrograman3_1100631026_Helmi_MH_
Tugas_pemrograman3_1100631026_Helmi_MH_Tugas_pemrograman3_1100631026_Helmi_MH_
Tugas_pemrograman3_1100631026_Helmi_MH_Helmi Mahfudhatul
 
Web Server, DNS Server, dan FTP Server
Web Server, DNS Server, dan FTP ServerWeb Server, DNS Server, dan FTP Server
Web Server, DNS Server, dan FTP ServerIsna Dwi Setianingsih
 
Makalah web server debian 6 - refzqi
Makalah web server debian 6 - refzqiMakalah web server debian 6 - refzqi
Makalah web server debian 6 - refzqisafei123
 
Network Administrator dan Jaringan Client Server
Network Administrator dan Jaringan Client ServerNetwork Administrator dan Jaringan Client Server
Network Administrator dan Jaringan Client ServerErlangga Abdul Rahman
 

Similar a JENI (20)

Jeni web programming-bab 1-pengenalan pemrograman web
Jeni web programming-bab 1-pengenalan pemrograman webJeni web programming-bab 1-pengenalan pemrograman web
Jeni web programming-bab 1-pengenalan pemrograman web
 
Tugas 2 0317-nurul azmi-1412510587
Tugas 2 0317-nurul azmi-1412510587Tugas 2 0317-nurul azmi-1412510587
Tugas 2 0317-nurul azmi-1412510587
 
Tugas 2 ihsan riadi - 1412511162
Tugas 2   ihsan riadi - 1412511162Tugas 2   ihsan riadi - 1412511162
Tugas 2 ihsan riadi - 1412511162
 
Laporan pemrograman visual3
Laporan pemrograman visual3Laporan pemrograman visual3
Laporan pemrograman visual3
 
Tugas rekayasa web
Tugas rekayasa webTugas rekayasa web
Tugas rekayasa web
 
Tugas rekweb 2 individu
Tugas rekweb 2 individuTugas rekweb 2 individu
Tugas rekweb 2 individu
 
Tugas atpi arif rohman khakim dan samuel setiado
Tugas atpi arif rohman khakim dan samuel setiadoTugas atpi arif rohman khakim dan samuel setiado
Tugas atpi arif rohman khakim dan samuel setiado
 
Jarkom Pertemuan 9
Jarkom Pertemuan 9Jarkom Pertemuan 9
Jarkom Pertemuan 9
 
Tugas 7 – rekayasa web
Tugas 7 – rekayasa webTugas 7 – rekayasa web
Tugas 7 – rekayasa web
 
TugaS II so- II
TugaS II so- II TugaS II so- II
TugaS II so- II
 
Pemrograman-Berbasis-Web-Pertemuan-1.ppt
Pemrograman-Berbasis-Web-Pertemuan-1.pptPemrograman-Berbasis-Web-Pertemuan-1.ppt
Pemrograman-Berbasis-Web-Pertemuan-1.ppt
 
Tugas pemrograman3 rpc,soap,rest_1100631020
Tugas pemrograman3 rpc,soap,rest_1100631020Tugas pemrograman3 rpc,soap,rest_1100631020
Tugas pemrograman3 rpc,soap,rest_1100631020
 
Pertemuan 09 client server
Pertemuan 09   client serverPertemuan 09   client server
Pertemuan 09 client server
 
Kelompok 7
Kelompok 7Kelompok 7
Kelompok 7
 
Presentation1
Presentation1Presentation1
Presentation1
 
Kelompok 7
Kelompok 7Kelompok 7
Kelompok 7
 
Tugas_pemrograman3_1100631026_Helmi_MH_
Tugas_pemrograman3_1100631026_Helmi_MH_Tugas_pemrograman3_1100631026_Helmi_MH_
Tugas_pemrograman3_1100631026_Helmi_MH_
 
Web Server, DNS Server, dan FTP Server
Web Server, DNS Server, dan FTP ServerWeb Server, DNS Server, dan FTP Server
Web Server, DNS Server, dan FTP Server
 
Makalah web server debian 6 - refzqi
Makalah web server debian 6 - refzqiMakalah web server debian 6 - refzqi
Makalah web server debian 6 - refzqi
 
Network Administrator dan Jaringan Client Server
Network Administrator dan Jaringan Client ServerNetwork Administrator dan Jaringan Client Server
Network Administrator dan Jaringan Client Server
 

Más de Individual Consultants

O T O M A S I P E N G A W A S R U M A H D E N G A N M E N G G U N A K A N...
O T O M A S I  P E N G A W A S  R U M A H  D E N G A N  M E N G G U N A K A N...O T O M A S I  P E N G A W A S  R U M A H  D E N G A N  M E N G G U N A K A N...
O T O M A S I P E N G A W A S R U M A H D E N G A N M E N G G U N A K A N...Individual Consultants
 
Sistem Penyadapan Intruder In The Darkness
Sistem  Penyadapan  Intruder In  The  DarknessSistem  Penyadapan  Intruder In  The  Darkness
Sistem Penyadapan Intruder In The DarknessIndividual Consultants
 
P R O S P E K T U S P E R U S A H A A N I K K I G R O U P D E N G A N C ...
P R O S P E K T U S  P E R U S A H A A N  I K K I  G R O U P  D E N G A N  C ...P R O S P E K T U S  P E R U S A H A A N  I K K I  G R O U P  D E N G A N  C ...
P R O S P E K T U S P E R U S A H A A N I K K I G R O U P D E N G A N C ...Individual Consultants
 
Jeni Web Programming Bab 16 App Case Study
Jeni Web Programming Bab 16 App Case StudyJeni Web Programming Bab 16 App Case Study
Jeni Web Programming Bab 16 App Case StudyIndividual Consultants
 
Jeni Web Programming Bab 15 J2 Ee Design Pattern
Jeni Web Programming Bab 15 J2 Ee Design PatternJeni Web Programming Bab 15 J2 Ee Design Pattern
Jeni Web Programming Bab 15 J2 Ee Design PatternIndividual Consultants
 
Jeni Web Programming Bab 5 Sql Dan Jdbc
Jeni Web Programming Bab 5 Sql Dan JdbcJeni Web Programming Bab 5 Sql Dan Jdbc
Jeni Web Programming Bab 5 Sql Dan JdbcIndividual Consultants
 
Jeni Web Programming Bab 10 Advanced Jsf
Jeni Web Programming Bab 10 Advanced JsfJeni Web Programming Bab 10 Advanced Jsf
Jeni Web Programming Bab 10 Advanced JsfIndividual Consultants
 
Jeni Web Programming Bab 8 Advanced Mvc
Jeni Web Programming Bab 8 Advanced MvcJeni Web Programming Bab 8 Advanced Mvc
Jeni Web Programming Bab 8 Advanced MvcIndividual Consultants
 
Jeni Web Programming Bab 3 Advanced Servlets
Jeni Web Programming Bab 3 Advanced ServletsJeni Web Programming Bab 3 Advanced Servlets
Jeni Web Programming Bab 3 Advanced ServletsIndividual Consultants
 
Jeni Web Programming Bab 2 Basic Servlets
Jeni Web Programming Bab 2 Basic ServletsJeni Web Programming Bab 2 Basic Servlets
Jeni Web Programming Bab 2 Basic ServletsIndividual Consultants
 

Más de Individual Consultants (20)

24602905 Karsten Nohl
24602905  Karsten  Nohl24602905  Karsten  Nohl
24602905 Karsten Nohl
 
O T O M A S I P E N G A W A S R U M A H D E N G A N M E N G G U N A K A N...
O T O M A S I  P E N G A W A S  R U M A H  D E N G A N  M E N G G U N A K A N...O T O M A S I  P E N G A W A S  R U M A H  D E N G A N  M E N G G U N A K A N...
O T O M A S I P E N G A W A S R U M A H D E N G A N M E N G G U N A K A N...
 
Sistem Penyadapan Intruder In The Darkness
Sistem  Penyadapan  Intruder In  The  DarknessSistem  Penyadapan  Intruder In  The  Darkness
Sistem Penyadapan Intruder In The Darkness
 
P R O S P E K T U S P E R U S A H A A N I K K I G R O U P D E N G A N C ...
P R O S P E K T U S  P E R U S A H A A N  I K K I  G R O U P  D E N G A N  C ...P R O S P E K T U S  P E R U S A H A A N  I K K I  G R O U P  D E N G A N  C ...
P R O S P E K T U S P E R U S A H A A N I K K I G R O U P D E N G A N C ...
 
Jeni Web Programming Cover
Jeni Web Programming CoverJeni Web Programming Cover
Jeni Web Programming Cover
 
Jeni Web Programming Bab 16 App Case Study
Jeni Web Programming Bab 16 App Case StudyJeni Web Programming Bab 16 App Case Study
Jeni Web Programming Bab 16 App Case Study
 
Jeni Web Programming Bab 15 J2 Ee Design Pattern
Jeni Web Programming Bab 15 J2 Ee Design PatternJeni Web Programming Bab 15 J2 Ee Design Pattern
Jeni Web Programming Bab 15 J2 Ee Design Pattern
 
Jeni Web Programming Bab 5 Sql Dan Jdbc
Jeni Web Programming Bab 5 Sql Dan JdbcJeni Web Programming Bab 5 Sql Dan Jdbc
Jeni Web Programming Bab 5 Sql Dan Jdbc
 
Jeni Web Programming Bab 10 Advanced Jsf
Jeni Web Programming Bab 10 Advanced JsfJeni Web Programming Bab 10 Advanced Jsf
Jeni Web Programming Bab 10 Advanced Jsf
 
Jeni Web Programming Bab 9 Jsf
Jeni Web Programming Bab 9 JsfJeni Web Programming Bab 9 Jsf
Jeni Web Programming Bab 9 Jsf
 
Jeni Web Programming Bab 8 Advanced Mvc
Jeni Web Programming Bab 8 Advanced MvcJeni Web Programming Bab 8 Advanced Mvc
Jeni Web Programming Bab 8 Advanced Mvc
 
Jeni Web Programming Bab 7 Mvc Intro
Jeni Web Programming Bab 7 Mvc IntroJeni Web Programming Bab 7 Mvc Intro
Jeni Web Programming Bab 7 Mvc Intro
 
Jeni Web Programming Bab 4 Dasar Jsp
Jeni Web Programming Bab 4 Dasar JspJeni Web Programming Bab 4 Dasar Jsp
Jeni Web Programming Bab 4 Dasar Jsp
 
Jeni Web Programming Bab 3 Advanced Servlets
Jeni Web Programming Bab 3 Advanced ServletsJeni Web Programming Bab 3 Advanced Servlets
Jeni Web Programming Bab 3 Advanced Servlets
 
Jeni Web Programming Bab 2 Basic Servlets
Jeni Web Programming Bab 2 Basic ServletsJeni Web Programming Bab 2 Basic Servlets
Jeni Web Programming Bab 2 Basic Servlets
 
Jeni J2 Me Bab11 Topik Topik Tambahan
Jeni J2 Me Bab11 Topik Topik TambahanJeni J2 Me Bab11 Topik Topik Tambahan
Jeni J2 Me Bab11 Topik Topik Tambahan
 
Jeni J2 Me Bab10 Optional%20 Packages
Jeni J2 Me Bab10 Optional%20 PackagesJeni J2 Me Bab10 Optional%20 Packages
Jeni J2 Me Bab10 Optional%20 Packages
 
Jeni J2 Me Bab09 Optimisasi
Jeni J2 Me Bab09 OptimisasiJeni J2 Me Bab09 Optimisasi
Jeni J2 Me Bab09 Optimisasi
 
Jeni J2 Me Bab08 Web Services
Jeni J2 Me Bab08 Web ServicesJeni J2 Me Bab08 Web Services
Jeni J2 Me Bab08 Web Services
 
Jeni J2 Me Bab07 Security
Jeni J2 Me Bab07 SecurityJeni J2 Me Bab07 Security
Jeni J2 Me Bab07 Security
 

JENI

  • 1. J.E.N.I BAB 1 Pengenalan Pemrograman WEB 1.1 Mengapa harus dengan Web? Selamat datang pada pelajaran tentang web programming. Untuk memulainya , dimulai dengan sebuah pengertian yang baik tentang bagaimana web dapat berguna untuk perusahaan dan programmer seperti pada pemrograman Web. 1.1.1 Lingkungan Teknologi Netral. Pertama-tama,sebuah pemikiran yang baik tentang aplikasi pada internet yaitu ‘Net adalah technology aman lingkungan. Komunikasi dengan bermacam aplikasi pada web yang dijalankan melalui popular protocol(HTML/HTTP) hal itu tidak dibutuhkan user untuk mempunyai operation system yang khusus maupun klien yang diprogramkan pada bahasa pemograman tertentu atau framework. Semua user ingin menggunakan web browser, aplikasi standart ini terdapat pada operation system apapun. Dikarenakan program yang dibutuhkan pada pembelajaran ini hanyalah sebuah web browser, tidak perlu membagi program-program melalui CD. User tidak perlu juga melalui sebuah proses instalasi yang panjang; yang akan mereka perlukan adalah lokasi aplikasi di Internet, dan mereka telah siap. Manfaat yang lain yang dimiliki biner dari suatu program yang terdapat pada server yang diakses terdapat pada user computer yaitu permasalahan yang umum yang terkait dengan update program, seperti kebutuhan pada waktu tertentu melihat kemungkinan versi terbaru dari suatu program, permasalahannya adalah bagaimana cara mendapatkan program updating; disisihkan secara bersaman, user tidak perlu diberitahu atas program yang sudah terupdate; semua yang dibutuhkan untuk mengupdate program pada web server dan secara otomatis semua user akan menggunakannya setelah itu akan menikmati manfaat dari update. 1.1.2 Arsitektur Client Server 1.1.2.1 Thick dan thin clients Aplikasi web adalah jenis aplikasi yang menggunakan arsitektur client-server. Pada jenis arsitektur ini, sebuah program client terhubung pada sebuah server untuk informasi yang dibutuhkan untuk melengkapi tugas-tugas yang telah diset oleh user. Ada yang disebut thin client (client tipis), dan ada juga thick client (client tebal). Pengenalan Pemrograman Web 1
  • 2. J.E.N.I Thin client adalah clients yang hanya berisikan sedikit dari apa yang diperlukan untuk pengalaman user, kebanyakan hanya interface. Semua logika bisnis, semua data, terkecuali yang disediakan oleh user, berada di dalam server. Thick clients adalah clients yang sama, kecuali pada interface, juga berisi beberapa, jika tidak banyak, logika pengolahan diperlukan untuk tugas-tugas user yang spesifik. 1.1.2.2 Arsitektur Client-Server dari perspektif Web Dari definisi di atas, kita dapat menyimpulkan bahwa client digunakan untuk aplikasi web thin clients. Program client, pada hal ini adalah browser, hanya sebuah interface yang oleh user digunakan untuk melaksanakan tugas-tugas. Yang lainnya, dari data yang user perlukan untuk dioperasikan, logika yang menentukan aliran program dan eksekusi, berada pada server. Dari suatu perspektif web base disini adalah tugas-tugas dari server client: Web server Gambar 1.1 : Tanggung Jawab Server Pada dasarnya, server menerima permintaan-permintaan dari para client web browser dan kemudian meresponnya. Beberapa permintaan yang datang dari client disertai nama dan alamat item yang client cari, sebagaimana beberapa data user yang disediakan. Server menerima permintaan tersebut, memprosesnya, dan kemudian merespon data yang dicari oleh client atau sebuak kode error yang mengindikasikan bahwa item tidak terdapat pada server atau jika terjadi beberapa error lain. Pengenalan Pemrograman Web 2
  • 3. J.E.N.I Web client Tugas browser adalah menyediakan user sebuah interface dimana akan meminta server dan menampilkan respon dari server. Ketika user meminta server (sebagai contoh, mendapatkan dokumen, atau mungkin mengirim (submit) sebuah form), browserlah yang memformat permintaan tersebut ke dalam sesuatu yang server dapat mengerti. Begitu server telah selesai memproses permintaan dan kemudian mengirim respon, browser mengambil data yang diperlukan dari respon yang diberikan server dan kemudian merendernya untuk ditampilkan ke user. HTML Bagaimana cara browser mengetahui apa yang harus ditampilkan ke user? Sebagian besar situs web tidak hanya berisi teks sederhana, tetapi disertai grafis atau memiliki form yang dapat memanggil suatu data. Bagaimana masing-masing browser mengetahui apa yang harus ditampilkan? Jawabannya adalah HTML, sebuah singkatan dari Hypertext Markup Language. HTML dapat dimengerti sebagai sebuah kumpulan perintah-perintah untuk web browser tentang bagaimana menampilkan isi ke user. Itu merupakan standar terbuka yang telah di update oleh W3C atau World Wide Web Consortium. Karena merupakan sebuah standar terbuka, setiap orang mengaksesnya, berarti bahwa browsers dikembangkan dengan standar itu di pikiran. Lebih lanjut berarti bahwa semua browsers mengetahui apa yang dilakukan ketika itu memecahkan HTML, meskipun beberapa browsers yang lebih lama mungkin memiliki permasalahan pada perenderan beberapa halaman yang ditulis menggunakan versi HTML yang lebih baru yang telah diupdate setelah pengembangannya. HTTP Definisi HTTP singkatan dari “HyperText Transfer Protocol“. Merupakan sebuah protokol jaringan dengan fitur-fitur Web-specific yang berjalan pada bagian teratas dari dua lapisan protokol lain, TCP dan IP. TCP adalah sebuah protokol yang bertanggung jawab memastikan file telah dikirim dari akhir network telah lengkap dikirmkan, berhasil pada tujuannya. IP merupakan sebuah protokol yang mengarahkan (routing) file dari satu host ke host lain pada jalannya untuk tujuan. HTTP mengguanakan dua protokol ini untuk memastikan bahwa permintaan dan respon telah lengkap dikirimkan diantara masing- masing akhir komunikasi. 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). Pengenalan Pemrograman Web 3
  • 4. J.E.N.I Format dari pesan permintaan dan respon adalah sama, dan berorientasikan bahasa inggris. Kedua jenis pesan mengandung : • Sebuah garis inisial • Nol atau lebih garis header • Sebuah garis kosong(i.e sebuah CRLF oleh dirinya sendiri), dan pesan body optional (e.g. sebuah file, atau data query, atau keluaran query). HTTP Requests Permintaan-permintaan dari client ke server berisikan informasi tentang macam-macam data yang user inginkan. Salah satu item informasi yang dienkapsulasi pada permintaan HTTP adalah sebuah nama method. Ini memberitahu server macam-macam permintaan yang dibuat, sebagaimana sisa pesan dari client diformat. Ada dua protokol yang mungkin akan Anda gunakan : GET dan POST. GET GET adalah method HTTP paling sederhana dan digunakan sebagian besar untuk meminta resource tertentu dari server, apakah berupa halaman web, file gambar grafis, atau sebuah dokumen, dan lain-lain. GET dapat juga digunakan untuk mengirim data di atas server, meskipun demikian hal itu mempunyai batasan-batasan. Jumlah total karakter yang dapat dienkapsulasi ke dalam permintaan GET adalah terbatas, sehingga untuk situasi dimana banyak data perlu dikirimkan ke server, tidak semua pesan dapat disampaikan. Batasan lain method permintaan GET ketika mengirim data adalah data yang Anda kirim menggunakan method ini ditambahkan pada URL yang Anda kirim ke server. (Untuk sekarang, asumsikan URL sebagai alamat unik yang akan Anda kirim ke server sebagai penandaan lokasi yang Anda minta). Salah satu permasalahannya adalah URL dari beberapa permintaan yang Anda inginkan ditampilkan pada bar browser pada beberapa browser. Hal ini berarti, bahwa beberapa data sensitif seperti password atau informasi kontak (contact information) dapat diterlihat oleh siapapun. Keuntungan dari penggunaan GET dalam pengiriman data di atas server adalah permintaan URL dari permintaan GET dapat dibookmark oleh browser. Hal ini berarti bahwa user dapat dengan mudah membookmark permintaannya dan mengakses setiap saat dari pada melalui proses tiap waktu. Hal ini juga dapat membahayakan; jika bookmark secara fungsional bukan merupakan sesuatu yang Anda inginkan pada user Anda, sebagai gantinya menggunakan method lain. Di bawah ini merupakan URL yang dihasilkan oleh permintaan GET : t ://jd at r e.j .n t rl v /s s w It m w e s e ID=2359&f r re htp e i-m se.d v aa e eve /Ne s e Vie ?n w It m t il =tu t e Semua item sebelum tanda tanya (?) merupakan URL asli permintaan (dalam hal ini htp e i-m se.d v aa e eve /Ne s e Vie ). t ://jd at r e.j .n t rl v /s ts w It m w Setelah itu, berikutnya adalah parameters atau data yang Anda kirim ke server. Pengenalan Pemrograman Web 4
  • 5. J.E.N.I Mari kita lihat secara seksama bagian tersebut. Berikut ini parameter yang ditambahkan pada permintaan : n w It m e s e ID=2359&f r re il =tu t e Pada permintaan GET, parameters disandikan sebagai nama dan nilai. Anda tidak mengirim nilai data ke server tanpa mengetahui secara spesifik untuk apakah nilai tersebut. Nama dan nilai disandikan sebagai berikut : name=value Dan juga, jika terdapat lebih dari satu kumpulan parameter, akan dipisahkan menggunakan tanda ampersand (&). Sehingga , dalam hal ini, nama-nama parameter yang kita spesifikkan ke server adalah newsItemID dan filter, dengan nilai 2359 dan true, berturut-turut. POST Jenis lain dari method permintaan yang pasti akan digunakan adalah permintaan POST. Jenis permintaan ini didesain seperti browser dapat membuat permintaan kompleks dari server. Mereka didesain sehingga user, melalui browser, dapat mengirim banyak data ke server. Form kompleks secara umum dicapai dengan menggunakan permintaan POST, sebagaimana form sederhana yang memelukan proses upload file ke server. Satu perbedaan yang nyata antara method GET dan POST terletak pada cara mengirimkan data ke server. Seperti yang dinyatakan sebelumnya, GET hanya menambahkan data ke URL yang akan mengirim. POST, di sisi lain, mengenkapsulasi atau menyembunyikan data di dalam body pesan (message body) yang dikirim. Ketika server menerima permintaan dan menentukan bahwa itu merupakan sebuah permintaan POST, dapat dilihat dari body pesan data tersebut. HTTP Response HTTP merespon dari server yang berisi headers dan body pesan, seperti yang permintaan HTTP lakukan. Mereka menggunakan kumpulan header yang berbeda, meskipun demikian disini kita tidak perlu terlalu dalam membahasnya secara detail. Cukup dengan mengatakan bahwa headers berisi informasi tentang protokol HTTP yang digunakan pada server, sebagaimana tipe dari isi yang dienkapsulasi ke dalam body pesan. Nilai dari tipe isi adalah MIME-type. Ini akan memberitahu browser jika pesan berisi HTML, gambar, atau tipe lainnya. Dynamic over Static pages Macam-macam content/isi yang dapat dilayani oleh web server dapat berupa statis atau dinamis. Content statis adalah isi yang statis atau tidak dapat dirubah. Content jenis ini biasanya hanya berada pada storage/penyimpanan dimana server dapat mengaksesnya dan akan diambil berdasarkan permintaan. Ketika mereka dikirim sebagai respon dari server, cara mereka dikirim sama persis seperti ketika mereka berada pada server. Pengenalan Pemrograman Web 5
  • 6. J.E.N.I Contoh dari content statis meliputi kumpulan artikel surat kabar, gambar keluarga dari galeri foto online, atau bahkan mungkin salinan online dokumen ini! Dinamic content, pada sisi lain, berubah menurut input dari user. aplikasi apa pada server yang dapat mengakses pada tipe content ini yaitu semacam template yang mereka dapat ketahui yang mengacu pada bagaimana dokumen dapat dikirim dan akan terlihat secara umum, template ini kemudian membuat persetujuan pada parameter yang dikirim oleh user dan dikembalikan pada klien. Hal itu dapat dikatakan sebagai berikut, halaman dinamis mempunyai lebih banyak flexibilitas dan kegunaan dari pada halaman statis. Disini terdapat beberapa pasangan skenario dimana hanya content dinamik yang akan cocok: • Halaman web hanya didasarkan pada data yang diberikan oleh user. Sebagai contoh, halaman dari hasil mesin pencari dihasilkan oleh cara ini, dan program yang memproses pesanan untuk lokasi e-commerce melakukannya dengan baik. • Data sering berubah, sebuah laporan-cuaca atau halaman berita utama akan membangun halaman yang dinamik, mungkin menampilkan kembali halaman yang dibangun sebelumnya jika masih tergolong sebagai berita terbaru. • Halaman web menggunakan informasi dari database perusahaan atau sumber yang lain. Penting untuk disadari, web server dengan sendirinya tidak mempunyai kemampuan untuk melayani content dinamic, web server membutuhkan aplikasi yang dapat mereka akses untuk membangun content yang dinamic. Termasuk memerlukan aplikasi tersendiri untuk membuat content dinamic, web server selalu membutuhkan aplikasi tersendiri yang akan menyimpan informasi user yang bersangkutan (seperti mengumpulkan berdasarkan format) kedalam media penyimpanan, Anda tidak dapat mengharapkan untuk membuat sebuah form, memerintahkan user untuk memasukkan data kedalamnya, mengirimnya ke server, dan server secara otomatis mengetahui apa yang akan dilakukan pada data tersebut. Kita kini berada dalam bagian diskusi kita dimana kita dapat dengan jelas menunjuk bahwa pembuatan dari aplikasi web ini yang merupakan pokok pembahasan pada bab ini, jadi, bagaimana cara yang kita lakukan untuk membuat aplikasi ini? Pada bab ini, kita akan mempelajari dasar pada teknologi berbasis Java untuk membuat aplikasi web kita. Lebih spesifik lagi, kita akan membuat penggunaan APIs secara extensif yang disediakan pada web tier dalam spesifikasi J2EE (Java 2 Enterprise Edition). 1.1.3 Pengenalan J2EE Web Tier Platform Java 2 Enterprise Edition (J2EE) adalah suatu platform yang diperkenalkan untuk development perusahaan aplikasi dalam suatu component-base. Model aplikasi yang digunakan pada platform ini adalah model aplikasi distibuted multi-tier. Aspek yang diberikan dari model ini hanya berarti kebanyakan rancangan aplikasi dan pengembangan dalam platform ini diharapkan dapat mempunyai component yang berbeda yang di dapat dijalankan pada mesin yang berbeda pula. Multi-tier memisahkan bagian aplikasi yang dirancang dengan berbagai bagian separasi dengan berbagai komponen utama aplikasi Pengenalan Pemrograman Web 6
  • 7. J.E.N.I tersebut. Suatu contoh aplikasi multi-tier adalah suatu aplikasi web : layer presentasi (client browser), layer bussines logic (program yang berada pada web server), dan layer penyimpanan (database yang akan menangani data aplikasi tersebut) terpisah dengan jelas, tetapi secara keseluruhan bertujuan untuk menciptakan sebuah aplikasi bagi user. Salah satu strata dalam platform J2EE ketika sebelumnya berupa web-tier. Strata ini di uraikan sebagai layer yang saling berhubungan dengan browser dalam rangka menciptakan content yang dinamis. Ada dua teknologi pada layer ini : servlet dan JavaServerPage. Gambar 1-3 : Web Tier pada platform J2EE (Gambar dari J2EE Tutorial) 1.1.3.1 Servlets Teknologi Servlet adalah jawaban utama yang terdapat pada Java untuk menambahkan fungsi ke server yang digunakan untuk merespon permintaan dari model. Mereka mempunyai kemampuan untuk membaca kumpulan data yang diminta oleh server dan menghasilkan response yang dinamis yang berdasarkan pada data tersebut, servlet tidak terbatas pada kondisi HTTP; seperti dinyatakan sebelumnya, mereka diterapkan untuk scenario manapun yang menuntut request dari object model. Kondisi HTTP pada saat ini adalah yang digunakan pertama kali, jadi Java menyediakan versi spesifikasi HTTP yang mengimplementasi pada fitur-fitur spesifik HTTP. 1.1.3.2 JavaServerPages. Salah satu dari kelemahan dalam penggunaan servlet yaitu pada proses generate sebuah respon dari klien yang berformat HTML akan dikirim kembali. Sejak servlet berupa class bahasa pemograman Java, mereka menghasilkan keluaran dengan cara lain pada pemograman Java seperti : mencetak karakter String ketika mengeluarkan output, dalam hal ini HTTP-response, bagaimanapun, HTML sangat complex dan sangat sulit untuk melakukan proses encode HTML melalui penggunaan String literal. Juga,melibatkan jasa suatu perancang gafis dan perancang halaman web untuk membantu didalam bagian halaman statis akan sulit atau mungkin mustahil : kita akan mengharapkan dia untuk mempunyai sedikit pengetahuan tentang Java. Inilah dimana teknologi JavaServerPage masuk. JSP terlihat hanya seperti HTML. Hanya dapat mengakses kepada semua hal yang dynamic dari servlet dengan menggunakan script dan bahasa expression. Karena terlihat seperti HTML, designer berkonsentrasi pada desain sederhana HTML dan hanya meninggalkan sisa ruang kode untuk developer untuk mengisi dengan content dynamic. Pengenalan Pemrograman Web 7
  • 8. J.E.N.I 1.1.3.3 Containers Pusat dari konsep aplikasi J2EE adalah container, semua komponen J2EE, mencakup komponen web (servlet,JSPs) bersandar pada keberadaan suatu Container; tanpa container yang sesuai, mereka tidak akan dapat dijalankan. Gambar 1-4 : Containers pada platform J2EE (Gambar dari J2EE Tutorial) Barangkali cara untuk menjelaskan hal ini adalah untuk berpikir tentang ragam pelaksanaan program Java secara normal. Program Java, untuk dijalankan, harus memiliki cara utama yang menggambarkan ; menandai start ini pada pelaksanaan program dan menjalankan method ketika program diexecute dari command line. Tetapi, ketika kita dapat lihat kemudian, servlet tidak ditemukan cara utama. Atau jika ada sesuatu menemukan(desain program yang buruk), hal itu tidak menandai saat menjalankan eksekusi program,ketika seorang user membuat permintaan HTTP untuk sebuah servlet, metoda yang digunakan tidak dipanggil secara langsung. Sebagai gantinya, server tidak menyampaikan permintaan tadi kepada servlet, melainkan kepada container dimana servlet dikembangkan, kemudian container bertanggung jawab atas pemanggilan metode yang sesuai didalam servlet, tergantung pada jenis permintaan user. Pengenalan Pemrograman Web 8
  • 9. J.E.N.I Fitur yang diberikan oleh Container • Pendukung Komunikasi. Container menangani semua kode yang penting dari servlet Anda untuk berkomunikasi dengan web server. Tanpa container, developer mungkin harus menuliskan code yang akan menciptakan suatu koneksi dari server ke servlet(dan sebaliknya) dan mengatur bagaimana mereka bertemu satu sama yang lain pada tiap satuan waktu. • Management Lifescycle. Container menangani segalanya dalam kehidupan pada servlet Anda, mulai loading class, instatiation dan inisialisasi, dan mengoleksi sampah. • Pendukung Multithreading. Container mengatur tugas dari urutan waktu yang baru setiap kali suatu servlet dibuat, NOTE : container tidak bertanggung jawab dari servletmu. • Pendukung JSP. Halaman JSP, dalam memperkerjakan, harus mencompile dalam code Java, mengcompilenya, dan memanggil metode yang sesuai dalam code. 1.1.3.4 Struktur Dasar Dari Aplikasi Web Supaya container dapat mengenali aplikasi sebagai aplikasi web yang sah, harus dibentuk struktur direktori yang spesifik: Gambar 1-5 : Struktur Direktori dalam Java Web Application Gambar 1-5 menunjukkan struktur direktori yang diperlukan oleh container untuk mengenali aplikasi Anda, beberapa hal mengenai struktur ini: Pertama, top level Folder(salah satu yang mengisi aplikasi Anda) tidak harus diberi nama Dokument Root. Sesungguhnya pemberian nama apapun tidak mempengaruhi aplikasi, namun disarankan untuk menamainya sesuai dengan nama aplikasi Anda. Penamaan sebagai Document Root hanya menggambarkan direktori ini bertindak sebagai root folder pada file atau dokumen pada aplikasi Anda. Kedua, folder lain dapat dimuat pada struktur direktori ini, sebagai contoh, karena developer mengharapkan untuk mengorganisir content mereka, mereka dapat menciptakan suatu folder images dalam document root untuk semua file gambar, atau mungkin suatu direktori config pada folder WEB-INF untuk menjaga informasi tentang Pengenalan Pemrograman Web 9
  • 10. J.E.N.I konfigurasi. Selama mengikuti alur struktur yang ditentukan seperti diatas, container mengijinan penambahan direktori. Ketiga: Kapitalisasi pada folder WEB-INF adalah disengaja, Lowercaps pada class dan Library adalah disengaja juga, tidak mengikuti aturan kapitalisasi manapun pada folder ini akan mengakibatkan aplikasi Anda tidak dapat melihat isi dari folder ini. Keempat: Semua content atau isi dari folder WEB-INF tidak dapat dilihat dari browser. Container secara otomatis mengatur berbagai hal, seperti : pada tampilan browser, folder tersebut tidak ada atau tidak diketahui. Mekanisme ini melindungi sumberdaya vital seperti pada file class Java, konfigurasi aplikasi, dan lain sebagainya. Content pada folder ini hanya dapat di akses oleh aplikasi Anda. Kelima: HARUS ADA SUATU FILE dengan nama web.xml didalam folder WEB-INF. Meskipun, sebagai contoh, aplikasi web Anda hanya berisi content statis dan tidak menggunakan class Java atau file library, container masih akan mempersyaratkan bahwa aplikasi Anda menggunakan dua hal tersebut. Pengenalan Pemrograman Web 10