Download Java Untuk Pemula PDF

TitleJava Untuk Pemula
File Size2.6 MB
Total Pages243
Table of Contents
                            Java untuk Pemula
Bab I - Pendahuluan
Mengenal Bahasa Pemrograman Java
Kelebihan Java
Bab II - Instalasi
Eclipse IDE
Menjalankan Eclipse untuk pertama kali
Mengimport proyek ke dalam Eclipse
Instalasi Subversive, Plugin SVN untuk Eclipse
Menguji Koneksi SVN
Bab III - Memulai Java
Melihat lebih dekat “SelamatDatang”
Variabel dan Tipe Data
Contoh Program Variabel dan Tipe Data
String, Objek dan Subrutin
Kelas sebagai tipe data
Kelas sebagai kumpulan subrutin dan variabel statik
Kelas Math
Contoh Kelas Math
Kelas String
Contoh Kelas String
Operator Aritmatika
Operator Tunggal
Intermezzo : Membaca Input dari User
Intermezzo : Mengubah String ke int dan double
Bab IV - Memulai Java Lebih Lanjut - Struktur Kontrol
Blok, Perulangan, dan Percabangan
Perancangan Algoritma
Membuat kode, menguji, dan mencari kesalahan (debugging)
while dan do ... while
Perulangan for
Pernyataan if
Pernyataan switch
Contoh Program switch case
Bab V - Subrutin
Kotak Hitam
Subrutin Statik dan Variabel Statik
Contoh Subrutin - Mengubah Program RataRata
Contoh Program Subrutin dan Variabel Statik
Parameter
Tipe Keluaran
Toolbox, API, dan Paket
Tentang Deklarasi
Bab VI - Pemrograman Berorientasi Objek
Objek, Metode Instansi dan Variable Instansi
Konstruktor dan Inisialisasi Objek
Pemulung Memori (Garbage Collector)
Pewarisan, Polimorfisme, dan Kelas Abstrak
this dan super
Antar Muka (interface), Kelas Bertingkat, dan Detail Lain
Bab VII - Kebenaran dan Ketangguhan Program
Pengenalan tentang Program yang Benar dan Tangguh
Membuat Program yang Benar
Pemrograman dengan Pengecualian
Bab VIII - Pengenalan Struktur Data dan Algoritma
Array
Membuat dan Menggunakan Array
Pemrograman dengan Array
Array Dinamis
ArrayLists dan Vector
Array Multi Dimensi
Pencarian, Pengurutan dan Rekursi
Pencarian
List Asosiasi
Pengurutan
Rekursi
Pengurutan Cepat
Struktur Data Berantai
Mengaitkan Objek
Tumpukan
Antrian
Pohon Biner
Pohon Pengurutan Biner
Pohon Pengurutan Biner
                        
Document Text Contents
Page 1

Java untuk Pemula
Bahasa pemrograman Java adalah bahasa pemrograman berorientasi objek yang mirip
dengan bahasa C++ dan Smalltalk. Java bersifat netral, tidak bergantung pada suatu
platform, dan mengikuti prinsip WORA (Write Once and Run Anywhere). Tidak seperti
C atau C++, Anda dapat menulis program dalam bahasa Java, cukup sekali
mengkompilasi dan dapat dijalankan pada berbagai sistem operasi, seperti Windows,
Linux, Solaris, MacOS. Sebaliknya bahasa C++ bergantung pada suatu platform, karena
mengharuskan kita mengkompilasi program tersebut pada setiap sistem operasi yang
dituju.

Bab I - Pendahuluan

Mengenal Bahasa Pemrograman Java
Sejarah Java

Java dipelopori oleh James Gosling, Patrick Naughton, Chris Warth, Ed Frank, dan Mike
Sheridan dari Sun Microsystems, Inc pada tahun 1991. Mereka membutuhkan kurang
lebih 18 bulan untuk membuat versi pertamanya. Bahasa ini pada awalnya disebut “Oak”
tapi kemudian diubah menjadi “Java” pada tahun 1995 karena nama Oak telah dijadikan
hak cipta dan digunakan sebagai bahasa pemrograman lainnya. Antara pembuatan Oak
pada musim gugur 1992 hingga diumumkan ke publik pada musim semi 1995, banyak
orang yang terlibat dalam desain dan evolusi bahasa ini. Bill Joy, Arthur van Hoff,
Jonathan Payne, Frank Yellin, dan Tim Lindholm merupakan kontributor kunci yang
mematangkan prototipe aslinya.

