Upload
amirkhan
View
250
Download
0
Embed Size (px)
Citation preview
8/9/2019 Pengenalan JAVA.pdf
1/24
A RM 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
Pemrograman Jaringan:
Pengenalan Java
8/9/2019 Pengenalan JAVA.pdf
2/24
Pengenalan java
Menerapkan compiler dan interpreter
public class myCetak {public static void main(String args[])
{System.out.println(“Hello World!”);
}
}
compiler
-----------------------------------------------------------------------------------------------------------------
--------------------------------------------
interpreter
program.java program.class javac program.java
java program11010101
2
bytecode
8/9/2019 Pengenalan JAVA.pdf
3/24
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
JVM
-------------------------------------------------------------------------------------------------------------------------------------------------------------
interpreterinterpreterinterpreter
3
interpreter
8/9/2019 Pengenalan JAVA.pdf
4/24
Software yang dibutuhkan
Java Standrd Edition (SE) Development Kit (JDK)
Dapat didownload gratis dihttp://developers.sun.com/downloads/
JDK yang digunakan pada MK ini adalah versi terbarusaat ini: JDK1.6.0 update 10
Text Editor: Notepad, Edit, dll
4
Java IDE:Jcreator, Eclipse, NetBeans, dll
8/9/2019 Pengenalan JAVA.pdf
5/24
OOP dan Java
Java adalah bahasa pemrograman murni berbasisobject-oriented (OO)
OOP: Program bekerja atas interaksi ataukomunikasi antar obyek (object interprocess)
OO-program dapat dipandang sebagai sistemtersebar (distributed system)
5
8/9/2019 Pengenalan JAVA.pdf
6/24
Apa itu obyek?
Segala sesuatu dapat dipandang sbg obyek
Karateristik obyek Memiliki atribut sebagai status (state/variable)
Memiliki tingkah laku (behavior) atau method
variabel/
statemethod/
behavior
Object model
6
8/9/2019 Pengenalan JAVA.pdf
7/24
Bagaimana membuat obyek
Obyek dikonstruksi/dirancang dari prototipe ataublueprint yang telah ditetapkan (class)
Contoh:
resep classkue obyek
Bahan:
1 kg gula2 sdk mentegadan sterusnya.
Cara Membuat:Campursemua lalupanaskan dan seterusnya
Resep Kue 1
Kue 2
7
8/9/2019 Pengenalan JAVA.pdf
8/24
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());
}
}
variabel/state
konstruktor
method/
behavior
obyek m
8
8/9/2019 Pengenalan JAVA.pdf
9/24
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 kesub-class atau menerima prilaku dari super-class
Kebanyak-rupaan ( polymorphism)Kemampuan obyek mengungkap banyak hal melalui suatu cara yangsama. Obyek dapat menjalankan prilaku-prilaku atau metode-metode yang diturunkan dari beberapa superclassnya
9
8/9/2019 Pengenalan JAVA.pdf
10/24
Netprog 2000 - Java NetworkPro rammin
10
Important Java Packages
java.net TCP/IP networking
java.io I/O streams & utilities
java.rmi Remote Method Invocation
java.securitySecurity policies
java.lang Threading classes
8/9/2019 Pengenalan JAVA.pdf
11/24
8/9/2019 Pengenalan JAVA.pdf
12/24
Netprog 2000 - Java NetworkPro rammin
12
IP Addresses & Hostnames
java.net.InetAddress class
Represents a single IP address
Factory class – no public constructor
Performs transparent DNS lookups or reverselookups
java.net.UnkownHostException thrown if
DNS system can’t find IP address for specific host
http://java.sun.com/products/jdk/1.3/docs/api/java/net/InetAddress.htmlhttp://java.sun.com/products/jdk/1.3/docs/api/java/net/UnknownHostException.htmlhttp://java.sun.com/products/jdk/1.3/docs/api/java/net/UnknownHostException.htmlhttp://java.sun.com/products/jdk/1.3/docs/api/java/net/InetAddress.html
8/9/2019 Pengenalan JAVA.pdf
13/24
Netprog 2000 - Java NetworkPro rammin
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,
not an integer descriptor
http://java.sun.com/products/jdk/1.3/docs/api/java/net/ServerSocket.htmlhttp://java.sun.com/products/jdk/1.3/docs/api/java/net/Socket.htmlhttp://java.sun.com/products/jdk/1.3/docs/api/java/net/Socket.htmlhttp://java.sun.com/products/jdk/1.3/docs/api/java/net/ServerSocket.html
8/9/2019 Pengenalan JAVA.pdf
14/24
Netprog 2000 - Java NetworkPro rammin
14
TCP Client Sockets
java.net.Socket class
Combines socket with socket options (timeout,linger, keep alive, no delay, etc)
Encapsulates a java.io.InputStream and ajava.io.OutputStream – can be retrieved for
use in a layered I/O system
http://java.sun.com/products/jdk/1.3/docs/api/java/net/Socket.htmlhttp://java.sun.com/products/jdk/1.3/docs/api/java/io/InputStream.htmlhttp://java.sun.com/products/jdk/1.3/docs/api/java/io/OutputStream.htmlhttp://java.sun.com/products/jdk/1.3/docs/api/java/io/OutputStream.htmlhttp://java.sun.com/products/jdk/1.3/docs/api/java/io/InputStream.htmlhttp://java.sun.com/products/jdk/1.3/docs/api/java/net/Socket.html
8/9/2019 Pengenalan JAVA.pdf
15/24
Netprog 2000 - Java NetworkPro rammin
15
UDP Sockets
java.net.DatagramSocket class
Java makes no distinction between client/server forUDP sockets
Connected mode UDP supported in Java 2
Can be bound to both a local port & a local IPaddress – multi-homed support
Supports some socket options (timeout, buffer size)
http://java.sun.com/products/jdk/1.3/docs/api/java/net/DatagramSocket.htmlhttp://java.sun.com/products/jdk/1.3/docs/api/java/net/DatagramSocket.html
8/9/2019 Pengenalan JAVA.pdf
16/24
Netprog 2000 - Java NetworkPro rammin
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
send instances of java.net.DatagramPacket
http://java.sun.com/products/jdk/1.3/docs/api/java/net/DatagramPacket.htmlhttp://java.sun.com/products/jdk/1.3/docs/api/java/net/DatagramSocket.htmlhttp://java.sun.com/products/jdk/1.3/docs/api/java/net/DatagramPacket.htmlhttp://java.sun.com/products/jdk/1.3/docs/api/java/net/DatagramPacket.htmlhttp://java.sun.com/products/jdk/1.3/docs/api/java/net/DatagramSocket.htmlhttp://java.sun.com/products/jdk/1.3/docs/api/java/net/DatagramPacket.html
8/9/2019 Pengenalan JAVA.pdf
17/24
Netprog 2000 - Java NetworkPro rammin
17
Threading
Java doesn’t support the notion of forkingprocesses; how do we support concurrency?
–Java was designed to support multi-threading!
– In server environments we can spawn new
threads to handle each client
– Thread groups allow for collective control
of many threads
http://java.sun.com/products/jdk/1.3/docs/api/java/lang/Thread.htmlhttp://java.sun.com/products/jdk/1.3/docs/api/java/lang/ThreadGroup.htmlhttp://java.sun.com/products/jdk/1.3/docs/api/java/lang/ThreadGroup.htmlhttp://java.sun.com/products/jdk/1.3/docs/api/java/lang/Thread.html
8/9/2019 Pengenalan JAVA.pdf
18/24
Netprog 2000 - Java NetworkPro rammin
18
Java Servlets
Servlets are the Java analog to CGI
Advantages of servlets: full access to other Java APIs,persistence between invocations, guaranteed
portability Servlets can be generic services or specific to HTTP
8/9/2019 Pengenalan JAVA.pdf
19/24
Netprog 2000 - Java NetworkPro rammin
19
HTTP Servlets
javax.servlet.http.HttpServlet class
Uses HTTP to receive requests and generateresponses
Full support for all HTTP methods, cookies, sessions,persistent connections
Servlets can be chained – example: de-blink servlet
http://java.sun.com/products/servlet/2.2/javadoc/javax/servlet/http/HttpServlet.htmlhttp://java.sun.com/products/servlet/2.2/javadoc/javax/servlet/http/HttpServletRequest.htmlhttp://java.sun.com/products/servlet/2.2/javadoc/javax/servlet/http/HttpServletResponse.htmlhttp://java.sun.com/products/servlet/2.2/javadoc/javax/servlet/http/Cookie.htmlhttp://java.sun.com/products/servlet/2.2/javadoc/javax/servlet/http/Cookie.htmlhttp://java.sun.com/products/servlet/2.2/javadoc/javax/servlet/http/HttpServletResponse.htmlhttp://java.sun.com/products/servlet/2.2/javadoc/javax/servlet/http/HttpServletRequest.htmlhttp://java.sun.com/products/servlet/2.2/javadoc/javax/servlet/http/HttpServlet.html
8/9/2019 Pengenalan JAVA.pdf
20/24
Netprog 2000 - Java NetworkPro rammin
20
Java Applets
Client-side Java programs that run in a browser
Applets have special security restrictions called theapplet sandbox
Only applets loaded over the network are subject tothe applet sandbox
The applet sandbox is controlled by ajava.lang.SecurityManager
http://java.sun.com/products/jdk/1.3/docs/api/java/lang/SecurityManager.htmlhttp://java.sun.com/products/jdk/1.3/docs/api/java/lang/SecurityManager.html
8/9/2019 Pengenalan JAVA.pdf
21/24
Netprog 2000 - Java NetworkPro rammin
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
Restricted access to certain system properties
http://java.sun.com/products/jdk/1.3/docs/api/java/lang/Runtime.htmlhttp://java.sun.com/products/jdk/1.3/docs/api/java/lang/Runtime.html
8/9/2019 Pengenalan JAVA.pdf
22/24
Netprog 2000 - Java NetworkPro rammin
22
Escaping the Applet Sandbox
Browsers can define their own security policy via anew security manager
Applets can be signed and executed as trusted
content Security policies may vary from browser to browser,
even for signed applets
http://java.sun.com/products/jdk/1.3/docs/api/java/lang/SecurityManager.htmlhttp://java.sun.com/products/jdk/1.3/docs/api/java/lang/SecurityManager.html
8/9/2019 Pengenalan JAVA.pdf
23/24
Netprog 2000 - Java NetworkPro rammin
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 policyimplemented by RMISecurityManager
The default RMI transport mechanism is via TCPsockets – this is transparent to RMI code!
Any object transferred in an RMI call mustimplement the Serializable interface
http://java.sun.com/products/jdk/1.3/docs/api/java/rmi/server/UnicastRemoteObject.htmlhttp://java.sun.com/products/jdk/1.3/docs/api/java/rmi/RMISecurityManager.htmlhttp://java.sun.com/products/jdk/1.3/docs/api/java/io/Serializable.htmlhttp://java.sun.com/products/jdk/1.3/docs/api/java/io/Serializable.htmlhttp://java.sun.com/products/jdk/1.3/docs/api/java/rmi/RMISecurityManager.htmlhttp://java.sun.com/products/jdk/1.3/docs/api/java/rmi/server/UnicastRemoteObject.html
8/9/2019 Pengenalan JAVA.pdf
24/24
Netprog 2000 - Java Network24
Java Naming & Directory Interface (JNDI)
JNDI provides a generic API that can be used tointerface with any naming system
JNDI uses SPIs (service provider interfaces) to
access many different types of naming & directoryservices from the JNDI API
Sun supplies JNDI SPIs for LDAP, NIS, COS(CORBA naming), RMI registry & local filesystem
http://java.sun.com/products/jndi/index.htmlhttp://java.sun.com/products/jndi/index.html