A R M I N L A W I
P R O G R A M P A S C A S A R A J A N U N H A S
Pengenalan java
Menerapkan compiler dan interpreter
public class myCetak {
public static void main(String args[]) {
Karakteristik Multi-platform
public class myCetak {
public static void main(String args[]) {
System.out.println(“Hello World!”); }
}
compiler
program.java program.class
Windows Linux Solaris MacOS
Software yang dibutuhkan
Java Standrd Edition (SE) Development Kit (JDK)
Dapat didownload gratis di
http://developers.sun.com/downloads/
JDK yang digunakan pada MK ini adalah versi terbaru saat ini: JDK1.6.0 update 10
Text Editor:
Notepad, Edit, dll4
Java IDE:
OOP dan Java
Java adalah bahasa pemrograman murni berbasis object-oriented (OO)
OOP: Program bekerja atas interaksi atau
komunikasi antar obyek (object interprocess)
OO-program dapat dipandang sebagai sistem tersebar (distributed system)
Apa itu obyek?
Segala sesuatu dapat dipandang sbg obyek
Karateristik obyek
Memiliki atribut sebagai status (state/variable)
Memiliki tingkah laku (behavior) atau method
variabel/ state
method/ behavior
Bagaimana membuat obyek
Obyek dikonstruksi/dirancang dari prototipe atau
blueprint yang telah ditetapkan (class)
Contoh:
resep class
kue obyek
Bahan:
1 kg gula 2 sdk mentega dan sterusnya.
Cara Membuat: Campur semua lalu panaskan dan seterusnya
Resep Kue 1
Kue 2
Contoh oop dalam java
class mhs {
private String nama; private String nim; private String ttl; private String agama;
public mhs(String nama, String nim, String m, String agama) { this.nama = nama;
this.nim = nim; this.ttl = ttl;
this.agama = agama; }
public String getNama() { return this.nama; }
public String getNim() { return nim;
}
public static void main(String args[]) {
mhs m = new mhs(“Armin”, “132133693”, “19”, “Islam”); System.out.println(“Nama =“ + m.getNama());
Ciri-ciri oop
Abstraksi (abstraction)
Pengabstrakan atau penyembunyian kerumitan dari suatu proses
Pembungkusan (encapsulation)
Abstraksi dilakukan dengan cara pembungkusan (kapsulasi) semua kode dan data kedalam satu entitas tunggal (obyek)
Pewarisan (inheritance)
Implementasi khusus dalam OOP yang dapat menurunkan prilaku ke sub-class atau menerima prilaku dari super-class
Kebanyak-rupaan (polymorphism)
Kemampuan obyek mengungkap banyak hal melalui suatu cara yang sama. Obyek dapat menjalankan prilaku-prilaku atau metode-metode yang diturunkan dari beberapa superclassnya
Netprog 2000 - Java Network Programming
10
Important Java Packages
java.net TCP/IP networking
java.io I/O streams & utilities
java.rmi Remote Method Invocation
java.security Security policies
Netprog 2000 - Java Network Programming
11
Java Sockets Programming
Java uses BSD-style sockets to interface with TCP/IP services (java.net package)
Java distinguishes between UDP, TCP server & TCP client sockets
Netprog 2000 - Java Network Programming
12
IP Addresses & Hostnames
java.net.InetAddress class
Represents a single IP address
Factory class – no public constructor
Performs transparent DNS lookups or reverse lookups
java.net.UnkownHostException thrown if
Netprog 2000 - Java Network Programming
13
TCP Server Sockets
java.net.ServerSocket class
Binds to a local port to listen for initial connections
Can be bound to a local IP for multi-homed machines
accept() method returns a java.net.Socket,
Netprog 2000 - Java Network Programming
14
TCP Client Sockets
java.net.Socket class
Combines socket with socket options (timeout, linger, keep alive, no delay, etc)
Netprog 2000 - Java Network Programming
15
UDP Sockets
java.net.DatagramSocket class
Java makes no distinction between client/server for UDP sockets
Connected mode UDP supported in Java 2
Can be bound to both a local port & a local IP address – multi-homed support
Netprog 2000 - Java Network Programming
16
UDP Datagrams
java.net.DatagramPacket class
Expects a byte array of data
Address optional for connected-mode UDP
This class is final – can’t be extended!
java.net.DatagramSocket instances can only
Netprog 2000 - Java Network Programming
17
Threading
Java doesn’t support the notion of forking
processes; how do we support concurrency?
–
Java was designed to support
multi-threading!
–
In server environments we can spawn new
threads
to handle each client
Netprog 2000 - Java Network Programming
18
Java Servlets
Servlets are the Java analog to CGI
Advantages of servlets: full access to other Java APIs, persistence between invocations, guaranteed
portability
Netprog 2000 - Java Network Programming
19
HTTP Servlets
javax.servlet.http.HttpServlet
class Uses HTTP to receive requests and generate
responses
Full support for all HTTP methods, cookies, sessions, persistent connections
Netprog 2000 - Java Network Programming
20
Java Applets
Client-side Java programs that run in a browser
Applets have special security restrictions called the applet sandbox
Only applets loaded over the network are subject to the applet sandbox
The applet sandbox is controlled by a
Netprog 2000 - Java Network Programming
21
Applet Sandbox
Can’t load libraries or define native methods
Can’t access local host filesystem
Can’t open sockets to hosts other than
originating host
Can’t use
Runtime.exec()
Applet windows have a unique appearance
Netprog 2000 - Java Network Programming
22
Escaping the Applet Sandbox
Browsers can define their own security policy via a new security manager
Applets can be signed and executed as trusted content
Netprog 2000 - Java Network Programming
23
Remote Method Invocation (RMI)
RMI is the Java analog to RPC
RMI servers use a naming service (rmiregistry) to
register
remote objects
RMI servers use a special security policy
implemented by
RMISecurityManager
The default RMI transport mechanism is via TCP
sockets
–
this is transparent to RMI code!
Any object transferred in an RMI call must
Netprog 2000 - Java Network Programming
24
Java Naming & Directory Interface (JNDI)
JNDI
provides a generic API that can be used to
interface with any naming system
JNDI uses SPIs (service provider interfaces) to
access many different types of naming & directory
services from the JNDI API