Java Modern

Java telah digunakan dalam banyak hal dan telah membuktikan keberadaannya pada abad
ke 21. Saat ini, Java digunakan bermacam jenis aplikasi seperti aplikasi embedded,
aplikasi keuangan, desktop, simulasi pesawat, pemrosesan citra, game, aplikasi
perusahaan terdistribusi yang disebut J2EE dan masih banyak lagi.

Java Virtual Machine (JVM)

Java Virtual Machine merupakan aplikasi sederhana yang ditulis dalam bahasa C untuk
mengeksi program yang ditulis dalam bahasa Java. Pada saat kompilasi (perubahan dari
bahasa tingkat tinggi ke bahasa lebih rendah), program tersebut diubah menjadi KODE
BYTE. Kemudian pada saat eksekusi, JVM membaca kode byte tersebu dan
mengubahnya menjadi bahasa mesin yang dimengerti oleh sistem operasi tempat program
tersebut dijalankan.

Page 2

Karena JVM sangat bergantung pada platformnya (bahasa mesin merupakan bahasa level
rendah yang hanya dimengerti oleh suatu mesin tertentu, misalnya Intel, tapi tidak dapat
dimengerti oleh mesin lain, seperti Macintosh), byte code ini dapat dibuat untuk terbebas
dari kungkungan platform tertentu. Code byte yang dihasilkan dalam proses kompilasi
bahasa Java akan selalu sama untuk setiap sistem operasi atau jenis mesinnya, tetapi JVM
akan mengubah kode byte tersebut menjadi bahasa mesin tujuannya.

Just In Time Compiler (JIT)

Meskipun Java didesain untuk diinterpretasi, secara teknis tidak ada yang menghalangi
Java untuk dikompilasi menjadi bahasa mesin seperti bahasa-bahasa pemrograman
lainnya. Sun menyediakan kompiler Just In Time Compiler (JIT) untuk mengkompilasi
kode byte itu menjadi bahasa mesinnya pada saat yang bersamaan dengan eksekusinya.
Walaupun demikian, pendekatan JIT ini menghasilkan kemampuan yang lebih
dibandingkan dengan interpretasi biasa.

Kelebihan Java
Posted Sab, 02/07/2009 - 04:34 by belajarprogram

Versi ramah cetak

Bahasa pemrograman lain yang telah ada sebelum Java lahir sudah merupakan bahasa
yang baik dan mudah dipelajasi oleh programmer profesional. Akan tetapi para
programmer ini menginginkan sesuatu yang baru yang memiliki banyak hal yang
menyelesaikan masalah mereka. Utamanya adalah keamanan kode mereka. Hal ini
melahirkan pikiran yang revolusioner untuk menemukan bahasa pemrograman lain yang
disebut Java. Tidak hanya keamanan tapi juga beberapa hal yang sering disebut sebagai
Java-Buzzwords. Kata-kata ini menjelaskan berbagai fitur tambahan dan beberapa hal
yang membuat Java demikian sukses dan diterima oleh dunia perangkat lunak. Berikut ini
adalah penjelasan serta keuntungan dari kata-kata tersebut.

Sederhana dan Berorientasi Objek

Seperti diuraikan sebelumnya, Java lahir dari suatu pemikiran mendalam akan bahasa
pemrograman yang ada pada saat itu, seperti C dan C++. Hal ini akan memudahkan
programmer profesional untuk dapat mengerti lebih jelas tentang Java, fungsionalitas,
dan lain sebagainya apabila ia memiliki pengetahuan dasar tentang C++ dan konsep
pemrograman berorientasi objek. Tujuannya agar konsep dasar dari teknologi Java dapat
dimengerti dengan mudah, dan programmer dapat segera menghasilkan sesuatu sedini
mungkin. Tidak hanya ini, penemu Java memastikan bahwa Java juga bermula dari
bahasa pemrograman dasar yang sudah ada pada saat itu. Kemudian mereka membuang
berbagai fitur yang rumit dan membingungkan.

