Java merupakan bahasa pemrograman yang saat ini sedang “naik daun” dan banyak digunakan oleh para programmer dan software developer untuk mengembangkan berbagai tipe aplikasi, mulai dari aplikasi console, aplikasi desktop, applet (aplikasi yang berjalan di lingkungan web browser), sampai ke aplikasi-aplikasi yang berskala enterprise. Untuk memenuhi kebutuhan tipe aplikasi yang beragam tersebut, Java dikategorikan menjadi tiga edisi, yaitu: J2SE (Java 2 Platform, Standard Edition) – untuk pembuatan aplikasi-aplikasi desktop dan applet, J2EE (Java 2 Platform, Enterprise Edition) – untuk pembuatan aplikasi-aplikasi multi-tier berskala enterprise, dan J2ME (Java 2 Platform, Micro Edition) – untuk pembuatan aplikasi-aplikasi yang dapat dijalankan di lingkungan perangkat-perangkat mikro seperti handphone dan PDA
Buku ini akan membahas semua teknik pemrograman di dalam J2SE, yang merupakan “core” atau inti dari pemrograman Java. Melalui buku ini, Anda akan diajak untuk mengenal, memahami, mempraktekkan, dan mampu mengimplementasikan konsep-konsep yang diperlukan dalam pemrograman Java. Pembahasan dalam buku ini akan dimulai dari yang paling sederhana, yaitu dengan penguasaan elemen-elemen dasar program seperti: arsitektur program di dalam Java beserta dengan teknik pembuatan dan kompilasinya, tipe data, operator, struktur kontrol, dan sebagainya. Selanjutnya, Anda akan diajak untuk bereksplorasi tentang fitur-fitur yang mendukung konsep pemrograman berorientasi objek di dalam Java. Terakhir, Anda akan dikenalkan dengan teknik-teknik pemrograman tingkat lanjut, termasuk cara-cara pembuatan aplikasi visual (aplikasi berbasis GUI – Graphical User Interface) di dalam Java.
Buku ini cocok untuk siapa saja yang berminat mempelajari dan mengimplementasikan semua konsep pemrograman Java secara mudah dan cepat. Semua materi dalam buku ini disuguhkan dalam “logat” tutorial dan langsung disertai dengan contoh program sehingga akan mudah untuk dipahami. Tujuan akhir dari buku ini adalah mengantarkan, menuntun, dan memandu Anda untuk menjadi seorang programmer Java.
Untuk memudahkan Anda dalam mempelajari semua materi yang disampaikan, buku ini juga disertai dengan CD pendukung yang berisi kode sumber (source code) dari contoh-contoh program yang ada dan software-software yang dibutuhkan sehingga Anda tidak perlu repot untuk mencari maupun men-download-nya dari internet.
Adapun isi CD pendukung yang terdapat dalam buku ini adalah sebagai berikut:
 - Kode sumber (source code)
 - Software Java 2 SDK, Standard Edition
 - Software Java IDE (Integrated Development Environment)  
 
  
 Daftar Isi
