Staffsite STMIK PPKIA Pradnya Paramita d0e16 pertemuan 002

Pertemuan 02

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)




Java 2 Enterprise Edition (J2EE)





Aplikasi client-side, applet
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)
BlueJ (www.bluej.org)
DrJava (http://drjava.sourceforge.net)


JAVA DEVELOPMENT TOOLKIT (JDK)


Program pada JDK yang sering digunakan


Kompiler: javac




Interpreter: java




Menampilkan applet

Dokumentasi: javadoc





Seperti interpreter, tetapi mampu men-debug aplikasi

Penampil applet: appletviewer




Mengeksekusi bytecode (.class) menjadi aplikasi

Debugger: jdb




Mengkompilasi souce code (.java) menjadi bytecode (.class)


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

Comment
s

public class Welcome {
public static void main(String [] args) { Strin
g
System.out.println(“Welcome to Java!”);
Class heading,
}
Main method
signature
}

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)
public class Welcome {
Public static void main(String [] args)Save
{
System.out.println(“Welcome to Java!”);
}
}

Create/Modify Source Code

on the disk

Bytecode (generated by the compiler for JVM
to read and interpret, not for you to
Stored
understand)

Method Welcome()
0 aload_0

Method void main(java.lang.String[])
0 getstatic #2 …
3 ldc #3
5 invokevirtual #4
8 return

Source Code

Compile Source Code
e.g., javac Welcome.java

If compilation errors
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
prints Welcome to Java! */

ANATOMI:
SEPARATORS/PUNCTUATION
Karakter/notasi tertentu untuk tujuan tertentu
Contoh separators:
Symbol

Nama

Kegunaan

()

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 dianggap
keyword, sedangkan Public tidak

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) {
Method
Class
Block
Block
System.out.println(“Welcome to Java!”);
}
}

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 diencapsulated 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
Character
Escape
Sequence
\b

Name



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)

Merepresentasikan
karakter khusus
Dimulai dengan
karakter backslash
( \ ) dilanjutkan
karakter tertentu

ESCAPE SEQUENCE
Contoh penggunaan escape sequence

DID YOU KNOW?


Versi Java


19 Februari 1997, Java 1.1




08 Desember 1998, Java 1.2




Codename: Tiger, awalnya berversi 1.5 (tetapi sudah menghilangkan metode versi 1.x)

11 Desember 2006, Java 6




Codename: Merlin, mengintegrasikan XML

30 September 2004, Java 5.0




Codename: Kestrel, mengintegrasikan sound

06 Februari 2002, Java 1.4




Codename: Playground, dikenal dengan Java 2, muncul platform J2SE, J2EE, J2ME

08 Mei 2000, Java 1.3




hanya AWT

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