Anda di halaman 1dari 54

Drs. Megah Mulya, M.T.

FAKULTAS ILMU KOMPUTER


UNIVERSITAS SRIWIJAYA
2008
BAGIAN 1
PENGANTAR
BAHASA JAVA

P.B.O. Java - Drs. Megah Mulya, M.T. -


Fasilkom UNSRI - 2007 2
Sejarah Bahasa Java (1)

Tahun 1991, Proyek Green di Sun.


Personel Green : Patrick Naughton dan James Gosling
dkk
Tujuan : merancang bahasa komputer untuk perangkat
konsumer (misal cable TV Box) yang tidak memiliki
banyak memori
Bahasa harus berukuran kecil
Manufaktur-manufaktur berbeda :
-> bahasa harus bebas dari manufaktur manapun
-> dibutuhkan processor yang berbeda pula

P.B.O. Java - Drs. Megah Mulya, M.T. -


Fasilkom UNSRI - 2007 3
Sejarah Bahasa Java (2)
Karakteristik bahasa yang dibutuhkan: fleksibel, kecil, liat
dan kode yang netral terhadap platform
Team Green mempelajari implementasi Pascal (pencipta:
Niklaus Wirth)
Bahasa Pascal :
- portabel
- menghasilkan intermediate code untuk mesin hipotesis.
- sering disebut dengan mesin maya (virtual machine).
- Kode dapat digunakan di sembarang mesin yang
memiliki interpreter.
Proyek Green menggunakan mesin maya untuk
mengatasi isu utama tentang netral terhadap arsitektur
mesin.
P.B.O. Java - Drs. Megah Mulya, M.T. -
Fasilkom UNSRI - 2007 4
Sejarah Bahasa Java (2)
Team Green berbasis C++ dan bukan Pascal :
-> sintaks kebanyakan diambil dari C++,
-> mengadopsi orientasi objek (bukan prosedural).
Bahasa yang diciptakan awalnya diberi nama Oak
(inspirasi dari pohon di seberang kantor)
Sebelumnya telah ada bahasa pemrograman bernama
Oak -> Sun mengganti namanya JAVA
Nama JAVA terinspirasi saat team sedang menikmati
secangkir kopi di sebuah kedai kopi yang kemudian
dengan tidak sengaja salah satu dari merekamenyebutkan
kata JAVA yang mengandung arti asal bijih kopi

P.B.O. Java - Drs. Megah Mulya, M.T. -


Fasilkom UNSRI - 2007 5
Sejarah Bahasa Java (3)
Produk pertama proyek Green adalah Star 7 (*7), sebuah
kendali jarak jauh yang sangat cerdas.
Pasar masih belum tertarik dengan produk konsumer
cerdas -> proyek Green harus menemukan pasar lain dari
teknologi yang diciptakan.
Pada saat yang sama, implementasi WWW dan Internet
sedang mengalami perkembangan pesat.
Team Green menyadari Java dapat digunakan pada
pemrograman internet
Penerapan selanjutnya mengarah menjadi teknologi yang
berperan di web.

P.B.O. Java - Drs. Megah Mulya, M.T. -


Fasilkom UNSRI - 2007 6
Java pada Teknologi Web

* Hanya di platform Windows saja

P.B.O. Java - Drs. Megah Mulya, M.T. -


Fasilkom UNSRI - 2007 7
Java Mengadopsi Kelebihan
Bahas Lain (1)
Java telah mengakomodasi hampir seluruh fitur penting
bahasabahasa pemrograman yang ada semenjak
perkembangan komputasi modern manusia :
1. Dari SIMULA:
- bahasa pada tahun 65-an
- bahasa yang paling mempengaruhi Java sekaligus C++.
- yang diadopsi : bentukanbentukan dasar dari
pemrograman berorientasi objek.
2. Dari LISP :
- bahasa tahun 55-an.
- yang diadopsi : fasilitas garbage collection, kemampuan untuk
meniru generic list processing
P.B.O. Java - Drs. Megah Mulya, M.T. -
Fasilkom UNSRI - 2007 8
Bahasa Java (2)
3. Dari Algol :
- bahasa tahun 60-an
- struktur kendali
4. Dari C++ :
- sintaks
- sebagian semantik
- exception handling
5. Dari Ada :
- strongly type
- exception handling

P.B.O. Java - Drs. Megah Mulya, M.T. -


Fasilkom UNSRI - 2007 9
Bahasa Java (2)

6. Dari Objective C :
- interface.
7. Dari SmallTalk :
- pendekatan single-root class hirarchie (object
adalah satu kesatuan hirarki pewarisan)
8. Dari Eiffel :
- assertion