Bahasa pemrograman Java didesain sejak awal untuk menjadi bahasa yang berorientasi
objek. Setelah kira-kira 30 tahun, akhirnya teknologi objek menjadi kenyataan dan

http://java.lyracc.com/print/5

Page 121

} // akhir kelas PasanganDadu

Variabel instansi dadu1 dan dadu2 diisi dengan nilai awal 3 dan 4. Inisialisasi ini
dilakukan setiap kali objek PasanganDadu dibuat. Ingat bahwa kelas PasanganDadu
hanya 1, akan tetapi kita bisa membuat banyak objek dari kelas ini. Setiap kali objek
dibuat, objek tersebut memiliki tempat di memori sendiri, yang disebut dengan instansi
objek tersebut. Perintah "dadu1 = 3" dan "dadu2 = 4" akan dieksekusi setiap kali objek
dibuat.

Kita bisa memodifikasi kelas PasanganDadu dengan nilai awal acak, bukan 3 dan 4
misalnya, dengan potongan kode berikut :

class PasanganDadu {
public int dadu1 = (int)(Math.random()*6) + 1; // Angka pada dadu
pertama
public int dadu2 = (int)(Math.random()*6) + 1; // Angka pada dadu
kedua

public void kocok() {
// Kocok dadu dengan menggunakan bilangan acak antara 1 dan 6
dadu1 = (int)(Math.random()*6) + 1;
dadu2 = (int)(Math.random()*6) + 1;
}
} // akhir kelas PasanganDadu

Karena inisialisasi dilakukan setiap kali objek dibuat, maka setiap objek akan memiliki
nilai yang berbeda-beda hasil dari instruksi Math.random() pada inisialisasi variabel
instansi. Untuk inisialisasi variabel static, hal ini tidak mungkin dilakukan, karena hanya
ada 1 variabel statik untuk 1 kelas, tidak peduli berapa pun banyaknya objek yang dibuat.

Jika variabel instansi tidak kita beri nilai awal, maka nilai bawaan akan diberikan secara
otomatis. Tipe data numerik (int, double, dll) memiliki nilai bawaan 0; boolean bernilai
awal false; dan char bernilai awal karakter dengan kode Unicode 0. Variabel instansi juga
bisa bertipe suatu objek. Dalam hal ini, variabel tersebut bernilai awal null. (Ingat bahwa
String adalah objek, sehingga nilai awalnya adalah null).

Objek dibuat dengan operator new, misalnya program yang ingin menggunakan objek
PasanganDadu dapat menggunakan perintah berikut :

// deklarasi variabel dan pembuatan objek dilakukan sekaligus
PasanganDadu dadu = new PasanganDadu();

Pada contoh di atas, new PasanganDadu() adalah perintah untuk membuat objek,
meletakkannya di memori dan menyimpan alamat objek ini di memori pada variabel
dadu. Bagian ekspresi PasanganDadu() mirip seperti memanggil subrutin. Sebetulnya
itulah yang terjadi, yaitu program memanggil subrutin spesial yang dinamakan
konstruktor (constructor). Mungkin Anda heran karena kita tidak melihat adanya subrutin
bernama PasanganDadu(). Akan tetapi semua kelas memiliki konstruktor, yang jika kita

Page 122

tidak buat secara khusus, Java akan menambahkannya secara otomatis, yang disebut
konstruktor bawaan.

Konstruktor bawaan melakukan hal-hal umum seperti mengalokasi memori, mengisi nilai
variabel instansi dengan nilai bawaannya, dan mengembalikan alamat objek yang dibuat
di memori. Jika kita menginginkan hal lain yang ikut dilaksanakan ketika suatu objek
dibuat, maka kita harus membuat konstruktor sendiri.

