Transcript Slide 1

PENGANTAR BAHASA
JAVA
Learning Outcomes
Pada akhir pertemuan ini, diharapkan
mahasiswa akan mampu:
–Menjelaskan elemen
pemrograman Java
–Menjelaskan struktur
pemrograman Java
Outline Materi
•
•
•
•
•
•
•
•
Sejarah Java
Karakteristik Java
API, JDK, JRE
Java Platform
Program Sederhana Java
Anatomi Program Java
Escape Sequence
Unicode
Sejarah Java
• Dikembangkan oleh tim
– Pemimpin: James Gosling
– Company: Sun Microsystem
• Agustus 1991, bernama Oak
• Januari 1995, berganti nama Java
• Menjanjikan aplikasi berbasis “Write Once,
Run Anywhere (WORA)”
• Dapat dijalankan di web browser dengan
teknologi Applet
Karakteristik Java (Buzzwords)
•
•
•
•
•
•
•
•
•
•
•
Simple
Object-oriented
Distributed
Interpreted
Robust
Secure
Architecture-neutral
Portable
High-performance
Multi-threaded
Dynamic
Application Program Interface
(API)
• Kumpulan predefined classes dan
interfaces untuk mengembangkan
program Java
• 3 edisi Java API:
– Java 2 Standard Edition (J2SE)
• Aplikasi client-side, applet
– Java 2 Enterprise Edition (J2EE)
• Servlet, JSP
– Java 2 Micro Edition (J2ME)
• Cell phone
Java Development Toolkit (JDK)
• Sekumpulan program terpisah untuk
mengembangkan dan menguji program Java
• Java Development Tools, aplikasi berbasiskan
IDE (integrated development environment) untuk
membuat program Java dengan cepat
–
–
–
–
–
–
–
–
JBuilder by Borland (www.borland.com)
NetBeans Open Source by Sun (www.netbeans.org)
Eclipse Open Source by IBM (www.eclipse.org)
Code Warrior by Metrowerks (www.metrowerks.com)
TextPad Editor (www.textpad.com)
JCreator LE (www.jcreator.com)
JEdit (www.jedit.org)
JGrasp (www.jgrasp.org)
Java Development Toolkit (JDK)
• Program pada JDK yang sering digunakan
– Kompiler: javac
• Mengkompilasi souce code (.java) menjadi bytecode (.class)
– Interpreter: java
• Mengeksekusi bytecode (.class) menjadi aplikasi
– Debugger: jdb
• Seperti interpreter, tetapi mampu men-debug aplikasi
– Penampil applet: appletviewer
• Menampilkan applet
– Dokumentasi: javadoc
• Mengkonversi source code (.java) menjadi dokumentasi (.html)
– Kompresi: jar
• Menghasilkan kompresi (.jar) dari bytecode (.class) dan file
pendukung lain (seperti gambar, suara, video)
Java Runtime Environment
(JRE)
• Software yang diperlukan untuk
menjalankan aplikasi berplatform Java
• Java Virtual Machine (JVM): sekumpulan
program untuk mengeksekusi java
bytecode agar jalan pada platformnya
• Java Bytecode: Sekumpulan instruksi
yang dieksekusi oleh JVM. Panjangnya
sebesar 1 byte per instruksi
Java Platform
Program Java Sederhana: Hello
World
// This application program prints Welcome
to Java!
public class Welcome {
public static void main(String [] args) {
System.out.println(“Welcome to Java!”);
}
}
Program Java Sederhana: Hello
World
// This application program prints Welcome to Java!
Class name
Filename: Welcome.java
public class Welcome {
public static void main(String [] args) {
System.out.println(“Welcome to Java!”);
}
Class heading,
String
}
Main method signature
Comments
Program Java Sederhana: Hello
World
• Setiap program Java memiliki minimal 1
kelas. Cth: Welcome
• Untuk menjalankan kelas, maka
diperlukan method main
• System.out.println merupakan statement
untuk mencetak kalimat ke console
Creating, Compiling, Executing
Source code (developed by the programmer)
Create/Modify Source Code
public class Welcome {
Save on the disk
Public static void main(String [] args)
{
Source Code
System.out.println(“Welcome to Java!”);
}
}
Compile Source Code
e.g., javac Welcome.java
Bytecode (generated by the compiler for JVM to read
and interpret, not for you to understand)
…
Method Welcome()
0 aload_0
…
Method void main(java.lang.String[])
0 getstatic #2 …
3 ldc #3 <String “Welcome to Java!”>
5 invokevirtual #4
8 return
If compilation errors
Stored in the disk
Bytecode
Run Bytecode
e.g., java Welcome
Result
If runtime
errors or
Incorrect
result
Anatomi Program Java
• Program/aplikasi terdiri dari:
– Whitespace
– Identifiers
– Literal
– Comments
– Separators
– Reserved words (keyword)
– Modifiers
– Statements
– Blocks
– Classes
– Methods
– The main method
Anatomi: Whitespace
•
•
•
•
Java adalah free-form language
Tidak perlu aturan indentation
Program dapat dibuat 1 baris saja
Terdapat minimal 1 whitespace di antara
token yang tak beroperator
• Contoh whitespace: space, tab, newline
Anatomi: Identifiers
• Digunakan untuk menamakan class,
method, dan variable
• Terdiri dari huruf uppercase/lowercase,
angka, underscore, atau tanda dollar ($)
• Tidak boleh diawali dengan angka
• Bersifat case-sensitive
• Contoh identifier:
– AvgTemp, args, count, f4, $test, this_is_ok
Anatomi: Literals
• Nilai tetap
• Dapat berupa bilangan bulat, bulang
desimal, karakter, kata, boolean,
tergantung tipe yang digunakan
• Contoh:
– 100
– 98.6
– ‘X’
– “This is a test”
Anatomi: Comments
• Menggunakan notasi:
– // untuk satu baris (line comment)
– /* … */ untuk beberapa baris (paragraph comment)
• Membantu programmer saling berkomunikasi
dan mengerti program
• Umumnya untuk mendokumentasikan internal
program
• Contoh comments:
// This application program prints
Welcome to Java!
/* This application program prints
Welcome to Java! */
/* This application program
Anatomi:
Separators/Punctuation
• Karakter/notasi tertentu untuk tujuan tertentu
Symbol
Nama
Kegunaan
• Contoh
separators:
()
Parentheses Berisi daftar parameter pada method
{}
Braces
Sebagai block atau nilai inisialisasi pada array
[]
Brackets
Deklarasi array
;
Semicolon
Pengakhir statement
,
Comma
Pemisah deklarasi variabel dan statement for
.
Period
Pemisah nama package dan subpackage, dan
variable atau method dengan object/class
Anatomi: Reserved Words
• Sering disebut keywords
• Memiliki arti tersendiri bagi compiler
• Tidak dapat digunakan untuk tujuan lain
dalam program
• Contoh keywords:
– class
Ketika compiler menemukan kata class, maka
kata setelah class dianggap sebagai nama
class
– public, static, void
• Java bersifat case-sensitive, public
Anatomi: Reserved Words
• Contoh-contoh keyword lainnya:
abstract
default
goto *
package
this
assert
do
if
private
throw
boolean
double
implements
protected
throws
break
else
import
public
transient
byte
enum
instanceof
return
true
case
extends
int
short
try
catch
false
interface
static
void
char
final
long
strictfp
volatile
class
finally
native
super
while
const *
float
new
switch
continue
for
null
synchronized
*  disiapkan untuk Java versi berikutnya
Anatomi: Modifiers
• Merupakan reserved words tertentu
• Menunjukkan properti data, method, dan
class
• Contoh modifier:
– public
– static
– private
– final
– abstract
– protected
Anatomi: Statements
• Merepresentasikan (rangkaian) aksi
• Contoh:
– System.out.println(“Welcome to Java!”);
menyatakan statement untuk menampilkan
tulisan “Welcome to Java!”
• Setiap statements diakhiri dengan notasi
semicolon (;)
Anatomi: Blocks
• Ditandai dengan tanda kurung kurawal buka ({)
dan tutup (})
• Setiap class memiliki class block yang terdiri dari
data dan method
• Setiap method memiliki method block yang
terdiri dari statement
• Block dapat bersifat nested (block in block)
• Contoh:
public class Test {
public static void main(String[] args) {
System.out.println(“Welcome to Java!”);
}
}
Method
Block
Class
Block
Anatomi: Classes
• Inti dari konstruksi Java
• Sebuah program terdiri dari minimal 1
class
• Di dalam class terdiri dari data dan
method (encapsulation)
Anatomi: Methods
• Kumpulan statement yang di-encapsulated
yang menunjukkan urutan operasi
• Contoh:
– System.out.println
System.out  standard output object
println  method dalam object
hasil eksekusi akan ditampilkan di layar
command prompt
Anatomi: Main method
• Setiap aplikasi Java harus memiliki main
method
• Merupakan tempat mulainya eksekusi
program
• JVM mengeksekusi aplikasi Java melalui
main method
• Contoh main method:
public static void main(String[]
args) {
// statements
}
Escape Sequence
• Merepresentasikan karakter khusus
• Dimulai dengan karakter backslash ( \ )
dilanjutkan karakter tertentu
Character Escape Sequence Name
\b
Backspace
\t
Tab
\n
Linefeed
\f
Formfeed
\r
Carriage Return
\\
Backslash
\’
Single Quote
\”
Double Quote
\ddd
\udddd
Octal (0 s/d 377)
Heksadesimal (dd= 0 s/d FF atau ff)
Escape Sequence
Contoh penggunaan escape sequence
Did You Know?
• Versi Java
– 19 Februari 1997, Java 1.1
• hanya AWT
– 08 Desember 1998, Java 1.2
• Codename: Playground, dikenal dengan Java 2, muncul platform
J2SE, J2EE, J2ME
– 08 Mei 2000, Java 1.3
• Codename: Kestrel, mengintegrasikan sound
– 06 Februari 2002, Java 1.4
• Codename: Merlin, mengintegrasikan XML
– 30 September 2004, Java 5.0
• Codename: Tiger, awalnya berversi 1.5 (tetapi sudah
menghilangkan metode versi 1.x)
– 11 Desember 2006, Java 6
• Codename: Mustang, menghilangkan metode versi x.0,
mendukung Visual Basic, GUI Vista
– (belum rilis) 2008, Java 7
• Codename: Dolphin, perbaikan beberapa bug pada versi
sebelumnya
Did You Know?
• Logo Java:
• Maskot Java (Duke):
Advanced Learning
• Java mendukung Unicode
• Unicode: skema encoding yang
dikembangkan oleh Unicode Consortium
• Mendukung pertukaran, pemrosesan, dan
penampilan bahasa-bahasa di dunia
• Contoh:
– Welcome dalam mandarin 
– I Love You dalam mandarin 
Advanced Learning
• Contoh pemakaian Unicode
Advanced Learning
• import java.swing.JOptionPane;  akan
diterangkan pada session berikutnya
• Untuk menampilkan kotak pesan grafik:
JOptionPane.showMessageDialog
(null,”…”,”…”,JOptionPane…);
parent
teks
judul
jenis pesan
Advanced Learning
• Hasil eksekusi
Referensi
• Introduction to Java Programming. 7ed. Liang. 2009. p40-48
• Java Programming Language.
http://en.wikipedia.org/wiki/Java_(programming_language)
• Java Software Platform.
http://en.wikipedia.org/wiki/Java_(software_platform)
• Java Bytecode. http://en.wikipedia.org/wiki/Java_bytecode
• JDK. http://en.wikipedia.org/wiki/Java_Development_Kit
• JVM. http://en.wikipedia.org/wiki/Java_Virtual_Machine
• Logo Java. http://en.wikipedia.org/wiki/Image:Java_Logo.svg
• Java Platform. http://en.wikipedia.org/wiki/Image:JavaPlatform.jpg
• http://en.wikipedia.org/wiki/Image:Wave.svg
• Java Characteristics.
http://www.cs.armstrong.edu/liang/intro6e/JavaCharacteristics.pdf
• History of Java. http://java.sun.com/features/1998/birthday.html
• Lexical Structure.
http://java.sun.com/docs/books/jls/second_edition/html/lexical.doc.ht
ml