P.B.O. Java - Drs. Megah Mulya, M.T. -


Fasilkom UNSRI - 2007 10
Karakteristik Java (1)
Sederhana
- sintaks mirip dengan C++
- tidak menyediakan pointer
- tidak menyediakan multiple inheritance.
- menggunakan automatic memory allocation dan memory
garbage collection.
Berorientasi objek (Object Oriented)
- murni berorientasi obyek
Distribusi mudah
- aplikasi yang dihasilkan mudah didistribusikan berkat
adanya libraries networking yang terintegrasi

P.B.O. Java - Drs. Megah Mulya, M.T. -


Fasilkom UNSRI - 2007 11
Karakteristik Java (2)
Interpreter
- program Java dijalankan menggunakan interpreter :
Java Virtual Machine (JVM)
- source code Java yang dikompilasi menjadi bytecodes dapat
dijalankan pada platform yang berbeda-beda.
Robust
- reliabilitas tinggi.
- Compiler punya kemampuan mendeteksi error lebih
teliti dibandingkan bahasa lain
- terdapat runtime-Exception handling

P.B.O. Java - Drs. Megah Mulya, M.T. -


Fasilkom UNSRI - 2007 12
Karakteristik Java (3)
Aman
- terdapat mekanisme keamanan untuk menjaga aplikasi
agar tidak digunakan untuk merusak sistem komputer
pada aplikasi internet dan terdistribusi
Architecture Neutral
- program bebas platform (cukup satu versi yang dapat
dijalankan pada platform yang berbeda dengan JVM
Portabel
- source code maupun program Java dapat dengan
mudah dibawa ke platform yang berbeda-beda tanpa
harus dikompilasi ulang.

P.B.O. Java - Drs. Megah Mulya, M.T. -


Fasilkom UNSRI - 2007 13
Karakteristik Java (4)
Performance
- performance kurang tinggi (dapat ditingkatkan
menggunakan kompilator lain seperti buatan Inprise,
Microsoft ataupun Symantec yang menggunakan Just In
Time)
Multithreaded
- fasilitas pemrograman paralel

P.B.O. Java - Drs. Megah Mulya, M.T. -


Fasilkom UNSRI - 2007 14
Fase Pembuatan Program

P.B.O. Java - Drs. Megah Mulya, M.T. -


Fasilkom UNSRI - 2007 15
Hello.java
public class Hello
{
/*
contoh program java sederhana
*/
public static void main(String[] args) {
//Menampilkan kata "Hello world" dilayar
System.out.println("Hello world!");
}
}

P.B.O. Java - Drs. Megah Mulya, M.T. -


Fasilkom UNSRI - 2007 16
BAGIAN 2
Tipe Data

P.B.O. Java - Drs. Megah Mulya, M.T. -


Fasilkom UNSRI - 2007 17
Tipe Data Primitif
( boolean )

Tipe data boolean diwakili oleh dua pernyataan :


true dan false.
Contoh :
boolean result = true;

P.B.O. Java - Drs. Megah Mulya, M.T. -


Fasilkom UNSRI - 2007 18
Tipe Data Primitif
( char )
Tipe data character (char), diwakili oleh karakter single
unicode. Tipe data ini harus memiliki ciri berada dalam
tanda single quotes ( ).
Contoh :
a //Huruf a
\t //A tab
Untuk menampilkan karakter khusus seperti ' (single
quotes) atau " (double quotes), menggunakan karakter
escape \.
Contoh :
'\'' //untuk single quotes
'\"' //untuk double quotes
P.B.O. Java - Drs. Megah Mulya, M.T. -
Fasilkom UNSRI - 2007 19
Integer
Dalam bahasa Java integral terbagi atas :
desimal, oktal, heksadesimal.
Contoh :
2 //nilai desimal 2
077 //angka 0 pada awal pernyataan mengindi-
kasikan nilai oktal
0xBACC //karakter 0x mengindikasikan nilai
heksadesimal
P.B.O. Java - Drs. Megah Mulya, M.T. -
Fasilkom UNSRI - 2007 20
Integer (lanjut.)
Range tipe integer :

P.B.O. Java - Drs. Megah Mulya, M.T. -


Fasilkom UNSRI - 2007 21
Floating Point
Floating point terdiri dari dua tipe : float dan double
(defaultnya adalah double) dengan literal penanda :
E or e //(add exponential value)
F or f //(float)
D or d //(double)
Contoh :
3.14 //nilai floating-point sederhana (a double)
6.02E23 //A nilai floating-point yang besar
2.718F //A nilai float size sederhana