Bagaimana cara mendefinisikan konstruktor? Konstruktor dideklarasikan mirip dengan
deklarasi subrutin, dengan 3 perkecualian. Konstruktor tidak memiliki tipe keluaran (void
pun tidak dibolehkan. Namanya harus sama dengan nama kelas di mana ia
dideklarasikan. Sifat yang bisa digunakan hanya sifat akses, yaitu public, private, dan
protected (static tidak diperbolehkan).

Di lain pihak, konstruktor memiliki blok yang terdiri dari kumpulan perintah seperti pada
subrutin. Kita bisa menggunakan perintah apapun seperti pada subrutin biasa, termasuk
memiliki satu atau lebih parameter formal. Sebetulnya salah satu alasan untuk
menggunakan parameter adalah kita bisa membuat beberapa konstruktor yang menerima
data dalam berbagai bentuk, sehingga objek yang kita buat bisa dinisialisasi dengan cara
yang berbeda-beda sesuai dengan kondisi dan kebutuhan dari program yang akan kita
buat.

Misalnya, kelas PasanganDadu di atas kita ubah sehingga kita bisa memberi nilai awal
sendiri. Dalam hal ini kita buat konstruktor yang menerima 2 nilai sebagai nilai awal
dadu, yaitu nilai1 dan nilai2.

class PasanganDadu {
public int dadu1; // Angka pada dadu pertama
public int dadu2; // Angka pada dadu kedua

public PasanganDadu(int nilai1, int nilai2) {
// Konstruktor, mengambil nilai1 dan nilai2 sebagai nilai awal
untuk dadu1 dan dadu2
dadu1 = nilai1;
dadu2 = nilai2;
}

public void kocok() {
// Kocok dadu dengan menggunakan bilangan acak antara 1 dan 6
dadu1 = (int)(Math.random()*6) + 1;
dadu2 = (int)(Math.random()*6) + 1;
}
} // akhir kelas PasanganDadu

Konstruktor dideklarasikan dalam bentuk "public PasanganDadu(int nilai1, int nilai2) ...",
tanpa tipe keluaran dan dengan nama yang sama dengan nama kelas. Ini adalah cara Java
mengenal suatu konstruktor dan membedakannya dengan subrutin biasa. Konstruktor ini
memiliki 2 parameter yang harus diisi ketika konstruktor dipanggil. Misalnya,

PasanganDadu dadu = new PasanganDadu(1,2);

Page 242

// Kita sudah sampai pada akhir pohon, dan item belum
// ditemukan
return false;
}
else if ( item.equals(pointer.item) ) {
// Kita sudah menemukan item
return true;
}
else if ( item.compareTo(pointer.item) < 0 ) {
// Jika item lebih kecil, kemungkinan ada di cabang kiri
// Teruskan penelusuran di cabang kiri pohon
pointer = pointer.kiri;
}
else {
// Jika item lebih besar, kemungkinan ada di cabang kanan
// Teruskan penelusuran di cabang kanan pohon
pointer = pointer.kanan;
}
} // akhir while
} // akhir pohonBerisiNR();

Subrutin untuk menyisipkan item baru ke dalam pohon mirip dengan rutin pencari non-
rekursif di atas. Selain itu rutin penyisipan harus bisa menguji apakah pohon kosong atau
tidak. Jika pohon kosong, maka akar menunjuk pada simpul baru.

akar = new simpulPohon( itemBaru );

Akan tetapi, berarti akar tidak bisa diberikan sebagai parameter subrutin, karena kita
tidak bisa mengubah nilai yang disimpan dalam parameter aktual. (Ini bisa dilakukan
dalam bahasa pemrograman lain). Ada cari lainnya, akan tetapi cara lebih mudah adalah
menggunakan rutin penyisipan non-rekursif yang mengakses variabel anggota akar
secara langsung.

Perbedaan antara mencari dan menyisipkan item adalah kita harus berhati-hati untuk
tidak jatuh dari pohon. ARtinya, kita harus selesai melakukan pencarian sebelum
pointer bernilai null karena mencapai akhir pohon. Jika kita sampai pada tempat
kosong, di situlah kita menempatkan simpul baru kita.

static void sisipPohon(String itemBaru) {
// Tambahkan item ke dalam pohon pencarian biner, di mana
// variabel "akar" berisi. (Catatan kita tidak bisa menggunakan
// akar sebagai parameter, karena kita harus mengubah isi
// variabel ini.)
if ( akar == null ) {
// Jika pohon kosong, set akar ke simpul baru
// yang berisi itemBaru
akar = new SimpulPohon( itemBaru );
return;
}
SimpulPohon pointer; // Untuk menelusuri pohon
pointer = akar; // Mulai dari akar
while (true) {
if ( newItem.compareTo(pointer.item) < 0 ) {

Similer Documents