Kata Pengantar  iii
Daftar Isi  v
Bab 1.  Pengenalan Java  1
1.1  Program di dalam Java: Bytecode  2
1.2  Perbedaan Pemrograman Prosedural dan Pemrograman Berorientasi Objek  4
1.3  Software Apa yang Dibutuhkan?  6
1.4  Instalasi Software Java 2 SDK, Standard Edition  7
1.5  Setting CLASSPATH  11
1.6  Membuat Program “Hello World”  12
1.7  Melakukan Kompilasi dan Eksekusi Program  16
1.8  Java IDE: JCreator, Eclipse, dan NetBeans  18
1.8.1 Menggunakan JCreator  18
1.8.2 Menggunakan Eclipse  23
1.8.3 Menggunakan NetBeans  27
1.9 Elemen-elemen Dasar dalam Bahasa Java  29
1.9.1 Komentar Program  30
1.9.2 Blok Program  31
1.9.3 Separator  32
1.9.4 Kata Kunci  34
1.10 Konsep Pemrograman Berorientasi Objek  35
1.10.1 Abstraksi  35
1.10.2 Pembungkusan  36
1.10.2.1  Tingkat Akses private  36
1.10.2.2  Tingkat Akses protected  37
1.10.2.3 Tingkat Akses public  37
1.10.3 Pewarisan  37
1.10.4 Polimorfisme  38
Bab 2.  Tipe Data, Variabel, dan Array  39
2.1 Pengelompokkan Tipe Data dalam Java  39
2.1.1 Tipe Integer (Bilangan Bulat)  41
2.1.1.1 Tipe byte  41
2.1.1.2 Tipe short  42
2.1.1.3 Tipe int  42
2.1.1.4 Tipe long  43
2.1.2 Tipe Floating-Point (Bilangan Riil)  43
2.1.2.1 Tipe float  44
2.1.2.2 Tipe double  44
2.1.3 Tipe Karakter  45
2.1.4 Tipe Boolean  48
2.2  Variabel  51
2.2.1 Mendeklarasikan Variabel  51
2.2.2 Inisialisasi Variabel  53
2.2.3 Lingkup dan Daur Hidup Variabel  54
2.3.  Typecasting  54
2.3.1 Konversi Otomatis dalam Java  55
2.3.2 Konversi Tipe Data yang Tidak Kompatibel  55
2.4  Promosi Tipe Data di dalam Ekspresi  58
2.4.1 Batasan Promosi Tipe Data  59
2.5  Array  59
2.5.1  Array Satu-Dimensi  60
2.5.2  Array Multi-Dimensi  63
2.6 Pengenalan Tipe String di dalam Java  65
2.7 Java dan Pointer (Bagi Programmer C/C++)  66
Bab 3.  Operator  67
3.1 Operator Aritmetika  67
3.1.1 Operator-operator Aritmetika Dasar  69
3.1.2 Operator Modulus (Sisa Bagi)  70
3.1.3 Operator Increment dan Decrement  72
3.2 Operator Relasional  74
3.3 Operator Logika  76
3.4 Operator Bitwise  78
3.4.1  Operator Bitwise AND  79
3.4.2  Operator Bitwise OR  79
3.4.3  Operator Bitwise XOR  80
3.4.4  Operator Bitwise NOT  80
3.4.5  Operator Shift Right  80
3.4.6  Operator Shift Right Zero Fill  81
3.4.7  Operator Shift Left  81
3.5 Operator ?:  82
3.6 Prioritas pada Operator  83
3.7 Penggunaan Tanda Kurung dalam Ekspresi  84
Bab 4.  Statemen Kontrol  85
4.1 Pemilihan  86
4.1.1 Statemen if  86
4.1.1.1 Satu Kondisi  87
4.1.1.2 Dua Kondisi  89
4.1.1.3 Tiga Kondisi atau Lebih  92
4.1.2 Statemen switch   96
4.2 Pengulangan  102
4.2.1 Struktur for  103
4.2.1.1 Penggunaan Koma dalam Struktur for  106
4.2.1.2 Beberapa Variasi dalam Struktur for  107
4.2.2 Struktur while  110
4.2.3 Struktur do-while  113
4.2.4 Pengulangan Bersarang  116
4.3 Statemen Peloncatan  118
4.3.1 Menggunakan break  118
4.3.1.1 Menggunakan break untuk Menghentikan Proses Pengulangan  118
4.3.1.2  Menggunakan break untuk Keluar dari Blok Label  121
4.3.2 Menggunakan continue  122
4.3.3  Menggunakan return  123
Bab 5.  Kelas dan Objek (Bagian 1)  125
5.1 Apa Itu Kelas?  126
5.1.1 Mendefinisikan Kelas  127
5.1.2 Contoh Kelas Sederhana  128
5.2 Mendeklarasikan Objek  131
5.3 Mengisi Nilai pada Referensi Objek  133
5.4 Apa Itu Method?  137
5.4.1 Mendefinisikan Method  138
5.4.2 Pengembalian Nilai di dalam Method  140
5.4.3 Method Berparameter  142
5.5 Constructor  145
5.6 Kata Kunci this  147
5.7 Mengenal Garbage Collection di dalam Java  149
5.8  Method finalize()  150
Bab 6.  Kelas dan Objek (Bagian 2)  151
6.1 Melakukan Overload terhadap Method  151
6.1.1 Overload pada Constructor  155
6.2 Objek sebagai Parameter  159
6.3 Melewatkan Argumen di dalam Java  162
6.4 Objek sebagai Nilai Kembalian  167
6.5 Rekursi  168
6.5.1 Menentukan Nilai Faktorial  169
6.5.2 Menentukan Nilai Perpangkatan  171
6.5.3 Konversi Bilangan Desimal ke Bilangan Biner  173
6.5.4 Konversi Bilangan Desimal ke Bilangan Heksadesimal  175
6.6 Menentukan Tingkat Akses Data dan Method  177
6.7 Mengenal Kata Kunci static  180
6.8 Mengenal Kata Kunci final  184
6.9 Mendefinisikan Kelas di dalam Kelas (Inner Class)  186
Bab 7.  Pewarisan Sifat Objek  189
7.1  Dasar Pewarisan: Superclass dan Subclass  189
7.2 Membuat Kelas Turunan (Subclass)  191
7.3  Tingkat Akses protected  194
7.4  Menggunakan Kata Kunci super  198
7.4.1 Menggunakan super untuk Memanggil Constructor Kelas Induk  199
7.4.2 Menggunakan super untuk Mengakses Anggota Kelas Induk  202
7.5 Java Tidak Mendukung Multiple-Inheritance  204
7.6 Constructor pada Proses Penurunan Kelas  208
7.7 Melakukan Override terhadap Method  210
7.8  Perbedaan Override dengan Overload  213
7.9  Polimorfisme  214
7.10  Kelas Abstrak  219
7.11 Kata Kunci final pada Proses Pewarisan  225
7.11.1 Mencegah Method dari Proses Override  225
7.11.2 Menjadikan Kelas Tidak Dapat Diturunkan Lagi  226
Bab 8.  Paket dan Interface  227
8.1 Apa Itu Paket?  228
8.2 Membuat Paket  228
8.3 Mengimpor Paket yang Telah Dibuat ke dalam Program  231
8.4 Paket di dalam Paket  232
8.5 Peranan Tingkat Akses di dalam Paket  233
8.6  Apa Itu Interface  234
8.7  Membuat Interface  235
8.8  Menggunakan Interface  236
8.9  Membuat Referensi ke Tipe Interface  240
8.10  Variabel di dalam Interface  241
8.11  Interface Dapat Diturunkan Menjadi Interface Lain  242
Bab 9.  Penjebakan Eksepsi  245
9.1 Apa Itu Eksepsi?  246
9.2 Tipe Eksepsi dalam Java  248
9.3  Menggunakan Kata Kunci try dan catch  250
9.4  Penjebakan Beberapa Tipe Eksepsi  254
9.5  Blok try Bersarang  258
9.6  Menggunakan Kata Kunci throw  260
9.7  Menggunakan Kata Kunci throws  263
9.8  Menggunakan Kata Kunci finally  266
9.9  Membuat Kelas Eksepsi Sendiri  268
Bab 10. Input dan Output  273
10.1 Dasar-dasar I/O  273
10.1.1 Pengertian Stream  274
10.1.2  Tipe Stream  274
10.1.2.1 Stream Byte  275
10.1.2.2 Stream Karakter  276
10.1.2.3 Stream yang Telah Terdefinisi  277
10.2 Melakukan Input  278
10.2.1 Membaca Input Data Karakter  279
10.2.2 Membaca Input Data String  280
10.2.3 Membaca Input Data Numerik  281
10.3  Menampilkan Output  283
10.4 Mengenal Kelas PrintWriter  284
10.5  Dasar-dasar Baca/Tulis File  286
10.6  Kelas dan Interface yang Berkaitan dengan I/O  291
10.7  Kelas File  292
10.7.1 Memperoleh Informasi File  294
10.7.2 Membuat File  295
10.7.3 Mengubah Nama File  296
10.7.4 Menghapus File  296
10.7.5 Menampilkan Daftar File dan Direktori  297
10.7.6 Membuat Direktori Baru  298
Bab 11. String dalam Java  299
11.1 Dalam Java, String adalah Objek  300
11.2 Membentuk Objek dari Kelas String  301
11.3 Operasi String  303
11.3.1 Menyambung String  303
11.3.2 Memahami Method toString()  306
11.3.3 Menentukan Huruf Besar/Kapital dan Huruf Kecil  308
11.4  Pengambilan Karakter dari Sebuah String  309
11.4.1 Method charAt()  310
11.4.2  Method getChars()  312
11.4.3  Method getBytes()  313
11.4.4  Method toCharArray()  314
11.5 Method-method Penting untuk Modifikasi String  315
11.5.1 Method trim()  315
11.5.2 Method substring()  316
11.5.3 Method replace()  317
11.5.4 Method concat()  318
11.6 Membandingkan Dua Buah String  318
11.6.1 Method equals()  319
11.6.2 Method equalsIgnoreCase()  320
11.6.3 Method startsWith()  321
11.6.4 Method endsWith()  322
11.6.5 Method regionMatches()  323
11.6.6 Method compareTo() dan compareToIgnoreCase()  324
11.6.7. Perbedaan Method equals() dengan Operator ==  326
11.7 Pencarian String  328
11.8 Array dari Tipe String  330
11.9 Argumen pada Command-Line  330
11.10 Menggunakan Kelas StringBuffer  331
11.10.1 Perbedaan Method capacity() dan length()  333
11.10.2 Menentukan Kapasitas Buffer  333
11.10.3 Menentukan Lebar Karakter  335
11.10.4 Method charAt() dan setCharAt()  336
11.10.5 Method getChars()  338
11.10.6 Menambahkan Karakter atau Substring  338
11.10.7 Menyisipkan Karakter atau Substring  339
11.10.8 Menghapus Karakter atau Substring  340
11.10.9 Mengganti Karakter atau Substring  342
11.10.10 Membalik Posisi String  343
11.10.11 Menggunakan Method substring()  344
Bab 12. Thread  345
12.1 Multitasking dan Multithreading  345
12.2 Apa Itu Thread?  347
12.3 Thread Utama: Setiap Program Java Memiliki Thread  348
12.4 Membuat dan Menjalankan Thread  351
12.4.1 Cara I: Mengimplementasikan Interface Runnable  351
12.4.2 Cara II: Menurunkan Kelas Thread  354
12.4.3 Cara Mana yang Lebih Direkomendasikan?  355
12.5 Menghentikan Thread  356
12.6 Multiple Thread  358
12.7 Mengenal Method isAlive() dan join()  360
12.8 Menentukan Prioritas Thread  363
12.9 Sinkronisasi  366
12.9.1 Monitor/Lock  367
12.9.2 Method untuk Sinkronisasi  367
12.9.3 Blok untuk Sinkronisasi  370
Bab 13. Pembuatan GUI: Aplikasi Visual  373
13.1 AWT dan Swing  374
13.2 Mengapa Kita Tidak Menggunakan AWT?  374
13.3 Penanganan Kejadian (Event-Handling)  374
13.3.1 Mekanisme Event-Handling dalam Java  375
13.3.1.1 Event Source  378
13.3.1.2 Event Listener  379
13.3.2 Kelas-kelas Event  379
13.3.3 Objek-objek yang Dapat Membangkitkan Event  381
13.3.4 Interface-interface untuk Event Listener  381
13.4 Eksplorasi Komponen-komponen Swing  384
13.4.1 Tipe Container Tertinggi dalam Swing  384
13.4.1.1 Applet  384
13.4.1.2 Dialog  387
13.4.1.3 Frame  390
13.4.2 Komponen-komponen Kontrol Tingkat Dasar  392
13.4.2.1 Komponen JButton  393
13.4.2.2 Komponen JCheckBox  395
13.4.2.3 Komponen JRadioButton  397
13.4.2.4 Komponen JTextField  400
13.4.2.5 Komponen JTextArea  403
13.4.2.6 Komponen JComboBox  405
13.4.2.7 Komponen JList  409
13.4.3 Komponen-komponen Kontrol Tingkat Lanjut  412
13.4.3.1 Komponen JTabbedPane  412
13.4.3.2 Komponen JTree  416
13.4.3.3 Komponen JTable  420
13.4.4 Membuat Menu  423
Daftar Pustaka  427
         
boleh minta referensi bukunya gak soalnya ini penting buat tugas....
BalasHapustrims :)