P.B.O. Java - Drs. Megah Mulya, M.T. -


Fasilkom UNSRI - 2007 22
Range Floating-Point

P.B.O. Java - Drs. Megah Mulya, M.T. -


Fasilkom UNSRI - 2007 23
String
String bukan merupakan tipe data primitif (namun
merupakan suatu Class). String mewakili tipe data yang
terdiri atas beberapa karakter yang dibatasi tanda double
quotes().

Contoh :
String message=Hello world!

P.B.O. Java - Drs. Megah Mulya, M.T. -


Fasilkom UNSRI - 2007 24
Deklarasi & Inisialisai Variabel

<data tipe> <name> [=initial value];

Catatan: Nilainya berada diantara <> adalah nilai


yang disyaratkan, sementara nilai dalam tanda []
bersifat optional.

P.B.O. Java - Drs. Megah Mulya, M.T. -


Fasilkom UNSRI - 2007 25
Contoh
Deklarasi & Inisialisasi Variable

public class VariableSamples char option;


{ option = 'C'; //menandai 'C'
public static void main( String[] sebagai option
args ){ //deklarasi tipe data dengan nama
//deklarasi tipe data dengan nama variabel
variable //grade, double tipe data dan
// result dan tipe data boolean telah di inisialisasi
boolean result; //to 0.0
//deklarasi tipe data dengan nama double grade = 0.0;
variabel String S=abcde123;
// option dan tipe data char }

P.B.O. Java - Drs. Megah Mulya, M.T. -


Fasilkom UNSRI - 2007 26
BAGIAN 3
Output ke Monitor

P.B.O. Java - Drs. Megah Mulya, M.T. -


Fasilkom UNSRI - 2007 27
Menampilkan Data Ke Layar
Perintah :
System.out.println()
System.out.print()
Contoh :
public class OutputVariable
{
public static void main( String[] args ){
int value = 10;
char x;
x = A;
System.out.println( value );
System.out.println( The value of x= + x );
}
}
P.B.O. Java - Drs. Megah Mulya, M.T. -
Fasilkom UNSRI - 2007 28
BAGIAN 4
Operator

P.B.O. Java - Drs. Megah Mulya, M.T. -


Fasilkom UNSRI - 2007 29
Operator
( Aritmatika )

P.B.O. Java - Drs. Megah Mulya, M.T. -


Fasilkom UNSRI - 2007 30
Contoh
( penggunaan operator aritmatika )
public class aritmatikaDemo System.out.println(" i = " + i);
{ System.out.println(" j = " + j);
public static void main(String[] System.out.println(" x = " + x);
args) System.out.println(" y = " + y);
{ //penjumlahan angka
//sedikit angka System.out.println("Adding...");
int i = 37; System.out.println(" i + j = " + (i + j));
System.out.println(" x + y = " + (x + y));
int j = 42;
//pengurangan angka
double x = 27.475;
System.out.println("Subtracting...");
double y = 7.22; System.out.println(" i - j = " + (i - j));
System.out.println("Variable System.out.println(" x - y = " + (x - y));
values...");

P.B.O. Java - Drs. Megah Mulya, M.T. -


Fasilkom UNSRI - 2007 31
Contoh
( penggunaan operator aritmatika - lanjut)
System.out.println(" i - j = " + (i - j)); System.out.println("Computin
System.out.println(" x - y = " + (x - y)); g the remainder...");
//perkalian angka System.out.println(" i % j = "
System.out.println("Multiplying..."); + (i % j));
System.out.println(" i * j = " + (i * j)); System.out.println(" x % y = "
System.out.println(" x * y = " + (x * y)); + (x % y));
//pembagian angka //tipe penggabungan
System.out.println("Dividing..."); System.out.println("Mixing
System.out.println(" i / j = " + (i / j)); tipes...");
System.out.println(" x / y = " + (x / System.out.println(" j + y = "
y)); + (j + y));
//menghitung hasil modulus dari System.out.println(" i * x = " +
pembagian (i * x));
}
}
P.B.O. Java - Drs. Megah Mulya, M.T. -
Fasilkom UNSRI - 2007 32
Operator
( Increment & Decrement)

P.B.O. Java - Drs. Megah Mulya, M.T. -


Fasilkom UNSRI - 2007 33
Operator
( Relasi )

P.B.O. Java - Drs. Megah Mulya, M.T. -


Fasilkom UNSRI - 2007 34
Contoh
( penggunaan operator relasi )
public class RelasiDemo System.out.println("Lebih besar
{ dari...");
public static void main(String[] System.out.println(" i > j = " + (i > j));
args) { //false
//beberapa nilai System.out.println(" j > i = " + (j > i));
//true
int i = 37;
System.out.println(" k > j = " + (k >
int j = 42; j)); //false
int k = 42; //lebih besar atau sama dengan
System.out.println("Nilai System.out.println("Lebih besar dari
variabel..."); atau sama dengan...");
System.out.println(" i = " + i); System.out.println(" i >= j = " + (i >=
System.out.println(" j = " + j); j)); //false
System.out.println(" k = " + k); System.out.println(" j >= i = " + (j >=
//lebih besar dari i)); //true

P.B.O. Java - Drs. Megah Mulya, M.T. -


Fasilkom UNSRI - 2007 35
Contoh
( penggunaan operator relasi - lanjut )
System.out.println(" k >= j = " + (k >= System.out.println(" k <= j = " + (k <=
j)); //true j)); //true
//lebih kecil dari //sama dengan
System.out.println("Lebih kecil dari..."); System.out.println("Sama dengan...");
System.out.println(" i < j = " + (i < j)); System.out.println(" i == j = " + (i ==
//true j)); //false
System.out.println(" j < i = " + (j < i)); System.out.println(" k == j = " + (k ==
//false j)); //true
System.out.println(" k < j = " + (k < j)); //tidak sama dengan
//false System.out.println("Tidak sama
//lebih kecil atau sama dengan dengan...");
System.out.println("Lebih kecil dari atau System.out.println(" i != j = " + (i != j));
sama dengan..."); //true
System.out.println(" i <= j = " + (i <= j)); System.out.println(" k != j = " + (k !=
//true j)); //false
System.out.println(" j <= i = " + (j <= i)); }
//false }

P.B.O. Java - Drs. Megah Mulya, M.T. -


Fasilkom UNSRI - 2007 36
Operator
( Logika )
Operator Simbol

AND && atau &


OR || atau |
XOR ^
NOT !

P.B.O. Java - Drs. Megah Mulya, M.T. -


Fasilkom UNSRI - 2007 37
Operator && vs & dan || vs |
Perbedaan dasar antara operator && dan & adalah bahwa &&
mensupports short-circuit evaluations (atau evaluasi
perbagian), sementara operator & tidak.
Misal pernyataan : exp1 AND exp2
Dengan operator && akan mengevaluasi pernyataan exp1, dan
segera mengembalikan nilai false dan menyatakan bahwa exp1
bernilai false. Jika exp1 bernilai false, operator tidak akan
pernah mengevaluasi exp2 karena hasil operasi operator akan
menjadi false tanpa memperhatikan nilai dari exp2.
Dengan operator & selalu mengevaluasi kedua nilai dari exp1 dan
exp2 sebelum mengembalikan suatu nilai jawaban.
Demikian juga antara operator || dan |.
P.B.O. Java - Drs. Megah Mulya, M.T. -
Fasilkom UNSRI - 2007 38
Contoh
(Penggunaan Operator Logika)
public class TestAND System.out.println(test);
{ //demonstrasi &
public static void main( String[] test = (i > 10) & (j++ > 9);
args ) System.out.println(i);
{ System.out.println(j);
int i = 0; System.out.println(test);
int j = 10; }
boolean test= false; }
//demonstrasi &&
test = (i > 10) && (j++ > 9);
System.out.println(i);
System.out.println(j);
P.B.O. Java - Drs. Megah Mulya, M.T. -
Fasilkom UNSRI - 2007 39
Operator Kondisi
Bentuk umum:
exp1?exp2:exp3
exp1 adalah suatu pernyataan boolean
Jika exp1 bernilai true, exp2 merupakan hasil
operasi. Jika bernilai false, kemudian exp3
merupakan hasil operasinya.

P.B.O. Java - Drs. Megah Mulya, M.T. -


Fasilkom UNSRI - 2007 40
Contoh
(Operator Kondisi)
public class ConditionalOperator
{
public static void main( String[] args ){
String status = "";
int grade = 80;
//mendapatkan status pelajar
status = (grade >= 60)?"Passed":"Fail";
//print status
System.out.println( status );
}
}
P.B.O. Java - Drs. Megah Mulya, M.T. -
Fasilkom UNSRI - 2007 41
BAGIAN 5
Input dari Keyboard

P.B.O. Java - Drs. Megah Mulya, M.T. -


Fasilkom UNSRI - 2007 42
Input Data dari Keyboard

Terdapat dua cara:


Menggunakan BufferedReader : menggunakan class
BufferedReader yang berada di package java.io, menyediakan
input mode console
Menggunakan JOptionPane : menggunakan class JoptionPane
yang berada dalam package javax.swing yang menyediakan dialog
box standard mode visual.

P.B.O. Java - Drs. Megah Mulya, M.T. -


Fasilkom UNSRI - 2007 43
Input dengan BufferedReader
import java.io.BufferedReader; try{
import java.io.InputStreamReader; name = dataIn.readLine();
import java.io.IOException; }catch( IOException e ){
public class GetInputFromKeyboard System.out.println("Error!");
{ }
public static void main( String[] args ){ System.out.println("Hello " +
BufferedReader dataIn = new name +"!");
BufferedReader(new }
InputStreamReader( System.in) ); }
String name = "";
System.out.print("Please Enter
Your Name:");

P.B.O. Java - Drs. Megah Mulya, M.T. -


Fasilkom UNSRI - 2007 44
Input dengan JOptionPane
import javax.swing.JOptionPane;

public class GetInputFromKeyboard {

public static void main( String[] args ){


String name = "";
name=JoptionPane.showInputDialog(Please enter your
name");
String msg = "Hello " + name + "!";
JOptionPane.showMessageDialog(null, msg);
}
}

P.B.O. Java - Drs. Megah Mulya, M.T. -


Fasilkom UNSRI - 2007 45
BAGIAN 6
Struktur Kontrol

P.B.O. Java - Drs. Megah Mulya, M.T. -


Fasilkom UNSRI - 2007 46
Selection (1)
Sama seperti pada C++
public class Grade { else if( (grade < 80) && (grade >=
public static void main( String[] args ) 60)){
{ System.out.println(Belajar lagi!" );
double grade = 92.0; }
if( grade >= 90 ){ else{
System.out.println( System.out.println(Maaf, Anda
"Excellent!" ); gagal.");
} }
else if( (grade < 90) && (grade >= }
80)){ }
System.out.println(Bagus!" );
}
P.B.O. Java - Drs. Megah Mulya, M.T. -
Fasilkom UNSRI - 2007 47
Selection (2)
public class Grade { case 80:
public static void main( String[] args ) System.out.println(Belajar
{ lagi!" );
int grade = 92; break;
switch(grade){ default:
case 100: System.out.println(Maaf,
System.out.println( Anda gagal.");
"Excellent!" ); }
break; }
case 90: }
System.out.println(Bagus!" );
break;
P.B.O. Java - Drs. Megah Mulya, M.T. -
Fasilkom UNSRI - 2007 48
Looping
Sama seperti pada C++
int x = 0; int i;
while (x<10) { for( i = 0; i < 10; i++ ){
System.out.println(i);
System.out.println(x); }
x++;
}
=====================
int x = 0;
do {
System.out.println(x);
x++;
}while (x<10);

P.B.O. Java - Drs. Megah Mulya, M.T. -


Fasilkom UNSRI - 2007 49
BAGIAN 7
Array

P.B.O. Java - Drs. Megah Mulya, M.T. -


Fasilkom UNSRI - 2007 50
Deklarasi Array
Untuk mendeklarasikan array :
tulis tipe datanya,
diikuti dengan tanda kurung [],
serta diikuti oleh nama identifier.

Contoh:

int []ages;

atau

int ages[];

P.B.O. Java - Drs. Megah Mulya, M.T. -


Fasilkom UNSRI - 2007 51
Instansiasi Array
Untuk meng-instantiate (atau membuat) sebuah array,
Tulislah new keyword,
Diikuti oleh tanda kurung [] yang berisi angka dari elemen yang Anda
inginkan pada array tersebut.
Contoh,

//deklarasi
int ages[];
//instantiate object
ages = new int[100];
atau,

//declare and instantiate object


int ages[] = new int[100];
P.B.O. Java - Drs. Megah Mulya, M.T. -
Fasilkom UNSRI - 2007 52
Instansiasi sekaligus Inisialisasi
Contoh,
int arr[] = {1, 2, 3, 4, 5};
boolean results[] = { true, false, true, false };
double []grades = {100, 90, 80, 75};
String days[] = { Mon, Tue, Wed, Thu, Fri, Sat, Sun};

P.B.O. Java - Drs. Megah Mulya, M.T. -


Fasilkom UNSRI - 2007 53
Mengakses Elemen Array
public class ArraySample{
public static void main( String[] args ){
int[] ages = new int[100];
for( int i=0; i<100; i++ ){
System.out.print( ages[i] );
}
}
}

P.B.O. Java - Drs. Megah Mulya, M.T. -


Fasilkom UNSRI - 2007 54

Anda mungkin juga menyukai