Web Agents:
Orang atau perangkat lunak yang mengambil peran di dalam ruang informasi (Web)
User Agent; user
Software Agent; Servers, proxies, spiders, browsers, dan multimedia players.
Hypertext
Hypertext dapat dilihat dengan sebuah program bernama web browser yang mengambil
informasi (dokumen/halaman web) dari web server dan menampilkannya, biasanya di
sebuah monitor.
Kita lalu dapat mengikuti link (pranala) di setiap halaman untuk pindah ke dokumen lain
atau bahkan mengirim informasi kembali kepada server untuk berinteraksi.
Aktifitas ini disebut Surfing (berselancar). Halaman web biasanya diatur dalam koleksi
material yang saling terkait, yang disebut Website.
RFC
Sebuah memorandum yang dikeluarkan oleh IETF (Internet Engineering Task Force), yang
menggambarkan metode, perilaku, riset, atau inovasi yang dapat diterapkan ke dalam
tata kerja internet dan Internet-connected systems.
HTTP adalah sebuah atandar request/response antara sebuah client dan sebuah server.
Sebuah Client HTTP seperti web browser, biasanya memulai permintaan dengan
membuat hubungan TCP/IP ke sebuah port tertentu di host (biasanya port 80).
Sebuah server HTTP yang mendengarkan di port tersebut menunggu client mengirim
kode permintaan (request), seperti "GET / HTTP/1.1" (yang akan meminta halaman yang
sudah ditentukan), diikuti dengan pesan MIME yang memiliki beberapa informasi header
code yang menjelaskan aspek dari permintaan tersebut, diikut dengan body dari data
tertentu.
Begitu menerima kode permintaan (dan pesan, bila ada), server mengirim kembali kode
jawaban, seperti " HTTP/1.1 200 OK ", dan sebuah pesan yang diminta, atau sebuah pesan
error atau pesan lainnya.
Sejarah
Protokol HTTP pertama kali dipergunakan dalam WWW pada tahun 1990. Pada saat
tersebut yang dipakai adalah protokol HTTP versi 0.9. Versi 0.9 ini adalah protokol
transfer dokumen secara mentah, maksudnya adalah data dokumen dikirim sesuai
dengan isi dari dokumen tersebut tanpa memandang tipe dari dokumen.
Kemudian pada tahun 1996 protokol HTTP diperbaiki menjadi HTTP versi 1.0.
Perubahan ini untuk mengakomodasi tipe-tipe dokumen yang hendak dikirim
beserta encoding yang dipergunakan dalam pengiriman data dokumen.
Sesuai dengan perkembangan infrastruktur internet maka pada tahun 1999
dikeluarkan HTTP versi 1.1 untuk mengakomodasi proxy, cache dan koneksi yang
persistent.
Contoh Transaksi
S = Server
C = Client
C : (Inisialisasi koneksi)
C : GET /index.htm HTTP/1.1
C : Host: www.wikipedia.org
S : 200 OK
S : Mime-type: text/html
S:
S : -- data dokumen --
S : (close connection)
Client-side Programming
Secara umum, suatu client adalah satu aplikasi komputer, seperti web browser yang
berjalan pada satu komputer lokal dari pengguna atau workstation, dan terhubung ke
suatu server. Client-side programming adalah program komputer pada web yang
dijalankan pada sisi client, oleh web browser; Hal ini berlawanan arti dengan Server-side
scripting.
Operasi dapat dilakukan oleh client-side karena operasi tersebut membutuhkan akses ke
informasi atau fungsi yang tersedia pada client tetapi tidak pada server, karena pengguna
membutuhkan observasi terhadap operasi tersebut atau menyediakan input, atau server
kekurangan kekuatan pememrosesan untuk melakukan operasi yang tepat waktu untuk
seluruh client yang harus dilayaninya.
Sebagai tambahan, jika operasi dapat dilakukan oleh client tanpa mengirim data melalui
jaringan, maka hal itu memakan waktu lebih sedikit, menggunakan lebih kecil bandwidth
dan mengurangi resiko keamanan.
Server-side Programming
Terminologi Server-side memiliki arti operasi yang dilakukan oleh server didalam sebuah
client-server relationship.
Umumnya, sebuah server adalah program, seperti web server, yang berada pada sebuah
remote server, yang dapat dijangkau oleh komputer lokal milik user.
Operasi dilakukan pada sisi Server, karena memerlukan akses atas informasi atau fungsi
yang tidak tersedia pada client, atau pada aplikasi yang tidak dapat dilakukan pada Client-
side.
Operasi Server-side juga meliputi proses dan penyimpanan data dari client ke suatu
server, yang dapat dilihat oleh sekelompok Client.
Server-side Scripting adalah teknologi Web Server dimana request oleh user dipenuhi
dengan cara menjalankan script langsung pada web server untuk menghasilkan halaman
HTML dinamis. Umunya menyediakan website interaktif pada database dan penyimpanan
data lainnya.
Keuntungan utama dari Server-side Script adalah kemampuan untuk mengatur response
berdasarkan keperluan user, hak akses, atau query ke dalam data store.
Web Server adalah sebuah perangkat lunak server yang berfungsi menerima permintaan
HTTP atau HTTPS dari Client yang dikenal dengan web browser dan mengirimkan kembali
hasilnya dalam bentuk halaman-halaman web yang umumnya berbentuk dokumen HTML.
Server web yang terkenal diantaranya adalah:
Apache, web server antar platform
XAMPP
PHPTriad; discontinued
Apache2Triad
Internet Information Service (IIS), hanya dapat berjalan di sistem operasi MS
Windows
Adalah sebuah bahasa markup yang digunakan untuk membuat sebuah halaman web dan
menampilkan berbagai informasi di dalam sebuah Web Browser.
Bermula dari sebuah bahasa yang sebelumnya banyak digunakan di dunia penerbitan dan
percetakan yang disebut dengan SGML, HTML adalah sebuah standar yang digunakan
secara luas untuk menampilkan halaman web dan HTML kini merupakan standar Internet
yang saat ini dikendalikan oleh World Wide Web Consortium (W3C).
Versi terakhir dari HTML adalah HTML 4.01, meskipun saat ini telah berkembang XHTML
yang merupakan pengembangan dari HTML.
HTML berupa kode-kode tag yang menginstruksikan web browser untuk menghasilkan
tampilan sesuai dengan yang diinginkan. Sebuah file yang merupakan file HTML dapat
dibuka dengan menggunakan browser web seperti Mozilla Firefox atau Microsoft Internet
Explorer. HTML juga dapat dikenali oleh aplikasi pembuka email ataupun dari PDA dan
program lain yang memiliki kemampuan browser.
Definisi
Adalah suatu teknologi yang digunakan untuk memperindah halaman website
(situs);, dengan CSS kita dapat dengan mudah mengubah keseluruhan warna dan
tampilan yang ada di situs kita sekaligus memformat ulang situs kita.
CSS ini telah distandarkan oleh World Wide Web Consortium (W3C) untuk
digunakan di web browser.
Keuntungan
Dapat di-update dengan cepat dan mudah, karena kita cukup mendefinisikan
sebuah style-sheet global yang berisi aturan-aturan CSS tersebut untuk diterapakan
pada seluruh dokumen-dokumen HTML pada halaman situs kita.
User yang berbeda dapat mempunyai style-sheet yang berbeda pula.
Ukuran dan kompleksitas document code dapat diperkecil.
Brief Intro
A. Sebuah style sheet terdiri dari beberapa aturan (Rules)
B. Masing-masing aturan terdiri dari satu atau lebih Selector dan sebuah Declaration
Block
C. Sebuah declaration block terdiri dari beberapa Declaration yang dipisahkan oleh
titik koma (;)
D. Masing-masing declaration terdiri dari Property, Colon (:), dan Value.
Font Properties
Font Family
Syntax:
font-family: [[<family-name> | <generic-family>],]* [<family-name> | <generic-family>]
Possible Values:
<family-name>
Any font family name may be used
<generic-family>
serif (e.g., Times)
sans-serif (e.g., Arial or Helvetica)
cursive (e.g., Zapf-Chancery)
monospace (e.g., Courier)
Font Style
Syntax:
font-style: <value>
Possible Values:
normal | italic | oblique
Font Variant
Syntax:
font-variant: <value>
Possible Values:
normal | small-caps
Font Weight
Syntax:
font-weight: <value>
Possible Values:
normal | bold | bolder | lighter | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900
Font Size
Syntax:
font-size: <absolute-size> | <relative-size> | <length> | <percentage>
Possible Values:
<absolute-size>
xx-small | x-small | small | medium | large | x-large | xx-large
<relative-size>
larger | smaller
<length>
<percentage> (in relation to parent element)
Font
Syntax:
font: <value>
Possible Values:
[ <font-style> || <font-variant> || <font-weight> ]? <font-size> [ / <line-height> ]? <font-family>
Contoh:
P { font: italic bold 12pt/14pt Times, serif }
Color
Syntax:
color: <color>
Nilai (value) dari color adalah sebuah keyword atau sebuah kode RGB.
16 keyword diambil dari palette Windows VGA:
aqua, black, blue, fuchsia, gray, green, lime, maroon, navy, olive, purple, red, silver, teal,
white, and yellow.
Background Color
Syntax:
background-color: <value>
Possible Values:
<color> | transparent
Background
Syntax:
background: <value>
Possible Values:
<background-color> || <background-image> || <background-repeat> ||
<background-attachment> || <background-position>
Text Properties
Text Alignment
Syntax:
text-align: <value>
Possible Values:
left | right | center | justify
Box Properties
Width
Syntax:
width: <value>
Possible Values:
<length> | <percentage> | auto
Height
Syntax:
height: <value>
Possible Values:
<length> | auto
Border Style
Syntax:
border-style: <value>
Possible Values:
[ none | dotted | dashed | solid | double | groove | ridge | inset | outset ]{1,4}
Classification Properties
Display
Syntax:
display: <value>
Possible Values:
block | inline | list-item | none
Properti Display digunakan untuk mendefinisikan sebuah elemen dengan salah satu dari
nilai berikut ini:
block (a line break before and after the element)
inline (no line break before and after the element)
list-item (same as block except a list-item marker is added)
none (no display)
Whitespace
Syntax:
white-space: <value>
Possible Values:
normal | pre | nowrap
Properti white-space akan menenetukan bagaimana spaces akan diperlakukan didalam
element. Salah satu nilai yang mungkin:
normal (collapses multiple spaces into one)
pre (does not collapse multiple spaces)
nowrap (does not allow line wrapping without a <BR> tag)
List Style
Syntax:
list-style: <value>
Possible Values:
<list-style-type> || <list-style-position> || <url>
URLs
A URL value is given by url(foo), where foo is the URL. The URL may be optionally quoted
with either single (') or double (") quotes and may contain whitespace before or after the
(optionally quoted) URL.
Parentheses, commas, spaces, single quotes, or double quotes in the URL must be
escaped with a backslash. Partial URLs are interpreted relative to the style sheet source,
not to the HTML source.
Examples:
BODY { background: url(stripe.gif) }
BODY { background: url(http://www.htmlhelp.com/stripe.gif) }
BODY { background: url( stripe.gif ) }
BODY { background: url("stripe.gif") }
BODY { background: url(\"Ulalume\".png) } /* quotes in URL escaped */
Definisi
CGI adalah suatu bentuk komunikasi dimana client
(browser) dapat mengirimkan suatu masukan kepada
server, dan server mengolah masukan tersebut serta
mengembalikannya kepada client (browser)
Program CGI adalah program yang didisain untuk
menerima dan mengembalikan data sesuai dengan
spesifikasi CGI. Program tersebut dapat ditulis
menggunakan bahasa pemrograman seperti C, Perl,
Java atau Visual Basic.
Perl
Perl merupakan singkatan dari Practical Extraction and
Report Language, dibuat oleh Larry Wall.
JAVASCRIPT
• Java dan JavaScript adalah dua bahasa yang berbeda baik dari sisi konsep
maupun dari sisi desain
• JavaScript dapat membaca dan menulis HTML elements - JavaScript dapat membaca dan
mengubah isi dari HTML element
• JavaScript dapat digunakan untuk mem-validasi data - JavaScript dapat digunakan untuk
mem-validasi form data sebelum di-submitted ke server, hal ini akan mengamankan server dari
pemrosesan extra
• JavaScript dapat digunakan untuk membuat cookies - JavaScript dapat digunakan untuk
menyimpan dan memanggil informasi di komputer pengunjung
Pemrograman Web/TI/ AK045216/2 sks
Pemrograman Client-Side
• HTML cocok untuk mengembangkan static pages
Dapat digunakan membuat text/image layout, presentation, links, …
Web page tampak sama setiap kali diakses
Untuk mengembangkan interactive/reactive pages, harus diintegrasikan dengan programming
• Pemrograman client-side
Programs ditulis dalam bahasa pemrograman yang terpisah
contoh : JavaScript, JScript, VBScript
Programs diembedded pada HTML Web page, untuk mengidentifikasi komponen program
Contoh : <script type="text/javascript"> … </script>
Untuk menjalankan program guna menampilkan page digunakan browser, yang
mengintegrasikan dynamic output dengan static content dari HTML
JavaScript: adalah Web scripting language pertama, yang dikembangkan oleh Netscape pada
tahun 1995. Mirip dengan Java/C++, tetapi lebih sederhana dan lebih fleksibel (loose typing,
dynamic variables, simple objects)
JScript: adalah JavaScript versi Microsoft, diperkenalkan tahun 1996 core language yang sama,
tetapi beberapa browser-specific seperti, IE & Netscape umumnya dapat menangani
JavaScript & JScript
<HTML>
<HEAD>
<SCRIPT language=“javascript”>
<!--
// Build HTML here
<!-- akhir script -->
</SCRIPT>
</HEAD>
</HTML>
</html>
Pemrograman Web/TI/ AK045216/2 sks
Tipe Data dan Variabel JavaScript
• JavaScript hanya mempunyai 3 tipe data primitive
String : "foo" 'howdy do' "I said 'hi'." ""
Number : 12 3.14159 1.5E6
Boolean : true false
<html>
<!–- COMP519 js02.html 07.09.2005 --> Inisialisasi seperti pada C++/Java
message = "howdy";
<head> pi = 3.14159;
<title>Data Types and Variables</title>
</head>
Nama variable terdiri dari letters, digits, dan
<body> underscores: diawali dengan letter
<script type="text/javascript">
var x, y;
x= 1024; Nama variables adalah case-sensitive
y=x; x = "foobar";
document.write("<p>x = " + y + "</p>");
you don't have to declare variables, will be
document.write("<p>x = " + x + "</p>"); created the first time used, but better if you
</script> use var statements
</body> var message, pi=3.14159;
</html>
<html>
<!–- COMP519 js03.html 7.09.2005 --> Operator standard dan statement kontrol
pada C++/Java sama seperti pada
<head> JavaScript
<title>Folding Puzzle</title>
</head> • +, -, *, /, %, ++, --,
…
<body>
<script type="text/javascript">
• ==, !=, <, >, <=, >=
distanceToSun = 93.3e6*5280*12; • &&, ||, !,===,!==
thickness = .002;
• if-then, if-then-else, switch
foldCount = 0; • while, for, do-while, …
while (thickness < distanceToSun) {
thickness *= 2;
foldCount++;
}
document.write("Number of folds = " +
foldCount);
</script>
</body>
</html>
<SCRIPT LANGUAGE="JavaScript">
function tanya()
{ var jawab=" "
var jawab=prompt("Anda senang bikin hompej ?")
var JAWAB = jawab.toUpperCase()
var tampil="Jawab dong, ya/yup atau tidak/nggak"
if ( JAWAB == "YA" || JAWAB == "YUP")
{ var tampil="Sama dong, saya juga :D" }
if(JAWAB == "TIDAK" || JAWAB == "NGGAK")
{ var tampil="Iya euy, bikin suntuk tuh (_ _)Zz..“ }
alert(tampil)
} </SCRIPT> <b>Hobi</b>
<FORM> <INPUT TYPE="button" VALUE="polling" onClick="tanya()"> </FORM>
<HTML> <HEAD>
<TITLE>Simple JavaScript Button</TITLE>
<SCRIPT TYPE=“text/javascript">
<!--
Function dontClick() {
alert(“I told you not to click !”); }
// -->
</SCRIPT> </HEAD>
<BODY BGCOLOR=“WHITE”>
<H1>Simple JavaScript Button</H1>
<FORM>
<INPUT TYPE=“BUTTON”
VALUE=“Don‟t Click Me” onClick=“alert(„hey…I said don‟t click me‟); return value”>
</FORM>
</BODY></HTML>
Pemrograman Web/TI/ AK045216/2 sks
Event Handler onMouseOver
Event handler onMouseOver ini gunanya untuk mengatur apa yang akan terjadi saat mouse kita
gerakkan ke atasnya.
<A HREF="http://xxx.com" onMouseOver="window.status='Ke Menu Utama'; return true">
Klik di sini</A>
Dengan menggunakan onMouseOver juga dapat mengubah property lain. Misalnya akan mengubah
warna latar dokumen, yaitu dengan menggunakan document.bgColor .
<A HREF="http://xxx.com" onMouseOver="document.bgColor= '#ffcc99'; return true">
Klik di sini</A>
Untuk menggabung dua efek di atas, perubahan window.status dan document.bgColor - hmm tidak
terlalu sulit, cukup memisahkan kedua efek tersebut dengan koma (,) seperti script berikut.
Perintah onMouseOver yang kedua berada di antara tanda petik (") untuk membuat efeknya terjadi
secara simultan.
Saat mouse mendekati gambar, onMouseOver aktif, sehingga gambar yang muncul adalah
gambar2.gif.
Sedang saat mouse menjauh, onMouseOut aktif, dan gambar yang muncul adalah
gambar1.gif.
- Sebagai contoh, berikut ini memberikan nilai equivalent pada object1 dan
object2
var object1 = new Object();
object1.x =3;
object1.x =4;
object1.x =5;
<head>
<title>Interactive page</title> 1st argument: prompt message
</head> tampak pada dialog box
<body>
<script type="text/javascript"> 2nd argument: default value
userName = prompt("What is your name?", ""); akan muncul pada kotak
userAge = prompt("Your age?", "");
userAge = parseFloat(userAge);
3rd Fungsi mengembalikan nilai
yang dimasukkan oleh user ke
document.write("Hello " + userName + ".") dalam dialog box
if (userAge < 18) {
document.write(" Do your parents know " +
"you are online?"); Jika value adalah sebuah
} number, harus menggunakan
</script> parseFloat untuk
<p>The rest of the page...
mengubahnya
</body>
</html>
function factorial(n) {
if (n <=0) {
return(1);
} else {
return(n * factorial(n-1));
}
}
function isPrime(n)
// Assumes: n > 0
can limit variable scope
// Returns: true if n is prime, else false
{ Jika penggunaan pertama dari variable
if (n < 2) { diawali dengan var, maka variabel
return false;
tersebut adalah local pada fungsi
}
else if (n == 2) {
return true; Untuk modularity, sebaiknya dibuat
} semua variabel ada pada sebuah
else {
for (var i = 2; i <= Math.sqrt(n); i++) {
fungsi local
if (n % i == 0) {
return false;
} }
return true;
} }
<script type="text/javascript">
Definisi fungsi
function isPrime(n)
// Assumes: n > 0 dimulai pada HEAD
// Returns: true if n is prime
{
// CODE AS SHOWN ON PREVIOUS SLIDE
} HEAD dipanggil
</script> </head> pertama, jadi fungsi
didefinisikan
<body>
<script type="text/javascript"> sebelum code
testNum = parseFloat(prompt("Enter a positive integer", "7")); dalam BODY
dijalankan
if (isPrime(testNum)) {
document.write(testNum + " <b>is</b> a prime number.");
}
else {
document.write(testNum + " <b>is not</b> a prime number.");
}
</script>
</body> </html> Pemrograman Web/TI/ AK045216/2 sks
Date Class
• String & Array adalah class yg paling sering digunakan pada JavaScript
special purpose classes & objects juga ada
Untuk menampilkan waktu seperti di atas kita dapat menggunakan script berikut:
<html>
<!–- COMP519 js11.html 09.09.2005 -->
<head> <title>Time page</title> </head>
<body>
Time when page was loaded:
<SCRIPT LANGUAGE="JavaScript"> //Script tentang waktu
Sekarang = new Date();
document.write("Hari ini " + Sekarang.getDate() + "-" +
(Sekarang.getMonth()+1)+ "-" + Sekarang.getFullYear() + ",
jam: " + Sekarang.getHours() + ":" + Sekarang.getMinutes() +
"." + Sekarang.getSeconds())
</SCRIPT>
</body> </html>
• Password adalah system pengamanan untuk pencegahan hal-hal yang tidak diinginkan dari
pihak luar.
• Penerapan password dapat dilakukan dengan berbagai cara.
• Misalnya dari jumlah karakter password yang harus terdidi dari jumlah karakter tertentu,
password dengan enkripsi atau pembatasan pemasukan password
• Password terbatas untuk membatasi proses pengisian password yang berulang kali
1
Language Features
Simple
Sintaks berdasar pada C++ (transisi lebih mudah bagi programmer)
Menghilangkan feature yang jarang dipakai
contoh : explicit pointers, operator overloading, automatic coercions
Penambahan memory management (mengacu pada count/garbage collection hybrid)
Object-oriented
Fasiltas OOP mirip dengan C++
OOP murni – seluruhnya adalah class, tidak ada independent functions
Robust
ketiadaan pointers dan memori manajemen menghindari banyak error
*libraries of useful, tested classes increases level of abstraction
arrays & strings are ADTs, well-defined interfaces
Portable
byte kode akan run pada versi manapun dari Java Virtual Machine (JVM)
2
Language Features
• Platform independence
Dapat menjalankan Java code pada multiple platforms
Netralitas dicapai dengan mencampur compilation & interpretation
Java programs diterjemahkan ke dalam byte code oleh Java compiler
– byte code is a generic machine code
byte code kemudia dieksekusi oleh interpreter (Java Virtual Machine)
– must have a byte code interpreter for each hardware platform
Sebuah Applet adalah sebuah special form dari Java application
byte code di download pada page, JVM di-embedded pada browser
• Architecture-neutral
Tidak ada implementation bergantung pada features (contoh : size dari primitive types)
• High-performance
Lebih cepat daripada traditional interpretation karena byte code mendekati native code
Masih sedikit lebih lambat daripada compiled language (contoh : C++)
3
Language Features
Distributed
Extensive libraries untuk mengatasi TCP/IP protokol seperti HTTP & FTP
Aplikasi Java dpt mengakses remote URL'S sama seperti halnya mengakses file lokal
Multi-threaded
Sebuah thread seperti sebuah program terpisah, dijalankan secara berbarengan
Dapat menulis program Java dimana beberapa pekerjaan dpt dilakukan sekaligus dgn
mendefinisikan multiple threads (same shared memory, but semi-independent execution)
Threads penting untuk multi-media, web applications
Secure
Aplikasi Java applications tidak dapat langsung mengakses ke lokasi memory
¾ Akses memory adalah virtual, dipetakan oleh JVM ke lokasi fisik
¾ Downloaded appletstidak dapat membuka, membaca atau menyalin local files
JVM memeriksa autentifikasi dari class juga memeriksa autentifikasi dari class yg di-load
Sun meng-klaim: Model execution memungkinkan virus-free*, tamper-free* systems
4
Bagaimana Java Bekerja…!
Compile-time Environment Compile-time Environment
Class
Loader Java
Class
Bytecode Libraries
Java Verifier
Source
(.java)
Just in
Java Java
Time
Bytecodes Interpreter Java
Compiler
move locally Virtual
or through machine
Java network
Compiler
Runtime System
6
Keamanan - Java
• Pointer denial – mengurangi kesempatan virulent programs merusak host
7
Object-Oriented
• Java mendukung OOD
Polymorphism
Inheritance
Encapsulation
• Program Java berisi tak lain hanya definisi dan instantiation dari class
Semuanya di-encapsulate dalam sebuah class!
8
Keuntungan Java
• Portable - Write Once, Run Anywhere
• Keamanannya sudah dipikirkan secara matang
• Memory management sempurna
• Didesain untuk network programming
• Multi-threaded (berbagai tugas simultaneous)
• Dynamic & extensible (loads of libraries)
Class disimpan pada file yang terpisah
Loaded hanya jika dibutuhkan
9
Java Programming Models
• Java applications are stand-alone programs
Harus dikompile menjadi Java byte code dengan Java compiler
Dieksekusi oleh sebuah interpreter (Java Virtual Machine)
10
Java Applets
• Important point : Java applets & applications look different!
Jika ingin mendefinisikan stand-alone application, buat sebuah aplikasi
membutuhkan public static void main function, sama dengan C++ main
Jika ingin meng-embed code pada sebuah Web page, buat sebuah applet
membutuhkan public void paint, public void init, …
/**
* This class displays "Hello world!" on the applet window. */
public class HelloWorld extends Applet
{ public void paint(Graphics g)
{g.drawString("Hello world!", 10, 10); // writes starting 10 pixels over & down
}
}
libraries: Java menyediakan provides extensive library support dalam bentuk class
Library dipanggil menggunakan import (mirip dengan #include di C++)
java.awt: berisi contains Abstract Window Toolkit (untuk GUI classes & routines)
java.applet: berisi definisi applet class
14
Embedding Applet di HTML
to include an applet in a Web page, use either
APPLET tag (deprecated)
CODE menentukan applet name, HEIGHT dan WIDTH menentukan window size
text antara APPLET tags ditampilkan jika tidak dapat dieksekusi (e.g., Java not enabled)
OBJECT tag
Lebih dipilih HTML 4, tetapi tidak secara universal mendukung
<html>
<!– COMP519 hello1.html 18.09.2005 -->
<head> <title>Hello World Page</title> </head>
<body>
<p>
<applet code="HelloWorld.class" height=100
width=100>
You must use a Java-enabled browser to view this
applet.
</applet>
</p>
</body> </html>
15
HTML & Applets
<html>
<!– COMP519 hello2.html 18.09.2005 -->
Sebuah applet dapat di-
<head> embedded dalam HTML
<title>Hello World Page</title> elements seperti element
</head>
<body> lainnya
<p> Berguna untuk format dan
<div align="center"> layout
<table border=1>
<tr><td>
</body>
</html>
16
Parameters di HTML
<html>
<!– COMP519 hello3.html 18.09.2005 -->
<head> Dapat menentukan
<title>Hello World Page</title> parameter APPLET
</head>
<body>
ketika di-embedded di
<p> HTML
<div align="center">
<table border=1>
<tr><td> • setiap parameter
<applet code="HelloWorld1.class" height=35 width=300> harus mempunyai
<param name="name" value="Chris">
<param name="age" value=20>
PARAM tag sendiri
You must use a Java-enabled browser to view this applet. dalam APPLET
</applet> element
</td></tr>
</table> • Menentukan
</div>
</p>
parameter name
dan value
</body> </html>
17
Applet Parameters
import java.awt.*;
import java.applet.*;
/**
* This class displays a message based on parameters. */
public class HelloWorld1 extends Applet
{ public void paint(Graphics g)
{ String userName = getParameter("name");
int userAge = Integer.parseInt(getParameter("age"));
Java Development
• Langkah-langkah Pengembangan
Buat source files di editor
Kompile menggunakan javac
Jalankan/test menggunakan java
19
Primitive Types dan Variables
• Boolean, char, byte, short, int, long, float, double dsb.
• Tipe dasar ini adalah satu-satunya tipe yang bukan objects
• Ini berarti bahwa kita tidak menggunakan operator baru untuk membuat primitive variable.
• Pendeklarasian primitive variables:
float initVal;
int retVal, index = 2;
double gamma = 1.2, brightness
boolean valueOk = false;
20
Initialisation
• Jika tidak ada nilai di berikan sebelumnya untuk digunakan, compiler akan memberikan
kesalahan
• Java men-set primitive variables menjadi zero atau false pada kasus dari sebuah boolean
variable
• Seluruh object references awalnya di-set null
• Sebuah array adalah sebuah object
Set null pada deklarasi
Elements to zero false or null on creation
21
Declarations
int index = 1.2; // compiler error
boolean retOk = 1; // compiler error
double fiveFourths = 5 / 4; // no error!
float ratio = 5.8f; // correct
double fiveFourths = 5.0 / 4.0; // correct
• 1.2f adalah float value akurasi sampai 7 decimal places.
• 1.2 adalah double value akurasi sampai 15 decimal places.
22
Assignment
23
Basic Mathematical Operators
• * / % + - are the mathematical operators
• * / % have a higher precedence than + or -
double myVal = a + b % d – c * d / b;
• Is the same as:
double myVal = (a + (b % d)) – ((c * d) / b);
24
Flow of Control
• Java menjalankan satu statement berurutan sesuai urutan penulisan
• Beberapa statement Java adalah statement flow of control :
Alternation : if, if else, switch
Looping : for, while, do while
Escapes : break, continue, return
If… else
• The if … else statement evaluates an expression and performs one action if that
evaluation is true or a different action if it is false.
if (x != oldx) {
System.out.print(“x was changed”);
}
else {
System.out.print(“x is unchanged”);
}
26
Nested if … else
if ( myVal > 100 ) {
if ( remainderOn == true) {
myVal = mVal % 100;
}
else {
myVal = myVal / 100.0;
}
}
else
{
System.out.print(“myVal is in range”);
}
27
else if
28
Peringatan…
WRONG!
if( i == j )
if ( j == k )
System.out.print(“i equals k”);
else
System.out.print(“i is not equal to j”);
CORRECT!
if( i == j ) {
if ( j == k )
System.out.print(“i equals k”);
}
else
System.out.print(“i is not equal to j”); // Correct!
29
Switch Statement
switch ( n ) {
case 1:
// execute code block #1
break;
case 2:
// execute code block #2
break;
default:
// if all previous tests fail then
//execute code block #4
break;
}
30
for loop
• Loop n times
for ( i = 0; i < n; n++ )
{
// this code body will execute n times
// ifrom 0 to n-1
}
• Nested for:
for ( j = 0; j < 10; j++ ) {
for ( i = 0; i < 20; i++ ){
// this code body will execute 200 times
}
}
31
while loops
while(response == 1) {
System.out.print( “ID =” + userID[n]);
n++;
response = readInt( “Enter “);
}
do {… } while loops
do {
System.out.print( “ID =” + userID[n] );
n++;
response = readInt( “Enter ” );
} while (response == 1);
32
Break
• Break statement menyebabkan keluar dari innermost yg berisi while, do, for or switch statement.
for ( int i = 0; i < maxID, i++ ) {
if ( userID[i] == targetID ) {
index = i;
break;
}
} // program jumps here after break
Continue
• Hanya dapat digunakan dengan while, do atau for.
• Continue statement menyebabkan innermost loop mulai perulangan berikutnya
for ( int i = 0; i < maxID; i++ ) {
if ( userID[i] != -1 ) continue;
System.out.print( “UserID ” + i + “ :” + userID);
}
33
Classes ARE Object Definitions
• OOP - object oriented programming
• code dibangun dari object-object
• Java seperti ini disebut classes
• Setiap pendefinisian class di-codekan dalam file .java yang berbeda
• Nama dari setiap object harus sama dengan nama class/object
34
Tiga Prinsip OOP
• Encapsulation
Object menyembunyikan fungsi mereka
(methods) dan data (instance variables)
• Inheritance
Setiap subclass mewarisi seluruh
variable dari superclass-nya
car Super class
• Polymorphism manual
auto-
matic Subclasses
Interface sama menghubungkan tipe data
berbeda
draw() draw()
35
Class dan Method Sederhana
Class Fruit {
int grams;
int cals_per_gram;
int total_calories() {
return(grams*cals_per_gram);
}
}
36
Methods
• Suatu method adalah suatu urutan code yang diberi nama yang dapat dilibatkan
oleh Java code lain
• Suatu metoda mengambil beberapa parameter, melaksanakan beberapa
perhitungan dan kemudian secara bebas mengembalikan nilai ( atau obyek).
• Methods dapat digunakan sebagai bagian dari statement expression.
37
Method Signatures
• Sebuah method signature menentukan :
Nama dari method.
Type dan nama dari setiap parameter.
Type dari value (atau object) yang dikembalikan oleh method.
Bermacam-macam method modifiers.
modifiers type name ( parameter list ) [throws exceptions ]
public float convertCelsius (float tCelsius ) {}
public boolean setUserInfo ( int i, int j, String name ) throws
IndexOutOfBoundsException {}
38
Public/private
• Methods/data dapat dideklasikan public atau private yang artinya method/data tersebut
dapat atau tidak dapat diakses oleh code pada class lain …
• Good practice:
keep data private
keep most methods private
• Interface yang didefinisikan dengan baik antar class – menolong menghilangkan error
Using objects
• Code pada sebuah class akan membuat sebuah instance dari class lain …
Fruit plum=new Fruit();
int cals;
cals = plum.total_calories();
• Dot operator membolehkan kita untuk mengakses (public) data/methods dalam Fruit class
39
Constructors
• The line
plum = new Fruit();
• invokes sebuah constructor method dimana kita dapat men-set initial data dari sebuah object
• Kita dapat memilih beberapa type yg berbeda dari constructor dgn argument lists yg berbeda
eg Fruit(), Fruit(a) ...
Overloading
• Dapat memiliki beberapa versi dari sebuah method dalam class dengan
tipe/jumlah arguments yang berbeda
Fruit() {grams=50;}
Fruit(a,b) { grams=a; cals_per_gram=b;}
40
Java Development Kit
• javac - The Java Compiler
• java - The Java Interpreter
• jdb - The Java Debugger
• appletviewer - Tool to run the applets
41
Java vs. C++
Sintaks Java meminjam dari C++ (dan C)
primitive types : sama seperti C++, tetapi sizes
byte (8 bits) char (16 bits) short (16 bits) int (32 bits)
long (64 bits) float (32 bits) double (64 bits) boolean
variables, assignments, arithmetic & relational operators : sama seperti C++
control structures : sama seperti C++, kecuali goto
Functions : mirip dengan C++, tetapi harus class & harus ditentukan public/private
in Java, every variable & method belongs to a class
Seperti di C++, dengan default setiap object mempunyai salinan data fields sendiri sehingga
dikenal sebagai instance variables
Seperti di C++, sebuah variables dideklarasikan static bersama dengan seluruh class objects
sehingga dikenal sebagai class variables
Hal yang sama, terjadi pada sebuah static method (class method)
Hanya dapat dioperasikan pada class variables, diakses dari class itu sendiri
class Math
{ public static final double PI = 3.14159; // access as Math.PI
public static double sqrt(double num) { . . . } // access as in Math.sqrt(9.0)
. . . }
42
Primitive vs. Reference Types
primitive types are handled exactly as in C++
space untuk sebuah primitive object secara implisit dialokasikan
Æ variable mengacu pada actual data (disimpan pada stack)
reference types (classes) are handled differently
space untuk sebuah reference object secara eksplisit dialokasikan menggunakan new
Æ variable mengacu pada sebuh pointer ke data (dimana disimpan pada heap)
Note: tidak seperti C++, programmer tidak bertanggung jawab untuk menghapus dynamic objects
JVM melaksanakan automatic garbage collection untuk mereklamasi memory yang tidak digunakan
44
Applet Behavior
• recall
init method dipanggil saat applet diload pertama
Berguna untuk initializing variables & objects
paint method dipanggil segera setelah init, dan kapanpun applet perlu menggambar (
contoh : setelah window resized )
45
import java.awt.*;
import java.applet.*;
import java.util.Random; Hello Again
/**
* This class displays lots of "Hello world!"s on the applet
window.
*/
public class HelloWorld2 extends Applet
{ store colors in an array
private static final int NUM_WORDS=100;
private static final Color[] colors =
• pick random index and
{Color.black,Color.red,Color.blue,Color.green, change color using
Color.yellow};
private static Random randy; setColor
private int RandomInRange(int low, int high)
{
return (Math.abs(randy.nextInt()) % Random class provides
(high-low+1)) + low;
} methods for generating
public void init() random values
{
randy = new Random();
}
override init method to
public void paint(Graphics g)
{ allocate & initialize (similar
for (int i = 0; i < NUM_WORDS; i++) {
int x = RandomInRange(1, 140);
to a constructor)
int y = RandomInRange(10, 200);
g.setColor(colors[RandomInRange(0,4)]);
g.drawString("Hello world!", x, y);
}
}
} <applet code="HelloWorld2.class" height=200 width=200>
You must use a Java-enabled browser to view this applet. view page
</applet> 46
Parameters & Applet Dimensions
recall:
Dapat menentukan parameters di HTML document menggunakan <PARAM> tags
Akses nilai parameter values (berdasar pada nama) menggunakan getParameter method
47
import java.awt.*;
import java.applet.*;
import java.util.Random;
Adaptive Hello
/**
* This class displays lots of "Hello world!"s on the applet window.
*/
public class HelloWorld3 extends Applet
{
private static final Color[] colors =
{Color.black,Color.red,Color.blue,Color.green,Color.yellow};
private static Random randy; getParameter
accesses the values of
private Dimension dim;
private int numReps;
49
public class Monte1 extends Applet
{
private static Random randy;
private int NUM_POINTS;
Graphical Applet
private int SIZE;
51
public class Monte2 extends Applet
{
. . .
private Image offScreenImage;
Buffered Applet
private Graphics offScreenGraphics;
offScreenGraphics.setColor(Color.red);
offScreenGraphics.fillOval(0, 0, SIZE, SIZE); paint is called after
init
for (int i = 0; i < NUM_POINTS; i++) { and whenever the applet is
int x = RandomInRange(0, SIZE);
int y = RandomInRange(0, SIZE); revisited
if (distance(x, y, SIZE/2, SIZE/2) < SIZE/2) {
offScreenGraphics.setColor(Color.white);
}
else {
Note: don’t see image in
offScreenGraphics.setColor(Color.black); progress
}
offScreenGraphics.drawLine(x, y, x, y);
} <applet code="Monte2.class" height=300 width=300>
} <param name="points" value=20000>
You must use a Java-enabled browser...
public void paint(Graphics g)
</applet>
{
g.drawImage(offScreenImage, 0, 0, null);
} view page 52
}
public class Monte3 extends Applet
{
. . .
public void init() {
Better buffering
randy = new Random();
NUM_POINTS = Integer.parseInt(getParameter("points"));
Dimension dim = getSize();
SIZE = Math.min(dim.width, dim.height); if want to see image as it is
drawn, must be done in
}
public void paint(Graphics g) {
if (offScreenImage == null) { paint
offScreenImage = createImage(SIZE, SIZE);
offScreenGraphics = offScreenImage.getGraphics();
offScreenGraphics.setColor(Color.red);
g.setColor(Color.red); when first loaded, have
offScreenGraphics.fillOval(0, 0, SIZE, SIZE);
g.fillOval(0, 0, SIZE, SIZE); paint draw on the graphics
for (int i = 0; i < NUM_POINTS; i++) {
int x = randomInRange(0, SIZE);
int y = randomInRange(0, SIZE);
screen and also to an off-
if (distance(x, y, SIZE/2, SIZE/2) < SIZE/2) {
offScreenGraphics.setColor(Color.white);
screen buffer
g.setColor(Color.white);
}
else {
offScreenGraphics.setColor(Color.black);
g.setColor(Color.black);
on subsequent repaints,
}
offScreenGraphics.drawLine(x, y, x, y);
simply redraw the contents of
}
g.drawLine(x, y, x, y); the off-screen buffer
}
else {
g.drawImage(offScreenImage, 0, 0, null);
}
} <applet code="Monte3.class" height=300 width=300>
} <param name="points" value=20000>
</applet>
view page 53
GUI Elements pada Applets
• Java mempunyai extensive library yang mendukung GUIs (Graphical
User Interfaces)
Mempunyai element yang sesuai dengan HTML buttons, text boxes, text areas, …
54
Text Boxes
public class Monte4 extends Applet public void paint(Graphics g)
{ {
. . . . . .
insideField.setText("0");
private Label insideLabel; outsideField.setText("0");
private TextField insideField; . . .
private Label outsideLabel; if (distance(x, y, SIZE/2, SIZE/2) <
private TextField outsideField; SIZE/2) {
g.setColor(Color.white);
public void init()
int value =
{
randy = new Random();
Integer.parseInt(insideField.getText())+1
NUM_POINTS = ;
Integer.parseInt(getParameter("points"));
Dimension dim = getSize(); insideField.setText(""+value);
SIZE = Math.min(dim.width, dim.height); }
else {
setLayout(new BorderLayout()); g.setColor(Color.black);
int value =
Panel p = new Panel();
insideLabel = new Label("Inside:"); Integer.parseInt(outsideField.getText())+
p.add(insideLabel); 1;
insideField = new TextField(5); outsideField.setText(""+value);
p.add(insideField); }
outsideLabel = new Label("Outside:");
p.add(outsideLabel);
. . .
outsideField = new TextField(5);
}
p.add(outsideField);
}
add(p, BorderLayout.SOUTH);
}
<applet code="Monte4.class" height=335 width=300>
<param name="points" value=20000>
view page </applet> 55
Event Handling
• in order to handle events (e.g., text changes, button clicks), can use the event
delegation model
Harus menentukan bahwa class meng-implementasikan the ActionListener interface
public class Monte5 extends Applet implements ActionListener
Sumber :
Buku “Database Relational dengan MySQL”,
Bunafit Nugroho,
Tutorial “Dasar Pemrograman PHP MySQL”,
Anon Kuncoro Widigdo, Kuliah Umum
IlmuKomputer.Com,
Tutorial “PHP Programming Fundamental
dan MySQL Fundamental”, Endy
PHP/FI merupakan nama awal dari PHP. Dibuat pertama kali oleh Rasmus
Lerdoff. Awalnya merupakan program CGI yang dikhususkan untuk
menerima input melalui form yang ditampilkan dalam web browser.
<html>
<head>
<title>My First PHP Script</title>
</head>
<body>
<h4>Example One</h4>
<p><?php echo "Hello World"; ?></p>
</body>
</html>
PHP
Variabel dan Tipe data
Variabel didalam PHP diawali dengan karakter $ dan diikuti dengan huruf
sebagai karakter pertama, kemudian dapat diikuti dengan kombinasi
huruf dan angka.
Tidak boleh ada spasi dan tanda baca, kecuali _ (garis bawah/
underscore)
contoh :
$nama
$a1
$nilai_uts
PHP
Variabel dan Tipe data
contoh :
PHP
Operator
• dBase
• Informix
• DB2
• MySQL
• Oracle
• PostgreSQL
• sybase
XML
1
XML
• Apakah XML
• XML vs HTML
• XML Struktur
• DTD
• XLST
2
Apakah XML ?
• XML tidak menerangkan tag-set atau gramar dari XML itu sendiri
• Menggunakan DTD ( Document Type Definition ) untuk
menerangkan data
• XML bukan pengganti HTML
3
XML vs HTML ?
4
Aplikasi XML
• Konfigurasi File :
– Arsitektur J2EE
• Media untuk pertukaran data
• B2B transaksi
– Electronics Bussines Order (ebXML)
– Financial Exchange (IFX)
– Messaging Exchange (SOAP)
5
XML Element
XMLElements
6
Aturan XML
• Dokumen XML harus “well-formed” yang artinya harus
memenuhi aturan2 sebagai berikut :
– Harus mempunya sebuah root element yang
berisikan element2 lainnya.
– Semua elemen harus diakhiri dengan tag penutup,
Contoh :
<picturefile=“test.jpg”/>
<name>Lion</name>
– Element tidak boleh overlaping
7
Aturan XML
– XML bersifat case sensitive
– Untuk nilai harus berada dalam kutip satu (‘) atau
kutip dua (“)
– Simbol2 special harus dideklarasikan pada DTD
8
Aturan XML
9
DTD
• DTD berfungsi untuk menjelaskan spesifikasi dan aturan terhadap
element2 dan atrributes yang harus di miliki oleh sebuah xml
dokument.
10
DTD
11
DTD
Mendefinisikan element yang mempunyai beberapa element
<!ELEMENT animal(name, weight)>
12
DTD
Mendefinisikan element dengan beberapa pilihan element
<!ELEMENT animal ((name, weight) | (picture)>
Berdasarkan aturan diatas maka element animal harus mempunyai elemen
name dan weight atau hanya punya element picture.
13
Attribute
• Terkadang penggunaan attribute dapat lebih berarti dari pada
memecah element menjadi sub-sub element.
• Kedua element ini berarti sama :
– <population animal=“lion”>80</population>
– <population><animal>lion</animal><quantity>80</
quantity></population>
• Attribute harus dideklarasikan juga pada DTD untuk dapat di
pergunakan
– <!ELEMENT population (#PCDATA)>
<!ATTLIST population year CDATA #IMPLIED>
14
Attribute
• Mendefinisikan Attribute wajib (Required Attribute) :
<!ELEMENT population (#PCDATA)>
<!ATTLIST population year (2000 | 2001) #REQUIRED>
Berarti : element populasi harus mempunyai attribute year yang bernilai
2000 atau 2001
<population year=“2000”>80</population>
15
Attribute
• Mendefinisikan Attribute default (Default Attribute) :
<!ELEMENT population (#PCDATA)>
<!ATTLIST population year CDATA #FIXED “2000”>
Invalid : <population year=“2001”>80</population>
Valid : <population year=“2000”>80</population>
Valid : <population>80</population>
• Mendefinisikan Unique Attribute :
<!ELEMENT animal (name)>
<!ATTLIST animal code ID #REQUIRED>
16
Deklarasi DTD
Internal :
<?xml version=“1.0”?>
<!DOCTYPE animal [ ]>
<animal> </animal>
- animal is the root element
- The DTD berada dalam kurung “ [ ]” brackets pada “DOCTYPE”
Eksternal :
<?xml version=“1.0”?>
<!DOCTYPE animal SYSTEM “http://www.animals.com/xml/animal.dtd”>
17
Pengantar Common Gateway
Interface (CGI) dan Perl
- Konsep CGI dan Perl
- Lingkungan variabel di Perl
- Metode POST dan GET
1
Konsep CGI dan Perl
Definisi
CGI adalah suatu bentuk komunikasi dimana client
(browser) dapat mengirimkan suatu masukan kepada
server, dan server mengolah masukan tersebut serta
mengembalikannya kepada client (browser)
Program CGI adalah program yang didisain untuk
menerima dan mengembalikan data sesuai dengan
spesifikasi CGI. Program tersebut dapat ditulis
menggunakan bahasa pemrograman seperti C, Perl,
Java atau Visual Basic.
2
Konsep CGI dan Perl
Perl
Perl merupakan singkatan dari Practical Extraction and
Report Language, dibuat oleh Larry Wall.
3
Variabel di Perl
4
Variabel di Perl
Skalar
Variabel skalar menyimpan unit data yang paling mendasar. Apa yang dikandung skalar, itu
jugalah yang bisa dikandung oleh array dan hash. Sebuah skalar hanya mengandung string
atau angka. Ini juga berarti bahwa semua informasi—dari manapun asalnya—akan
diperlakukan sebagai string atau angka. String dikutip menggunakan kutip ganda atau kutip
tunggal. Angka bisa berupa bilangan bulat, oktal, heksadesimal, maupun pecahan desimal.
$nama = ‘hasan’;
$_nama2 = $nama . ‘t’; # hasant
$tahun = 2001;
$satu_dollar = 8500.43;
$dua_tahun_lalu = $tahun - 2; # 1999
Untuk memasukkan kutip tunggal dalam string yang dikutip tunggal digunakan \ (garis miring
terbalik) di depannya. Begitupun untuk memasukkan kutip ganda dalam string yang dikutip
ganda. Dan untuk memasukkan \ itu sendiri, tambahkan \ satu lagi. Ini disebut meng-escape
character.
$putih = ‘#FFFFFF’;
$body = “<body bgcolor=\”$putih\”>”;
$dialog = ‘”Dia t\’lah pergi,” katanya’;
5
Variabel di Perl
Array
Array didefinisikan dengan memasukkan elemen-elemennya ke dalam tanda kurung dan dipisahkan dengan ,
(koma). Koma tidak wajib diletakkan pada elemen terakhir. Di Perl, ini sebenarnya sebuah konstruksi data yang
disebut list.
@minuman = (’kopi’, ‘teh’, ‘air’);
Kadang-kadang kedua istilah ini, array dan list, bisa dipertukarkan, dan memiliki makna yang sama. Namun,
harus disadari bahwa keduanya tetap berbeda secara logik. Array adalah jenis variabel, sementara list adalah
konstruksi data. Dalam pengertian singkat, bisa dikatakan bahwa array adalah list yang bernama. Semua array
berisi list, tapi tidak semua list berupa array. Dengan pengertian ini kita bisa mendefinisikan sekumpulan
variabel skalar dalam list.
($satu, $dua, $tiga) = (1, 2, 3);
Elemen array diakses dengan sintaks $array[0], angka di dalam “[]” menujukkan indeks elemen dimulai dari 0,
yang berarti elemen pertama. Indeks negatif (dimulai dari -1) menghitung elemen dari belakang.
$minuman[0] # berisi “kopi”
$minuman[2] # berisi “air”
$minuman[-1] # sama, berisi air
Jika kebetulan semua elemen array tidak ada yang mengandung spasi, maka kita bisa mendefinisikan sebuah
array tanpa menggunakan tanda kutip dan koma. Sebagai gantinya kita menggunakan operator qw().
@minuman = qw(kopi teh air);
6
Variabel di Perl
Hash
Definisi hash mirip dengan array. Setiap elemen hash terdiri atas pasangan indeks (key) dan nilai
(value). Berbeda dengan array, indeks di hash menggunakan string, dan nilainya bisa diakses dengan
sintaks $hash{’indeks’}.
%aplikasi = (
‘bahasa’, ‘perl’,
’server’, ‘apache’,
‘teks’, ‘vim’,
);
print $aplikasi{’bahasa’}; # perl
Indeks yang mengandung karakter sederhana tidak perlu dikutip karena otomatis dianggap sebagai
string. Namun jika indeks mengandung karakter selain huruf dan angka, kutip harus digunakan. Hal ini
juga berlaku ketika mengakses elemen. Jadi, $aplikasi{’bahasa’} bisa ditulis sebagai $aplikasi{bahasa}.
Benar dan Salah. Kadang-kadang Anda tidak ingin mengetahui nilai kembalian dari sebuah ekspresi,
baik string maupun angka, Anda hanya ingin tahu benar atau salah. Perl tidak punya jenis data boolean
khusus. Nilai sebuah ekspresi adalah salah satu dari: tak terdefinisi (undefined), benar (true), atau,
salah (false). Untuk memudahkan urusan, selanjutnya saya akan menyebut “tak terdefinisi” dengan
“undef”. Aturan Perl sederhana, semua nilai benar, kecuali yang undef, string kosong (“” atau ‘’), angka
0, dan string “0″.
7
Metode POST dan GET
Tag <FORM> dan <INPUT> digunakan bersama-sama untuk meminta
masukan dari user untuk dikirim ke server. Tag <FORM> membuat kerangka dan
tag <INPUT> menyediakan elemen antarmuka dengan user. Untuk standar
penulisan form adalah sebagai berikut :
<FORM METHOD =”POST/GET” ACTION =”URL”>
…
…
…
</FORM>
Atribut METHOD memiliki 2 nilai POST dan GET. Metode GET mengirimkan data
pada server dengan cara meletakkan data pada bagian akhir URL yang ditunjuk.
Metode POST mengirimkan datanya secara terpisah. Jika masukan banyak maka
disarankan menggunakan POST. ACTION akan berisi URL dari program yang
dipanggil form tersebut.
8
Cascading Style Sheets (CSS)
Daftar Pustaka
Sayid Munawar, “Menjadi WebProgrammer HTML, PHP & MySQL, Dasar
dan Aplikasi ”, 2003. http://cici-tresnawati.tripod.com/Cici.htm.html
http://www.lies.com/begperl/
http://www.ezscripting.com/pathtoperl/
9
Semantic Web
1
Definisi Semantic Web
Semantic web adalah sebuah visi: ide atau pemikiran dari
bagaimana memiliki data pada web yang didefinisikan dan
dihubungkan dengan suatu cara dimana dapat digunakan
oleh mesin tidak hanya untuk tujuan display, tetapi untuk
otomatisasi, integrasi dan penggunaan kembali data diantara
berbagai aplikasi.
2
Definisi Semantic Web
(Lanjutan)
3
Apa itu Data dari suatu Web ?
Kembali sebentar ke
circa 1993
5
Apa itu Data dari suatu Web ?
(Lanjutan)
Dan sekarang
6
Komponen Semantik Web
Sumber W3C
7
Ontology
8
Semantic Web dan Ontology
9
Bahasa dan Tool
10
RDF
• RDF adalah layer untuk merepresentasikan
semantik dari isi halaman tersebut
11
RDF (lanjutan)
Model RDF adalah suatu triple yang dinamakan
statement: satu sumber daya (subject) yang
dihubungkan ke sumberdaya yang lain atau satu
literal (object) melalui satu arc dari sumberdaya ke
tiga,predikat.
12
RDF (lanjutan)
13
DAML + OIL
DAML adalah usaha untuk menyediakan
primitif pemodelan yang lebih kaya daripada
RDF dan RDF schema. Kemudian digabung
dengan group lain, dinamakan Ontology
Inference Language (OIL), yang berusaha
untuk menyediakan kalsifikasi yang lebih
baik dengan menggunakan konstruksi dari
kecerdasan buatan yang berbasis frame.
14
OWL
OWL diharapkan untuk mempertemukan kebutuhan
untuk bahasa ontologi di web [8], sehingga perintah
perntah dasarnya akan lebih baik dari RDF dan
RDF schema.
15
Protégé
Protégé adalah sebuah alat bantu yang berbentuk perangkat
lunak yang digunakan untuk pengembang sistem untuk
mengembangkan Knowledge-Base System. Aplikasi yang
dikembangkan dengan Protégé digunakan dalam
pemecahan masalah dan pembuat keputusan dalam sebuah
domain.
16
Protégé
Protégé merupakan sebuah alat yang digunakan
untuk membuat sebuah domain ontology,
menyesuaikan form untuk entry data, dan
memasukan data.
17
1
List
Ordered List
Unordered List
Directory List
Menu List
Definition List
Ordered List
Digunakan untuk membuat daftar dimana tiap bagiannya memiliki nomor
secara berurut.
Contoh :
<HTML>
<HEAD>
<TITLE>Ordered List</Title>
</HEAD>
<BODY>
Contoh Penggunaan Ordered List
<OL>
<LI>Ini adalah nomor pertama
<LI>Ini adalah nomor Kedua
<LI>Ini adalah nomor Ketiga
<LI>Ini adalah nomor Keempat
<LI>Ini adalah nomor Kelima
</OL>
</BODY>
</HTML>
Hasil :
Untuk mengganti default dari ordered list digunakan atribut TYPE pada tag
<OL>
Selain itu disdiakan pula Atribut Start untuk menentukan nilai awal
penomoran.
Contoh :
<HTML>
<HEAD>
<TITLE>Ordered List</Title>
</HEAD>
<BODY>
<OL TYPE = A>
Contoh Penggunaan Ordered List Dengan Atribut
<OL TYPE = 1>
<LI>Ini adalah nomor pertama
<LI>Ini adalah nomor Kedua
<LI>Ini adalah nomor Ketiga
<LI>Ini adalah nomor Keempat
<LI>Ini adalah nomor Kelima
</OL>
<OL TYPE = B>
Sambungan Dari Contoh Di Atas
<OL TYPE =1 START=6>
<LI>Ini adalah nomor Keenam
<LI>Ini adalah nomor Ketujuh
<LI>Ini adalah nomor Kedelapan
</OL>
</OL>
</BODY>
</HTML>
Hasil :
Unordered List
Setiap bagian dari unordered list ditandai dengan tanda Bullet. Diawali
dengan Tag <UL> dan diakhiri dengan Tag </UL>. Untuk menyatakan tiap
bagiannya digunakan Tag <LI> dan tidak diperlukan tag penutup.
Contoh :
<HTML>
<HEAD>
<TITLE>UnOrdered List</Title>
</HEAD>
<BODY>
Contoh Penggunaan UnOrdered List
<UL TYPE=CIRCLE>
<LI>Ini adalah Bullet pertama
<LI>Ini adalah Bullet Kedua
<LI>Ini adalah Bullet Ketiga
<LI>Ini adalah Bullet Keempat
<LI>Ini adalah Bullet Kelima
</UL>
</BODY>
</HTML>
Hasil :
Selain tanda bullet anda bisa menngunakan atribut TYPE pada tag <UL>,
atribut TYPE yang disediakan adalah :
TYPE = CIRCLE
TYPE = DISK
TYPE = SQUARE
Contoh :
<HTML>
<HEAD>
<TITLE>Grafik</Title>
</HEAD>
<BODY>
<P ALIGN="LEFT">Contoh Penggunaan Grafik</P>
<P ALIGN="LEFT">
<IMG SRC="syd18.jpg"
ALT="Alternatif image"></P>
</BODY>
</HTML>
Hasil :
1
Apa itu CMS ?
2
Mengapa perlu CMS ?
3
Content dan Design
Content
Providers
CMS
Design
Template
4
CMS Basic
5
Web CMS
6
Keuntungan CMS
7
Fasilitas Dasar CMS
8
1. Content Authoring, Editing
and Management
• Web-based interface
• Content stored and managed in database repository
• XML and XSLT stylesheet templates
• Document upload, drag ‘n drop
• WYSIWYG editing
• Desktop application integration (e.g. Office, Photoshop,
Excel, etc…)
• Document comparison and content versioning
• Content preview and staging
• Content re-use in a one or more websites
• Accessibility compliance
• Spell check
9
2. Workflow, Collaboration,
and Security
• Workflow management
• User and group permissions
• Document check-in/check-out
• Authentication (Active Directory, LDAP, ect…)
• Rollback
• Full content search
• Scheduled backup of all site content (including documents
and images)
• Archiving
• Change tracking and auditing
• Metadata management (content categorization)
• IM, email, forums, notification, approval process
• Task management
10
3. Publishing
11
4. Standars Support
12
5. Technical Specifications
13
Kolaborasi di CMS
1. Department/Division Project Manager
o Bertanggung jawab terhadap website, pemimpin projek, kontak
personal terhadap projek, membuat jadwal pengerjaan dll
2. Content Specialist
o Membuat/mengedit content, reporter, interviewer, dll.
14
Kolaborasi di CMS
• Server/CMS Administrator
• Bertanggung jawab dalam install dan konfigurasi CMS (termasuk
module), patch/update, membuat account pengguna CMS dan hak-hak-
nya, memantau performance server dan CMS.
• Database Administrator
• Mengelola dan membuat account pengguna database, backup data,
memantau performace server.
• Web Developer / Designer
• Mengelola scripting program CMS, menambah module, membuat
design template baru.
15
Joomla !
16
Tampilan
Backend Joomla
17
Media Manager
18
Pembuatan Content
19
Pemilihan Template
20
Contoh Frontend Joomla
21